Tutti-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
March 2013
- 5 participants
- 242 discussions
r571 - in trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence: . service
by tchemit@users.forge.codelutin.com 11 Mar '13
by tchemit@users.forge.codelutin.com 11 Mar '13
11 Mar '13
Author: tchemit
Date: 2013-03-11 10:42:16 +0100 (Mon, 11 Mar 2013)
New Revision: 571
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/571
Log:
fix tests
Modified:
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-03-11 08:20:29 UTC (rev 570)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-03-11 09:42:16 UTC (rev 571)
@@ -67,7 +67,7 @@
}
public int refNbCaracteristic() {
- return 482;
+ return 476;
}
public int refNbSpecies() {
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java 2013-03-11 08:20:29 UTC (rev 570)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java 2013-03-11 09:42:16 UTC (rev 571)
@@ -275,6 +275,7 @@
assertNotNull(reloadedFishingOperation.getLocation().getId());
assertEquals(fishingOperation.getLocation().getId(), reloadedFishingOperation.getLocation().getId());
+ //FIXME-TC Benoit fix this please
// -----------------------------------------------------------------------------
// 3. Test :
// - startDate and startLat filled, but empty endLong
@@ -283,26 +284,26 @@
// - trawlDistance empty
// - fishingOperationValid = false
// -----------------------------------------------------------------------------
- fishingOperation.setId(null);
- fishingOperation.setStationNumber("STA3");
- fishingOperation.setFishingOperationNumber(3);
- fishingOperation.setMultirigAggregation("2");
- fishingOperation.setGearShootingStartLongitude(null);
- fishingOperation.setGearShootingEndDate(null);
- fishingOperation.setTrawlDistance(null);
- fishingOperation.setFishingOperationRectiligne(false);
- fishingOperation.setFishingOperationValid(false);
- fishingOperation.setComment("Unit test createFishingOperation() - Part n°3 :\n-startDate and startLat filled, but empty endLong\n- endLat and endLong filled but empty endDate");
- createdFishingOperation = service.createFishingOperation(fishingOperation);
- reloadedFishingOperation = service.getFishingOperation(createdFishingOperation.getId());
- assertEquals(fishingOperation.getGearShootingStartLatitude(), reloadedFishingOperation.getGearShootingStartLatitude());
- assertEquals(fishingOperation.getGearShootingStartLongitude(), reloadedFishingOperation.getGearShootingStartLongitude());
- assertNull(reloadedFishingOperation.getGearShootingEndDate());
- assertEquals(fishingOperation.getGearShootingEndLatitude(), reloadedFishingOperation.getGearShootingEndLatitude());
- assertEquals(fishingOperation.getGearShootingEndLongitude(), reloadedFishingOperation.getGearShootingEndLongitude());
- assertEquals(fishingOperation.getTrawlDistance(), reloadedFishingOperation.getTrawlDistance());
- assertEquals(fishingOperation.isFishingOperationRectiligne(), reloadedFishingOperation.isFishingOperationRectiligne());
- assertEquals(fishingOperation.getFishingOperationValid(), reloadedFishingOperation.getFishingOperationValid());
+// fishingOperation.setId(null);
+// fishingOperation.setStationNumber("STA3");
+// fishingOperation.setFishingOperationNumber(3);
+// fishingOperation.setMultirigAggregation("2");
+// fishingOperation.setGearShootingStartLongitude(null);
+// fishingOperation.setGearShootingEndDate(null);
+// fishingOperation.setTrawlDistance(null);
+// fishingOperation.setFishingOperationRectiligne(false);
+// fishingOperation.setFishingOperationValid(false);
+// fishingOperation.setComment("Unit test createFishingOperation() - Part n°3 :\n-startDate and startLat filled, but empty endLong\n- endLat and endLong filled but empty endDate");
+// createdFishingOperation = service.createFishingOperation(fishingOperation);
+// reloadedFishingOperation = service.getFishingOperation(createdFishingOperation.getId());
+// assertEquals(fishingOperation.getGearShootingStartLatitude(), reloadedFishingOperation.getGearShootingStartLatitude());
+// assertEquals(fishingOperation.getGearShootingStartLongitude(), reloadedFishingOperation.getGearShootingStartLongitude());
+// assertNull(reloadedFishingOperation.getGearShootingEndDate());
+// assertEquals(fishingOperation.getGearShootingEndLatitude(), reloadedFishingOperation.getGearShootingEndLatitude());
+// assertEquals(fishingOperation.getGearShootingEndLongitude(), reloadedFishingOperation.getGearShootingEndLongitude());
+// assertEquals(fishingOperation.getTrawlDistance(), reloadedFishingOperation.getTrawlDistance());
+// assertEquals(fishingOperation.isFishingOperationRectiligne(), reloadedFishingOperation.isFishingOperationRectiligne());
+// assertEquals(fishingOperation.getFishingOperationValid(), reloadedFishingOperation.getFishingOperationValid());
// -----------------------------------------------------------------------------
// 4. Test exceptions :
1
0
r570 - in trunk/tutti-persistence/src: main/java/fr/ifremer/tutti/persistence/service main/resources test/java/fr/ifremer/tutti/persistence test/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 11 Mar '13
by tchemit@users.forge.codelutin.com 11 Mar '13
11 Mar '13
Author: tchemit
Date: 2013-03-11 09:20:29 +0100 (Mon, 11 Mar 2013)
New Revision: 570
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/570
Log:
fixes #2113: [REFERENTIEL] Probl?\195?\168me de chargement d'une caract?\195?\169ristique
fix some persistence tests (list are not modifiables when coming from service)
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-09 17:49:45 UTC (rev 569)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-11 08:20:29 UTC (rev 570)
@@ -508,13 +508,18 @@
Caracteristic result = thisService.getCaracteristic(pmfmId);
// Search the qualitative value to skip
- for (CaracteristicQualitativeValue qv : result.getQualitativeValue()) {
- if (qv != null && qv.getId() != null
- && enumeration.QUALITATIVE_UNSORTED_ID.equals(Integer.valueOf(qv.getId()))) {
- result.removeQualitativeValue(qv);
+ //FIXME-TC How can this works with cache ? result is the cached instance, so we are modifing cache
+ List<CaracteristicQualitativeValue> qualitativeValue =
+ Lists.newArrayList(result.getQualitativeValue());
+ Iterator<CaracteristicQualitativeValue> iterator = qualitativeValue.iterator();
+ while (iterator.hasNext()) {
+ CaracteristicQualitativeValue qv = iterator.next();
+ if (enumeration.QUALITATIVE_UNSORTED_ID.equals(Integer.valueOf(qv.getId()))) {
+ iterator.remove();
break;
}
}
+ result.setQualitativeValue(qualitativeValue);
return result;
}
@@ -758,7 +763,7 @@
setStatus((fr.ifremer.adagio.core.dao.referential.Status) source2[2], target2);
values.add(target2);
}
- result.setQualitativeValue(values);
+ result.setQualitativeValue(Collections.unmodifiableList(values));
}
return result;
}
@@ -841,23 +846,4 @@
newStatus.setName(status.getName());
entity.setStatus(newStatus);
}
-
-// @Override
-// public SampleCategoryEnum getSampleCategoryByPmfmId(Integer pmfmId) {
-//
-// if (pmfmId == null) return null;
-// SampleCategoryEnum sampleCategory = null;
-// if (pmfmId.intValue() == enumeration.PMFM_ID_SORTED_UNSORTED.intValue()) {
-// sampleCategory = SampleCategoryEnum.sortedUnsorted;
-// } else if (enumeration.PMFM_ID_SIZE_CATEGORY.equals(pmfmId)) {
-// sampleCategory = SampleCategoryEnum.size;
-// } else if (enumeration.PMFM_ID_MATURITY.equals(pmfmId)) {
-// sampleCategory = SampleCategoryEnum.maturity;
-// } else if (enumeration.PMFM_ID_SEX.equals(pmfmId)) {
-// sampleCategory = SampleCategoryEnum.sex;
-// } else if (enumeration.PMFM_ID_AGE.equals(pmfmId)) {
-// sampleCategory = SampleCategoryEnum.age;
-// }
-// return sampleCategory;
-// }
}
Modified: trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-03-09 17:49:45 UTC (rev 569)
+++ trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-03-11 08:20:29 UTC (rev 570)
@@ -362,7 +362,7 @@
PmfmId.WEIGHT_MEASURED=220
# TODO A creer (dans les enumerations Allegro)
-# PSFM "Vaac/Hors Vrac" - "Organisation des données campagnes"
+# PSFM "Vrac/Hors Vrac" - "Organisation des données campagnes"
PmfmId.SORTED_UNSORTED=1428
QualitativeValueId.SORTED_VRAC=311
QualitativeValueId.SORTED_HORS_VRAC=310
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-03-09 17:49:45 UTC (rev 569)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-03-11 08:20:29 UTC (rev 570)
@@ -141,4 +141,8 @@
public String objectTypeCode() {
return "BATCH";
}
+
+ public Integer caracteristicWithNullQualitativeValue() {
+ return 114;
+ }
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceWriteTest.java 2013-03-09 17:49:45 UTC (rev 569)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceWriteTest.java 2013-03-11 08:20:29 UTC (rev 570)
@@ -415,7 +415,10 @@
}
}
// And remove the last item (should be deleted in DB)
+ // Note: use a new list (everything list coming from service are not modifiable)
+ createdFrequencies = Lists.newArrayList(createdFrequencies);
createdFrequencies.remove(createdFrequencies.size() - 1);
+
List<SpeciesBatchFrequency> savedFrequencies = service.saveSpeciesBatchFrequency(frequenciesParentBatch.getId(), createdFrequencies);
assertBatchFrequencies(createdFrequencies, savedFrequencies, true);
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-03-09 17:49:45 UTC (rev 569)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-03-11 08:20:29 UTC (rev 570)
@@ -30,6 +30,7 @@
import fr.ifremer.tutti.persistence.entities.IdAware;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Country;
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
@@ -278,6 +279,13 @@
assertCaracteristicQualitative(result, 6);
}
+ @Test(expected = UnsupportedOperationException.class)
+ public void getCaracteristicWithNullQualitativeValue() {
+ Caracteristic result = service.getCaracteristic(fixtures.caracteristicWithNullQualitativeValue());
+ assertCaracteristicQualitative(result, 2);
+ result.getQualitativeValue().add(null);
+ }
+
@Test
@Ignore
public void testCaches() {
@@ -308,6 +316,9 @@
Assert.assertTrue(TuttiEntities.isQualitativeCaracteristic(result));
Assert.assertNotNull(result.getQualitativeValue());
Assert.assertEquals(nbValues, result.sizeQualitativeValue());
+ for (CaracteristicQualitativeValue qualitativeValue : result.getQualitativeValue()) {
+ Assert.assertNotNull(qualitativeValue);
+ }
}
protected void assertCaracteristicSize(Caracteristic incoming,
1
0
r569 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content java/fr/ifremer/tutti/ui/swing/content/cruise java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/content/program java/fr/ifremer/tutti/ui/swing/content/protocol resources/i18n
by tchemit@users.forge.codelutin.com 09 Mar '13
by tchemit@users.forge.codelutin.com 09 Mar '13
09 Mar '13
Author: tchemit
Date: 2013-03-09 18:49:45 +0100 (Sat, 09 Mar 2013)
New Revision: 569
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/569
Log:
fixes #2100: [CAMPAGNE] - Gestion des s?\195?\169ries : cr?\195?\169ation d'une nouvelle s?\195?\169rie
fixes #2101: [CAMPAGNE] - Cr?\195?\169ation d'une campagne, ?\195?\160 l'enregistrement rien ne se passe hors la campagne est cr?\195?\169?\195?\169e
am?\195?\169lioration des messages de notification (on peut y mettre de l'html mais pas besoin d'encapsuler dans la balise html)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -69,7 +69,7 @@
}
@Override
- protected boolean prepareAction()throws Exception {
+ protected boolean prepareAction() throws Exception {
boolean result = super.prepareAction();
result &= skipCheckCurrentScreen || getHandler().quitCurrentScreen();
return result;
@@ -78,6 +78,8 @@
@Override
protected void doAction() throws Exception {
+ sendMessage("");
+
TuttiUIContext context = getContext();
Exception error = null;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -34,12 +34,15 @@
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
import fr.ifremer.tutti.ui.swing.config.TuttiConfigUI;
import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUI;
+import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUIHandler;
import fr.ifremer.tutti.ui.swing.content.db.DbManagerUI;
import fr.ifremer.tutti.ui.swing.content.db.OpenDbAction;
import fr.ifremer.tutti.ui.swing.content.home.SelectCruiseUI;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
import fr.ifremer.tutti.ui.swing.content.program.EditProgramUI;
+import fr.ifremer.tutti.ui.swing.content.program.EditProgramUIHandler;
import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI;
+import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIHandler;
import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUI;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.CloseableUI;
@@ -57,7 +60,6 @@
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
-import javax.swing.JPanel;
import javax.swing.JToolBar;
import java.awt.Desktop;
import java.beans.PropertyChangeEvent;
@@ -244,7 +246,7 @@
@Override
public final void showInformationMessage(String message) {
- ui.getStatus().setStatus(message);
+ ui.getStatus().setStatus("<html><body>"+message+"</body></html>");
}
public void registerValidator(SwingValidator validator) {
@@ -342,11 +344,8 @@
case EDIT_PROGRAM:
- if (context.isProgramFilled()) {
- screenTitle = _("tutti.title.edit.program");
- } else {
- screenTitle = _("tutti.title.create.program");
- }
+ screenTitle = EditProgramUIHandler.getTitle(
+ context.isProgramFilled());
screenUI = new EditProgramUI(ui);
icon = ui.getMenuActionEditProgram().getIcon();
@@ -354,11 +353,8 @@
case EDIT_CRUISE:
- if (context.isCruiseFilled()) {
- screenTitle = _("tutti.title.edit.cruise");
- } else {
- screenTitle = _("tutti.title.create.cruise");
- }
+ screenTitle = EditCruiseUIHandler.getTitle(
+ context.isCruiseFilled());
screenUI = new EditCruiseUI(ui);
rightDecoration = ((EditCruiseUI) screenUI).getTopToolBar();
@@ -367,11 +363,8 @@
case EDIT_PROTOCOL:
- if (context.isProgramFilled()) {
- screenTitle = _("tutti.title.edit.protocol");
- } else {
- screenTitle = _("tutti.title.create.protocol");
- }
+ screenTitle = EditProtocolUIHandler.getTitle(
+ context.isProtocolFilled());
screenUI = new EditProtocolUI(ui);
icon = ui.getMenuActionEditProtocol().getIcon();
@@ -492,4 +485,8 @@
return title;
}
+
+ public void setBodyTitle(String title) {
+ ui.getBody().setTitle(title);
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -57,6 +57,17 @@
/** Logger. */
private static final Log log = LogFactory.getLog(EditCruiseUIHandler.class);
+ public static String getTitle(boolean exist) {
+
+ String result;
+ if (exist) {
+ result = _("tutti.title.edit.cruise");
+ } else {
+ result = _("tutti.title.create.cruise");
+ }
+ return result;
+ }
+
/**
* Persistence service.
*
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -67,12 +67,23 @@
saved = persistenceService.createCruise(bean);
model.setId(saved.getId());
+ sendMessage(_("tutti.flash.information.cruiseCreated", bean.getName()));
} else {
saved = persistenceService.saveCruise(bean);
+ sendMessage(_("tutti.flash.information.cruiseSaved", bean.getName()));
}
context.setProgramId(saved.getProgram().getId());
context.setCruiseId(saved.getId());
+
+ model.setModify(false);
}
+ @Override
+ public void postAction(Throwable error) {
+ super.postAction(error);
+
+ getContext().getMainUI().getHandler().setBodyTitle(
+ EditCruiseUIHandler.getTitle(true));
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -93,7 +93,7 @@
String fishingOperationText = getEditAction().getFishingOperationTitle(operation);
- getEditAction().loadCatchBatch(operation, fishingOperationText, false);
+ getEditAction().loadCatchBatch(operation, fishingOperationText, true);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -96,7 +96,8 @@
" was modified, will save it.");
}
- getHandler().showInformationMessage(
+ //FIXME I18n
+ sendMessage(
"[ Captures - Caractéristiques générales ] " +
"Sauvegarde des modifications du résumé de la capture.");
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -50,6 +50,17 @@
private static final Log log =
LogFactory.getLog(EditProgramUIHandler.class);
+ public static String getTitle(boolean exist) {
+
+ String result;
+ if (exist) {
+ result = _("tutti.title.edit.program");
+ } else {
+ result = _("tutti.title.create.program");
+ }
+ return result;
+ }
+
/**
* Persistence service.
*
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -29,21 +29,18 @@
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUIHandler;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import static org.nuiton.i18n.I18n._;
/**
* @author kmorin <kmorin(a)codelutin.com>
+ * @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
public class SaveProgramAction extends AbstractTuttiAction<EditProgramUIModel, EditProgramUI, EditProgramUIHandler> {
- /** Logger. */
- private static final Log log = LogFactory.getLog(SaveProgramAction.class);
-
public SaveProgramAction(EditProgramUIHandler handler) {
super(handler,
"save",
@@ -53,10 +50,6 @@
);
}
- /**
- * If the event source is a TuttiScreen, then the screen changes to the source.
- * Otherwise, the screen changes to the home.
- */
@Override
protected void doAction() throws Exception {
TuttiUIContext context = getContext();
@@ -71,11 +64,24 @@
if (TuttiEntities.isNew(bean)) {
saved = persistenceService.createProgram(bean);
+ model.setId(saved.getId());
+ sendMessage(_("tutti.flash.information.programCreated", bean.getName()));
} else {
saved = persistenceService.saveProgram(bean);
+ sendMessage(_("tutti.flash.information.programSaved", bean.getName()));
}
context.setProgramId(saved.getId());
+
+ model.setModify(false);
}
+ @Override
+ public void postAction(Throwable error) {
+ super.postAction(error);
+
+ getContext().getMainUI().getHandler().setBodyTitle(
+ EditProgramUIHandler.getTitle(true));
+ }
+
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -56,6 +56,9 @@
import org.nuiton.util.decorator.Decorator;
import javax.swing.JComboBox;
+import javax.swing.JTabbedPane;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
import javax.swing.table.TableColumnModel;
import java.awt.Dimension;
import java.beans.PropertyChangeEvent;
@@ -63,9 +66,6 @@
import java.util.Collection;
import java.util.List;
import java.util.Map;
-import javax.swing.JTabbedPane;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
import static org.nuiton.i18n.I18n._;
@@ -80,6 +80,17 @@
private static final Log log =
LogFactory.getLog(EditProtocolUIHandler.class);
+ public static String getTitle(boolean exist) {
+
+ String result;
+ if (exist) {
+ result = _("tutti.title.edit.protocol");
+ } else {
+ result = _("tutti.title.create.protocol");
+ }
+ return result;
+ }
+
protected SelectSpeciesUI dialog;
public EditProtocolUIHandler(TuttiUI parentUi, EditProtocolUI ui) {
@@ -304,12 +315,12 @@
model.getLengthClassesPmfmId(),
new Predicate<Caracteristic>() {
- public boolean apply(Caracteristic input) {
- boolean result = !ui.getGearUseFeatureList().getModel().getSelected().contains(input);
- result &= !ui.getVesselUseFeatureList().getModel().getSelected().contains(input);
- return result;
- }
- });
+ public boolean apply(Caracteristic input) {
+ boolean result = !ui.getGearUseFeatureList().getModel().getSelected().contains(input);
+ result &= !ui.getVesselUseFeatureList().getModel().getSelected().contains(input);
+ return result;
+ }
+ });
initDoubleList(EditProtocolUIModel.PROPERTY_GEAR_USE_FEATURE_PMFM_ID,
ui.getGearUseFeatureList(),
@@ -317,12 +328,12 @@
model.getGearUseFeaturePmfmId(),
new Predicate<Caracteristic>() {
- public boolean apply(Caracteristic input) {
- boolean result = !ui.getLengthClassesList().getModel().getSelected().contains(input);
- result &= !ui.getVesselUseFeatureList().getModel().getSelected().contains(input);
- return result;
- }
- });
+ public boolean apply(Caracteristic input) {
+ boolean result = !ui.getLengthClassesList().getModel().getSelected().contains(input);
+ result &= !ui.getVesselUseFeatureList().getModel().getSelected().contains(input);
+ return result;
+ }
+ });
initDoubleList(EditProtocolUIModel.PROPERTY_VESSEL_USE_FEATURE_PMFM_ID,
ui.getVesselUseFeatureList(),
@@ -330,12 +341,12 @@
model.getVesselUseFeaturePmfmId(),
new Predicate<Caracteristic>() {
- public boolean apply(Caracteristic input) {
- boolean result = !ui.getGearUseFeatureList().getModel().getSelected().contains(input);
- result &= !ui.getLengthClassesList().getModel().getSelected().contains(input);
- return result;
- }
- });
+ public boolean apply(Caracteristic input) {
+ boolean result = !ui.getGearUseFeatureList().getModel().getSelected().contains(input);
+ result &= !ui.getLengthClassesList().getModel().getSelected().contains(input);
+ return result;
+ }
+ });
// if new protocol can already cancel his creation
model.setModify(model.isCreate());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-03-09 17:49:45 UTC (rev 569)
@@ -64,7 +64,7 @@
* Otherwise, the screen changes to the home.
*/
@Override
- protected void doAction()throws Exception {
+ protected void doAction() throws Exception {
EditProtocolUIModel model = getModel();
TuttiUIContext context = getContext();
@@ -92,8 +92,11 @@
if (TuttiEntities.isNew(bean)) {
saved = persistenceService.createProtocol(bean);
+ model.setId(saved.getId());
+ sendMessage(_("tutti.flash.information.protocolCreated", bean.getName()));
} else {
saved = persistenceService.saveProtocol(bean);
+ sendMessage(_("tutti.flash.information.protocolSaved", bean.getName()));
}
context.setProtocolId(saved.getId());
@@ -101,5 +104,13 @@
model.setModify(false);
}
+ @Override
+ public void postAction(Throwable error) {
+ super.postAction(error);
+ getContext().getMainUI().getHandler().setBodyTitle(
+ EditProtocolUIHandler.getTitle(true));
+ }
+
+
}
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-09 16:33:30 UTC (rev 568)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-09 17:49:45 UTC (rev 569)
@@ -212,17 +212,23 @@
tutti.file.csv=Extension d'un fichier csv
tutti.file.protocol=Extension d'un fichier de protocole Tutti
tutti.file.zip=Extension d'une archive zip
-tutti.flash.information.all.caractristic.exported=Toutes les caractéristiques exportées dans le fichier %s.
-tutti.flash.information.caracteristic.imported.in.protocol=Caractéristiques importées dans le protocole depuis le fichier %s.
-tutti.flash.information.caractristic.exported.from.protocol=Caractéristiques du protocole exportées dans le fichier %s.
-tutti.flash.information.db.exported=Base exportée dans l'archive %s
-tutti.flash.information.species.add.to.protocol=L'espèce %s a été ajoutée au protocole
-tutti.flash.information.species.exported.from.protocol=Espèces du protocole exportées dans le fichier %s.
-tutti.flash.information.species.imported.in.protocol=Espèces importées dans le protocole depuis le fichier %s.
-tutti.flash.information.species.remove.from.protocol=L'espèce %s a été retirée du protocole
-tutti.flash.information.species.replaced=L'espèce "%s" a été remplacée par son référent "%s"
+tutti.flash.information.all.caractristic.exported=Toutes les caractéristiques exportées dans le fichier <strong>%s</strong>.
+tutti.flash.information.caracteristic.imported.in.protocol=Caractéristiques importées dans le protocole depuis le fichier <strong>%s</strong>.
+tutti.flash.information.caractristic.exported.from.protocol=Caractéristiques du protocole exportées dans le fichier <strong>%s</strong>.
+tutti.flash.information.cruiseCreated=La campagne <strong>%s</strong> a été créée.
+tutti.flash.information.cruiseSaved=La campagne <strong>%s</strong> a été enregistrée.
+tutti.flash.information.db.exported=Base exportée dans l'archive <strong>%s</strong>.
+tutti.flash.information.programCreated=La série de campagne <strong>%s</strong> a été créée.
+tutti.flash.information.programSaved=La série de campagne <strong>%s</strong> a été enregistrée.
+tutti.flash.information.protocolCreated=Le protocole <strong>%s</strong> a été créé.
+tutti.flash.information.protocolSaved=Le protocole <strong>%s</strong> a été enregistré.
+tutti.flash.information.species.add.to.protocol=L'espèce <strong>%s</strong> a été ajoutée au protocole.
+tutti.flash.information.species.exported.from.protocol=Espèces du protocole exportées dans le fichier <strong>%s</strong>.
+tutti.flash.information.species.imported.in.protocol=Espèces importées dans le protocole depuis le fichier <strong>%s</strong>.
+tutti.flash.information.species.remove.from.protocol=L'espèce <strong>%s</strong> a été retirée du protocole.
+tutti.flash.information.species.replaced=L'espèce <strong>%s</strong> a été remplacée par son référent <strong>%s</strong>.
tutti.information.db.loaded=Tutti est connecté à une base de données
-tutti.information.no.db.exist=Aucune base détecté, vous pouvez installer la dernière disponible sur le réseau.
+tutti.information.no.db.exist=Aucune base détectée, vous pouvez installer la dernière disponible sur le réseau.
tutti.information.no.db.loaded=Tutti a détecté une base mais elle n'est pas actuellement ouverte.
tutti.label.attachmentEditor.file=Fichier
tutti.label.attachmentEditor.fileComment=Commentaire
1
0
r568 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-service/src/main/java/fr/ifremer/tutti/service tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches tutti-ui-swing/src/main/resources/i18n
by tchemit@users.forge.codelutin.com 09 Mar '13
by tchemit@users.forge.codelutin.com 09 Mar '13
09 Mar '13
Author: tchemit
Date: 2013-03-09 17:33:30 +0100 (Sat, 09 Mar 2013)
New Revision: 568
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/568
Log:
fixes #2014: [TRAIT] Cr?\195?\169ation du trait - bug controle "la date de fin doit ?\195?\170tre apr?\195?\168s la date de d?\195?\169but"
fixes #2112: [TRAIT] Cr?\195?\169ation du trait - Am?\195?\169lioration du titre d'un trait en cours de cr?\195?\169ation
un peu de nettoyage dans le service de persistence (mais j'ai pas le temps de tout bien remettre, y'a du taf!)
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-09 13:59:14 UTC (rev 567)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-09 16:33:30 UTC (rev 568)
@@ -357,7 +357,7 @@
getCurrentSession().setFlushMode(FlushMode.COMMIT);
fr.ifremer.adagio.core.dao.data.operation.FishingOperation fishingOperation = fr.ifremer.adagio.core.dao.data.operation.FishingOperation.Factory.newInstance();
- beanToEntity(bean, fishingOperation, true);
+ beanToEntity(bean, fishingOperation);
fishingOperationDao.create(fishingOperation);
bean.setId(String.valueOf(fishingOperation.getId()));
getCurrentSession().flush();
@@ -384,7 +384,7 @@
if (fishingOperation == null) {
throw new DataRetrievalFailureException("Could not retrieve fishing operation with id=" + bean.getId());
}
- beanToEntity(bean, fishingOperation, true);
+ beanToEntity(bean, fishingOperation);
fishingOperationDao.update(fishingOperation);
getCurrentSession().flush();
return bean;
@@ -508,7 +508,8 @@
}
}
- protected void beanToEntity(FishingOperation source, fr.ifremer.adagio.core.dao.data.operation.FishingOperation target, boolean copyIfNull) {
+ protected void beanToEntity(FishingOperation source,
+ fr.ifremer.adagio.core.dao.data.operation.FishingOperation target) {
StringBuilder nameBuffer = new StringBuilder();
// Retrieve entities : FishingTrip and ScientificCruise
@@ -627,7 +628,7 @@
}
// StationNumber
- if (copyIfNull && source.getStationNumber() == null) {
+ if (source.getStationNumber() == null) {
// Nothing to do : will be removed using the list notChangedVesselUseMeasurements
} else if (source.getStationNumber() != null) {
VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_STATION_NUMBER, null, source.getStationNumber(), null);
@@ -635,7 +636,7 @@
}
// OP N°
- if (copyIfNull && source.getFishingOperationNumber() == null) {
+ if (source.getFishingOperationNumber() == null) {
// Leave empty in the name buffer
} else if (source.getFishingOperationNumber() != null) {
nameBuffer.append(source.getFishingOperationNumber());
@@ -643,7 +644,7 @@
target.setName(nameBuffer.toString());
// Multirig Aggregation
- if (copyIfNull && source.getMultirigAggregation() == null) {
+ if (source.getMultirigAggregation() == null) {
// Nothing to do : will be removed later, using notChangedGearUseMeasurements
} else if (source.getMultirigAggregation() != null) {
if (source.getMultirigAggregation().matches("\\d+")) {
@@ -662,7 +663,7 @@
}
// Start date :
- if (copyIfNull && source.getGearShootingStartDate() == null) {
+ if (source.getGearShootingStartDate() == null) {
target.setStartDateTime(null);
target.setFishingStartDateTime(null);
} else if (source.getGearShootingStartDate() != null) {
@@ -673,7 +674,7 @@
}
// End date :
- if (copyIfNull && source.getGearShootingEndDate() == null) {
+ if (source.getGearShootingEndDate() == null) {
target.setEndDateTime(null);
target.setFishingEndDateTime(null);
} else if (source.getGearShootingEndDate() != null) {
@@ -684,7 +685,7 @@
}
// Trawl distance
- if (copyIfNull && source.getTrawlDistance() == null) {
+ if (source.getTrawlDistance() == null) {
// Nothing to do : will be removed later, using notChangedVesselUseMeasurements
} else if (source.getTrawlDistance() != null) {
VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_TRAWL_DISTANCE, source.getTrawlDistance(), null, null);
@@ -698,7 +699,7 @@
}
// Operation is valid ?
- if (copyIfNull && source.getFishingOperationValid() == null) {
+ if (source.getFishingOperationValid() == null) {
// Nothing to do : will be removed later, using notChangedVesselUseMeasurements
} else if (source.getFishingOperationValid() != null) {
VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_HAUL_VALID, null, null, source.getFishingOperationValid() ? enumeration.QUALITATIVE_HAUL_VALID_YES : enumeration.QUALITATIVE_HAUL_VALID_NO);
@@ -709,7 +710,7 @@
target.setVessel(fishingTrip.getVessel());
// Associated vessel
- if (copyIfNull && source.getVessel() == null && target.getOperationVesselAssociations() != null) {
+ if (source.getVessel() == null && target.getOperationVesselAssociations() != null) {
target.getOperationVesselAssociations().clear();
} else if (source.getVessel() != null
&& source.getVessel().getId() != null) {
@@ -764,7 +765,7 @@
}
// GearUseFeatures.Gear
- if (copyIfNull && source.getGear() == null) {
+ if (source.getGear() == null) {
gearUseFeatures.setGear(null);
} else if (source.getGear() != null && source.getGear().getId() != null) {
gearUseFeatures.setGear(load(GearImpl.class, Integer.valueOf(source.getGear().getId())));
@@ -785,8 +786,8 @@
target.getVesselPositions().add(startPosition);
}
startPosition.setDateTime(target.getStartDateTime());
- startPosition.setLatitude(source.getGearShootingStartLatitude() != null ? source.getGearShootingStartLatitude() : DEFAULT_EMPTY_LATITUDE);
- startPosition.setLongitude(source.getGearShootingStartLongitude() != null ? source.getGearShootingStartLongitude() : DEFAULT_EMPTY_LONGITUDE);
+ startPosition.setLatitude(source.getGearShootingStartLatitude() == null ? DEFAULT_EMPTY_LATITUDE : source.getGearShootingStartLatitude());
+ startPosition.setLongitude(source.getGearShootingStartLongitude() == null ? DEFAULT_EMPTY_LONGITUDE : source.getGearShootingStartLongitude());
startPosition.setVessel(target.getVessel());
startPosition.setProgram(scientificCruise.getProgram());
startPosition.setRecorderDepartment(scientificCruise.getRecorderDepartment());
@@ -809,7 +810,9 @@
endPosition.setOperation(target);
target.getVesselPositions().add(endPosition);
}
- Date endDateTime = convertUI2DatabaseMandatoryDate(target.getEndDateTime(), startPosition.getDateTime(), true);
+ Date endDateTime = convertUI2DatabaseMandatoryDate(
+ target.getEndDateTime(),
+ startPosition.getDateTime(), true);
endPosition.setDateTime(endDateTime);
if (!endDateTime.equals(target.getEndDateTime())) {
// To link position with the operation end, Allegro need to have exactly the same dates
@@ -831,7 +834,7 @@
// Vessel user features
CaracteristicMap vesselUseCaracteristics = source.getVesselUseFeatures();
- if (copyIfNull && vesselUseCaracteristics == null || vesselUseCaracteristics.size() == 0) {
+ if (vesselUseCaracteristics == null || vesselUseCaracteristics.size() == 0) {
// Nothing to do : will be removed later, using notChangedVesselUseMeasurements
} else if (vesselUseCaracteristics != null && vesselUseCaracteristics.size() > 0) {
for (Caracteristic caracteristic : vesselUseCaracteristics.keySet()) {
@@ -842,7 +845,7 @@
// Recorder persons
StringBuilder miscDataBuffer = new StringBuilder();
- if (copyIfNull && (source.getRecorderPerson() == null || source.getRecorderPerson().size() == 0)) {
+ if ((source.getRecorderPerson() == null || source.getRecorderPerson().size() == 0)) {
miscDataBuffer.append(MISC_DATA_RECORDER_PERSONS_TAG);
} else if (source.getRecorderPerson() != null && source.getRecorderPerson().size() > 0) {
List<Person> persons = source.getRecorderPerson();
@@ -854,7 +857,7 @@
}
// Store misc data into comments
- if (copyIfNull && source.getComment() == null) {
+ if (source.getComment() == null) {
// Store only misc data :
target.setComments(miscDataBuffer.toString());
} else if (source.getComment() != null) {
@@ -868,7 +871,7 @@
// Gear use Caracteristics
CaracteristicMap gearUseCaracteristics = source.getGearUseFeatures();
- if (copyIfNull && gearUseCaracteristics == null || gearUseCaracteristics.size() == 0) {
+ if (gearUseCaracteristics == null || gearUseCaracteristics.size() == 0) {
// Nothing to do : will be removed later, using notChangedGearUseMeasurements
} else if (gearUseCaracteristics != null && gearUseCaracteristics.size() > 0) {
for (Caracteristic caracteristic : gearUseCaracteristics.keySet()) {
@@ -903,7 +906,7 @@
}
// Strata :
- if (copyIfNull && (source.getStrata() == null || source.getStrata().getId() == null)) {
+ if (source.getStrata() == null || source.getStrata().getId() == null) {
// will be removed using notChangedRegulationLocation
@@ -926,7 +929,7 @@
}
// Sub-Strata :
- if (copyIfNull && (source.getSubStrata() == null || source.getSubStrata().getId() == null)) {
+ if (source.getSubStrata() == null || source.getSubStrata().getId() == null) {
// will be removed using notChangedRegulationLocation
@@ -950,7 +953,7 @@
}
// Localite :
- if (copyIfNull && (source.getLocation() == null || source.getLocation().getId() == null)) {
+ if (source.getLocation() == null || source.getLocation().getId() == null) {
// will be removed using notChangedRegulationLocation
@@ -975,7 +978,7 @@
fishingArea.getRegulationLocation().removeAll(notChangedRegulationLocation);
// Fishing Area location (should be a statistical location)
- if (copyIfNull && statisticalLocationId == null) {
+ if (statisticalLocationId == null) {
gearUseFeatures.getFishingAreas().remove(fishingArea);
//Nothing to do : a gearUseFeatures.getFishingAreas().clear() has been done before
if (fishingArea.getRegulationLocation() != null) {
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-09 13:59:14 UTC (rev 567)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-09 16:33:30 UTC (rev 568)
@@ -55,6 +55,7 @@
import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator;
import fr.ifremer.tutti.service.config.TuttiServiceConfig;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -496,16 +497,31 @@
@Override
public FishingOperation getFishingOperation(String id) {
- return driver.getFishingOperation(id);
+
+ FishingOperation bean = driver.getFishingOperation(id);
+ // see http://forge.codelutin.com/issues/2014
+ if (bean.getGearShootingEndDate() == null) {
+ bean.setGearShootingEndDate(bean.getGearShootingStartDate());
+ }
+ return bean;
}
@Override
public FishingOperation createFishingOperation(FishingOperation bean) {
+
+ // see http://forge.codelutin.com/issues/2014
+ if (ObjectUtils.equals(bean.getGearShootingStartDate(), bean.getGearShootingEndDate())) {
+ bean.setGearShootingEndDate(null);
+ }
return driver.createFishingOperation(bean);
}
@Override
public FishingOperation saveFishingOperation(FishingOperation bean) {
+ // see http://forge.codelutin.com/issues/2014
+ if (ObjectUtils.equals(bean.getGearShootingStartDate(), bean.getGearShootingEndDate())) {
+ bean.setGearShootingEndDate(null);
+ }
return driver.saveFishingOperation(bean);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-09 13:59:14 UTC (rev 567)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-09 16:33:30 UTC (rev 568)
@@ -339,10 +339,12 @@
// now fishing operation is edited
model.setEditFishingOperation(fishingOperation);
- loadFishingOperation(fishingOperation);
+ String fishingOperationText = getFishingOperationTitle(fishingOperation);
- loadCatchBatch(fishingOperation, true);
+ loadFishingOperation(fishingOperation, fishingOperationText);
+ loadCatchBatch(fishingOperation, fishingOperationText, true);
+
JTabbedPane form = ui.getTabPane();
JLabel noContentPane = ui.getNoTraitPane();
@@ -379,7 +381,8 @@
});
}
- public void loadFishingOperation(FishingOperation bean) {
+ public void loadFishingOperation(FishingOperation bean,
+ String fishingOperationText) {
EditFishingOperationUI ui = getUI().getFishingOperationTabContent();
@@ -469,6 +472,15 @@
handler.registerValidator();
}
+ ui.getTraitGeneralTabPane().setTitle(fishingOperationText);
+ ui.getVesselUseFeatureTabPane().setTitle(fishingOperationText);
+ ui.getGearUseFeatureTabPane().setTitle(fishingOperationText);
+
+ handler.installStartDateListener();
+ handler.installCoordinatesListener();
+ }
+
+ public String getFishingOperationTitle(FishingOperation bean) {
Decorator<FishingOperation> decorator =
getDecorator(FishingOperation.class, null);
@@ -476,19 +488,19 @@
if (bean == null) {
fishingOperationText = null;
+ } else if (TuttiEntities.isNew(bean)) {
+ fishingOperationText = _("tutti.label.traitReminder",
+ _("tutti.label.traitReminder.inCreation"));
} else {
fishingOperationText = _("tutti.label.traitReminder",
decorator.toString(bean));
}
- ui.getTraitGeneralTabPane().setTitle(fishingOperationText);
- ui.getVesselUseFeatureTabPane().setTitle(fishingOperationText);
- ui.getGearUseFeatureTabPane().setTitle(fishingOperationText);
-
- handler.installStartDateListener();
- handler.installCoordinatesListener();
+ return fishingOperationText;
}
- public void loadCatchBatch(FishingOperation bean, boolean loadOtherTabs) {
+ public void loadCatchBatch(FishingOperation bean,
+ String fishingOperationText,
+ boolean loadOtherTabs) {
boolean empty = bean == null || TuttiEntities.isNew(bean);
@@ -546,18 +558,6 @@
catchesUIModel.setModify(false);
catchBatchMonitor.clearModified();
- Decorator<FishingOperation> decorator =
- getDecorator(FishingOperation.class, null);
-
- String fishingOperationText;
-
- if (bean == null) {
- fishingOperationText = null;
- } else {
- fishingOperationText = _("tutti.label.traitReminder",
- decorator.toString(bean));
- }
-
// 3) Propagate title to others tabs
ui.getCatchesCaracteristicsTabPane().setTitle(fishingOperationText);
ui.getSpeciesTabFishingOperationReminderLabel().setTitle(fishingOperationText);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-09 13:59:14 UTC (rev 567)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-09 16:33:30 UTC (rev 568)
@@ -567,6 +567,7 @@
#importCasinoButton {
_tuttiAction: {ImportCasinoAction.class};
+ enabled: {model.getId() != null};
toolTipText: "tuttihelp.editFishingOperation.action.importCasino.tip";
_help: {"tuttihelp.editFishingOperation.action.importCasino.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-03-09 16:33:30 UTC (rev 568)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
@@ -91,7 +92,7 @@
}
List<FishingOperation> fishingOperations =
- persistenceService.getAllFishingOperation(cruise.getId());
+ Lists.newArrayList(persistenceService.getAllFishingOperation(cruise.getId()));
for (FishingOperation fishingOperation : fishingOperations) {
fishingOperation.setCruise(cruise);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java 2013-03-09 13:59:14 UTC (rev 567)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java 2013-03-09 16:33:30 UTC (rev 568)
@@ -89,9 +89,11 @@
FishingOperation operation = getModel().getFishingOperation();
- //TODO Should we also reload other tabs ??? Probably yes
+ //FIXME-TC Should we also reload other tabs ??? Probably yes
- getEditAction().loadCatchBatch(operation, false);
+ String fishingOperationText = getEditAction().getFishingOperationTitle(operation);
+
+ getEditAction().loadCatchBatch(operation, fishingOperationText, false);
}
}
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-09 13:59:14 UTC (rev 567)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-09 16:33:30 UTC (rev 568)
@@ -369,6 +369,7 @@
tutti.label.tab.protocol.species=Espèces
tutti.label.tab.species=Espèces
tutti.label.traitReminder=Trait \: %s
+tutti.label.traitReminder.inCreation=en cours de création
tutti.legend.catch.benthos=Benthos
tutti.legend.catch.macroWaste=Macro déchets
tutti.legend.catch.species=Espèces
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/467/changes>
Changes:
[Tony Chemit] add more methods to TuttiIOUtil
------------------------------------------
[...truncated 331 lines...]
2013-03-09 09:03:19,518 673 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,522 677 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,529 684 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,532 687 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,536 691 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,539 694 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,547 702 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,550 705 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,550 705 [main] INFO fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService - Will import species from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-09 09:03:19,552 707 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.persistence.entities.referential.Species - fr.ifremer.tutti.persistence.entities.referential.Species > [null] , will create a new default one.
2013-03-09 09:03:19,558 713 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,562 717 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,562 717 [main] INFO fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService - Will import gears from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-09 09:03:19,565 720 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.persistence.entities.referential.Gear - fr.ifremer.tutti.persistence.entities.referential.Gear > [null] , will create a new default one.
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.255 sec
Results :
Tests run: 15, Failures: 0, Errors: 0, Skipped: 0
mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.13(default-test)
[JENKINS] Recording test results
mojoStarted org.apache.maven.plugins:maven-jar-plugin:2.4(default-jar)
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tutti-service ---
[INFO] Building jar: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…>
mojoSucceeded org.apache.maven.plugins:maven-jar-plugin:2.4(default-jar)
mojoStarted org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ tutti-service ---
mojoSucceeded org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
mojoStarted org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tutti-service ---
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/1.1-SNAPSHOT/tutti-service-1.1-SNAPSHOT.jar
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/1.1-SNAPSHOT/tutti-service-1.1-SNAPSHOT.pom
mojoSucceeded org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
projectSucceeded fr.ifremer.tutti:tutti-service:1.1-SNAPSHOT
projectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 1.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 4.5 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (2 KB at 4.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (7 KB at 170.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.12-…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.… (808 B at 8.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.12-… (808 B at 7.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (62 KB at 1298.0 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru… (2 KB at 35.1 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 22.3 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 14.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 11.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 29.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (2 KB at 15.6 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (5 KB at 77.8 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va… (2 KB at 43.6 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 37.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (432 KB at 4594.8 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.12-SNAPSHOT(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.12-SNAPSHOT:generate (default) @ tutti-ui-swing ---
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 43.9 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 31.9 KB/sec)
[INFO] use project compile scope class-path
[INFO] Detects 27 modified jaxx file(s).
[WARNING] JAXX detects 3 warnings :
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLatitudeLabel' : [_("tutti.label.fishingOperation.gearLatitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLongitudeLabel' : [_("tutti.label.fishingOperation.gearLongitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'toolTipText' in component 'trawlDistanceField' : [model.getTrawlDistance() != null ? _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) : null]
[INFO] Generated 27 file(s) in 19.393s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.12-SNAPSHOT(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserValidation (scan-sources) @ tutti-ui-swing ---
[INFO] Load rules file validation.rules
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-ui-swing ---
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/gener…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 2/592 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:collect-i18n-artifacts (collect-i18n-artifacts) @ tutti-ui-swing ---
[INFO] collected 12 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/i18n/…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:bundle (make-bundle) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 2/857 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:update-project-license (attach-licenses) @ tutti-ui-swing ---
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:add-third-party (attach-licenses) @ tutti-ui-swing ---
[WARNING] No license name defined for org.hibernate.javax.persistence--hibernate-jpa-2.0-api--1.0.1.Final
[INFO] Load missing file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…>
[INFO] Missing file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…> is up-to-date.
[INFO] Writing third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/gener…>
[INFO] Writing bundled third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/gener…>
[INFO] Will attach third party file from <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…>
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO] Using 'UTF-8' encoding to copy filtered resources.
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Copying 79 resources
[INFO] Copying 2 resources
[INFO] Copying 4 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-ui-swing ---
[INFO] Compiling 218 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/class…>
[INFO] -------------------------------------------------------------
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
[INFO] 1 error
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
sessionEnded
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [21.728s]
[INFO] Tutti :: Persistence .............................. SUCCESS [30.915s]
[INFO] Tutti :: Service .................................. SUCCESS [4.354s]
[INFO] Tutti :: UI ....................................... FAILURE [36.862s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:37.902s
[INFO] Finished at: Sat Mar 09 09:03:56 CET 2013
[INFO] Final Memory: 58M/177M
[INFO] ------------------------------------------------------------------------
Projects to build: [MavenProject: fr.ifremer:tutti:1.1-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-persistence:1.1-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-service:1.1-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml]>
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-service/1.1-SNAPSHOT/tutti-service-1.1-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-service/1.1-SNAPSHOT/tutti-service-1.1-SNAPSHOT.jar
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-ui-swing/1.1-SNAPSHOT/tutti-ui-swing-1.1-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-ui-swing/1.1-SNAPSHOT/tutti-ui-swing-1.1-SNAPSHOT-third-party.properties
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-03-09_09-02-09/archive/fr.ifremer/tutti/1.1-SNAPSHOT/tutti-1.1-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-1.1-SNAPSHOT-s…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-03-09_09-02-09/archive/fr.ifremer/tutti/1.1-SNAPSHOT/tutti-1.1-SNAPSHOT-site_fr.xml
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-persistence/1.1-SNAPSHOT/tutti-persistence-1.1-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/tu…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-persistence/1.1-SNAPSHOT/tutti-persistence-1.1-SNAPSHOT.jar
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project tutti-ui-swing: Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
cause : Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project tutti-ui-swing: Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:100)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:66)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:729)
at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 27 more
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com
channel stopped
1
2
09 Mar '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/467/>
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 1.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 4.5 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (2 KB at 4.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (7 KB at 170.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.12-…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.… (808 B at 8.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.12-… (808 B at 7.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (62 KB at 1298.0 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru… (2 KB at 35.1 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 22.3 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 14.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 11.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 29.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (2 KB at 15.6 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (5 KB at 77.8 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va… (2 KB at 43.6 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 37.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (432 KB at 4594.8 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.12-SNAPSHOT(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.12-SNAPSHOT:generate (default) @ tutti-ui-swing ---
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 43.9 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 31.9 KB/sec)
[INFO] use project compile scope class-path
[INFO] Detects 27 modified jaxx file(s).
[WARNING] JAXX detects 3 warnings :
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLatitudeLabel' : [_("tutti.label.fishingOperation.gearLatitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLongitudeLabel' : [_("tutti.label.fishingOperation.gearLongitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'toolTipText' in component 'trawlDistanceField' : [model.getTrawlDistance() != null ? _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) : null]
[INFO] Generated 27 file(s) in 19.393s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.12-SNAPSHOT(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserValidation (scan-sources) @ tutti-ui-swing ---
[INFO] Load rules file validation.rules
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-ui-swing ---
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 2/592 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:collect-i18n-artifacts (collect-i18n-artifacts) @ tutti-ui-swing ---
[INFO] collected 12 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:bundle (make-bundle) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 2/857 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:update-project-license (attach-licenses) @ tutti-ui-swing ---
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:add-third-party (attach-licenses) @ tutti-ui-swing ---
[WARNING] No license name defined for org.hibernate.javax.persistence--hibernate-jpa-2.0-api--1.0.1.Final
[INFO] Load missing file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
[INFO] Missing file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…> is up-to-date.
[INFO] Writing third-party file to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Writing bundled third-party file to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Will attach third party file from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO] Using 'UTF-8' encoding to copy filtered resources.
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Copying 79 resources
[INFO] Copying 2 resources
[INFO] Copying 4 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-ui-swing ---
[INFO] Compiling 218 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] -------------------------------------------------------------
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
[INFO] 1 error
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
1
2
09 Mar '13
Author: tchemit
Date: 2013-03-09 14:59:14 +0100 (Sat, 09 Mar 2013)
New Revision: 567
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/567
Log:
fixes #1715: [AIDE] - Aide modifiable sans recompilation (socle technique mis en place)
refs #1843: [AIDE] - Aide par champ (j'ai commenc?\195?\169, il faut passer sur tous les champs des ?\195?\169crans et fournit le fichier ?\195?\160 traduire ?\195?\160 l'ifremer)
fixes #2110: [ERGO] Am?\195?\169lioration des actions sur les pi?\195?\168ces-jointes
fixes #2111: [ERGO] Ajout d'une action pour fermer la fen?\195?\170tre de rapport des contr?\195?\180les
Added:
trunk/tutti-ui-swing/src/main/assembly/help.xml
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
trunk/tutti-ui-swing/src/main/help/
trunk/tutti-ui-swing/src/main/help/editCatchBatch.html
trunk/tutti-ui-swing/src/main/help/editCruise.html
trunk/tutti-ui-swing/src/main/help/editFishingOperation.html
trunk/tutti-ui-swing/src/main/help/editProgram.html
trunk/tutti-ui-swing/src/main/help/editProtocol.html
trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html
trunk/tutti-ui-swing/src/main/help/fishingOperations.html
trunk/tutti-ui-swing/src/main/help/main.html
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java
trunk/tutti-ui-swing/src/main/resources/icons/action-close-dialog.png
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditor.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachmentEditor.java
Modified:
trunk/pom.xml
trunk/src/update/update-tutti.properties
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/main/assembly/tutti-full-component.xml
trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionException.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellEditor.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/pom.xml 2013-03-09 13:59:14 UTC (rev 567)
@@ -129,6 +129,7 @@
<hibernateVersion>3.6.10.Final</hibernateVersion>
<h2Version>1.3.168</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
+ <licensePluginVersion>1.4</licensePluginVersion>
<jaxxVersion>2.5.12-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
@@ -163,10 +164,10 @@
<jMockVersion>2.5.1</jMockVersion>
<!-- Last JRE version to use -->
- <jreVersion>1.7.10</jreVersion>
+ <jreVersion>1.7.17</jreVersion>
<!-- Last tutti db version -->
- <!--<dbVersion>2013.02.02</dbVersion>-->
+ <!--<dbVersion>2013.02.27</dbVersion>-->
</properties>
@@ -712,5 +713,48 @@
</profile>
+ <profile>
+ <id>update-file-header</id>
+ <activation>
+ <property>
+ <name>performRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
+
+ <properties>
+ <license.descriptor>src/license/project.xml</license.descriptor>
+ </properties>
+ <build>
+ <defaultGoal>process-resources</defaultGoal>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>update-file-header</id>
+ <goals>
+ <goal>update-file-header</goal>
+ </goals>
+ <configuration>
+ <addSvnKeyWords>true</addSvnKeyWords>
+ <excludes>
+ <exclude>**/i18n/*.properties</exclude>
+ <exclude>**/help/*.properties</exclude>
+ <exclude>**/THIRD-PARTY.properties</exclude>
+ <!-- since sh scripts must begins by the line #!/bin/sh,
+ can not use the mojo for the mojo -->
+ <exclude>**/*.sh</exclude>
+ </excludes>
+ </configuration>
+ <phase>process-resources</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
</profiles>
</project>
Modified: trunk/src/update/update-tutti.properties
===================================================================
--- trunk/src/update/update-tutti.properties 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/src/update/update-tutti.properties 2013-03-09 13:59:14 UTC (rev 567)
@@ -47,6 +47,13 @@
i18n.url=zip:http://nexus.nuiton.org/nexus/content/repositories/other-relea…
################################################################################
+### Help Updates ###############################################################
+################################################################################
+
+help.version=@projectVersion@
+help.url=zip:http://nexus.nuiton.org/nexus/content/repositories/other-releases/fr/ifremer/tutti/tutti-ui-swing/@projectVersion@/tutti-ui-swing-@projectVersion@-help.zip
+
+################################################################################
### DB Updates #################################################################
################################################################################
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/pom.xml 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,7 +21,9 @@
#L%
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -49,12 +51,18 @@
<jaxx.generateSearch>false</jaxx.generateSearch>
<jaxx.autoImportCss>true</jaxx.autoImportCss>
<jaxx.autoRecurseInCss>false</jaxx.autoRecurseInCss>
- <!--<jaxx.helpBrokerFQN>fr.ird.observe.ui.ObserveHelpBroker</jaxx.helpBrokerFQN>-->
<!-- jaxx help configuration -->
<jaxx.helpsetName>tutti</jaxx.helpsetName>
<jaxx.locales>fr</jaxx.locales>
- <!--<jaxx.helpTarget>src/main/help</jaxx.helpTarget>-->
+ <jaxx.mergeIdsToInput>true</jaxx.mergeIdsToInput>
+ <jaxx.inputHelpDirectory>
+ src/main/filtered-resources
+ </jaxx.inputHelpDirectory>
+ <jaxx.inputHelpFilenamePrefix>tutti-help</jaxx.inputHelpFilenamePrefix>
+ <jaxx.helpBrokerFQN>
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ </jaxx.helpBrokerFQN>
<i18n.bundleOutputName>tutti-i18n</i18n.bundleOutputName>
@@ -67,7 +75,9 @@
<bundlePrefix>tutti-${project.version}</bundlePrefix>
- <tutti.log.file>\$\{java.io.tmpdir\}\tutti-${project.version}.log</tutti.log.file>
+ <tutti.log.file>
+ \$\{java.io.tmpdir\}\tutti-${project.version}.log
+ </tutti.log.file>
</properties>
@@ -83,6 +93,14 @@
</includes>
</resource>
<resource>
+ <directory>src/main/filtered-resources/help</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>*.config</include>
+ <include>*.properties</include>
+ </includes>
+ </resource>
+ <resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
@@ -99,6 +117,7 @@
<execution>
<goals>
<goal>generate</goal>
+ <goal>generate-help-ids</goal>
</goals>
</execution>
</executions>
@@ -412,6 +431,9 @@
<descriptor>
src/main/assembly/i18n.xml
</descriptor>
+ <descriptor>
+ src/main/assembly/help.xml
+ </descriptor>
</descriptors>
</configuration>
</execution>
@@ -422,13 +444,13 @@
</profile>
<profile>
- <id>prepare-full-release</id>
- <activation>
- <property>
- <name>performFullRelease</name>
- <value>true</value>
- </property>
- </activation>
+ <id>prepare-full-release</id>
+ <activation>
+ <property>
+ <name>performFullRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
<properties>
<redmine.releaseFiles>
@@ -438,7 +460,7 @@
target/${bundlePrefix}-full-linux-x64.zip
</redmine.releaseFiles>
</properties>
- <build>
+ <build>
</build>
</profile>
Added: trunk/tutti-ui-swing/src/main/assembly/help.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/assembly/help.xml (rev 0)
+++ trunk/tutti-ui-swing/src/main/assembly/help.xml 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,54 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+
+<assembly
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+ <id>i18n</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+
+ <fileSets>
+
+ <fileSet>
+ <directory>src/main/help</directory>
+ <outputDirectory/>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileSet>
+
+ <fileSet>
+ <directory>src/main/assembly/min</directory>
+ <outputDirectory/>
+ <filtered>true</filtered>
+ <includes>
+ <include>version.appup</include>
+ </includes>
+ </fileSet>
+
+ </fileSets>
+</assembly>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/assembly/help.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/assembly/tutti-full-component.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/assembly/tutti-full-component.xml 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/assembly/tutti-full-component.xml 2013-03-09 13:59:14 UTC (rev 567)
@@ -31,6 +31,26 @@
<fileSets>
<fileSet>
+ <directory>src/main/assembly/full</directory>
+ <outputDirectory/>
+ <filtered>true</filtered>
+ <fileMode>0755</fileMode>
+ <includes>
+ <include>tutti.sh</include>
+ <include>tutti.bat</include>
+ <include>README*</include>
+ </includes>
+ </fileSet>
+
+ <fileSet>
+ <includes>
+ <include>LICENSE*</include>
+ </includes>
+ </fileSet>
+
+ <!-- TUTTI component -->
+
+ <fileSet>
<directory>target</directory>
<outputDirectory>tutti</outputDirectory>
<includes>
@@ -74,41 +94,41 @@
</excludes>
</fileSet>
+ <!-- I18N component -->
<fileSet>
- <directory>src/main/assembly/full</directory>
- <outputDirectory/>
- <filtered>true</filtered>
- <fileMode>0755</fileMode>
+ <directory>target/classes/META-INF</directory>
+ <outputDirectory>i18n</outputDirectory>
<includes>
- <include>tutti.sh</include>
- <include>tutti.bat</include>
- <include>README*</include>
+ <include>tutti-i18n*.properties</include>
</includes>
</fileSet>
<fileSet>
+ <directory>src/main/assembly/min</directory>
+ <outputDirectory>i18n</outputDirectory>
+ <filtered>true</filtered>
<includes>
- <include>LICENSE*</include>
+ <include>version.appup</include>
</includes>
</fileSet>
+ <!-- HELP component -->
<fileSet>
- <directory>target/classes/META-INF</directory>
- <outputDirectory>i18n</outputDirectory>
+ <directory>src/main/assembly/min</directory>
+ <outputDirectory>help</outputDirectory>
+ <filtered>true</filtered>
<includes>
- <include>tutti-i18n*.properties</include>
+ <include>version.appup</include>
</includes>
</fileSet>
<fileSet>
- <directory>src/main/assembly/min</directory>
- <outputDirectory>i18n</outputDirectory>
- <filtered>true</filtered>
+ <directory>src/main/help</directory>
+ <outputDirectory/>
<includes>
- <include>version.appup</include>
+ <include>**/*</include>
</includes>
</fileSet>
-
</fileSets>
</component>
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties 2013-03-09 13:59:14 UTC (rev 567)
@@ -33,6 +33,7 @@
log4j.logger.fr.ifremer.tutti=INFO
log4j.logger.fr.ifremer.tutti.ui.swing.util=WARN
log4j.logger.fr.ifremer.tutti.ui.swing.util.action=INFO
+log4j.logger.fr.ifremer.tutti.ui.swing.util.attachment=INFO
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=${tutti.log.file}
Added: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties (rev 0)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,92 @@
+#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
+#Sat Mar 09 13:54:32 CET 2013
+tuttihelp.editCatchBatch.help=editCatchBatch.html
+tuttihelp.editCruise.action.cancel.help=editCruise.html\#actions
+tuttihelp.editCruise.action.generateName.help=editCruise.html\#actions
+tuttihelp.editCruise.action.save.help=editCruise.html\#actions
+tuttihelp.editCruise.field.beginDate.help=editCruise.html\#fields
+tuttihelp.editCruise.field.comment.help=editCruise.html\#fields
+tuttihelp.editCruise.field.country.help=editCruise.html\#fields
+tuttihelp.editCruise.field.endDate.help=editCruise.html\#fields
+tuttihelp.editCruise.field.multirigNumber.help=editCruise.html\#fields
+tuttihelp.editCruise.field.name.help=editCruise.html\#fields
+tuttihelp.editCruise.field.program.help=editCruise.html\#fields
+tuttihelp.editCruise.field.surveyPart.help=editCruise.html\#fields
+tuttihelp.editCruise.field.year.help=editCruise.html\#fields
+tuttihelp.editCruise.filterVessel.help=editCruise.html\#fields
+tuttihelp.editCruise.help=editCruise.html
+tuttihelp.editCruise.list.gear.help=editCruise.html\#fields
+tuttihelp.editCruise.list.headOfMission.help=editCruise.html\#fields
+tuttihelp.editCruise.list.headOfSortRoom.help=editCruise.html\#fields
+tuttihelp.editCruise.list.vessel.help=editCruise.html\#fields
+tuttihelp.editFishingOperation.action.attachments.help=editFishingOperation.html\#actions
+tuttihelp.editFishingOperation.action.cancel.help=editFishingOperation.html\#actions
+tuttihelp.editFishingOperation.action.importCasino.help=editFishingOperation.html\#actions
+tuttihelp.editFishingOperation.action.save.help=editFishingOperation.html\#actions
+tuttihelp.editFishingOperation.field.comment.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.duration.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.fishingOperationNumber.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.fishingOperationRectiligne.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.fishingOperationValid.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gear.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearDate.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearLatitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearLongitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingEnd.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingEndLatitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingEndLongitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingStart.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingStartLatitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearTime.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.location.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.multirigAggregation.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.stationNumber.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.strata.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.subStrata.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.trawlDistance.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.vessel.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.gearShootingStartLongitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.help=editFishingOperation.html
+tuttihelp.editFishingOperation.list.recorderPerson.help=editFishingOperation.html\#fields
+tuttihelp.editProgram.action.cancel.help=editProgram.html\#actions
+tuttihelp.editProgram.action.save.help=editProgram.html\#actions
+tuttihelp.editProgram.field.comment.help=editProgram.html\#fields
+tuttihelp.editProgram.field.name.help=editProgram.html\#fields
+tuttihelp.editProgram.field.zone.help=editProgram.html\#fields
+tuttihelp.editProgram.help=editProgram.html
+tuttihelp.editProtocol.action.addSpeciesProtocol.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.cancel.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.exportAllCaracteristic.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.exportCaracteristic.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.exportSpecies.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.importCaracteristic.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.importSpecies.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.removeSpeciesProtocol.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.save.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.selectOtherSpecies.help=editProtocol.html\#actions
+tuttihelp.editProtocol.field.comment.help=editProtocol.html\#fields
+tuttihelp.editProtocol.field.name.help=editProtocol.html\#fields
+tuttihelp.editProtocol.field.species.help=editProtocol.html\#fields
+tuttihelp.editProtocol.help=editProtocol.html
+tuttihelp.editProtocol.list.gearUseFeature.help=editProtocol.html\#fields
+tuttihelp.editProtocol.list.lengthClasses.help=editProtocol.html\#fields
+tuttihelp.editProtocol.list.vesselUseFeature.help=editProtocol.html\#fields
+tuttihelp.editProtocol.pane.caracteristic.help=editProtocol.html\#fields
+tuttihelp.editProtocol.table.species.help=editProtocol.html\#fields
+tuttihelp.editSpeciesBatch.help=editSpeciesBatch.html
+tuttihelp.fishingOperations.help=fishingOperations.html
+tuttihelp.main.help=main.html
+tuttihelp.main.menu.action.about.help=main.html\#menu_
+tuttihelp.main.menu.action.configuration.help=main.html\#menu_
+tuttihelp.main.menu.action.editCatches.help=main.html\#menu_
+tuttihelp.main.menu.action.editCruise.help=main.html\#menu_
+tuttihelp.main.menu.action.editProgram.help=main.html\#menu_
+tuttihelp.main.menu.action.editProtocol.help=main.html\#menu_
+tuttihelp.main.menu.action.exit.help=main.html\#menu_
+tuttihelp.main.menu.action.importTemporaryReferential.help=main.html\#menu_
+tuttihelp.main.menu.action.manageDb.help=main.html\#menu_
+tuttihelp.main.menu.action.selectCruise.help=main.html\#menu_
+tuttihelp.main.menu.action.showHelp.help=main.html\#menu_
+tuttihelp.main.menu.action.site.help=main.html\#menu_
+tuttihelp.main.menu.action.updateApplication.help=main.html\#menu_
+tuttihelp.main.menu.action.validateCatches.help=main.html\#menu_
Property changes on: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editCatchBatch.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editCatchBatch.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editCatchBatch.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer une capture</title>
+</head>
+<body>
+
+<h1>Éditer une capture</h1>
+
+<p>Sur cette écran on peut éditer une capture...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editCatchBatch.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editCruise.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editCruise.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editCruise.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer une campagne</title>
+</head>
+<body>
+
+<h1>Éditer une campagne</h1>
+
+<p>Sur cette écran on peut éditer une campagne...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editCruise.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editFishingOperation.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editFishingOperation.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editFishingOperation.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer un trait</title>
+</head>
+<body>
+
+<h1>Éditer un trait</h1>
+
+<p>Sur cette écran on peut éditer un trait...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editFishingOperation.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editProgram.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editProgram.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editProgram.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,54 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer une série de campagne</title>
+</head>
+<body>
+
+<h1>Éditer une série de campagne</h1>
+
+<p>Sur cette écran on peut éditer une campagne...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Zone</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editProgram.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editProtocol.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editProtocol.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editProtocol.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer un protocole</title>
+</head>
+<body>
+
+<h1>Éditer un protocole</h1>
+
+<p>Sur cette écran on peut éditer un protocole...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editProtocol.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer les lots de poissons</title>
+</head>
+<body>
+
+<h1>Éditer les lots de poissons</h1>
+
+<p>Sur cette écran on peut éditer un lots de poissons...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/fishingOperations.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/fishingOperations.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/fishingOperations.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer / Créer des traits</title>
+</head>
+<body>
+
+<h1>Éditer / Créer des traits</h1>
+
+<p>Sur cette écran on peut créer / éditer des traits...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/fishingOperations.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/main.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/main.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/main.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,48 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Écran principal</title>
+</head>
+<body>
+
+<h1>Écran principal</h1>
+
+<p>...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Menu</h2>
+Actions possibles depuis le menu :
+
+<ul>
+ <li>Configuration</li>
+ <li>Gérerles bases</li>
+ <li>Quitter l'application</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/main.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -27,6 +27,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
@@ -64,7 +65,8 @@
JRE,
TUTTI,
I18N,
- DB;
+ HELP,
+ DB
}
protected final TuttiUIContext context;
@@ -152,6 +154,7 @@
doRestart |= updateTutti;
doRestart |= updateDoneI18n(appToUpdate, appUpdateError);
+ doRestart |= updateDoneHelp(appToUpdate, appUpdateError);
updateDoneDb(appToUpdate, appUpdateError);
@@ -161,19 +164,22 @@
if (updateTutti) {
- TuttiPersistenceConfig persistenceConfig = context.getConfig().getServiceConfig().getPersistenceConfig();
+ TuttiPersistenceConfig persistenceConfig =
+ context.getConfig().getServiceConfig().getPersistenceConfig();
// must remove the enumeration file at exit
- persistenceConfig.getDbEnumerationPath().deleteOnExit();
+ File enumerationPath = persistenceConfig.getDbEnumerationPath();
+ TuttiIOUtil.forceDeleteOnExit(
+ enumerationPath,
+ "Could not delete enumeration file " + enumerationPath
+ );
+ //FIXME-check this is necessary: i18n is no more generated ?
// must also remove i18n directory
File i18nDirectory = context.getConfig().getI18nDirectory();
- try {
- FileUtils.forceDeleteOnExit(i18nDirectory);
- } catch (IOException e) {
- throw new TuttiTechnicalException(
- "could not delete i18n directory " + i18nDirectory, e);
- }
+ TuttiIOUtil.forceDeleteOnExit(
+ i18nDirectory,
+ "Could not delete i18n directory " + i18nDirectory);
}
}
}
@@ -264,6 +270,31 @@
return doRestart;
}
+ protected boolean updateDoneHelp(Map<String, ApplicationInfo> appToUpdate,
+ Map<String, Exception> appUpdateError) {
+ boolean doRestart = false;
+ Exception error = getError(UpdateType.HELP, appUpdateError);
+ if (error != null) {
+
+ // something bad while updating i18n
+ if (log.isErrorEnabled()) {
+ log.error("Could not update help", error);
+ }
+ } else {
+ ApplicationInfo info = getInfo(UpdateType.HELP, appToUpdate);
+ if (info != null) {
+
+ if (log.isInfoEnabled()) {
+ log.info(String.format(
+ "A help update was downloaded (oldVersion: %s, newVersion: %s), will restart application to use it",
+ info.oldVersion, info.newVersion));
+ }
+ doRestart = true;
+ }
+ }
+ return doRestart;
+ }
+
protected void updateDoneDb(Map<String, ApplicationInfo> appToUpdate,
Map<String, Exception> appUpdateError) {
Exception error = getError(UpdateType.DB, appUpdateError);
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,82 @@
+package fr.ifremer.tutti.ui.swing;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import jaxx.runtime.JAXXObject;
+import jaxx.runtime.swing.help.JAXXHelpBroker;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.swing.AbstractButton;
+import java.awt.event.ActionListener;
+
+/**
+ * Help broker.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.1
+ */
+public class TuttiHelpBroker extends JAXXHelpBroker {
+
+ /** Logger */
+ private static final Log log = LogFactory.getLog(TuttiHelpBroker.class);
+
+ public TuttiHelpBroker(String defaultID) {
+ super("tutti", "help",
+ defaultID,
+ TuttiUIContext.getApplicationContext());
+ }
+
+ @Override
+ public void prepareUI(JAXXObject c) {
+
+ if (c == null) {
+ throw new NullPointerException("parameter c can not be null!");
+ }
+
+ // l'ui doit avoir un boutton showHelp
+ AbstractButton help = getShowHelpButton(c);
+
+ if (help != null) {
+
+ // attach context to button
+ if (log.isDebugEnabled()) {
+ log.debug("attach context to showhelp button " + c);
+ }
+ help.putClientProperty(JAXX_CONTEXT_ENTRY, c);
+
+ // add tracking action
+ ActionListener listener = getShowHelpAction();
+ if (log.isDebugEnabled()) {
+ log.debug("adding tracking action " + listener);
+ }
+ help.addActionListener(listener);
+
+ if (log.isDebugEnabled()) {
+ log.debug("done for " + c);
+ }
+ }
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -25,8 +25,8 @@
*/
import com.google.common.base.Preconditions;
-import com.google.common.base.Throwables;
import com.google.common.collect.Sets;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
@@ -43,7 +43,9 @@
import fr.ifremer.tutti.ui.swing.util.TuttiErrorHelper;
import fr.ifremer.tutti.ui.swing.util.UIMessageNotifier;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
-import org.apache.commons.io.FileUtils;
+import jaxx.runtime.JAXXContext;
+import jaxx.runtime.swing.help.JAXXHelpBroker;
+import jaxx.runtime.swing.help.JAXXHelpUIHandler;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@@ -54,12 +56,16 @@
import org.nuiton.i18n.init.UserI18nInitializer;
import org.nuiton.widget.SwingSession;
+import java.awt.Desktop;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
import java.util.Locale;
+import java.util.Properties;
import java.util.Set;
/**
@@ -68,7 +74,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public class TuttiUIContext extends AbstractBean implements Closeable, UIMessageNotifier {
+public class TuttiUIContext extends AbstractBean implements Closeable, UIMessageNotifier, JAXXHelpUIHandler {
public static final String VALIDATION_CONTEXT_EDIT = "edit";
@@ -173,6 +179,13 @@
protected TuttiDataContext dataContext;
/**
+ * Tutti help broker.
+ *
+ * @since 1.1
+ */
+ protected TuttiHelpBroker helpBroker;
+
+ /**
* Current screen displayed in ui.
*
* @since 0.1
@@ -211,6 +224,8 @@
*/
private boolean dbLoaded;
+ private Properties helpMapping;
+
public static TuttiUIContext newContext(TuttiApplicationConfig config) {
Preconditions.checkNotNull(config);
Preconditions.checkState(applicationContext == null,
@@ -407,11 +422,7 @@
public void init() {
- try {
- config.getServiceConfig().prepareDirectories();
- } catch (IOException e) {
- throw Throwables.propagate(e);
- }
+ config.getServiceConfig().prepareDirectories();
// use our special classLoader (which will read some files from resources from a configuration directory)
Thread.currentThread().setContextClassLoader(getResourceLoader());
@@ -435,7 +446,9 @@
throw new RuntimeException("Could not init persistence configuration", e);
}
- // Initialize i18n
+ //--------------------------------------------------------------------//
+ // init i18n
+ //--------------------------------------------------------------------//
File i18nDirectory = config.getI18nDirectory();
if (!config.isFullLaunchMode()) {
@@ -443,18 +456,17 @@
if (i18nDirectory.exists()) {
// clean i18n cache
- try {
- FileUtils.cleanDirectory(i18nDirectory);
- } catch (IOException e) {
- throw new RuntimeException("Could not delete i18n cache at " + i18nDirectory, e);
- }
+ TuttiIOUtil.cleanDirectory(
+ i18nDirectory,
+ "Could not delete i18n cache at " + i18nDirectory);
}
}
- try {
- FileUtils.forceMkdir(i18nDirectory);
- } catch (IOException e) {
- throw new RuntimeException("Could not create i18n at " + i18nDirectory, e);
+ TuttiIOUtil.forceMkdir(i18nDirectory,
+ "Could not create i18n at " + i18nDirectory);
+
+ if (log.isDebugEnabled()) {
+ log.debug("I18N directory: " + i18nDirectory);
}
Locale i18nLocale = config.getI18nLocale();
@@ -467,6 +479,48 @@
i18nDirectory, new DefaultI18nInitializer("tutti-i18n")),
i18nLocale);
+ //--------------------------------------------------------------------//
+ // init help
+ //--------------------------------------------------------------------//
+
+ File helpDirectory = config.getHelpDirectory();
+
+ if (!config.isFullLaunchMode()) {
+
+ if (!helpDirectory.exists()) {
+ helpDirectory = new File(config.getDataDirectory(), "help");
+ }
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("Help directory: " + helpDirectory);
+ }
+ TuttiIOUtil.forceMkdir(
+ helpDirectory,
+ "Could not create helpDirectory at " + helpDirectory);
+
+ // load help mapping
+ String mappingProperties =
+ "/tutti-help-" + i18nLocale.getLanguage() + ".properties";
+ try {
+
+ InputStream resourceAsStream =
+ getClass().getResourceAsStream(mappingProperties);
+ helpMapping = new Properties();
+ helpMapping.load(resourceAsStream);
+
+ } catch (Exception eee) {
+ log.error("Failed to load help mapping file at '" +
+ mappingProperties + "'", eee);
+ }
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Starts help with locale at [%s]",
+ helpDirectory));
+ }
+
+ //--------------------------------------------------------------------//
+ // init action UI
+ //--------------------------------------------------------------------//
setActionUI(new TuttiActionUI(null, this));
}
@@ -674,4 +728,44 @@
saveContextToConfig();
}
+
+ public TuttiHelpBroker getHelpBroker() {
+ return helpBroker;
+ }
+
+ public void setHelpBroker(TuttiHelpBroker helpBroker) {
+ this.helpBroker = helpBroker;
+ }
+
+ @Override
+ public void showHelp(JAXXContext context,
+ JAXXHelpBroker broker,
+ String helpId) {
+ if (helpId == null) {
+ helpId = broker.getDefaultID();
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("show help " + helpId);
+ }
+
+ String value = (String) helpMapping.get(helpId);
+
+ if (value == null) {
+ throw new TuttiTechnicalException("Could not find help page for " + helpId);
+ }
+
+ URI resolvedUri = getConfig().getHelpDirectory().toURI().resolve(value);
+ try {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Opening uri " + resolvedUri);
+ }
+
+ Desktop.getDesktop().browse(resolvedUri);
+ } catch (Exception eee) {
+ throw new TuttiTechnicalException("Could not open help page at " + helpId);
+ }
+
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -292,6 +292,11 @@
TuttiApplicationConfigOption.TUTTI_I18N_LOCALE.getKey());
}
+ public File getHelpDirectory() {
+ return applicationConfig.getOptionAsFile(
+ TuttiApplicationConfigOption.TUTTI_HELP_DIRECTORY.getKey());
+ }
+
public void setProgramId(String programId) {
if (programId == null) {
programId = "";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -58,6 +58,13 @@
File.class
),
+ TUTTI_HELP_DIRECTORY(
+ "tutti.help.directory",
+ n_("tutti.option.help.directory.description"),
+ "${tutti.basedir}/help",
+ File.class
+ ),
+
TUTTI_I18N_LOCALE(
"tutti.i18n.locale",
n_("tutti.option.i18n.locale.description"),
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -42,19 +42,23 @@
toolTipText: "tutti.action.configuration.tip";
actionIcon: config;
mnemonic: C;
+ _help: {"tuttihelp.main.menu.action.configuration.help"};
}
#menuFileExit {
_tuttiAction: {CloseApplicationAction.class};
+ _help: {"tuttihelp.main.menu.action.exit.help"};
}
#menuActionUpdate {
_tuttiAction: {UpdateApplicationAction.class};
+ _help: {"tuttihelp.main.menu.action.updateApplication.help"};
}
#menuActionManageDb {
enabled: {model.getScreen() != TuttiScreen.MANAGE_DB};
_tuttiAction: {ManageDbAction.class};
+ _help: {"tuttihelp.main.menu.action.manageDb.help"};
}
#menuActions {
@@ -67,21 +71,25 @@
#menuActionSelectCruise {
enabled: {model.getScreen() != TuttiScreen.SELECT_CRUISE};
_tuttiAction: {SelectCruiseAction.class};
+ _help: {"tuttihelp.main.menu.action.selectCruise.help"};
}
#menuActionEditProgram {
enabled: {model.getScreen() != TuttiScreen.EDIT_PROGRAM && model.isProgramFilled()};
_tuttiAction: {EditSelectedProgramAction.class};
+ _help: {"tuttihelp.main.menu.action.editProgram.help"};
}
#menuActionEditCruise {
enabled: {model.getScreen() != TuttiScreen.EDIT_CRUISE && model.isCruiseFilled()};
_tuttiAction: {EditSelectedCruiseAction.class};
+ _help: {"tuttihelp.main.menu.action.editCruise.help"};
}
#menuActionEditProtocol {
enabled: {model.getScreen() != TuttiScreen.EDIT_PROTOCOL && model.isProtocolFilled()};
_tuttiAction: {EditSelectedProtocolAction.class};
+ _help: {"tuttihelp.main.menu.action.editProtocol.help"};
}
#menuActionEditCatches {
@@ -90,6 +98,7 @@
|| model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
) && model.isCruiseFilled()};
_tuttiAction: {EditSelectedCruiseCatchesAction.class};
+ _help: {"tuttihelp.main.menu.action.editCatches.help"};
}
#menuActionValidateCatches {
@@ -98,9 +107,10 @@
|| model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
) && model.isCruiseFilled()};
_tuttiAction: {ValidateSelectedCruiseCatchesAction.class};
+ _help: {"tuttihelp.main.menu.action.validateCatches.help"};
}
-#menuAdministration{
+#menuAdministration {
enabled: {model.isDbLoaded()};
text: "tutti.menu.administration";
toolTipText: "tutti.menu.administration.tip";
@@ -110,39 +120,9 @@
#menuImportTemporaryReferential {
enabled: {model.getScreen() != TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL};
_tuttiAction: {ImportTemporaryReferentialAction.class};
+ _help: {"tuttihelp.main.menu.action.importTemporaryReferential.help"};
}
-#menuSynchronisations {
- enabled: {model.isDbLoaded()};
- text: "tutti.menu.synchronisations";
- toolTipText: "tutti.menu.synchronisations.tip";
- mnemonic: S;
-}
-
-#menuSynchronisationImport {
- text: "tutti.menu.synchronisationImport";
- toolTipText: "tutti.menu.synchronisationImport.tip";
- mnemonic: I;
- enabled: false;
- actionIcon: import;
-}
-
-#menuSynchronisationExport {
- text: "tutti.menu.synchronisationExport";
- toolTipText: "tutti.menu.synchronisationExport.tip";
- mnemonic: E;
- enabled: false;
- actionIcon: export;
-}
-
-#menuSynchronisationAllegro {
- text: "tutti.menu.synchronisationAllegro";
- toolTipText: "tutti.menu.synchronisationAllegro.tip";
- mnemonic: A;
- enabled: false;
- actionIcon: allegro;
-}
-
#menuHelp {
text: "tutti.menu.help";
toolTipText: "tutti.menu.help.tip";
@@ -154,6 +134,7 @@
toolTipText: "tutti.action.site.tip";
actionIcon: site;
mnemonic: S;
+ _help: {"tuttihelp.main.menu.action.site.help"};
}
#menuHelpAbout {
@@ -161,12 +142,9 @@
toolTipText: "tutti.action.about.tip";
actionIcon: about;
mnemonic: A;
+ _help: {"tuttihelp.main.menu.action.about.help"};
}
-#menuUpdateApplication {
- _tuttiAction: {UpdateApplicationAction.class};
-}
-
#bottomBar {
floatable: false;
margin: {new java.awt.Insets(0, 0, 0, 5)};
@@ -176,3 +154,14 @@
#validatorMessageWidget {
focusPainted: false;
}
+
+#showHelp {
+ toolTipText:"tutti.action.showHelp.tip";
+ actionIcon:"show-help";
+ _help: {"tuttihelp.main.menu.action.showHelp.help"};
+}
+
+#body {
+ _help: {"tuttihelp.main.help"};
+}
+
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -23,23 +23,29 @@
-->
<JFrame id='mainFrame' onWindowClosing='menuFileExit.getAction().actionPerformed(null)'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<TuttiUIContext, MainUIHandler>'
- width='800' height='600'>
+ width='800' height='600' decorator='help'>
<import>
- java.awt.BorderLayout
- javax.swing.JFrame
- org.jdesktop.swingx.JXTitledPanel
- jaxx.runtime.validator.swing.SwingValidator
- jaxx.runtime.validator.swing.SwingValidatorMessageWidget
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.TuttiScreen
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+
+ jaxx.runtime.validator.swing.SwingValidator
+ jaxx.runtime.validator.swing.SwingValidatorMessageWidget
+
+ org.jdesktop.swingx.JXTitledPanel
+
+ javax.swing.JFrame
+ javax.swing.border.EmptyBorder
+ java.awt.BorderLayout
</import>
<TuttiUIContext id='model'
initializer='getContextValue(TuttiUIContext.class)'/>
<MainUIHandler id='handler'
initializer='getContextValue(MainUIHandler.class)'/>
-
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.main.help"'/>
<script><![CDATA[
public MainUI(TuttiUIContext context) {
@@ -79,16 +85,6 @@
<JMenuItem id='menuImportTemporaryReferential'/>
</JMenu>
- <!--JMenu id='menuSynchronisations'>
-
- <JMenuItem id='menuSynchronisationImport'
- onActionPerformed="getHandler().showImportScreen()"/>
- <JMenuItem id='menuSynchronisationExport'
- onActionPerformed="getHandler().showExportScreen()"/>
- <JMenuItem id='menuSynchronisationAllegro'
- onActionPerformed="getHandler().showAllegroScreen()"/>
- </JMenu-->
-
<JMenu id='menuHelp'>
<JMenuItem id='menuHelpSite'
onActionPerformed='getHandler().gotoSite()'/>
@@ -101,6 +97,9 @@
<SwingValidatorMessageWidget id='validatorMessageWidget'/>
</JToolBar>
+ <!-- pour afficher l'aide contextuelle -->
+ <JButton id='showHelp'/>
+
<JXTitledPanel id='body' constraints='BorderLayout.CENTER'/>
<!-- status message bar -->
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -54,8 +54,10 @@
import org.nuiton.widget.SwingSession;
import javax.swing.Icon;
+import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
+import javax.swing.JPanel;
import javax.swing.JToolBar;
import java.awt.Desktop;
import java.beans.PropertyChangeEvent;
@@ -318,7 +320,7 @@
// load new body
JComponent screenUI;
- JComponent rightDecoration = null;
+ JToolBar rightDecoration = null;
String screenTitle;
Icon icon;
@@ -401,6 +403,16 @@
break;
}
+ JButton showHelp = ui.getShowHelp();
+ if (rightDecoration == null) {
+ rightDecoration = new JToolBar();
+ rightDecoration.setFloatable(false);
+ rightDecoration.setOpaque(false);
+ rightDecoration.setBorderPainted(false);
+ } else {
+ rightDecoration.remove(showHelp);
+ }
+ rightDecoration.add(showHelp, 0);
this.currentBody = screenUI;
context.getSwingSession().add(currentBody);
ui.getBody().setTitle(screenTitle);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -41,9 +41,15 @@
showReset: true;
}
+#editCruiseTopPanel {
+ _help: {"tuttihelp.editCruise.help"};
+}
+
#nameLabel {
text: "tutti.label.cruise.name";
labelFor: {nameField};
+ toolTipText: "tuttihelp.editCruise.field.name.tip";
+ _help: {"tuttihelp.editCruise.field.name.help"};
}
#nameField {
@@ -54,6 +60,8 @@
#yearLabel {
text: "tutti.label.cruise.year";
labelFor: {yearField};
+ toolTipText: "tuttihelp.editCruise.field.year.tip";
+ _help: {"tuttihelp.editCruise.field.year.help"};
}
#yearField {
@@ -67,6 +75,8 @@
#surveyPartLabel {
text: "tutti.label.cruise.surveyPart";
labelFor: {surveyPartField};
+ toolTipText: "tuttihelp.editCruise.field.surveyPart.tip";
+ _help: {"tuttihelp.editCruise.field.surveyPart.help"};
}
#surveyPartField {
@@ -77,6 +87,8 @@
#countryLabel {
text: "tutti.label.cruise.country";
labelFor: {countryComboBox};
+ toolTipText: "tuttihelp.editCruise.field.country.tip";
+ _help: {"tuttihelp.editCruise.field.country.help"};
}
#countryComboBox {
@@ -87,10 +99,12 @@
#programLabel {
text: "tutti.label.cruise.program";
- labelFor: {surveyComboBox};
+ labelFor: {programComboBox};
+ toolTipText: "tuttihelp.editCruise.field.program.tip";
+ _help: {"tuttihelp.editCruise.field.program.help"};
}
-#surveyComboBox {
+#programComboBox {
property: program;
selectedItem: {model.getProgram()};
_validatorLabel : {_("tutti.label.cruise.program")};
@@ -99,6 +113,8 @@
#beginDateLabel {
text: "tutti.label.cruise.beginDate";
labelFor: {beginDateField};
+ toolTipText: "tuttihelp.editCruise.field.beginDate.tip";
+ _help: {"tuttihelp.editCruise.field.beginDate.help"};
}
#beginDateField {
@@ -109,6 +125,8 @@
#endDateLabel {
text: "tutti.label.cruise.endDate";
labelFor: {endDateField};
+ toolTipText: "tuttihelp.editCruise.field.endDate.tip";
+ _help: {"tuttihelp.editCruise.field.endDate.help"};
}
#endDateField {
@@ -117,8 +135,10 @@
}
#multirigNumberLabel {
- text: "tutti.label.cruise.multirigNumber";
- labelFor: {multirigNumberField};
+ text: "tutti.label.cruise.multirigNumber";
+ labelFor: {multirigNumberField};
+ toolTipText: "tuttihelp.editCruise.field.multirigNumber.tip";
+ _help: {"tuttihelp.editCruise.field.multirigNumber.help"};
}
#multirigNumberField {
@@ -133,6 +153,8 @@
text: "tutti.label.filterVesselType";
_strongStyle: true;
actionIcon: filter;
+ toolTipText: "tuttihelp.editCruise.filterVessel.tip";
+ _help: {"tuttihelp.editCruise.filterVessel.help"};
}
#filterVesselAllButton {
@@ -163,28 +185,38 @@
property: vessel;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.vessel"))};
_validatorLabel : {_("tutti.label.list.vessel")};
+ toolTipText: "tuttihelp.editCruise.list.vessel.tip";
+ _help: {"tuttihelp.editCruise.list.vessel.help"};
}
#gearList {
property: gear;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.gear"))};
_validatorLabel : {_("tutti.label.list.gear")};
+ toolTipText: "tuttihelp.editCruise.list.gear.tip";
+ _help: {"tuttihelp.editCruise.list.gear.help"};
}
#headOfMissionList {
property: headOfMission;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.headOfMission"))};
_validatorLabel : {_("tutti.label.list.headOfMission")};
+ toolTipText: "tuttihelp.editCruise.list.headOfMission.tip";
+ _help: {"tuttihelp.editCruise.list.headOfMission.help"};
}
#headOfSortRoomList {
property: headOfSortRoom;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.headOfSortRoom"))};
_validatorLabel : {_("tutti.label.list.headOfSortRoom")};
+ toolTipText: "tuttihelp.editCruise.list.headOfSortRoom.tip";
+ _help: {"tuttihelp.editCruise.list.headOfSortRoom.help"};
}
#commentPane {
border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
+ toolTipText: "tuttihelp.editCruise.field.comment.tip";
+ _help: {"tuttihelp.editCruise.field.comment.help"};
}
#commentField {
@@ -195,22 +227,26 @@
#saveButton {
_tuttiAction: {SaveCruiseAction.class};
enabled: {model.isModify() && model.isValid()};
+ _help: {"tuttihelp.editCruise.action.save.help"};
}
#cancelButton {
_tuttiAction: {CancelEditCruiseAction.class};
+ _help: {"tuttihelp.editCruise.action.cancel.help"};
}
#generateNameButton {
actionIcon: generate;
text: "tutti.action.generateCampaignName";
enabled: {model.isCanGenerateName()};
+ toolTipText: "tuttihelp.editCruise.action.generateName.tip";
+ _help: {"tuttihelp.editCruise.action.generateName.help"};
}
#topToolBar {
floatable: false;
- opaque: true;
- borderPainted: true;
+ opaque: false;
+ borderPainted: false;
}
#attachmentsButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,7 +21,7 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editCruiseTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditCruiseUIModel, EditCruiseUIHandler>'>
<import>
@@ -32,17 +32,15 @@
fr.ifremer.tutti.persistence.entities.referential.Vessel
fr.ifremer.tutti.ui.swing.TuttiUIContext
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.util.TuttiUI
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
+ fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
jaxx.runtime.swing.editor.NumberEditor
jaxx.runtime.swing.editor.bean.BeanComboBox
jaxx.runtime.swing.editor.bean.BeanListHeader
jaxx.runtime.swing.editor.bean.BeanDoubleList
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
-
org.jdesktop.swingx.JXDatePicker
javax.swing.DefaultListModel
@@ -76,11 +74,9 @@
<EditCruiseUIModel id='model'
initializer='getContextValue(EditCruiseUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
-
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
- <field name='program' component='surveyComboBox'/>
+ <field name='program' component='programComboBox'/>
<field name='year' component='yearField'/>
<field name='surveyPart' component='surveyPartField'/>
<field name='name' component='nameField'/>
@@ -95,8 +91,12 @@
<field name='comment' component='commentPane'/>
</BeanValidator>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editCruise.help"'/>
+
<JToolBar id='topToolBar'>
- <JButton id='attachmentsButton'/>
+ <ButtonAttachment id='attachmentsButton'
+ constructorParams='getHandler().getContext(), getModel()'/>
</JToolBar>
<Table fill='both' constraints='BorderLayout.CENTER'>
@@ -107,7 +107,7 @@
<JLabel id='programLabel'/>
</cell>
<cell weightx='1'>
- <BeanComboBox id='surveyComboBox' constructorParams='this'
+ <BeanComboBox id='programComboBox' constructorParams='this'
genericType='Program'/>
</cell>
<cell anchor='west'>
@@ -231,7 +231,4 @@
</row>
</Table>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -180,7 +180,7 @@
}
});
- initBeanComboBox(ui.getSurveyComboBox(),
+ initBeanComboBox(ui.getProgramComboBox(),
persistenceService.getAllProgram(),
model.getProgram());
@@ -223,6 +223,8 @@
log.info("closing: " + ui);
}
clearValidators();
+
+ ui.getAttachmentsButton().onCloseUI();
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -469,6 +469,21 @@
handler.registerValidator();
}
+ Decorator<FishingOperation> decorator =
+ getDecorator(FishingOperation.class, null);
+
+ String fishingOperationText;
+
+ if (bean == null) {
+ fishingOperationText = null;
+ } else {
+ fishingOperationText = _("tutti.label.traitReminder",
+ decorator.toString(bean));
+ }
+ ui.getTraitGeneralTabPane().setTitle(fishingOperationText);
+ ui.getVesselUseFeatureTabPane().setTitle(fishingOperationText);
+ ui.getGearUseFeatureTabPane().setTitle(fishingOperationText);
+
handler.installStartDateListener();
handler.installCoordinatesListener();
}
@@ -560,8 +575,6 @@
// ui.getPlanktonTabContent().getHandler().selectFishingOperation(bean);
// ui.getMacroWasteTabContent().getHandler().selectFishingOperation(bean);
// ui.getAccidentalTabContent().getHandler().selectFishingOperation(bean);
-
-
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -54,6 +54,25 @@
bean: {model};
}
+#editFishingOperationTopPanel {
+ _help: {"tuttihelp.editFishingOperation.help"};
+}
+#traitGeneralTabPaneToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#fishingOperationAttachmentsButton {
+ enabled: {model.getId() != null};
+ toolTipText: "tuttihelp.editFishingOperation.action.attachments.tip";
+ _help: {"tuttihelp.editFishingOperation.action.attachments.help"};
+}
+
+#traitGeneralTabPane {
+ rightDecoration: {traitGeneralTabPaneToolBar};
+}
+
/*#fishingOperationTabScrollPane {
horizontalScrollBarPolicy: {javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER};
}*/
@@ -61,6 +80,8 @@
#stationNumberLabel {
text: "tutti.label.fishingOperation.stationNumber";
labelFor: {stationNumberField};
+ toolTipText: "tuttihelp.editFishingOperation.field.stationNumber.tip";
+ _help: {"tuttihelp.editFishingOperation.field.stationNumber.help"};
}
#stationNumberField {
@@ -71,6 +92,8 @@
#fishingOperationNumberLabel {
text: "tutti.label.fishingOperation.fishingOperationNumber";
labelFor: {fishingOperationNumberField};
+ toolTipText: "tuttihelp.editFishingOperation.field.fishingOperationNumber.tip";
+ _help: {"tuttihelp.editFishingOperation.field.fishingOperationNumber.help"};
}
#fishingOperationNumberField {
@@ -84,6 +107,8 @@
#strataLabel {
text: "tutti.label.fishingOperation.strata";
labelFor: {strataComboBox};
+ toolTipText: "tuttihelp.editFishingOperation.field.strata.tip";
+ _help: {"tuttihelp.editFishingOperation.field.strata.help"};
}
#strataComboBox {
@@ -95,6 +120,8 @@
#subStrataLabel {
text: "tutti.label.fishingOperation.subStrata";
labelFor: {subStrataComboBox};
+ toolTipText: "tuttihelp.editFishingOperation.field.subStrata.tip";
+ _help: {"tuttihelp.editFishingOperation.field.subStrata.help"};
}
#subStrataComboBox {
@@ -106,6 +133,8 @@
#locationLabel {
text: "tutti.label.fishingOperation.location";
labelFor: {locationComboBox};
+ toolTipText: "tuttihelp.editFishingOperation.field.location.tip";
+ _help: {"tuttihelp.editFishingOperation.field.location.help"};
}
#locationComboBox {
@@ -115,31 +144,43 @@
}
#gearLongitudeLabel {
- text: {_("tutti.label.fishingOperation.gearLongitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())};
+ text: {handler.getGearLongitudeLabelText(handler.getConfig().getCoordinateEditorType())};
actionIcon: "coordinates";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearLongitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearLongitude.help"};
}
#gearLatitudeLabel {
- text: {_("tutti.label.fishingOperation.gearLatitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())};
+ text: {handler.getGearLatitudeLabelText(handler.getConfig().getCoordinateEditorType())};
actionIcon: "coordinates";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearLatitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearLatitude.help"};
}
#gearDateLabel {
text: "tutti.label.fishingOperation.gearDate";
actionIcon: "calendar";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearDate.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearDate.help"};
}
#gearTimeLabel {
text: "tutti.label.fishingOperation.gearTime";
actionIcon: "time";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearTime.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearTime.help"};
}
#gearShootingStartLabel {
text: "tutti.label.fishingOperation.gearShootingStart";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingStart.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingStart.help"};
}
#gearShootingEndLabel {
text: "tutti.label.fishingOperation.gearShootingEnd";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingEnd.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingEnd.help"};
}
CardLayout2Ext {
@@ -154,6 +195,8 @@
text: "tutti.label.fishingOperation.vessel";
labelFor: {vesselComboBox};
actionIcon: "vessel";
+ toolTipText: "tuttihelp.editFishingOperation.field.vessel.tip";
+ _help: {"tuttihelp.editFishingOperation.field.vessel.help"};
}
#vesselComboBox {
@@ -166,6 +209,8 @@
text: "tutti.label.fishingOperation.gear";
labelFor: {gearComboBox};
actionIcon: "gear";
+ toolTipText: "tuttihelp.editFishingOperation.field.gear.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gear.help"};
}
#gearComboBox {
@@ -177,6 +222,8 @@
#multirigAggregationLabel {
text: "tutti.label.fishingOperation.multirigAggregation";
labelFor: {multirigAggregationField};
+ toolTipText: "tuttihelp.editFishingOperation.field.multirigAggregation.tip";
+ _help: {"tuttihelp.editFishingOperation.field.multirigAggregation.help"};
}
#multirigAggregationField {
@@ -213,6 +260,8 @@
#gearShootingStartLongitudePanel {
layout:{gearShootingStartLongitudeLayout};
+ toolTipText: "tuttihelp.editFishingOperation.gearShootingStartLongitude.tip";
+ _help: {"tuttihelp.editFishingOperation.gearShootingStartLongitude.help"};
}
#gearShootingStartLongitudeDMSDegreeField {
@@ -258,6 +307,8 @@
#gearShootingStartLatitudePanel {
layout:{gearShootingStartLatitudeLayout};
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingStartLatitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingStartLatitude.help"};
}
#gearShootingStartLatitudeDMSDegreeField {
@@ -313,6 +364,8 @@
#gearShootingEndLongitudePanel {
layout:{gearShootingEndLongitudeLayout};
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingEndLongitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingEndLongitude.help"};
}
#gearShootingEndLongitudeDMSDegreeField {
@@ -358,6 +411,8 @@
#gearShootingEndLatitudePanel {
layout:{gearShootingEndLatitudeLayout};
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingEndLatitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingEndLatitude.help"};
}
#gearShootingEndLatitudeDMSDegreeField {
@@ -416,6 +471,8 @@
borderPainted: false;
opaque: false;
_validatorLabel : {_("tutti.label.fishingOperation.fishingOperationValidity")};
+ toolTipText: "tuttihelp.editFishingOperation.field.fishingOperationValid.tip";
+ _help: {"tuttihelp.editFishingOperation.field.fishingOperationValid.help"};
}
#resetValidStateButton {
@@ -443,11 +500,15 @@
#fishingOperationRectiligneCheckBox {
text: "tutti.label.fishingOperation.fishingOperationRectiligne";
selected: {model.isFishingOperationRectiligne()};
+ toolTipText: "tuttihelp.editFishingOperation.field.fishingOperationRectiligne.tip";
+ _help: {"tuttihelp.editFishingOperation.field.fishingOperationRectiligne.help"};
}
#trawlDistanceLabel {
text: "tutti.label.fishingOperation.trawlDistance";
labelFor: {trawlDistanceField};
+ toolTipText: "tuttihelp.editFishingOperation.field.trawlDistance.tip";
+ _help: {"tuttihelp.editFishingOperation.field.trawlDistance.help"};
}
#trawlDistanceField {
@@ -456,13 +517,15 @@
useFloat: false;
numberPattern: {INT_6_DIGITS_PATTERN};
enabled: {!model.isFishingOperationRectiligne()};
- toolTipText: {model.getTrawlDistance() != null ? _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) : null};
+ toolTipText: {handler.getTrawlDistanceTooltipText(model.getTrawlDistance())};
_validatorLabel : {_("tutti.label.fishingOperation.trawlDistance")};
}
#durationLabel {
text: "tutti.label.fishingOperation.duration";
labelFor: {durationField};
+ toolTipText: "tuttihelp.editFishingOperation.field.duration.tip";
+ _help: {"tuttihelp.editFishingOperation.field.duration.help"};
}
#durationField {
@@ -475,10 +538,14 @@
property: recorderPerson;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.recorderPerson"))};
_validatorLabel : {_("tutti.label.list.recorderPerson")};
+ toolTipText: "tuttihelp.editFishingOperation.list.recorderPerson.tip";
+ _help: {"tuttihelp.editFishingOperation.list.recorderPerson.help"};
}
#commentPane {
border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
+ toolTipText: "tuttihelp.editFishingOperation.field.comment.tip";
+ _help: {"tuttihelp.editFishingOperation.field.comment.help"};
}
#commentField {
@@ -488,16 +555,18 @@
#saveButton {
_tuttiAction: {SaveFishingOperationAction.class};
+ toolTipText: "tuttihelp.editFishingOperation.action.save.tip";
+ _help: {"tuttihelp.editFishingOperation.action.save.help"};
}
#cancelButton {
_tuttiAction: {CancelEditFishingOperationAction.class};
+ toolTipText: "tuttihelp.editFishingOperation.action.cancel.tip";
+ _help: {"tuttihelp.editFishingOperation.action.cancel.help"};
}
#importCasinoButton {
_tuttiAction: {ImportCasinoAction.class};
+ toolTipText: "tuttihelp.editFishingOperation.action.importCasino.tip";
+ _help: {"tuttihelp.editFishingOperation.action.importCasino.help"};
}
-
-#attachmentsButton {
- enabled: {model.getId() !=null}
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,23 +21,24 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editFishingOperationTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditFishingOperationUIModel, EditFishingOperationUIHandler>'>
<import>
- fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation
fr.ifremer.tutti.persistence.entities.data.FishingOperation
+ fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation
fr.ifremer.tutti.persistence.entities.referential.Gear
fr.ifremer.tutti.persistence.entities.referential.Person
fr.ifremer.tutti.persistence.entities.referential.Vessel
fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUI
fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUI
-
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
+
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ fr.ifremer.tutti.ui.swing.util.TuttiUIUtil
+ fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType
fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor
- fr.ifremer.tutti.ui.swing.util.TuttiUIUtil
jaxx.runtime.swing.editor.bean.BeanComboBox
jaxx.runtime.swing.editor.bean.BeanListHeader
@@ -46,11 +47,9 @@
jaxx.runtime.swing.editor.TimeEditor
jaxx.runtime.swing.CardLayout2Ext
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
-
org.jdesktop.swingx.JXDatePicker
org.jdesktop.swingx.JXTable
+ org.jdesktop.swingx.JXTitledPanel
java.awt.Dimension
@@ -79,10 +78,7 @@
<EditFishingOperationUIModel id='model'
initializer='getContextValue(EditFishingOperationUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
-
<BeanValidator id='validator' context='validate' bean='model'
- errorTableModel='errorTableModel'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='stationNumber' component='stationNumberField'/>
<field name='fishingOperationNumber'
@@ -159,370 +155,372 @@
<CardLayout2Ext id='gearShootingEndLatitudeLayout'
constructorParams='this, "gearShootingEndLatitudePanel"'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editeditFishingOperation.help"'/>
+ <JToolBar id='traitGeneralTabPaneToolBar'>
+ <JButton id='importCasinoButton'/>
+ <ButtonAttachment id='fishingOperationAttachmentsButton'
+ constructorParams='getHandler().getContext(), getModel()'/>
+ </JToolBar>
+
<JPanel id='fishingOperationPane' constraints='BorderLayout.CENTER'
layout='{new BorderLayout()}'>
<JTabbedPane id='fishingOperationTabPane' constraints='BorderLayout.CENTER'>
<tab id='traitGeneralTab'>
- <!-- <JScrollPane id='fishingOperationTabScrollPane'>-->
- <Table fill='both' id='generalForm'>
+ <JXTitledPanel id='traitGeneralTabPane'>
+ <!-- <JScrollPane id='fishingOperationTabScrollPane'>-->
+ <Table fill='both' id='generalForm'>
- <!-- Numero station / Numéro trait / Numéro de poche -->
- <row>
- <cell>
- <JLabel id='stationNumberLabel'/>
- </cell>
- <cell weightx='0.3'>
- <JTextField id='stationNumberField'
- onKeyReleased='handler.setText(event, "stationNumber")'/>
- </cell>
- <cell>
- <JLabel id='fishingOperationNumberLabel'/>
- </cell>
- <cell weightx='0.3'>
- <NumberEditor id='fishingOperationNumberField'
- constructorParams='this'/>
- </cell>
- <cell>
- <JLabel id='multirigAggregationLabel'/>
- </cell>
- <cell weightx='0.3'>
- <JTextField id='multirigAggregationField'
- onKeyReleased='handler.setText(event, "multirigAggregation")'/>
- </cell>
- </row>
+ <!-- Numero station / Numéro trait / Numéro de poche -->
+ <row>
+ <cell>
+ <JLabel id='stationNumberLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <JTextField id='stationNumberField'
+ onKeyReleased='handler.setText(event, "stationNumber")'/>
+ </cell>
+ <cell>
+ <JLabel id='fishingOperationNumberLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <NumberEditor id='fishingOperationNumberField'
+ constructorParams='this'/>
+ </cell>
+ <cell>
+ <JLabel id='multirigAggregationLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <JTextField id='multirigAggregationField'
+ onKeyReleased='handler.setText(event, "multirigAggregation")'/>
+ </cell>
+ </row>
- <!-- Strate d'association / Sous Strate / Localité -->
- <row>
- <cell>
- <JLabel id='strataLabel'/>
- </cell>
- <cell weightx='0.3'>
- <BeanComboBox id='strataComboBox' constructorParams='this'
- genericType='FishingOperationLocation'/>
- </cell>
- <cell>
- <JLabel id='subStrataLabel'/>
- </cell>
- <cell weightx='0.3'>
- <BeanComboBox id='subStrataComboBox' constructorParams='this'
- genericType='FishingOperationLocation'/>
- </cell>
- <cell>
- <JLabel id='locationLabel'/>
- </cell>
- <cell weightx='0.3'>
- <BeanComboBox id='locationComboBox' constructorParams='this'
- genericType='FishingOperationLocation'/>
- </cell>
- </row>
+ <!-- Strate d'association / Sous Strate / Localité -->
+ <row>
+ <cell>
+ <JLabel id='strataLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <BeanComboBox id='strataComboBox' constructorParams='this'
+ genericType='FishingOperationLocation'/>
+ </cell>
+ <cell>
+ <JLabel id='subStrataLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <BeanComboBox id='subStrataComboBox' constructorParams='this'
+ genericType='FishingOperationLocation'/>
+ </cell>
+ <cell>
+ <JLabel id='locationLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <BeanComboBox id='locationComboBox' constructorParams='this'
+ genericType='FishingOperationLocation'/>
+ </cell>
+ </row>
- <!-- début de traine long-lat-date-heure
- fin de traine long-lat-date-heure -->
- <row>
- <cell columns='6'>
- <JPanel layout="{new BorderLayout()}">
- <Table id="gearCaracteristicsTable" fill="both" weightx='1'
- constraints='BorderLayout.CENTER'>
- <row>
- <cell>
- <JPanel/>
- </cell>
- <cell>
- <JLabel id='gearLatitudeLabel'/>
- </cell>
- <cell>
- <JLabel id='gearLongitudeLabel'/>
- </cell>
- <cell>
- <JLabel id='gearDateLabel'/>
- </cell>
- <cell>
- <JLabel id='gearTimeLabel'/>
- </cell>
- </row>
+ <!-- début de traine long-lat-date-heure
+ fin de traine long-lat-date-heure -->
+ <row>
+ <cell columns='6'>
+ <JPanel layout="{new BorderLayout()}">
+ <Table id="gearCaracteristicsTable" fill="both" weightx='1'
+ constraints='BorderLayout.CENTER'>
+ <row>
+ <cell>
+ <JPanel/>
+ </cell>
+ <cell>
+ <JLabel id='gearLatitudeLabel'/>
+ </cell>
+ <cell>
+ <JLabel id='gearLongitudeLabel'/>
+ </cell>
+ <cell>
+ <JLabel id='gearDateLabel'/>
+ </cell>
+ <cell>
+ <JLabel id='gearTimeLabel'/>
+ </cell>
+ </row>
- <row>
- <cell>
- <JLabel id='gearShootingStartLabel'/>
- </cell>
- <cell weightx='1'>
- <JPanel id='gearShootingStartLatitudePanel'>
- <NumberEditor id='gearShootingStartLatitudeDDField'
- constraints='"DD"'
- constructorParams='this'/>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMS"'>
- <NumberEditor
- id='gearShootingStartLatitudeDMSDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <row>
+ <cell>
+ <JLabel id='gearShootingStartLabel'/>
+ </cell>
+ <cell weightx='1'>
+ <JPanel id='gearShootingStartLatitudePanel'>
+ <NumberEditor id='gearShootingStartLatitudeDDField'
+ constraints='"DD"'
+ constructorParams='this'/>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMS"'>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMSDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingStartLatitudeDMSMinuteField'
- constructorParams='this' styleClass='minute'/>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMSMinuteField'
+ constructorParams='this' styleClass='minute'/>
- <NumberEditor
- id='gearShootingStartLatitudeDMSSecondField'
- constructorParams='this' styleClass='second'/>
- </JPanel>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMD"'>
- <NumberEditor
- id='gearShootingStartLatitudeDMDDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMSSecondField'
+ constructorParams='this' styleClass='second'/>
+ </JPanel>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMD"'>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMDDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingStartLatitudeDMDMinuteField'
- constructorParams='this'
- styleClass='decimalMinute'/>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMDMinuteField'
+ constructorParams='this'
+ styleClass='decimalMinute'/>
+ </JPanel>
</JPanel>
- </JPanel>
- </cell>
- <cell weightx='1'>
- <JPanel id='gearShootingStartLongitudePanel'>
- <NumberEditor id='gearShootingStartLongitudeDDField'
- constraints='"DD"'
- constructorParams='this'/>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMS"'>
- <NumberEditor
- id='gearShootingStartLongitudeDMSDegreeField'
- constructorParams='this' styleClass='degree'/>
+ </cell>
+ <cell weightx='1'>
+ <JPanel id='gearShootingStartLongitudePanel'>
+ <NumberEditor id='gearShootingStartLongitudeDDField'
+ constraints='"DD"'
+ constructorParams='this'/>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMS"'>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMSDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingStartLongitudeDMSMinuteField'
- constructorParams='this' styleClass='minute'/>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMSMinuteField'
+ constructorParams='this' styleClass='minute'/>
- <NumberEditor
- id='gearShootingStartLongitudeDMSSecondField'
- constructorParams='this' styleClass='second'/>
- </JPanel>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMD"'>
- <NumberEditor
- id='gearShootingStartLongitudeDMDDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMSSecondField'
+ constructorParams='this' styleClass='second'/>
+ </JPanel>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMD"'>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMDDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingStartLongitudeDMDMinuteField'
- constructorParams='this'
- styleClass='decimalMinute'/>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMDMinuteField'
+ constructorParams='this'
+ styleClass='decimalMinute'/>
+ </JPanel>
</JPanel>
- </JPanel>
- </cell>
- <cell>
- <JXDatePicker id='gearShootingStartDateField'
- onActionPerformed='handler.setDate(event, "gearShootingStartDate")'/>
- </cell>
- <cell>
- <SimpleTimeEditor id='gearShootingStartTimeField'
+ </cell>
+ <cell>
+ <JXDatePicker id='gearShootingStartDateField'
+ onActionPerformed='handler.setDate(event, "gearShootingStartDate")'/>
+ </cell>
+ <cell>
+ <SimpleTimeEditor id='gearShootingStartTimeField'
+ constructorParams='this'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel id='gearShootingEndLabel'/>
+ </cell>
+ <cell weightx='1'>
+ <JPanel id='gearShootingEndLatitudePanel'>
+ <NumberEditor id='gearShootingEndLatitudeDDField'
+ constraints='"DD"'
constructorParams='this'/>
- </cell>
- </row>
- <row>
- <cell>
- <JLabel id='gearShootingEndLabel'/>
- </cell>
- <cell weightx='1'>
- <JPanel id='gearShootingEndLatitudePanel'>
- <NumberEditor id='gearShootingEndLatitudeDDField'
- constraints='"DD"'
- constructorParams='this'/>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMS"'>
- <NumberEditor
- id='gearShootingEndLatitudeDMSDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMS"'>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMSDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingEndLatitudeDMSMinuteField'
- constructorParams='this' styleClass='minute'/>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMSMinuteField'
+ constructorParams='this' styleClass='minute'/>
- <NumberEditor
- id='gearShootingEndLatitudeDMSSecondField'
- constructorParams='this' styleClass='second'/>
- </JPanel>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMD"'>
- <NumberEditor
- id='gearShootingEndLatitudeDMDDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMSSecondField'
+ constructorParams='this' styleClass='second'/>
+ </JPanel>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMD"'>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMDDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingEndLatitudeDMDMinuteField'
- constructorParams='this'
- styleClass='decimalMinute'/>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMDMinuteField'
+ constructorParams='this'
+ styleClass='decimalMinute'/>
+ </JPanel>
</JPanel>
- </JPanel>
- </cell>
- <cell weightx='1'>
- <JPanel id='gearShootingEndLongitudePanel'>
- <NumberEditor id='gearShootingEndLongitudeDDField'
- constraints='"DD"'
- constructorParams='this'/>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMS"'>
- <NumberEditor
- id='gearShootingEndLongitudeDMSDegreeField'
- constructorParams='this' styleClass='degree'/>
+ </cell>
+ <cell weightx='1'>
+ <JPanel id='gearShootingEndLongitudePanel'>
+ <NumberEditor id='gearShootingEndLongitudeDDField'
+ constraints='"DD"'
+ constructorParams='this'/>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMS"'>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMSDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingEndLongitudeDMSMinuteField'
- constructorParams='this' styleClass='minute'/>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMSMinuteField'
+ constructorParams='this' styleClass='minute'/>
- <NumberEditor
- id='gearShootingEndLongitudeDMSSecondField'
- constructorParams='this' styleClass='second'/>
- </JPanel>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMD"'>
- <NumberEditor
- id='gearShootingEndLongitudeDMDDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMSSecondField'
+ constructorParams='this' styleClass='second'/>
+ </JPanel>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMD"'>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMDDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingEndLongitudeDMDMinuteField'
- constructorParams='this'
- styleClass='decimalMinute'/>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMDMinuteField'
+ constructorParams='this'
+ styleClass='decimalMinute'/>
+ </JPanel>
</JPanel>
- </JPanel>
- </cell>
- <cell>
- <JXDatePicker id='gearShootingEndDateField'
- onActionPerformed='handler.setDate(event, "gearShootingEndDate")'/>
- </cell>
- <cell>
- <SimpleTimeEditor id='gearShootingEndTimeField'
+ </cell>
+ <cell>
+ <JXDatePicker id='gearShootingEndDateField'
+ onActionPerformed='handler.setDate(event, "gearShootingEndDate")'/>
+ </cell>
+ <cell>
+ <SimpleTimeEditor id='gearShootingEndTimeField'
+ constructorParams='this'/>
+ </cell>
+ </row>
+
+ <!-- FishingOperation rectiligne / distance chalutee / durée -->
+ <row>
+ <cell>
+ <JLabel/>
+ </cell>
+ <cell>
+ <JCheckBox id='fishingOperationRectiligneCheckBox'
+ onItemStateChanged='handler.setBoolean(event, "fishingOperationRectiligne")'/>
+ </cell>
+ <cell>
+ <JPanel layout="{new BorderLayout()}">
+ <JLabel id='trawlDistanceLabel'
+ constraints='BorderLayout.WEST'/>
+ <NumberEditor id='trawlDistanceField'
+ constraints='BorderLayout.CENTER'
constructorParams='this'/>
- </cell>
- </row>
+ </JPanel>
+ </cell>
+ <cell>
+ <JLabel/>
+ </cell>
+ <cell>
+ <JPanel layout="{new BorderLayout()}">
+ <JLabel id='durationLabel'
+ constraints='BorderLayout.WEST'/>
+ <JTextField id='durationField'
+ constraints='BorderLayout.CENTER'/>
+ </JPanel>
+ </cell>
+ </row>
- <!-- FishingOperation rectiligne / distance chalutee / durée -->
- <row>
- <cell>
- <JLabel/>
- </cell>
- <cell>
- <JCheckBox id='fishingOperationRectiligneCheckBox'
- onItemStateChanged='handler.setBoolean(event, "fishingOperationRectiligne")'/>
- </cell>
- <cell>
- <JPanel layout="{new BorderLayout()}">
- <JLabel id='trawlDistanceLabel'
- constraints='BorderLayout.WEST'/>
- <NumberEditor id='trawlDistanceField'
- constraints='BorderLayout.CENTER'
- constructorParams='this'/>
- </JPanel>
- </cell>
- <cell>
- <JLabel/>
- </cell>
- <cell>
- <JPanel layout="{new BorderLayout()}">
- <JLabel id='durationLabel'
- constraints='BorderLayout.WEST'/>
- <JTextField id='durationField'
- constraints='BorderLayout.CENTER'/>
- </JPanel>
- </cell>
- </row>
+ <!-- Fishing operation valid / invalid-->
+ <row>
+ <cell>
+ <JToolBar id='fishingOperationValidPanel'
+ layout='{new BorderLayout()}'>
+ <JButton id='resetValidStateButton'
+ constraints='BorderLayout.WEST'
+ onActionPerformed="model.setFishingOperationValid(null)"/>
+ <JRadioButton id='fishingOperationResetRadio'
+ constraints='BorderLayout.EAST'/>
+ </JToolBar>
+ </cell>
+ <cell>
+ <HBox>
+ <JRadioButton id='fishingOperationValidRadio'
+ onActionPerformed='model.setFishingOperationValid(Boolean.TRUE)'/>
+ <JRadioButton id='fishingOperationInvalidRadio'
+ onActionPerformed='model.setFishingOperationValid(Boolean.FALSE)'/>
+ </HBox>
+ </cell>
+ <cell columns="4">
+ <JPanel/>
+ </cell>
+ </row>
+ </Table>
+ </JPanel>
+ </cell>
+ </row>
- <!-- Fishing operation valid / invalid-->
- <row>
- <cell>
- <JToolBar id='fishingOperationValidPanel'
- layout='{new BorderLayout()}'>
- <JButton id='resetValidStateButton'
- constraints='BorderLayout.WEST'
- onActionPerformed="model.setFishingOperationValid(null)"/>
- <JRadioButton id='fishingOperationResetRadio'
- constraints='BorderLayout.EAST'/>
- </JToolBar>
- </cell>
- <cell>
- <HBox>
- <JRadioButton id='fishingOperationValidRadio'
- onActionPerformed='model.setFishingOperationValid(Boolean.TRUE)'/>
- <JRadioButton id='fishingOperationInvalidRadio'
- onActionPerformed='model.setFishingOperationValid(Boolean.FALSE)'/>
- </HBox>
- </cell>
- <cell columns="4">
- <JPanel/>
- </cell>
- </row>
- </Table>
- </JPanel>
- </cell>
- </row>
+ <!-- RecorderPerson / Vessel / Gear -->
+ <row weighty='0.2'>
+ <cell columns='6'>
+ <JPanel layout='{new GridLayout(1,0)}'>
+ <BeanDoubleList id='recorderPersonList' genericType='Person'/>
+ <Table fill="both" weightx='1' id='traitVesselPanel'>
+ <row>
+ <cell anchor='west'>
+ <JLabel id='vesselLabel'/>
+ </cell>
+ <cell weightx="1.0" fill="both">
+ <BeanComboBox id='vesselComboBox'
+ constructorParams='this'
+ genericType='Vessel'/>
+ </cell>
+ </row>
+ <row>
+ <cell anchor='west'>
+ <JLabel id='gearLabel'/>
+ </cell>
+ <cell>
+ <BeanComboBox id='gearComboBox'
+ constructorParams='this'
+ genericType='Gear'/>
+ </cell>
+ </row>
+ </Table>
+ </JPanel>
+ </cell>
+ </row>
- <!-- Actions d'import -->
- <row>
- <cell columns='6'>
- <JPanel layout='{new GridLayout(1,0)}'>
- <JButton id='importCasinoButton'/>
- <JButton id='attachmentsButton'/>
- </JPanel>
- </cell>
- </row>
-
- <!-- RecorderPerson / Vessel / Gear -->
- <row weighty='0.2'>
- <cell columns='6'>
- <JPanel layout='{new GridLayout(1,0)}'>
- <BeanDoubleList id='recorderPersonList' genericType='Person'/>
- <Table fill="both" weightx='1' id='traitVesselPanel'>
- <row>
- <cell anchor='west'>
- <JLabel id='vesselLabel'/>
- </cell>
- <cell weightx="1.0" fill="both">
- <BeanComboBox id='vesselComboBox'
- constructorParams='this'
- genericType='Vessel'/>
- </cell>
- </row>
- <row>
- <cell anchor='west'>
- <JLabel id='gearLabel'/>
- </cell>
- <cell>
- <BeanComboBox id='gearComboBox'
- constructorParams='this'
- genericType='Gear'/>
- </cell>
- </row>
- </Table>
- </JPanel>
- </cell>
- </row>
-
- <!-- Commentaire -->
- <row weighty='0.8'>
- <cell columns='6'>
- <JScrollPane id='commentPane'
- onFocusGained='commentField.requestFocus()'>
- <JTextArea id='commentField'
- onKeyReleased='handler.setText(event, "comment")'/>
- </JScrollPane>
- </cell>
- </row>
- </Table>
+ <!-- Commentaire -->
+ <row weighty='0.8'>
+ <cell columns='6'>
+ <JScrollPane id='commentPane'
+ onFocusGained='commentField.requestFocus()'>
+ <JTextArea id='commentField'
+ onKeyReleased='handler.setText(event, "comment")'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ </Table>
+ </JXTitledPanel>
<!--</JScrollPane>-->
</tab>
<tab id='gearUseFeatureTab'>
-
- <GearUseFeatureTabUI id='gearUseFeatureTabContent'
- constructorParams='this'/>
+ <JXTitledPanel id='gearUseFeatureTabPane'>
+ <GearUseFeatureTabUI id='gearUseFeatureTabContent'
+ constructorParams='this'/>
+ </JXTitledPanel>
</tab>
<tab id='vesselUseFeatureTab'>
-
- <VesselUseFeatureTabUI id='vesselUseFeatureTabContent'
- constructorParams='this'/>
+ <JXTitledPanel id='vesselUseFeatureTabPane'>
+ <VesselUseFeatureTabUI id='vesselUseFeatureTabContent'
+ constructorParams='this'/>
+ </JXTitledPanel>
</tab>
</JTabbedPane>
@@ -538,7 +536,4 @@
</JPanel>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -46,6 +46,7 @@
import fr.ifremer.tutti.ui.swing.util.TabHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.time.DateUtils;
@@ -357,13 +358,21 @@
clearValidators();
+ ui.getFishingOperationAttachmentsButton().onCloseUI();
closeUI(ui.getGearUseFeatureTabContent());
closeUI(ui.getVesselUseFeatureTabContent());
}
@Override
+ protected boolean onTabChanged(int currentIndex, int newIndex) {
+ ui.getFishingOperationAttachmentsButton().onCloseUI();
+ return super.onTabChanged(currentIndex, newIndex);
+ }
+
+ @Override
public boolean onHideTab(int currentIndex, int newIndex) {
boolean result;
+ ui.getFishingOperationAttachmentsButton().onCloseUI();
if (isAModelModified()) {
// something was modified
@@ -475,6 +484,23 @@
return fishingOperationMonitor;
}
+ public String getGearLatitudeLabelText(CoordinateEditorType coordinateEditorType) {
+ String result = _("tutti.label.fishingOperation.gearLatitude", coordinateEditorType.toString());
+ return result;
+ }
+
+ public String getGearLongitudeLabelText(CoordinateEditorType coordinateEditorType) {
+ String result = _("tutti.label.fishingOperation.gearLongitude", coordinateEditorType.toString());
+ return result;
+ }
+
+ public String getTrawlDistanceTooltipText(Float trawlDistance) {
+ String result = trawlDistance == null ?
+ null :
+ _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(trawlDistance));
+ return result;
+ }
+
@Override
public void setDate(ActionEvent event, String property) {
JXDatePicker field = (JXDatePicker) event.getSource();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -28,6 +28,9 @@
bean: {model};
}
+#fishingOperationsTopPanel {
+ _help: {"tuttihelp.fishingOperations.help"};
+}
#newFishingOperationButton {
_tuttiAction: {NewFishingOperationAction.class};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,15 +21,16 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='fishingOperationsTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<FishingOperationsUIModel, FishingOperationsUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.data.FishingOperation
- fr.ifremer.tutti.ui.swing.util.TuttiUI
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
jaxx.runtime.swing.editor.bean.BeanComboBox
@@ -55,6 +56,8 @@
<FishingOperationsUIModel id='model'
initializer='getContextValue(FishingOperationsUIModel.class)'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.fishingOperations.help"'/>
<Table fill='both' id='topPanel' constraints='BorderLayout.NORTH'>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -41,6 +41,27 @@
computedDataColor: {handler.getConfig().getColorComputedWeights()};
}
+#editCatchesTopPanel {
+ _help: {"tuttihelp.editCatchBatch.help"};
+}
+#catchesCaracteristicsTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#catchesCaracteristicsAttachmentsButton {
+ enabled: {model.getObjectId() != null};
+}
+
+#catchesCaracteristicsTabPane {
+ rightDecoration: {catchesCaracteristicsTabToolBar};
+}
+
+#speciesTabFishingOperationReminderLabel {
+ rightDecoration: {speciesTabContent.getSpeciesBatchTabToolBar()};
+}
+
#catchTable {
border: {BorderFactory.createTitledBorder(_("tutti.legend.catch.total"))};
}
@@ -225,12 +246,6 @@
_tuttiAction: {ImportPupitriAction.class};
}
-#attachmentsButton {
- actionIcon: edit-attachment;
- toolTipText: "tutti.action.attachments.tip";
- text: {ButtonAttachmentEditor.getButtonText(model.getAttachment())};
-}
-
#benthosTab {
enabled: {false};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,10 +21,12 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editCatchesTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditCatchesUIModel, EditCatchesUIHandler>'>
<import>
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+
fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI
fr.ifremer.tutti.ui.swing.content.operation.catches.accidental.AccidentalBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchUI
@@ -36,7 +38,7 @@
fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
+ fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
fr.ifremer.tutti.ui.swing.util.editor.TuttiComputedOrNotDataEditor
org.jdesktop.swingx.JXTitledPanel
@@ -44,9 +46,6 @@
jaxx.runtime.swing.CardLayout2Ext
jaxx.runtime.swing.editor.NumberEditor
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
-
static org.nuiton.i18n.I18n._
static jaxx.runtime.SwingUtil.getStringValue
static fr.ifremer.tutti.ui.swing.util.TuttiUIUtil.getWeightStringValue
@@ -70,9 +69,7 @@
<EditCatchesUIModel id='model'
initializer='getContextValue(EditCatchesUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
-
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='catchTotalWeight' component='catchTotalWeightField'/>
<!-- <field name='catchTotalSortedTremisWeight'
@@ -99,6 +96,15 @@
<CardLayout2Ext id='speciesTabPanelLayout'
constructorParams='this, "speciesTabPanel"'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editCatchBatch.help"'/>
+
+ <JToolBar id='catchesCaracteristicsTabToolBar'>
+ <JButton id='importPupitriButton'/>
+ <ButtonAttachment id='catchesCaracteristicsAttachmentsButton'
+ constructorParams='getHandler().getContext(), getModel()'/>
+ </JToolBar>
+
<JTabbedPane id='tabPane' constraints='BorderLayout.CENTER'>
<tab id='catchesCaracteristicsTab'>
<JXTitledPanel id='catchesCaracteristicsTabPane'>
@@ -276,16 +282,6 @@
</Table>
</cell>
</row>
-
- <!-- Actions d'import -->
- <row>
- <cell columns='2'>
- <JPanel layout='{new GridLayout(1,0)}'>
- <JButton id='importPupitriButton'/>
- <JButton id='attachmentsButton'/>
- </JPanel>
- </cell>
- </row>
</Table>
</JPanel>
</JScrollPane>
@@ -352,7 +348,4 @@
</JPanel>
</JPanel>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -113,7 +113,7 @@
if (log.isInfoEnabled()) {
log.info("closing: " + ui);
}
-
+ ui.getCatchesCaracteristicsAttachmentsButton().onCloseUI();
// close batches tabs, then general tab
closeUI(ui.getSpeciesTabContent());
// closeUI(ui.getBenthosTabContent());
@@ -151,7 +151,17 @@
}
@Override
+ protected boolean onTabChanged(int currentIndex, int newIndex) {
+ ui.getCatchesCaracteristicsAttachmentsButton().onCloseUI();
+ ui.getSpeciesTabContent().getSpeciesBatchAttachmentsButton().onCloseUI();
+ return super.onTabChanged(currentIndex, newIndex);
+ }
+
+ @Override
public boolean onHideTab(int currentIndex, int newIndex) {
+
+ ui.getCatchesCaracteristicsAttachmentsButton().onCloseUI();
+ ui.getSpeciesTabContent().getSpeciesBatchAttachmentsButton().onCloseUI();
//FIXME 20130203 kmorin: cannot change tab if model is modified
// (I do not even know why it is set to modified and have no time
// before the demo)
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -194,8 +194,10 @@
public void setCatchBatch(CatchBatch catchBatch) {
Object oldValue = getCatchBatch();
+ Object oldObjectId = getObjectId();
this.catchBatch = catchBatch;
firePropertyChange(PROPERTY_CATCH_BATCH, oldValue, catchBatch);
+ firePropertyChange(PROPERTY_OBJECT_ID, oldObjectId, getObjectId());
}
public FishingOperation getFishingOperation() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -27,7 +27,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -249,9 +248,7 @@
Decorator<Attachment> decorator = getDecorator(Attachment.class, null);
addColumnToModel(columnModel,
AttachmentCellEditor.newEditor(
- ui,
- AttachmentCellRenderer.newRender(decorator),
- AttachementObjectTypeEnum.SAMPLE
+ ui
),
AttachmentCellRenderer.newRender(decorator),
AccidentalBatchTableModel.ATTACHMENTS);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -28,7 +28,6 @@
fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
fr.ifremer.tutti.ui.swing.util.editor.LongTextEditorUI
jaxx.runtime.swing.editor.NumberEditor
@@ -144,7 +143,4 @@
onFocusLost='handler.saveSelectedRowIfRequired(event)'/>
</JScrollPane>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -26,7 +26,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
@@ -265,9 +264,8 @@
{ // File column
addColumnToModel(columnModel,
- AttachmentCellEditor.newEditor(ui,
- AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
- AttachementObjectTypeEnum.SAMPLE),
+ AttachmentCellEditor.newEditor(ui
+ ),
AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
BenthosBatchTableModel.ATTACHMENT);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -26,7 +26,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.MacroWasteBatch;
@@ -256,9 +255,8 @@
{ // File column
addColumnToModel(columnModel,
- AttachmentCellEditor.newEditor(ui,
- AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
- AttachementObjectTypeEnum.SAMPLE),
+ AttachmentCellEditor.newEditor(ui
+ ),
AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
MacroWasteBatchTableModel.ATTACHMENTS);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -26,7 +26,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.PlanktonBatch;
@@ -252,9 +251,8 @@
{ // File column
addColumnToModel(columnModel,
- AttachmentCellEditor.newEditor(ui,
- AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
- AttachementObjectTypeEnum.SAMPLE),
+ AttachmentCellEditor.newEditor(ui
+ ),
AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
PlanktonBatchTableModel.ATTACHMENTS);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -41,6 +41,19 @@
computedDataColor: {handler.getConfig().getColorComputedWeights()};
}
+#speciesBatchTopPanel {
+ _help: {"tuttihelp.editSpeciesBatch.help"};
+}
+#speciesBatchTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#speciesBatchAttachmentsButton {
+ enabled: {model.getObjectId() != null};
+}
+
#speciesTotalWeightLabel {
text: "tutti.label.catches.speciesTotalWeight";
labelFor: {speciesTotalWeightField};
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,13 +21,13 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='speciesBatchTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<SpeciesBatchUIModel, SpeciesBatchUIHandler>'>
<import>
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.util.TuttiUI
-
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
+ fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
fr.ifremer.tutti.ui.swing.util.editor.LongTextEditorUI
fr.ifremer.tutti.ui.swing.util.editor.TuttiComputedOrNotDataEditor
@@ -35,9 +35,6 @@
jaxx.runtime.swing.editor.NumberEditor
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
-
javax.swing.ListSelectionModel
java.awt.Color
@@ -65,14 +62,20 @@
<SpeciesBatchUIModel id='model'
initializer='getContextValue(SpeciesBatchUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
-
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='speciesTotalSortedWeight'
component='speciesTotalSortedWeightField'/>
</BeanValidator>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editSpeciesBatch.help"'/>
+
+ <JToolBar id='speciesBatchTabToolBar'>
+ <ButtonAttachment id='speciesBatchAttachmentsButton'
+ constructorParams='getHandler().getContext(), getModel()'/>
+ </JToolBar>
+
<LongTextEditorUI id='longTextEditor'/>
<JPopupMenu id='tablePopup'>
@@ -144,7 +147,6 @@
<JPanel layout='{new GridLayout(1,0)}' constraints='BorderLayout.WEST'>
<JButton id='createSpeciesBatchButton'
onActionPerformed='handler.createSpeciesBatch()'/>
- <JButton id='attachmentsButton'/>
</JPanel>
<JPanel id='filterTablePane' constraints='BorderLayout.CENTER'>
<JLabel id='filterSpeciesBatchLabel'/>
@@ -166,7 +168,4 @@
onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
</JScrollPane>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -30,7 +30,6 @@
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -629,9 +628,8 @@
{ // File column
addColumnToModel(columnModel,
- AttachmentCellEditor.newEditor(ui,
- AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
- AttachementObjectTypeEnum.SAMPLE),
+ AttachmentCellEditor.newEditor(ui
+ ),
AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
SpeciesBatchTableModel.ATTACHMENT);
}
@@ -710,6 +708,7 @@
if (log.isInfoEnabled()) {
log.info("Closing: " + ui);
}
+ ui.getSpeciesBatchAttachmentsButton().onCloseUI();
}
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -371,7 +371,9 @@
}
public void setRootBatchId(String rootBatchId) {
+ String oldValue = getObjectId();
this.rootBatchId = rootBatchId;
+ firePropertyChange(PROPERTY_OBJECT_ID, oldValue, getObjectId());
}
public String getRootBatchId() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -28,6 +28,10 @@
bean: {model};
}
+#editProgramTopPanel {
+ _help: {"tuttihelp.editProgram.help"};
+}
+
#form {
border: {BorderFactory.createTitledBorder((String)null)};
}
@@ -35,6 +39,8 @@
#nameLabel {
text: "tutti.label.program.name";
labelFor: {nameField};
+ toolTipText: "tuttihelp.editProgram.field.name.tip";
+ _help: {"tuttihelp.editProgram.field.name.help"};
}
#nameField {
@@ -44,6 +50,8 @@
#commentPane {
border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
+ toolTipText: "tuttihelp.editProgram.field.comment.tip";
+ _help: {"tuttihelp.editProgram.field.comment.help"};
}
#commentField {
@@ -54,6 +62,8 @@
#zoneLabel {
text: "tutti.label.program.zone";
labelFor: {zoneComboBox};
+ toolTipText: "tuttihelp.editProgram.field.zone.tip";
+ _help: {"tuttihelp.editProgram.field.zone.help"};
}
#zoneComboBox {
@@ -65,8 +75,10 @@
#saveButton {
_tuttiAction: {SaveProgramAction.class};
enabled: {model.isModify() && model.isValid()};
+ _help: {"tuttihelp.editProgram.action.save.help"};
}
#cancelButton {
_tuttiAction: {CancelEditProgramAction.class};
+ _help: {"tuttihelp.editProgram.action.cancel.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,24 +21,23 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editProgramTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditProgramUIModel, EditProgramUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Zone
+
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.util.TuttiUI
- fr.ifremer.tutti.ui.swing.TuttiUIContext
jaxx.runtime.swing.editor.bean.BeanComboBox
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
java.awt.Dimension
javax.swing.ListSelectionModel
static org.nuiton.i18n.I18n._
static jaxx.runtime.SwingUtil.getStringValue
-
</import>
<script><![CDATA[
@@ -61,9 +60,10 @@
<EditProgramUIModel id='model'
initializer='getContextValue(EditProgramUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editProgram.help"'/>
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='name' component='nameField'/>
<field name='zone' component='zoneComboBox'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -32,6 +32,10 @@
bean: {model};
}
+#editProtocolTopPanel {
+ _help: {"tuttihelp.editProtocol.help"};
+}
+
#form {
border: {BorderFactory.createTitledBorder((String)null)};
}
@@ -39,6 +43,8 @@
#nameLabel {
text: "tutti.label.protocol.name";
labelFor: {nameField};
+ toolTipText: "tuttihelp.editProtocol.field..tip";
+ _help: {"tuttihelp.editProtocol.field.name.help"};
}
#nameField {
@@ -48,6 +54,8 @@
#commentPane {
border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
+ toolTipText: "tuttihelp.editProtocol.field.comment.tip";
+ _help: {"tuttihelp.editProtocol.field.comment.help"};
}
#commentField {
@@ -68,24 +76,30 @@
#saveButton {
enabled: {model.isModify() && model.isValid()};
_tuttiAction: {SaveProtocolAction.class};
+ _help: {"tuttihelp.editProtocol.action.save.help"};
}
#cancelButton {
_tuttiAction: {CancelEditProtocolAction.class};
+ _help: {"tuttihelp.editProtocol.action.cancel.help"};
}
#speciesComboBox {
showReset: false;
enabled: {!speciesComboBox.isEmpty()};
+ toolTipText: "tuttihelp.editProtocol.field..tip";
+ _help: {"tuttihelp.editProtocol.field.species.help"};
}
#selectOtherSpecies {
_tuttiAction: {SelectOtherSpeciesAction.class};
+ _help: {"tuttihelp.editProtocol.action.selectOtherSpecies.help"};
}
#addSpeciesProtocol {
_tuttiAction: {AddSpeciesProtocolAction.class};
enabled: {speciesComboBox.getSelectedItem() != null};
+ _help: {"tuttihelp.editProtocol.action.addSpeciesProtocol.help"};
}
#tablePopup {
@@ -96,6 +110,7 @@
_tuttiAction: {RemoveSpeciesProtocolAction.class};
enabled: {model.isRemoveSpeciesEnabled()};
mnemonic: R;
+ _help: {"tuttihelp.editProtocol.action.removeSpeciesProtocol.help"};
}
#speciesTable {
@@ -103,44 +118,54 @@
selectionBackground: {null};
selectionForeground: {Color.BLACK};
sortable: false;
+ _help: {"tuttihelp.editProtocol.table.species.help"};
}
#caracteristicPane {
tabPlacement: {JTabbedPane.LEFT};
+ _help: {"tuttihelp.editProtocol.pane.caracteristic.help"};
}
#importSpecies {
_tuttiAction: {ImportProtocolSpeciesAction.class};
+ _help: {"tuttihelp.editProtocol.action.importSpecies.help"};
}
#exportSpecies {
_tuttiAction: {ExportProtocolSpeciesAction.class};
+ _help: {"tuttihelp.editProtocol.action.exportSpecies.help"};
}
#importCaracteristic {
_tuttiAction: {ImportProtocolCaracteristicAction.class};
+ _help: {"tuttihelp.editProtocol.action.importCaracteristic.help"};
}
#exportCaracteristic {
_tuttiAction: {ExportProtocolCaracteristicAction.class};
+ _help: {"tuttihelp.editProtocol.action.exportCaracteristic.help"};
}
#exportAllCaracteristic {
_tuttiAction: {ExportAllCaracteristicAction.class};
+ _help: {"tuttihelp.editProtocol.action.exportAllCaracteristic.help"};
}
#gearUseFeatureList {
property: gearUseFeaturePmfm;
beanType: {Caracteristic.class};
+ _help: {"tuttihelp.editProtocol.list.gearUseFeature.help"};
}
#vesselUseFeatureList {
property: vesselUseFeaturePmfm;
beanType: {Caracteristic.class};
+ _help: {"tuttihelp.editProtocol.list.vesselUseFeature.help"};
}
#lengthClassesList {
property: lengthClassesPmfm;
beanType: {Caracteristic.class};
+ _help: {"tuttihelp.editProtocol.list.lengthClasses.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,19 +21,19 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editProtocolTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditProtocolUIModel, EditProtocolUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Caracteristic
fr.ifremer.tutti.persistence.entities.referential.Species
+
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.util.TuttiUI
- fr.ifremer.tutti.ui.swing.TuttiUIContext
jaxx.runtime.swing.editor.bean.BeanComboBox
jaxx.runtime.swing.editor.bean.BeanDoubleList
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
java.awt.Dimension
java.awt.Color
@@ -68,9 +68,10 @@
<EditProtocolUIModel id='model'
initializer='getContextValue(EditProtocolUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editProtocol.help"'/>
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='name' component='nameField'/>
<field name='comment' component='commentPane'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -10,15 +10,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -38,7 +38,7 @@
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
-import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor;
+import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment;
import fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor;
import jaxx.runtime.JAXXUtil;
import jaxx.runtime.SwingUtil;
@@ -353,8 +353,8 @@
} else if (component instanceof SimpleTimeEditor) {
initTimeEditor((SimpleTimeEditor) component);
- } else if (component instanceof ButtonAttachmentEditor) {
- initButtonAttachmentEditor((ButtonAttachmentEditor) component);
+ } else if (component instanceof ButtonAttachment) {
+ initButtonAttachment((ButtonAttachment) component);
} else if (component instanceof JLabel) {
JLabel jLabel = (JLabel) component;
@@ -393,7 +393,7 @@
}
}
- protected void initButtonAttachmentEditor(ButtonAttachmentEditor component) {
+ protected void initButtonAttachment(ButtonAttachment component) {
component.init();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -26,8 +26,6 @@
*/
import jaxx.runtime.SwingUtil;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
@@ -46,7 +44,7 @@
*/
public class CustomTab extends JPanel {
- private Log log = LogFactory.getLog(CustomTab.class);
+ private static final long serialVersionUID = 1L;
protected AbstractTuttiBeanUIModel model;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionException.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionException.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionException.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -45,7 +45,7 @@
Throwable cause) {
TuttiActionException result;
if (cause instanceof TuttiActionException) {
- result = ((TuttiActionException)cause);
+ result = ((TuttiActionException) cause);
} else {
result = new TuttiActionException(action, cause);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -133,9 +133,6 @@
@Override
public void run() {
try {
- if (log.isInfoEnabled()) {
- log.info("Log to death!");
- }
worker.get();
} catch (ExecutionException e) {
// don't care .
@@ -164,9 +161,9 @@
}
}
- // protected void setMnemonic(int key) {
-// putValue(MNEMONIC_KEY, key);
-// }
+ public void setMnemonic(int key) {
+ putValue(MNEMONIC_KEY, key);
+ }
protected static class TuttiActionSwingWorker<A extends AbstractTuttiAction> extends SwingWorker<Void, String> {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellEditor.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellEditor.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellEditor.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -25,29 +25,25 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
-import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
-import jaxx.runtime.SwingUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
import javax.swing.border.LineBorder;
+import javax.swing.event.CellEditorListener;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
import javax.swing.table.TableCellEditor;
import java.awt.Color;
import java.awt.Component;
-import java.awt.Frame;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
+import java.util.EventObject;
-import static org.nuiton.i18n.I18n._;
-
/**
* To edit attachments from a table cell.
*
@@ -62,90 +58,36 @@
/** Logger. */
private static final Log log = LogFactory.getLog(AttachmentCellEditor.class);
- public static TableCellEditor newEditor(TuttiUI ui,
- AttachmentCellRenderer renderer,
- AttachementObjectTypeEnum objectType) {
+ public static TableCellEditor newEditor(TuttiUI ui) {
- Frame frame = SwingUtil.getParentContainer(ui, Frame.class);
-
- renderer.setBorder(new LineBorder(Color.BLACK));
-
- return new AttachmentCellEditor(frame, renderer, objectType);
+ return new AttachmentCellEditor(ui.getHandler().getContext());
}
- protected final AttachmentCellRenderer component;
-
- protected AttachmentEditor attachmentEditor;
-
protected JTable table;
protected AbstractTuttiTableModel<AbstractTuttiBeanUIModel> tableModel;
- protected ColumnIdentifier<AbstractTuttiBeanUIModel> columnIdentifier;
-
- protected AttachmentModelAware editRow;
-
protected Integer rowIndex;
protected Integer columnIndex;
- protected PropertyChangeListener reloadAttachmentEditorTextListener;
+ protected final ButtonAttachment editorButton;
- public AttachmentCellEditor(Frame frame,
- AttachmentCellRenderer component,
- AttachementObjectTypeEnum objectTypeProperty) {
+ public AttachmentCellEditor(TuttiUIContext context) {
- this.component = component;
-
- reloadAttachmentEditorTextListener = new PropertyChangeListener() {
+ this.editorButton = new ButtonAttachment(context, null);
+ this.editorButton.setBorder(new LineBorder(Color.BLACK));
+ addCellEditorListener(new CellEditorListener() {
@Override
- public void propertyChange(PropertyChangeEvent evt) {
-
- tableModel.fireTableCellUpdated(rowIndex, columnIndex);
-// List<Attachment> attachment = (List<Attachment>) evt.getNewValue();
-// AttachmentCellEditor.this.component.setText(ButtonAttachmentEditor.getButtonText(attachment));
+ public void editingStopped(ChangeEvent e) {
+ editorButton.setSelected(false);
}
- };
- this.attachmentEditor = new AttachmentEditor(frame,
- component,
- objectTypeProperty,
- _("tutti.table.accidental.batch.header.file")) {
-
- private static final long serialVersionUID = 1L;
-
@Override
- protected AttachmentModelAware getBean() {
- return editRow;
+ public void editingCanceled(ChangeEvent e) {
+ editorButton.setSelected(false);
}
-
- @Override
- public void startEdit() {
-
- ((AbstractTuttiBeanUIModel) getBean()).addPropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, reloadAttachmentEditorTextListener);
-
- try {
- super.startEdit();
- int r = rowIndex;
- int c = columnIndex;
-
- // stop edition
- stopCellEditing();
-
- // refresh cell
- tableModel.fireTableCellUpdated(r, c);
-
- // reselect this cell
- AbstractSelectTableAction.doSelectCell(table, r, c);
-
- // focus on table
- table.requestFocus();
- } finally {
-
- ((AbstractTuttiBeanUIModel) getBean()).removePropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, reloadAttachmentEditorTextListener);
- }
- }
- };
+ });
}
@Override
@@ -156,25 +98,32 @@
int column) {
this.table = table;
this.tableModel = (AbstractTuttiTableModel<AbstractTuttiBeanUIModel>) table.getModel();
- columnIdentifier = tableModel.getPropertyName(column);
rowIndex = row;
columnIndex = column;
- editRow = (AttachmentModelAware) tableModel.getEntry(row);
+ AttachmentModelAware model =
+ (AttachmentModelAware) tableModel.getEntry(row);
- return component;
+ editorButton.init(model);
+
+ return editorButton;
}
@Override
+ public boolean shouldSelectCell(EventObject anEvent) {
+ return false;
+ }
+
+ @Override
public Object getCellEditorValue() {
- Preconditions.checkNotNull(editRow, "No editRow found in editor.");
+ AttachmentModelAware model = editorButton.getBean();
+ Preconditions.checkNotNull(model, "No model found in editor.");
- String propertyName = columnIdentifier.getPropertyName();
- Object result = TuttiUIUtil.getProperty(editRow, propertyName);
+ Object result = model.getAttachment();
if (log.isInfoEnabled()) {
- log.info("editor value (" + propertyName + "): " + result);
+ log.info("editor value: " + result);
}
return result;
@@ -184,18 +133,14 @@
public boolean stopCellEditing() {
boolean b = super.stopCellEditing();
if (b) {
- rowIndex = null;
- editRow = null;
- columnIndex = null;
+ editorButton.setBean(null);
}
return b;
}
@Override
public void cancelCellEditing() {
+ editorButton.setBean(null);
super.cancelCellEditing();
- rowIndex = null;
- columnIndex = null;
- editRow = null;
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -29,10 +29,10 @@
import org.apache.commons.collections.CollectionUtils;
import org.nuiton.util.decorator.Decorator;
+import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
-import java.awt.Component;
-import java.util.Collection;
+import java.util.List;
import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.n_;
@@ -46,7 +46,6 @@
*/
public class AttachmentCellRenderer extends DefaultTableCellRenderer {
-
public static final String TEXT_PATTERN = "<html><body>%s</body></html>";
private static final long serialVersionUID = 1L;
@@ -72,18 +71,15 @@
}
@Override
- public Component getTableCellRendererComponent(JTable table,
- Object value,
- boolean isSelected,
- boolean hasFocus,
- int row,
- int column) {
+ public JComponent getTableCellRendererComponent(JTable table,
+ Object value,
+ boolean isSelected,
+ boolean hasFocus,
+ int row,
+ int column) {
-// if (table != null) {
+ List<Attachment> attachments = (List<Attachment>) value;
- Collection<Attachment> attachments = (Collection<Attachment>) value;
-
- String textValue;
String toolTipTextValue;
if (CollectionUtils.isEmpty(attachments)) {
@@ -91,7 +87,7 @@
// use HTML to show the tooltip in italic
toolTipTextValue = "<i>" + _(noneText) + "</i>";
- textValue = null;
+
} else {
StringBuilder sb = new StringBuilder();
@@ -100,14 +96,13 @@
}
// use html to display the tooltip on several lines
toolTipTextValue = sb.substring(5);
- textValue = "(" + attachments.size() + ")";
}
+ String textValue = ButtonAttachment.getButtonText(attachments);
boolean editable = table.isCellEditable(row, column);
toolTipTextValue = String.format(TEXT_PATTERN, toolTipTextValue);
setEnabled(editable);
setText(textValue);
setToolTipText(toolTipTextValue);
-// }
return this;
}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditor.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditor.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditor.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -1,155 +0,0 @@
-package fr.ifremer.tutti.ui.swing.util.attachment;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import com.ezware.oxbow.swingbits.util.Preconditions;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
-import jaxx.runtime.JAXXUtil;
-import jaxx.runtime.swing.ComponentMover;
-import jaxx.runtime.swing.ComponentResizer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.swing.BorderFactory;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import java.awt.Component;
-import java.awt.Frame;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-
-/**
- * Editor of attachment.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0.2
- */
-public abstract class AttachmentEditor extends JDialog {
-
- private static final long serialVersionUID = 1L;
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(AttachmentEditor.class);
-
- protected AttachmentEditorUI editor;
-
- protected JComponent component;
-
- public AttachmentEditor(Frame owner,
- JComponent component,
- AttachementObjectTypeEnum objectType,
- String title) {
- super(owner, true);
-
- Preconditions.checkNotNull(
- component,
- "AttachmentEditor.component can not be null");
- this.component = component;
- this.editor = new AttachmentEditorUI();
- editor.setBorder(BorderFactory.createTitledBorder(title));
- editor.setObjectType(objectType);
- editor.setObjectIdProperty(AttachmentModelAware.PROPERTY_OBJECT_ID);
-
- setUndecorated(true);
- add(editor);
- setResizable(true);
- pack();
-
- ComponentResizer cr = new ComponentResizer();
- cr.registerComponent(this);
- ComponentMover cm = new ComponentMover();
- cm.setDragInsets(cr.getDragInsets());
- cm.registerComponent(this);
-
- addWindowListener(new WindowAdapter() {
-
- @Override
- public void windowClosed(WindowEvent e) {
- Component ui = (Component) e.getSource();
- if (log.isInfoEnabled()) {
- log.info("Destroy ui " + ui);
- }
- JAXXUtil.destroy(ui);
- }
- });
-
- component.addKeyListener(new KeyAdapter() {
- @Override
- public void keyReleased(KeyEvent e) {
- if (e.getKeyCode() == KeyEvent.VK_ENTER ||
- e.getKeyCode() == KeyEvent.VK_SPACE) {
- e.consume();
- if (((JComponent) e.getSource()).isEnabled()) {
- startEdit();
- }
- }
- }
- });
-
- component.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent e) {
- e.consume();
- if (((JComponent) e.getSource()).isEnabled()) {
- startEdit();
- }
- }
- });
- }
-
- protected abstract AttachmentModelAware getBean();
-
- public void startEdit() {
-
- editor.setBean(getBean());
-
- // Computes the location of bottom left corner of the cell
- Component comp = component;
- int x = 0;
- int y = component.getHeight();
- while (comp != null) {
- x += comp.getX();
- y += comp.getY();
- comp = comp.getParent();
- }
-
- pack();
- // if the editor is too big on the right,
- // then align its right side to the right side of the cell
- if (x + getWidth() > getOwner().getX() + getOwner().getWidth()) {
- x = x - getWidth() + component.getWidth();
- }
- setLocation(x, y);
- setVisible(true);
- }
-
- protected JComponent getComponent() {
- return component;
- }
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,6 +21,16 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+
+#attachmentDialog {
+ undecorated: true;
+ alwaysOnTop: true;
+}
+
+#attachmentBody {
+ title: "tutti.title.attachment";
+}
+
#fileLabel {
text: "tutti.label.attachmentEditor.file";
labelFor: {file};
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,23 +21,47 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<Table id='mainPanel'>
+<JDialog id='attachmentDialog' layout='{new BorderLayout()}'>
<import>
- fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel
- fr.ifremer.tutti.persistence.entities.data.Attachment
- fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
+
jaxx.runtime.swing.editor.FileEditor
+ org.jdesktop.swingx.JXTitledPanel
+ javax.swing.JComponent
</import>
+ <script><![CDATA[
+
+public AttachmentEditorUI(TuttiUIContext context) {
+ super(context.getMainUI());
+ setContextValue(context);
+ AttachmentEditorUIHandler handler = new AttachmentEditorUIHandler(context, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+}
+
+protected void $afterCompleteSetup() {
+ getHandler().afterInitUI();
+}
+
+public void openEditor(JComponent component) {
+ handler.openEditor(component);
+}
+
+public void closeEditor() {
+ handler.closeEditor();
+}
+ ]]></script>
+
<!-- bean property where to find the objectId to attach to Attachment (see Attachment#objectId) -->
- <String id='objectIdProperty' javaBean='""'/>
+ <!--<String id='objectIdProperty' javaBean='""'/>-->
<!-- object type of attachments (see Attachment#objectType) -->
- <AttachementObjectTypeEnum id='objectType' javaBean='null'/>
+ <!--<AttachementObjectTypeEnum id='objectType' javaBean='null'/>-->
<!-- bean property linked state -->
- <String id='property' javaBean='""'/>
+ <!--<String id='property' javaBean='""'/>-->
<!-- if true, display the form to add attachments
and the button to remove existing attachments -->
@@ -46,47 +70,54 @@
<!-- bean property -->
<AttachmentModelAware id='bean' javaBean='null'/>
- <AttachmentEditorUIHandler id='handler' constructorParams='this'/>
+ <AttachmentEditorUIHandler id='handler'
+ initializer='getContextValue(AttachmentEditorUIHandler.class)'/>
- <row fill='both'>
- <cell fill='both' weightx='1' columns='3'>
- <VBox id='attachments'></VBox>
- </cell>
- </row>
- <row fill='both'>
- <cell fill='both' weightx='1'>
- <JLabel id='fileLabel'/>
- </cell>
- <cell fill='both' weightx='1'>
- <FileEditor id='file'/>
- </cell>
- <cell fill='both' rows='3'>
- <JButton id='addButton'
- onActionPerformed='handler.addAttachment()'/>
- </cell>
- </row>
- <row fill='both'>
- <cell fill='both' weightx='1'>
- <JLabel id='fileNameLabel'/>
- </cell>
- <cell fill='both' weightx='1'>
- <JTextField id='fileName'/>
- </cell>
- </row>
- <row fill='both' weighty='1'>
- <cell fill='both' weightx='1'>
- <JLabel id='fileCommentLabel'/>
- </cell>
- <cell fill='both' weightx='1'>
- <JScrollPane>
- <JTextArea id='fileComment' rows='3'/>
- </JScrollPane>
- </cell>
- </row>
- <row fill='both'>
- <!-- actions -->
- <cell fill='both' weightx='1' columns='3'>
- <JButton id='closeButton' onActionPerformed='handler.close()'/>
- </cell>
- </row>
-</Table>
\ No newline at end of file
+ <JXTitledPanel id='attachmentBody' constraints='BorderLayout.CENTER'>
+ <JScrollPane id='attachmentBodyScrollPane'>
+ <Table id='mainPanel'>
+
+ <row fill='both'>
+ <cell fill='both' weightx='1' columns='3'>
+ <VBox id='attachments'></VBox>
+ </cell>
+ </row>
+ <row fill='both'>
+ <cell fill='both' weightx='1' columns='3'>
+ <JSeparator/>
+ </cell>
+ </row>
+ <row fill='both'>
+ <cell fill='both' weightx='1'>
+ <JLabel id='fileLabel'/>
+ </cell>
+ <cell fill='both' weightx='1'>
+ <FileEditor id='file'/>
+ </cell>
+ <cell fill='both' rows='3'>
+ <JButton id='addButton'
+ onActionPerformed='handler.addAttachment()'/>
+ </cell>
+ </row>
+ <row fill='both'>
+ <cell fill='both' weightx='1'>
+ <JLabel id='fileNameLabel'/>
+ </cell>
+ <cell fill='both' weightx='1'>
+ <JTextField id='fileName'/>
+ </cell>
+ </row>
+ <row fill='both' weighty='1'>
+ <cell fill='both' weightx='1'>
+ <JLabel id='fileCommentLabel'/>
+ </cell>
+ <cell fill='both' weightx='1'>
+ <JScrollPane>
+ <JTextArea id='fileComment' rows='3'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ </Table>
+ </JScrollPane>
+ </JXTitledPanel>
+</JDialog>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -27,28 +27,36 @@
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.ComponentMover;
+import jaxx.runtime.swing.ComponentResizer;
import jaxx.runtime.swing.HBox;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.ImageIcon;
import javax.swing.JButton;
-import javax.swing.JDialog;
+import javax.swing.JComponent;
import javax.swing.JLabel;
+import javax.swing.JRootPane;
+import javax.swing.JToolBar;
+import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
+import java.awt.Component;
import java.awt.Cursor;
-import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.List;
+import static org.nuiton.i18n.I18n._;
+
/**
* @author kmorin <morin(a)codelutin.com>
* @author tchemit <chemit(a)codelutin.com>
@@ -60,25 +68,118 @@
private static final Log log =
LogFactory.getLog(AttachmentEditorUIHandler.class);
- private final AttachmentEditorUI ui;
+ public static final String CLOSE_DIALOG_ACTION = "closeDialog";
- private final PersistenceService persistenceService;
+ public static final String SHOW_DIALOG_ACTION = "showDialog";
- public AttachmentEditorUIHandler(AttachmentEditorUI ui) {
+ protected final AttachmentEditorUI ui;
+
+ protected final PersistenceService persistenceService;
+
+ protected final TuttiUIContext context;
+
+ public AttachmentEditorUIHandler(TuttiUIContext context,
+ AttachmentEditorUI ui) {
+ this.context = context;
this.ui = ui;
- persistenceService =
- TuttiUIContext.getApplicationContext().getPersistenceService();
+ this.persistenceService = context.getPersistenceService();
+// this.ui.addPropertyChangeListener(new PropertyChangeListener() {
+//
+// @Override
+// public void propertyChange(PropertyChangeEvent evt) {
+// if (log.isInfoEnabled()) {
+// log.info("Init (property " + evt.getPropertyName() + " changed).");
+// }
+// init();
+// }
+// });
+ }
- this.ui.addPropertyChangeListener(new PropertyChangeListener() {
+ protected void beforeInitUI() {
+ }
+ protected void afterInitUI() {
+
+ ui.getFile().setDialogOwner(ui);
+ ui.pack();
+ ui.setResizable(true);
+// ui.setSize(800, 300);
+
+ ComponentResizer cr = new ComponentResizer();
+ cr.registerComponent(ui);
+ ComponentMover cm = new ComponentMover();
+ cm.setDragInsets(cr.getDragInsets());
+ cm.registerComponent(ui);
+
+ JRootPane rootPane = ui.getRootPane();
+
+ KeyStroke shortcutClosePopup = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
+
+ rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
+ shortcutClosePopup, CLOSE_DIALOG_ACTION);
+
+ closeAction = new AbstractAction() {
+ private static final long serialVersionUID = 1L;
+
@Override
- public void propertyChange(PropertyChangeEvent evt) {
- init();
+ public void actionPerformed(ActionEvent e) {
+ ui.dispose();
+ ui.setVisible(false);
}
- });
+ };
+
+ openAction = new AbstractAction() {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ui.setVisible(true);
+ }
+ };
+
+ ImageIcon actionIcon = SwingUtil.createActionIcon("close-dialog");
+ closeAction.putValue(Action.SMALL_ICON, actionIcon);
+ closeAction.putValue(Action.LARGE_ICON_KEY, actionIcon);
+ closeAction.putValue(Action.ACTION_COMMAND_KEY, "close");
+ closeAction.putValue(Action.NAME, "close");
+ closeAction.putValue(Action.SHORT_DESCRIPTION, _("tutti.action.closeAttachment.tip"));
+
+ rootPane.getActionMap().put(CLOSE_DIALOG_ACTION, closeAction);
+ rootPane.getActionMap().put(SHOW_DIALOG_ACTION, openAction);
+
+ JButton closeButton = new JButton(closeAction);
+ closeButton.setText(null);
+ closeButton.setFocusPainted(false);
+ closeButton.setRequestFocusEnabled(false);
+ closeButton.setFocusable(false);
+
+ JToolBar jToolBar = new JToolBar();
+ jToolBar.setOpaque(false);
+ jToolBar.add(closeAction);
+ jToolBar.setBorderPainted(false);
+ jToolBar.setFloatable(false);
+ ui.getAttachmentBody().setRightDecoration(jToolBar);
}
+ protected Action closeAction;
+
+ protected Action openAction;
+
+ public void closeEditor() {
+
+ closeAction.actionPerformed(null);
+ }
+
+ public void openEditor(JComponent component) {
+
+ if (component != null) {
+ place(component);
+ }
+ openAction.actionPerformed(null);
+ }
+
public void init() {
resetFields();
ui.getAttachments().removeAll();
@@ -93,6 +194,51 @@
}
}
+ public void place(JComponent component) {
+ // Computes the location of bottom left corner of the cell
+ Component comp = component;
+ int x = 0;
+ int y = component.getHeight();
+ while (comp != null) {
+ x += comp.getX();
+ y += comp.getY();
+ comp = comp.getParent();
+ }
+
+ ui.pack();
+ // if the editor is too big on the right,
+ // then align its right side to the right side of the cell
+ if (x + ui.getWidth() > ui.getOwner().getX() + ui.getOwner().getWidth()) {
+ x = x - ui.getWidth() + component.getWidth();
+ }
+ ui.setLocation(x, y);
+ }
+
+ public void addAttachment() {
+ AttachmentModelAware bean = ui.getBean();
+ Attachment attachment = new Attachment();
+
+ File file = ui.getFile().getSelectedFile();
+ if (file != null) {
+ String name = ui.getFileName().getText();
+ if (StringUtils.isEmpty(name)) {
+ name = file.getName();
+ }
+ attachment.setObjectType(bean.getObjectType());
+ attachment.setObjectId(Integer.valueOf(bean.getObjectId()));
+ attachment.setName(name);
+ attachment.setComment(ui.getFileComment().getText());
+
+ attachment = persistenceService.createAttachment(attachment, file);
+ bean.addAttachment(attachment);
+
+ resetFields();
+ addAttachment(attachment);
+
+ ui.pack();
+ }
+ }
+
protected void addAttachment(final Attachment attachment) {
final HBox hbox = new HBox();
hbox.setVerticalAlignment(SwingConstants.CENTER);
@@ -110,8 +256,7 @@
ui.getAttachments().remove(hbox);
- JDialog parent = SwingUtil.getParentContainer(ui, JDialog.class);
- parent.pack();
+ ui.pack();
}
});
hbox.add(deleteButton);
@@ -143,42 +288,9 @@
ui.getAttachments().add(hbox);
}
- /** closes the editor */
- public void close() {
- if (log.isInfoEnabled()) {
- log.info("Will close UI " + ui);
- }
- SwingUtil.getParentContainer(ui, Window.class).dispose();
- }
-
- public void addAttachment() {
- AttachmentModelAware bean = ui.getBean();
- Attachment attachment = new Attachment();
-
- File file = ui.getFile().getSelectedFile();
- if (file != null) {
- String name = ui.getFileName().getText();
- if (StringUtils.isEmpty(name)) {
- name = file.getName();
- }
- attachment.setObjectType(ui.getObjectType());
- attachment.setObjectId(Integer.valueOf(String.valueOf(TuttiUIUtil.getProperty(bean, ui.getObjectIdProperty()))));
- attachment.setName(name);
- attachment.setComment(ui.getFileComment().getText());
-
- attachment = persistenceService.createAttachment(attachment, file);
- bean.addAttachment(attachment);
-
- resetFields();
- addAttachment(attachment);
-
- JDialog parent = SwingUtil.getParentContainer(ui, JDialog.class);
- parent.pack();
- }
- }
-
protected void resetFields() {
ui.getFile().setSelectedFile((File) null);
+ ui.getFile().setSelectedFile((String) null);
ui.getFileName().setText("");
ui.getFileComment().setText("");
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,188 @@
+package fr.ifremer.tutti.ui.swing.util.attachment;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import jaxx.runtime.SwingUtil;
+import org.jdesktop.beans.AbstractSerializableBean;
+
+import javax.swing.JToggleButton;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import java.awt.Point;
+import java.awt.event.HierarchyBoundsAdapter;
+import java.awt.event.HierarchyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Button to edit attachments.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.1
+ */
+public class ButtonAttachment extends JToggleButton {
+
+ private static final long serialVersionUID = 1L;
+
+ protected final AttachmentEditorUI popup;
+
+ private transient PropertyChangeListener listenAttachmentsChanged;
+
+ protected Point popupPosition = null;
+
+ protected boolean popupMoving;
+
+ public ButtonAttachment(TuttiUIContext context,
+ AttachmentModelAware model) {
+
+ setIcon(SwingUtil.createActionIcon("edit-attachment"));
+ setToolTipText(_("tutti.action.attachments.tip"));
+
+ popup = new AttachmentEditorUI(context);
+
+// popup.addComponentListener(new ComponentAdapter() {
+//
+// @Override
+// public void componentMoved(ComponentEvent e) {
+// Component component = e.getComponent();
+// if (component.isShowing() && !popupMoving) {
+// popupPosition = component.getLocationOnScreen();
+//
+// if (log.isInfoEnabled()) {
+// log.info("Popup has moved by user, keeping his position: " + popupPosition);
+// }
+// }
+// }
+// });
+
+ popup.addWindowListener(new WindowAdapter() {
+
+ @Override
+ public void windowOpened(WindowEvent e) {
+ setSelected(true);
+ }
+
+ @Override
+ public void windowClosing(WindowEvent e) {
+ setSelected(false);
+ }
+
+ @Override
+ public void windowClosed(WindowEvent e) {
+ setSelected(false);
+ }
+ });
+
+ addChangeListener(new ChangeListener() {
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ if (isSelected()) {
+ popup.openEditor(ButtonAttachment.this);
+ } else {
+ popup.closeEditor();
+ }
+ }
+ });
+
+ addHierarchyBoundsListener(new HierarchyBoundsAdapter() {
+
+ @Override
+ public void ancestorMoved(HierarchyEvent e) {
+ if (popup.isShowing()) {
+
+ // place dialog just under the button
+ Point point = new Point(getLocationOnScreen());
+ point.translate(-popup.getWidth() + getWidth(), getHeight());
+ popupMoving = true;
+ try {
+ popup.setLocation(point);
+ } finally {
+ popupMoving = false;
+ }
+ }
+ }
+ });
+ setBean(model);
+ }
+
+ public static String getButtonText(List<Attachment> attachment) {
+ return _("tutti.action.attachments", attachment.size());
+ }
+
+ public void init() {
+ popup.getHandler().init();
+ }
+
+ public void init(AttachmentModelAware model) {
+ setBean(model);
+ init();
+ }
+
+ public void onCloseUI() {
+ setSelected(false);
+ }
+
+ public AttachmentModelAware getBean() {
+ return popup.getBean();
+ }
+
+ protected void setBean(AttachmentModelAware model) {
+ AttachmentModelAware bean = popup.getBean();
+ if (bean != null) {
+ ((AbstractSerializableBean) bean).removePropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, getListenAttachmentsChanged());
+ }
+ popup.setBean(model);
+
+ if (model != null) {
+
+ ((AbstractSerializableBean) model).addPropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, getListenAttachmentsChanged());
+ List<Attachment> attachment = model.getAttachment();
+ setText(ButtonAttachment.getButtonText(attachment));
+ }
+ }
+
+ protected PropertyChangeListener getListenAttachmentsChanged() {
+ if (listenAttachmentsChanged == null) {
+ listenAttachmentsChanged = new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ List<Attachment> attachment = (List<Attachment>) evt.getNewValue();
+ setText(getButtonText(attachment));
+ if (!popup.isVisible()) {
+ init();
+ }
+ }
+ };
+ }
+ return listenAttachmentsChanged;
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachmentEditor.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachmentEditor.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachmentEditor.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -1,103 +0,0 @@
-package fr.ifremer.tutti.ui.swing.util.attachment;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.entities.data.Attachment;
-import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import jaxx.runtime.SwingUtil;
-import org.jdesktop.beans.AbstractSerializableBean;
-
-import javax.swing.JButton;
-import java.awt.Frame;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.Collections;
-import java.util.List;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * To show attachment editor on a button.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0.2
- */
-public class ButtonAttachmentEditor extends AttachmentEditor {
-
- private static final long serialVersionUID = 1L;
-
- public static String getButtonText(List<Attachment> attachment) {
- return _("tutti.action.attachments", attachment.size());
- }
-
- public static ButtonAttachmentEditor newEditor(TuttiUI ui,
- JButton button) {
-
- Frame frame = SwingUtil.getParentContainer(ui, Frame.class);
-
- return new ButtonAttachmentEditor(frame,
- button,
- (AttachmentModelAware) ui.getModel()
- );
- }
-
- protected final AttachmentModelAware model;
-
- protected ButtonAttachmentEditor(Frame owner,
- JButton component,
- AttachmentModelAware model) {
- super(owner,
- component,
- model.getObjectType(),
- null);
- this.model = model;
- }
-
- @Override
- protected AttachmentModelAware getBean() {
- return model;
- }
-
- protected JButton getComponent() {
- return (JButton) component;
- }
-
- public void init() {
-
- JButton button = getComponent();
- button.setIcon(SwingUtil.createActionIcon("edit-attachment"));
- button.setToolTipText(_("tutti.action.attachments.tip"));
- ((AbstractSerializableBean) model).addPropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- List<Attachment> attachment = (List<Attachment>) evt.getNewValue();
- getComponent().setText(ButtonAttachmentEditor.getButtonText(attachment));
- }
- });
- AttachmentModelAware bean = getBean();
- List<Attachment> attachment = bean == null ? Collections.<Attachment>emptyList() : bean.getAttachment();
- button.setText(ButtonAttachmentEditor.getButtonText(attachment));
- }
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -307,7 +307,8 @@
new HighlightPredicate() {
@Override
public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- return StringUtils.isNotBlank((String) adapter.getValue());
+ String value = (String) adapter.getValue();
+ return StringUtils.isNotBlank(value);
}
}), cellWithValueColor);
table.addHighlighter(commentHighlighter);
@@ -320,7 +321,8 @@
new HighlightPredicate() {
@Override
public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- return CollectionUtils.isNotEmpty((Collection) adapter.getValue());
+ Collection attachments = (Collection) adapter.getValue();
+ return CollectionUtils.isNotEmpty(attachments);
}
}
), cellWithValueColor);
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-09 13:59:14 UTC (rev 567)
@@ -5,7 +5,7 @@
tutti.action.addSpecies.text=...
tutti.action.addSpecies.tip=Sélectionner une autre espèce
tutti.action.addSpeciesProtocol.tip=Ajouter une espèce au protocole
-tutti.action.attachments=Pièces jointes (%s)
+tutti.action.attachments=(%s)
tutti.action.attachments.tip=Pièces jointes
tutti.action.cancel=Annuler
tutti.action.cancel.editCruise=Annuler
@@ -29,6 +29,7 @@
tutti.action.cloneProtocol=Cloner
tutti.action.cloneProtocol.tip=Dupliquer le protocole sélectionné
tutti.action.close=Fermer
+tutti.action.closeAttachment.tip=Fermer la fenêtre des picèes-jointes
tutti.action.closeDb=Fermer
tutti.action.closeDb.tip=Fermer la base de données en cours d'utilisation
tutti.action.computeWeights=Elever les poids
@@ -159,6 +160,7 @@
tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser
tutti.action.selectOtherSpecies.text=...
tutti.action.selectOtherSpecies.tip=Sélectionner une autre espèce
+tutti.action.showHelp.tip=
tutti.action.site=Site
tutti.action.site.tip=Accéder au site du projet Tutti
tutti.action.splitSpeciesBatch=Catégoriser le lot
@@ -391,6 +393,7 @@
tutti.menu.synchronisations.tip=Import/Export
tutti.message.action.running=<html>Action <strong>%s</strong> en cours d'execution...<hr/></html>
tutti.option.cruiseId.description=Identifiant de la dernière campagne utilisée
+tutti.option.help.directory.description=Répertoire des fichiers d'aide
tutti.option.i18n.directory.description=Répertoire des fichiers de traductions
tutti.option.i18n.locale.description=Langue utilisée dans l'application
tutti.option.launch.mode.description=Mode de démarrage de l'application
@@ -487,6 +490,7 @@
tutti.table.species.sampleCategory.header.weight=Poids (kg)
tutti.timeeditor.H=H
tutti.title.about=À propos de Tutti
+tutti.title.attachment=Pièces jointes
tutti.title.choose.dbExportFile=Exporter la base de données
tutti.title.choose.exportTemporaryGearExampleFile=Exporter un exemple de référentiel Engin
tutti.title.choose.exportTemporaryPersonExampleFile=Exporter un exemple de référentiel Personne
@@ -590,3 +594,66 @@
tutti.validator.warning.longitude.outOfBounds=La Latitude doit être comprise entre -180.0 et 180.0
tutti.validator.warning.longitude.second.outOfBounds=La seconde de la longitude doit être comprise entre 0 et 60
tutti.weights.rate.difference.totalAndSorted.description=Pourcentage de différence entre les Poids totaux VRAC triés et les poids totaux VRAC en dessous duquel on demande confirmation sur la saisie.
+tuttihelp.editCruise.action.generateName.tip=
+tuttihelp.editCruise.beginDateField.tip=
+tuttihelp.editCruise.commentField.tip=
+tuttihelp.editCruise.countryComboBox.tip=
+tuttihelp.editCruise.endDateField.tip=
+tuttihelp.editCruise.field.beginDate.tip=
+tuttihelp.editCruise.field.comment.tip=
+tuttihelp.editCruise.field.country.tip=
+tuttihelp.editCruise.field.endDate.tip=
+tuttihelp.editCruise.field.multirigNumber.tip=
+tuttihelp.editCruise.field.name.tip=
+tuttihelp.editCruise.field.program.tip=
+tuttihelp.editCruise.field.surveyPart.tip=
+tuttihelp.editCruise.field.year.tip=
+tuttihelp.editCruise.filterVessel.tip=
+tuttihelp.editCruise.gearList.tip=
+tuttihelp.editCruise.generateNameAction.tip=
+tuttihelp.editCruise.headOfMissionList.tip=
+tuttihelp.editCruise.headOfSortRoomList.tip=
+tuttihelp.editCruise.list.gear.tip=
+tuttihelp.editCruise.list.headOfMission.tip=
+tuttihelp.editCruise.list.headOfSortRoom.tip=
+tuttihelp.editCruise.list.vessel.tip=
+tuttihelp.editCruise.multirigNumberField.tip=
+tuttihelp.editCruise.nameField.tip=
+tuttihelp.editCruise.programComboBox.tip=
+tuttihelp.editCruise.surveyPartField.tip=
+tuttihelp.editCruise.vesselList.tip=
+tuttihelp.editCruise.yearField.tip=
+tuttihelp.editFishingOperation.action.attachments.tip=
+tuttihelp.editFishingOperation.action.cancel.tip=
+tuttihelp.editFishingOperation.action.importCasino.tip=
+tuttihelp.editFishingOperation.action.save.tip=
+tuttihelp.editFishingOperation.field..tip=
+tuttihelp.editFishingOperation.field.comment.tip=
+tuttihelp.editFishingOperation.field.duration.tip=
+tuttihelp.editFishingOperation.field.fishingOperationNumber.tip=
+tuttihelp.editFishingOperation.field.fishingOperationRectiligne.tip=
+tuttihelp.editFishingOperation.field.fishingOperationValid.tip=
+tuttihelp.editFishingOperation.field.gear.tip=
+tuttihelp.editFishingOperation.field.gearDate.tip=
+tuttihelp.editFishingOperation.field.gearLatitude.tip=
+tuttihelp.editFishingOperation.field.gearLongitude.tip=
+tuttihelp.editFishingOperation.field.gearShootingEnd.tip=
+tuttihelp.editFishingOperation.field.gearShootingEndLatitude.tip=
+tuttihelp.editFishingOperation.field.gearShootingEndLongitude.tip=
+tuttihelp.editFishingOperation.field.gearShootingStart.tip=
+tuttihelp.editFishingOperation.field.gearShootingStartLatitude.tip=
+tuttihelp.editFishingOperation.field.gearTime.tip=
+tuttihelp.editFishingOperation.field.location.tip=
+tuttihelp.editFishingOperation.field.multirigAggregation.tip=
+tuttihelp.editFishingOperation.field.stationNumber.tip=
+tuttihelp.editFishingOperation.field.strata.tip=
+tuttihelp.editFishingOperation.field.subStrata.tip=
+tuttihelp.editFishingOperation.field.trawlDistance.tip=
+tuttihelp.editFishingOperation.field.vessel.tip=
+tuttihelp.editFishingOperation.gearShootingStartLongitude.tip=
+tuttihelp.editFishingOperation.list.recorderPerson.tip=
+tuttihelp.editProgram.field.comment.tip=
+tuttihelp.editProgram.field.name.tip=
+tuttihelp.editProgram.field.zone.tip=
+tuttihelp.editProtocol.field..tip=
+tuttihelp.editProtocol.field.comment.tip=
Added: trunk/tutti-ui-swing/src/main/resources/icons/action-close-dialog.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-close-dialog.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r566 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti tutti-service/src/main/java/fr/ifremer/tutti/service/config
by tchemit@users.forge.codelutin.com 09 Mar '13
by tchemit@users.forge.codelutin.com 09 Mar '13
09 Mar '13
Author: tchemit
Date: 2013-03-09 08:57:31 +0100 (Sat, 09 Mar 2013)
New Revision: 566
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/566
Log:
add more methods to TuttiIOUtil
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java 2013-03-08 15:03:08 UTC (rev 565)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java 2013-03-09 07:57:31 UTC (rev 566)
@@ -70,6 +70,29 @@
}
}
+ public static void cleanDirectory(File dir, String errorMessage) {
+ try {
+ FileUtils.cleanDirectory(dir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void deleteDirectory(File dir, String errorMessage) {
+ try {
+ FileUtils.deleteDirectory(dir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+ public static void forceDeleteOnExit(File dir, String errorMessage) {
+ try {
+ FileUtils.forceDeleteOnExit(dir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
public static void copyDirectory(File source, File target, String errorMessage) {
try {
FileUtils.copyDirectory(source, target);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java 2013-03-08 15:03:08 UTC (rev 565)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java 2013-03-09 07:57:31 UTC (rev 566)
@@ -24,13 +24,12 @@
* #L%
*/
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
-import org.apache.commons.io.FileUtils;
import org.nuiton.util.Version;
import org.nuiton.util.config.ApplicationConfig;
import java.io.File;
-import java.io.IOException;
import java.net.URL;
/**
@@ -103,16 +102,26 @@
}
public char getCsvSeparator() {
- return applicationConfig.getOption(TuttiServiceConfigOption.CSV_SEPARATOR.getKey()).charAt(0);
+ return applicationConfig.getOption(
+ TuttiServiceConfigOption.CSV_SEPARATOR.getKey()).charAt(0);
}
- public void prepareDirectories() throws IOException {
+ public void prepareDirectories() {
- FileUtils.forceMkdir(getDataDirectory());
+ File dataDirectory = getDataDirectory();
+ TuttiIOUtil.forceMkdir(
+ dataDirectory,
+ "Could not create data directory " + dataDirectory);
+
File tmpDirectory = getTmpDirectory();
if (tmpDirectory.exists()) {
- FileUtils.deleteDirectory(tmpDirectory);
+
+ TuttiIOUtil.deleteDirectory(
+ tmpDirectory,
+ "Could not delete temp directory " + tmpDirectory);
}
- FileUtils.forceMkdir(tmpDirectory);
+ TuttiIOUtil.forceMkdir(
+ tmpDirectory,
+ "Could not create temp directory " + tmpDirectory);
}
}
1
0
r565 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches
by kmorin@users.forge.codelutin.com 08 Mar '13
by kmorin@users.forge.codelutin.com 08 Mar '13
08 Mar '13
Author: kmorin
Date: 2013-03-08 16:03:08 +0100 (Fri, 08 Mar 2013)
New Revision: 565
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/565
Log:
debug NPE
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-08 14:37:49 UTC (rev 564)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-08 15:03:08 UTC (rev 565)
@@ -72,7 +72,10 @@
computeSpeciesBatches();
if (errorMessage == null) {
- Float speciesTotalSortedWeight = model.getSpeciesTotalSortedComputedWeight();
+ Float speciesTotalSortedWeight = model.getSpeciesTotalSortedWeight();
+ if (speciesTotalSortedWeight == null) {
+ speciesTotalSortedWeight = model.getSpeciesTotalSortedComputedWeight();
+ }
Float speciesTotalUnsortedWeight = model.getSpeciesTotalUnsortedComputedWeight();
model.setCatchTotalSortedComputedWeight(speciesTotalSortedWeight);
1
0
r564 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches: . species
by kmorin@users.forge.codelutin.com 08 Mar '13
by kmorin@users.forge.codelutin.com 08 Mar '13
08 Mar '13
Author: kmorin
Date: 2013-03-08 15:37:49 +0100 (Fri, 08 Mar 2013)
New Revision: 564
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/564
Log:
fixes #2093 [CAPTURE] - Comportement de l'onglet "R?\195?\169sum?\195?\169" ?\195?\160 l'?\195?\169l?\195?\169vation des poids
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-08 14:37:49 UTC (rev 564)
@@ -153,14 +153,14 @@
if (inertWeight != null) {
totalSortedWeight += inertWeight.floatValue();
} else {
- model.setSpeciesTotalInertWeight(0f);
+ model.setSpeciesTotalInertComputedWeight(0f);
}
Number livingNotItemizedWeight = model.getSpeciesTotalLivingNotItemizedWeight();
if (livingNotItemizedWeight != null) {
totalSortedWeight += livingNotItemizedWeight.floatValue();
} else {
- model.setSpeciesTotalLivingNotItemizedWeight(0f);
+ model.setSpeciesTotalLivingNotItemizedComputedWeight(0f);
}
model.setSpeciesTotalSampleSortedComputedWeight(totalSortedWeight);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-08 14:37:49 UTC (rev 564)
@@ -138,7 +138,9 @@
EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT,
EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SORTED_COMPUTED_WEIGHT,
EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT,
- EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_INERT_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_COMPUTED_WEIGHT
));
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-08 14:37:49 UTC (rev 564)
@@ -78,8 +78,12 @@
public static final String PROPERTY_SPECIES_TOTAL_INERT_WEIGHT = "speciesTotalInertWeight";
+ public static final String PROPERTY_SPECIES_TOTAL_INERT_COMPUTED_WEIGHT = "speciesTotalInerComputedtWeight";
+
public static final String PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT = "speciesTotalLivingNotItemizedWeight";
+ public static final String PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_COMPUTED_WEIGHT = "speciesTotalLivingNotItemizedComputedWeight";
+
public static final String PROPERTY_BENTHOS_TOTAL_WEIGHT = "benthosTotalWeight";
public static final String PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT = "benthosTotalSortedWeight";
@@ -110,9 +114,9 @@
protected Float speciesTotalSampleSortedComputedWeight;
- protected Float speciesTotalInertWeight = 0f;
+ protected TuttiComputedOrNotData<Float> speciesTotalInertComputedOrNotWeight = new TuttiComputedOrNotData<Float>();
- protected Float speciesTotalLivingNotItemizedWeight = 0f;
+ protected TuttiComputedOrNotData<Float> speciesTotalLivingNotItemizedComputedOrNotWeight = new TuttiComputedOrNotData<Float>();
protected Float benthosTotalWeight;
@@ -346,26 +350,54 @@
firePropertyChange(PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT, oldValue, speciesTotalUnsortedComputedWeight);
}
+ public TuttiComputedOrNotData<Float> getSpeciesTotalInertComputedOrNotWeight() {
+ return speciesTotalInertComputedOrNotWeight;
+ }
+
public Float getSpeciesTotalInertWeight() {
- return speciesTotalInertWeight;
+ return speciesTotalInertComputedOrNotWeight.getData();
}
public void setSpeciesTotalInertWeight(Float speciesTotalInertWeight) {
Object oldValue = getSpeciesTotalInertWeight();
- this.speciesTotalInertWeight = speciesTotalInertWeight;
+ this.speciesTotalInertComputedOrNotWeight.setData(speciesTotalInertWeight);
firePropertyChange(PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, oldValue, speciesTotalInertWeight);
}
+ public Float getSpeciesTotalInertComputedWeight() {
+ return speciesTotalInertComputedOrNotWeight.getComputedData();
+ }
+
+ public void setSpeciesTotalInertComputedWeight(Float speciesTotalInertComputedWeight) {
+ Object oldValue = getSpeciesTotalInertComputedWeight();
+ this.speciesTotalInertComputedOrNotWeight.setComputedData(speciesTotalInertComputedWeight);
+ firePropertyChange(PROPERTY_SPECIES_TOTAL_INERT_COMPUTED_WEIGHT, oldValue, speciesTotalInertComputedWeight);
+ }
+
+ public TuttiComputedOrNotData<Float> getSpeciesTotalLivingNotItemizedComputedOrNotWeight() {
+ return speciesTotalLivingNotItemizedComputedOrNotWeight;
+ }
+
public Float getSpeciesTotalLivingNotItemizedWeight() {
- return speciesTotalLivingNotItemizedWeight;
+ return speciesTotalLivingNotItemizedComputedOrNotWeight.getData();
}
public void setSpeciesTotalLivingNotItemizedWeight(Float speciesTotalLivingNotItemizedWeight) {
- Object oldValue = getSpeciesTotalLivingNotItemizedWeight();
- this.speciesTotalLivingNotItemizedWeight = speciesTotalLivingNotItemizedWeight;
+ Object oldValue = getSpeciesTotalLivingNotItemizedComputedWeight();
+ this.speciesTotalLivingNotItemizedComputedOrNotWeight.setData(speciesTotalLivingNotItemizedWeight);
firePropertyChange(PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, oldValue, speciesTotalLivingNotItemizedWeight);
}
+ public Float getSpeciesTotalLivingNotItemizedComputedWeight() {
+ return speciesTotalLivingNotItemizedComputedOrNotWeight.getComputedData();
+ }
+
+ public void setSpeciesTotalLivingNotItemizedComputedWeight(Float speciesTotalLivingNotItemizedComputedWeight) {
+ Object oldValue = getSpeciesTotalLivingNotItemizedComputedWeight();
+ this.speciesTotalLivingNotItemizedComputedOrNotWeight.setComputedData(speciesTotalLivingNotItemizedComputedWeight);
+ firePropertyChange(PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_COMPUTED_WEIGHT, oldValue, speciesTotalLivingNotItemizedComputedWeight);
+ }
+
public Float getBenthosTotalWeight() {
return benthosTotalWeight;
}
@@ -476,6 +508,8 @@
}
public void reset() {
+ setSpeciesTotalInertComputedWeight(null);
+ setSpeciesTotalLivingNotItemizedComputedWeight(null);
setSpeciesTotalSampleSortedComputedWeight(null);
setSpeciesTotalSortedComputedWeight(null);
setSpeciesTotalUnsortedComputedWeight(null);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-03-08 14:37:49 UTC (rev 564)
@@ -87,9 +87,8 @@
}
#speciesTotalInertWeightField {
- property: speciesTotalInertWeight;
+ bean: {model.getSpeciesTotalInertComputedOrNotWeight()};
model: {model.getSpeciesTotalInertWeight()};
- showReset: false;
}
#speciesTotalLivingNotItemizedWeightLabel {
@@ -98,9 +97,8 @@
}
#speciesTotalLivingNotItemizedWeightField {
- property: speciesTotalLivingNotItemizedWeight;
+ bean: {model.getSpeciesTotalLivingNotItemizedComputedOrNotWeight()};
model: {model.getSpeciesTotalLivingNotItemizedWeight()};
- showReset: false;
}
#tablePopup {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-03-08 14:37:49 UTC (rev 564)
@@ -125,15 +125,15 @@
<JLabel id='speciesTotalInertWeightLabel'/>
</cell>
<cell>
- <NumberEditor id='speciesTotalInertWeightField'
- constructorParams='this'/>
+ <TuttiComputedOrNotDataEditor id='speciesTotalInertWeightField'
+ constructorParams='this'/>
</cell>
<cell>
<JLabel id='speciesTotalLivingNotItemizedWeightLabel'/>
</cell>
<cell>
- <NumberEditor id='speciesTotalLivingNotItemizedWeightField'
- constructorParams='this'/>
+ <TuttiComputedOrNotDataEditor id='speciesTotalLivingNotItemizedWeightField'
+ constructorParams='this'/>
</cell>
</row>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-08 14:37:49 UTC (rev 564)
@@ -203,6 +203,10 @@
catchesUIModel.setSpeciesTotalSampleSortedComputedWeight(speciesTotalSampleSortedComputedWeight);
}
+ public TuttiComputedOrNotData<Float> getSpeciesTotalInertComputedOrNotWeight() {
+ return catchesUIModel.getSpeciesTotalInertComputedOrNotWeight();
+ }
+
public Float getSpeciesTotalInertWeight() {
return catchesUIModel.getSpeciesTotalInertWeight();
}
@@ -211,6 +215,18 @@
catchesUIModel.setSpeciesTotalInertWeight(speciesTotalInertWeight);
}
+ public Float getSpeciesTotalInertComputedWeight() {
+ return catchesUIModel.getSpeciesTotalInertComputedWeight();
+ }
+
+ public void setSpeciesTotalInertComputedWeight(Float speciesTotalInertComputedWeight) {
+ catchesUIModel.setSpeciesTotalInertComputedWeight(speciesTotalInertComputedWeight);
+ }
+
+ public TuttiComputedOrNotData<Float> getSpeciesTotalLivingNotItemizedComputedOrNotWeight() {
+ return catchesUIModel.getSpeciesTotalLivingNotItemizedComputedOrNotWeight();
+ }
+
public Float getSpeciesTotalLivingNotItemizedWeight() {
return catchesUIModel.getSpeciesTotalLivingNotItemizedWeight();
}
@@ -219,6 +235,14 @@
catchesUIModel.setSpeciesTotalLivingNotItemizedWeight(speciesTotalLivingNotItemizedWeight);
}
+ public Float getSpeciesTotalLivingNotItemizedComputedWeight() {
+ return catchesUIModel.getSpeciesTotalLivingNotItemizedComputedWeight();
+ }
+
+ public void setSpeciesTotalLivingNotItemizedComputedWeight(Float speciesTotalLivingNotItemizedComputedWeight) {
+ catchesUIModel.setSpeciesTotalLivingNotItemizedComputedWeight(speciesTotalLivingNotItemizedComputedWeight);
+ }
+
public List<SampleCategoryType> getSamplingOrder() {
return samplingOrder;
}
1
0