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
April 2013
- 5 participants
- 210 discussions
r811 - in trunk: tutti-service/src/main/java/fr/ifremer/tutti/service/catches tutti-service/src/main/resources/i18n tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches
by kmorin@users.forge.codelutin.com 17 Apr '13
by kmorin@users.forge.codelutin.com 17 Apr '13
17 Apr '13
Author: kmorin
Date: 2013-04-17 11:16:32 +0200 (Wed, 17 Apr 2013)
New Revision: 811
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/811
Log:
improve weight computing
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-16 19:06:17 UTC (rev 810)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-17 09:16:32 UTC (rev 811)
@@ -373,11 +373,14 @@
}
}
+ private int currentSpeciesRowIndex;
+
public BatchContainer<SpeciesBatch> getComputedSpeciesBatches(FishingOperation operation) {
BatchContainer<SpeciesBatch> rootSpeciesBatch =
persistenceService.getRootSpeciesBatch(operation.getId());
+ currentSpeciesRowIndex = 0;
if (rootSpeciesBatch != null) {
List<SpeciesBatch> roots = rootSpeciesBatch.getChildren();
@@ -389,33 +392,9 @@
return rootSpeciesBatch;
}
- public BatchContainer<BenthosBatch> getComputedBenthosBatches(FishingOperation operation) {
-
- BatchContainer<BenthosBatch> rootBenthosBatch =
- persistenceService.getRootBenthosBatch(operation.getId());
-
- currentBenthosRowIndex = 0;
- if (rootBenthosBatch != null) {
- List<BenthosBatch> roots = rootBenthosBatch.getChildren();
-
- for (BenthosBatch batch : roots) {
- computeBenthosBatch(batch);
- }
- }
-
- return rootBenthosBatch;
- }
-
- public BatchContainer<MarineLitterBatch> getComputedMarineLitterBatches(FishingOperation operation) {
-
- BatchContainer<MarineLitterBatch> rootMarineLitterBatch =
- persistenceService.getRootMarineLitterBatch(operation.getId());
-
- return rootMarineLitterBatch;
- }
-
protected Float computeSpeciesBatch(SpeciesBatch batch) {
Float result = null;
+ int thisIndex = currentSpeciesRowIndex++;
Float categoryWeight = batch.getSampleCategoryWeight();
Float rowWeight = batch.getWeight();
@@ -444,7 +423,10 @@
batch.setSampleCategoryComputedWeight(sum);
} else if (categoryWeight < sum) {
- throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight"));
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight"),
+ TuttiWeightComputingException.CatchType.SPECIES,
+ thisIndex);
} else {
sum = categoryWeight;
@@ -491,13 +473,19 @@
// if the weight of the frequencies is different from the category
// weight, then set the weight of the sample
if (frequencyWeight > categoryWeight) {
- throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight"));
+ throw new TuttiWeightComputingException(_
+ ("tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight"),
+ TuttiWeightComputingException.CatchType.SPECIES,
+ thisIndex);
} else if (rowWeight == null) {
batch.setComputedWeight(frequencyWeight);
} else if (!rowWeight.equals(frequencyWeight)) {
- throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency"));
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency"),
+ TuttiWeightComputingException.CatchType.SPECIES,
+ thisIndex);
}
result = categoryWeight;
@@ -510,7 +498,10 @@
}
}
if (result == null && batch.getParentBatch() == null) {
- throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.noWeight"));
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.species.error.noWeight"),
+ TuttiWeightComputingException.CatchType.SPECIES,
+ thisIndex);
}
return result;
@@ -518,6 +509,23 @@
private int currentBenthosRowIndex;
+ public BatchContainer<BenthosBatch> getComputedBenthosBatches(FishingOperation operation) {
+
+ BatchContainer<BenthosBatch> rootBenthosBatch =
+ persistenceService.getRootBenthosBatch(operation.getId());
+
+ currentBenthosRowIndex = 0;
+ if (rootBenthosBatch != null) {
+ List<BenthosBatch> roots = rootBenthosBatch.getChildren();
+
+ for (BenthosBatch batch : roots) {
+ computeBenthosBatch(batch);
+ }
+ }
+
+ return rootBenthosBatch;
+ }
+
protected Float computeBenthosBatch(BenthosBatch batch) {
Float result = null;
int thisIndex = currentBenthosRowIndex++;
@@ -634,4 +642,25 @@
return result;
}
+
+ public BatchContainer<MarineLitterBatch> getComputedMarineLitterBatches(FishingOperation operation) {
+
+ BatchContainer<MarineLitterBatch> rootMarineLitterBatch =
+ persistenceService.getRootMarineLitterBatch(operation.getId());
+
+ if (rootMarineLitterBatch != null) {
+ List<MarineLitterBatch> children = rootMarineLitterBatch.getChildren();
+ for (int i = 0 ; i < children.size() ; i++) {
+ MarineLitterBatch batch = children.get(i);
+ if (batch.getWeight() == null) {
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.marineLitter.error.noWeight"),
+ TuttiWeightComputingException.CatchType.MARINE_LITTER,
+ i);
+ }
+ }
+ }
+
+ return rootMarineLitterBatch;
+ }
}
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-16 19:06:17 UTC (rev 810)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-17 09:16:32 UTC (rev 811)
@@ -75,6 +75,7 @@
tutti.service.operations.computeWeights.error.incoherentSpeciesTotalSorted=
tutti.service.operations.computeWeights.error.incoherentTotal=
tutti.service.operations.computeWeights.marineLitter.error.incoherentTotal=
+tutti.service.operations.computeWeights.marineLitter.error.noWeight=
tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight=
tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight=
tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-16 19:06:17 UTC (rev 810)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-17 09:16:32 UTC (rev 811)
@@ -58,6 +58,7 @@
tutti.service.operations.computeWeights.error.incoherentRowWeightCategory=
tutti.service.operations.computeWeights.error.incoherentTotal=Le poids total de la capture ne correspond pas à la somme des poids totaux Vrac, Hors Vrac et non triés
tutti.service.operations.computeWeights.marineLitter.error.incoherentTotal=Le poids total des macro-déchets est inférieur à la somme des poids des macro-déchets saisis
+tutti.service.operations.computeWeights.marineLitter.error.noWeight=
tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight=Le poids total des mensurations d'un lot des espèces est supérieur au poids de la catégorie
tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight=Le poids de la catégorie d'un lot des espèces est différent de la somme des poids de ses sous-catégories
tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency=Le poids total des mensurations d'un lot des espèces est différent du poids du sous-échantillon
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-04-16 19:06:17 UTC (rev 810)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-04-17 09:16:32 UTC (rev 811)
@@ -62,33 +62,43 @@
EditCatchesUIModel model = getModel();
- BatchContainer<SpeciesBatch> computedSpeciesBatches =
- tuttiWeightComputingService.getComputedSpeciesBatches(model.getFishingOperation());
- Float totalSpeciesSortedWeight = computeSpeciesBatches(computedSpeciesBatches);
+ BatchContainer<SpeciesBatch> computedSpeciesBatches;
+ Float totalSpeciesSortedWeight;
+ try {
+ computedSpeciesBatches =
+ tuttiWeightComputingService.getComputedSpeciesBatches(model.getFishingOperation());
+ totalSpeciesSortedWeight = computeSpeciesBatches(computedSpeciesBatches);
+ } catch (TuttiWeightComputingException e) {
+ getUI().getTabPane().setSelectedIndex(1);
+ AbstractSelectTableAction.doSelectCell(getUI().getSpeciesTabContent().getTable(), e.getIndex(), 1);
+ throw e;
+ }
+
BatchContainer<BenthosBatch> computedBenthosBatches;
Float totalBenthosSortedWeight;
- Integer rowIndex = null;
try {
computedBenthosBatches =
tuttiWeightComputingService.getComputedBenthosBatches(model.getFishingOperation());
totalBenthosSortedWeight = computeBenthosBatches(computedBenthosBatches);
} catch (TuttiWeightComputingException e) {
- rowIndex = e.getIndex();
+ getUI().getTabPane().setSelectedIndex(2);
+ AbstractSelectTableAction.doSelectCell(getUI().getBenthosTabContent().getTable(), e.getIndex(), 1);
throw e;
-
- } finally {
- if (rowIndex != null) {
- getUI().getTabPane().setSelectedIndex(2);
- AbstractSelectTableAction.doSelectCell(getUI().getBenthosTabContent().getTable(), rowIndex, 1);
- }
}
- BatchContainer<MarineLitterBatch> computedMarineLitterBatches =
+ BatchContainer<MarineLitterBatch> computedMarineLitterBatches;
+ try {
+ computedMarineLitterBatches =
tuttiWeightComputingService.getComputedMarineLitterBatches(model.getFishingOperation());
- Float totalMarineLitterWeight = computeMarineLitterBatches(computedMarineLitterBatches);
+ } catch (TuttiWeightComputingException e) {
+ getUI().getTabPane().setSelectedIndex(3);
+ AbstractSelectTableAction.doSelectCell(getUI().getMarineLitterTabContent().getTable(), e.getIndex(), 3);
+ throw e;
+ }
+
Float rate = getConfig().getDifferenceRateBetweenSortedAndTotalWeights();
if (model.getSpeciesTotalSortedWeight() != null
&& model.getSpeciesTotalSortedWeight() >= totalSpeciesSortedWeight
@@ -175,12 +185,7 @@
if (weight == null) {
weight = row.getSortedUnsortedCategoryComputedWeight();
}
- if (weight == null) {
- getUI().getTabPane().setSelectedIndex(1);
- AbstractSelectTableAction.doSelectCell(getUI().getSpeciesTabContent().getTable(), rowIndex, 1);
- throw new TuttiBusinessException(_("tutti.editCatchBatch.action.computeWeights.error.noWeight"));
-
- } else if (SortedUnsortedEnum.SORTED.matchValue(
+ if (SortedUnsortedEnum.SORTED.matchValue(
row.getSortedUnsortedCategoryValue())) {
totalSortedWeight += weight;
}
@@ -206,7 +211,8 @@
if (weight == null) {
weight = row.getSortedUnsortedCategoryComputedWeight();
- } else if (SortedUnsortedEnum.SORTED.matchValue(
+ }
+ if (SortedUnsortedEnum.SORTED.matchValue(
row.getSortedUnsortedCategoryValue())) {
totalSortedWeight += weight;
}
@@ -219,27 +225,4 @@
return totalSortedWeight;
}
-
- protected Float computeMarineLitterBatches(BatchContainer<MarineLitterBatch> computedMarineLitterBatches) {
- Float totalWeight = 0f;
-
- List<MarineLitterBatch> children = computedMarineLitterBatches.getChildren();
- for (int i = 0; i < children.size(); i++) {
- MarineLitterBatch batch = children.get(i);
- Float weight = batch.getWeight();
- if (weight == null) {
- if (getModel().getMarineLitterTotalWeight() != null) {
- return null;
- }
- getUI().getTabPane().setSelectedIndex(3);
- AbstractSelectTableAction.doSelectCell(getUI().getMarineLitterTabContent().getTable(), i, 1);
- throw new TuttiBusinessException(_("tutti.editCatchBatch.action.computeWeights.error.noWeight"));
-
- } else {
- totalWeight += weight;
- }
- }
-
- return totalWeight;
- }
}
1
0
r810 - in trunk: . tutti-persistence tutti-persistence/src/license tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro tutti-persistence/src/main/resources tutti-persistence/src/test/java/fr/ifremer/tutti/persistence tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service tutti-service/src/license tutti-ui-swing/src/license
by tchemit@users.forge.codelutin.com 16 Apr '13
by tchemit@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: tchemit
Date: 2013-04-16 21:06:17 +0200 (Tue, 16 Apr 2013)
New Revision: 810
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/810
Log:
- use last snapshot of adagio
- refs #2281: [TECH] - R?\195?\169percution des nouveaut?\195?\169s du mod?\195?\168le adagio
- utilisation derni?\195?\168re base (mais les tests sont presques tous ko par manque de donn?\195?\169es, il faut faire des vraies fixtures)
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java
Modified:
trunk/pom.xml
trunk/tutti-persistence/pom.xml
trunk/tutti-persistence/src/license/THIRD-PARTY.properties
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImpl.java
trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
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/BenthosBatchPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceReadTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceReadTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceReadTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java
trunk/tutti-service/src/license/THIRD-PARTY.properties
trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/pom.xml 2013-04-16 19:06:17 UTC (rev 810)
@@ -138,7 +138,7 @@
<slf4jVersion>1.7.2</slf4jVersion>
- <adagioVersion>3.3.4</adagioVersion>
+ <adagioVersion>3.3.5-SNAPSHOT</adagioVersion>
<msaccessImporterVersion>1.4.1</msaccessImporterVersion>
@@ -322,9 +322,8 @@
<dependency>
<groupId>fr.ifremer.adagio</groupId>
- <artifactId>adagio-core</artifactId>
+ <artifactId>adagio-core-allegro</artifactId>
<version>${adagioVersion}</version>
- <classifier>allegro</classifier>
</dependency>
<!-- Logging -->
Modified: trunk/tutti-persistence/pom.xml
===================================================================
--- trunk/tutti-persistence/pom.xml 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/pom.xml 2013-04-16 19:06:17 UTC (rev 810)
@@ -40,8 +40,7 @@
<dependency>
<groupId>fr.ifremer.adagio</groupId>
- <artifactId>adagio-core</artifactId>
- <classifier>allegro</classifier>
+ <artifactId>adagio-core-allegro</artifactId>
</dependency>
<!-- commons -->
Modified: trunk/tutti-persistence/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-persistence/src/license/THIRD-PARTY.properties 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/license/THIRD-PARTY.properties 2013-04-16 19:06:17 UTC (rev 810)
@@ -1,14 +1,20 @@
# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
#-------------------------------------------------------------------------------
# Already used licenses in project :
+# - Affero General Public License (AGPL)
# - BSD License
+# - BSD style
# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
# - Common Public License Version 1.0
+# - Eclipse Public License - v 1.0
+# - HSQLDB License
# - Indiana University Extreme! Lab Software License, vesion 1.1.1
+# - Lesser General Public License (LGPL)
# - Lesser General Public License (LGPL) v 3.0
# - Lesser General Public License (LPGL)
# - Lesser General Public License (LPGL) v 2.1
# - MIT License
+# - MPL 1.1
# - New BSD License
# - Public Domain
# - The Apache Software License, Version 2.0
@@ -17,8 +23,29 @@
# Please fill the missing licenses for dependencies :
#
#
-#Fri Feb 01 01:24:24 CET 2013
+#Tue Apr 16 20:54:34 CEST 2013
antlr--antlr--2.7.6=BSD License
+asm--asm--3.1=http://asm.ow2.org/license.html
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
dom4j--dom4j--1.6.1=BSD License
-javax.transaction--jta--1.1=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
\ No newline at end of file
+javax.transaction--jta--1.1=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+org.andromda--andromda-core--3.3.1=BSD License
+org.andromda--andromda-utils--3.3.1=BSD License
+org.andromda.cartridges--andromda-hibernate-cartridge--3.3.1=BSD License
+org.andromda.cartridges--andromda-java-cartridge--3.3.1=BSD License
+org.andromda.cartridges--andromda-spring-cartridge--3.3.1=BSD License
+org.andromda.metafacades--andromda-metafacades-uml--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-common--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-datatype--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-meta--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-persistence--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-presentation--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-process--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-screen--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-service--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-webservice--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-xml--3.3.1=BSD License
+org.andromda.translationlibraries--andromda-ocl-translation-core--3.3.1=BSD License
+org.andromda.translationlibraries--andromda-ocl-validation-library--3.3.1=BSD License
+xalan--xalan--2.7.0=The Apache Software License, Version 2.0
+xerces--xercesImpl--2.6.0=The Apache Software License, Version 2.0
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -92,8 +92,7 @@
public List<Attachment> getAllAttachments(Integer objectId) {
Iterator<Object[]> list = queryList(
"allAttachment",
- "objectId", IntegerType.INSTANCE, objectId,
- "pmfmId", IntegerType.INSTANCE, enumeration.PMFM_ID_MEASUREMENT_FILE);
+ "objectId", IntegerType.INSTANCE, objectId);
List<Attachment> result = Lists.newArrayList();
while (list.hasNext()) {
@@ -135,9 +134,8 @@
// Create measurement file
MeasurementFile measurementFile = MeasurementFile.Factory.newInstance();
- //FIXME-TC When pmfm will be optional (remove this line)
- // set measurementFile pmfm
- measurementFile.setPmfm(load(PmfmImpl.class, enumeration.PMFM_ID_MEASUREMENT_FILE));
+ // no usage of pmfm (since version 1.5)
+ measurementFile.setPmfm(null);
// set not qualifed flag
measurementFile.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -26,6 +26,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import fr.ifremer.adagio.core.dao.administration.programStrategy.ProgramDao;
import fr.ifremer.adagio.core.dao.administration.programStrategy.ProgramImpl;
@@ -36,11 +37,15 @@
import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.ObservedFishingTrip;
import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruiseDao;
+import fr.ifremer.adagio.core.dao.data.vessel.VesselDao;
+import fr.ifremer.adagio.core.dao.data.vessel.VesselImpl;
+import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures;
import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures;
import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeaturesExtendDao;
import fr.ifremer.adagio.core.dao.referential.QualityFlag;
import fr.ifremer.adagio.core.dao.referential.QualityFlagDao;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.VesselPersonRole;
import fr.ifremer.adagio.core.dao.referential.gear.GearDao;
import fr.ifremer.adagio.core.dao.referential.location.Location;
import fr.ifremer.adagio.core.dao.referential.location.LocationDao;
@@ -50,8 +55,6 @@
import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueDao;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
-import fr.ifremer.adagio.core.dao.referential.vessel.VesselDao;
-import fr.ifremer.adagio.core.dao.referential.vessel.VesselImpl;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
@@ -60,6 +63,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.type.IntegerType;
@@ -70,12 +74,11 @@
import javax.annotation.Resource;
import java.text.MessageFormat;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Set;
/**
@@ -89,16 +92,15 @@
private static final Log log =
LogFactory.getLog(CruisePersistenceServiceImpl.class);
- protected static String CRUISE_MISC_DATA_MANAGERS_TAG = "#MANAGERS=";
-
- protected static String CRUISE_MISC_DATA_SORT_MANAGERS_TAG = "#SORT_MANAGERS=";
-
@Autowired
protected ReferentialPersistenceService referentialService;
@Autowired
protected ProgramPersistenceService programService;
+ @Autowired
+ protected VesselPersonFeaturesPersistenceHelper vesselPersonFeaturesPersistenceHelper;
+
@Resource(name = "scientificCruiseDao")
protected ScientificCruiseDao scientificCruiseDao;
@@ -108,7 +110,7 @@
@Resource(name = "personDao")
protected PersonDao personDao;
- @Resource(name = "vesselDao")
+ @Resource(name = "vesselExtendDao")
protected VesselDao vesselDao;
@Resource(name = "locationDao")
@@ -152,7 +154,6 @@
Object[] source = queryUnique(
"cruise",
"cruiseId", IntegerType.INSTANCE, Integer.valueOf(id),
-// "locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_HARBOUR,
"pmfmIdSurveyPart", IntegerType.INSTANCE, enumeration.PMFM_ID_SURVEY_PART);
if (source == null) {
@@ -188,64 +189,19 @@
Vessel vessel = referentialService.getVessel(vesselCode);
result.setVessel(vessel);
+ List<Person> headOfMissions = Lists.newArrayList();
+ result.setHeadOfMission(headOfMissions);
+ List<Person> headOfSortRoom = Lists.newArrayList();
+ result.setHeadOfSortRoom(headOfSortRoom);
+
Integer managerId = (Integer) source[index++];
- if (managerId != null && managerId.equals(enumeration.PERSON_ID_UNKNOWN_RECORDER_PERSON)) {
- result.setHeadOfMission(null);
- } else {
- Person manager = referentialService.getPerson(managerId);
- result.setHeadOfMission(Lists.newArrayList(manager));
- }
+ Person manager = referentialService.getPerson(managerId);
+ headOfMissions.add(manager);
result.setComment((String) source[index++]);
- String miscData = (String) source[index++];
- if (miscData != null && miscData.length() > 0) {
-// // Retrieve secondary vessels :
-// int vesselTagIndex = miscData.indexOf(CRUISE_MISC_DATA_VESSELS_TAG);
-// if (vesselTagIndex != -1) {
-// String vesselCodesStr = miscData.substring(vesselTagIndex + CRUISE_MISC_DATA_VESSELS_TAG.length()).trim();
-// miscData = miscData.substring(0, vesselTagIndex);
-// if (!vesselCodesStr.isEmpty()) {
-// String[] vesselCodes = vesselCodesStr.split(",");
-// for (String vesselCode1 : vesselCodes) {
-// vesselCode = vesselCode1;
-// result.addVessel(referentialService.getVessel(vesselCode));
-// }
-// }
-// }
-
- // Retrieve cruise managers
- int managersIndex = miscData.indexOf(CRUISE_MISC_DATA_MANAGERS_TAG);
- if (managersIndex != -1) {
- String managersStr = miscData.substring(managersIndex + CRUISE_MISC_DATA_MANAGERS_TAG.length()).trim();
- miscData = miscData.substring(0, managersIndex);
- if (!managersStr.isEmpty()) {
- String[] managersArray = managersStr.split(",");
- for (String personId : managersArray) {
- Person person = referentialService.getPerson(Integer.valueOf(personId));
- result.getHeadOfMission().add(person);
- }
- }
- }
-
- // Retrieve sort room managers
- int sortManagersIndex = miscData.indexOf(CRUISE_MISC_DATA_SORT_MANAGERS_TAG);
- if (sortManagersIndex != -1) {
- String sortManagersStr = miscData.substring(sortManagersIndex + CRUISE_MISC_DATA_SORT_MANAGERS_TAG.length()).trim();
- if (!sortManagersStr.isEmpty()) {
- String[] managersArray = sortManagersStr.split(",");
- List<Person> persons = new ArrayList<Person>();
- for (String personId : managersArray) {
- Person person = referentialService.getPerson(Integer.valueOf(personId));
- persons.add(person);
- }
- result.setHeadOfSortRoom(persons);
- }
- }
- }
-
// load surverPart
- result.setSurveyPart((String) source[index++]);
+ result.setSurveyPart((String) source[index]);
// get secondary gears from fishingOperation (first load from Allegro DB only)
if (result.getGear() == null) {
@@ -270,6 +226,24 @@
result.setMultirigNumber(maxMultirigNumberFound);
}
}
+
+ Iterator<Object[]> vesselPersonFeaturesList = queryList(
+ "allCruiseVesselPersonFeatures",
+ "cruiseId", IntegerType.INSTANCE, Integer.valueOf(id));
+ while (vesselPersonFeaturesList.hasNext()) {
+ Object[] vesselPersonFeatures = vesselPersonFeaturesList.next();
+
+ Integer personId = (Integer) vesselPersonFeatures[0];
+ Person person = referentialService.getPerson(personId);
+ Integer roleId = (Integer) vesselPersonFeatures[1];
+ if (enumeration.VESSEL_PERSON_ROLE_ID_SCIENTIFIC_CRUISE_MANAGER.equals(roleId)) {
+ headOfMissions.add(person);
+
+ } else if (enumeration.VESSEL_PERSON_ROLE_ID_SORT_ROOM_MANAGER.equals(roleId)) {
+ headOfSortRoom.add(person);
+ }
+ }
+
// Force initialization of multirigNumber to 1 initialization (need for UI)
if (result.getMultirigNumber() == null) {
log.warn(MessageFormat.format("Cruise with id={0} has been load with a default multirigNumber=1, beacause not multirigNumber were found in database.", id));
@@ -288,6 +262,7 @@
Preconditions.checkNotNull(bean.getDepartureLocation());
Preconditions.checkNotNull(bean.getReturnLocation());
Preconditions.checkNotNull(bean.getVessel());
+ Preconditions.checkState(CollectionUtils.isNotEmpty(bean.getHeadOfMission()));
ScientificCruise scientificCruise = ScientificCruise.Factory.newInstance();
cruiseToEntity(bean, scientificCruise);
@@ -307,6 +282,7 @@
Preconditions.checkNotNull(bean.getDepartureLocation());
Preconditions.checkNotNull(bean.getReturnLocation());
Preconditions.checkNotNull(bean.getVessel());
+ Preconditions.checkState(CollectionUtils.isNotEmpty(bean.getHeadOfMission()));
ScientificCruise scientificCruise = scientificCruiseDao.load(Integer.valueOf(bean.getId()));
if (scientificCruise == null) {
@@ -321,7 +297,6 @@
protected void cruiseToEntity(Cruise source, ScientificCruise target) {
- StringBuilder miscDataBuffer = new StringBuilder();
QualityFlag qualityFlagNotQualified = load(
QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED);
@@ -344,41 +319,12 @@
target.setName(source.getName());
// Program
- target.setProgram(load(ProgramImpl.class, source.getProgram().getId()));
+ ProgramImpl program = load(ProgramImpl.class, source.getProgram().getId());
+ target.setProgram(program);
- // Sort Room Managers
- if (source.getHeadOfSortRoom() == null || source.getHeadOfSortRoom().size() == 0) {
- target.setManagerPerson(null);
- } else if (source.getHeadOfSortRoom() != null && source.getHeadOfSortRoom().size() > 0) {
- List<Person> persons = source.getHeadOfSortRoom();
- miscDataBuffer.append(CRUISE_MISC_DATA_SORT_MANAGERS_TAG);
- for (int i = 0; i < persons.size(); i++) {
- if (i > 0) {
- miscDataBuffer.append(',');
- }
- miscDataBuffer.append(persons.get(i).getId());
- }
- }
-
- // Managers
- if (source.getHeadOfMission() == null || source.getHeadOfMission().size() == 0) {
- target.setManagerPerson(null);
- } else if (source.getHeadOfMission() != null && source.getHeadOfMission().size() > 0) {
- List<Person> persons = source.getHeadOfMission();
- target.setManagerPerson(load(PersonImpl.class, Integer.valueOf(persons.get(0).getId())));
-
- if (persons.size() > 1) {
- //throw new UnsupportedOperationException("Cruise could not yet support more than one vessel.");
- miscDataBuffer.append(CRUISE_MISC_DATA_MANAGERS_TAG);
- for (int i = 1; i < persons.size(); i++) {
- if (i > 1) miscDataBuffer.append(',');
- miscDataBuffer.append(persons.get(i).getId());
- }
- }
- }
-
// Vessel
- target.setVessel(load(VesselImpl.class, source.getVessel().getId()));
+ VesselImpl vessel = load(VesselImpl.class, source.getVessel().getId());
+ target.setVessel(vessel);
// BeginDate
target.setDepartureDateTime(dateWithNoSecondAndMiliSecond(source.getBeginDate()));
@@ -389,19 +335,6 @@
// Comment
target.setComments(source.getComment());
- // Manager
- if (source.getHeadOfMission() == null || source.getHeadOfMission().size() == 0) {
- target.setComments(null);
- } else if (source.getHeadOfMission() != null && source.getHeadOfMission().size() > 0) {
- if (source.getHeadOfMission().size() > 0) {
- Person managerPerson = source.getHeadOfMission().get(0);
- if (managerPerson.getId() != null) {
- //TODO TC supprimer les xxxDAO.load par load(xxx,)
- target.setManagerPerson(load(PersonImpl.class, Integer.valueOf(managerPerson.getId())));
- }
- }
- }
-
// Optional values in UI, but mandatory in DB
if (target.getManagerPerson() == null) {
target.setManagerPerson(load(PersonImpl.class, enumeration.PERSON_ID_UNKNOWN_RECORDER_PERSON));
@@ -443,7 +376,7 @@
fishingTrip.getGearPhysicalFeatures().clear();
} else if (!source.isGearEmpty()) {
// Create a list to trace not updated items, to be able to remove them later
- Set<GearPhysicalFeatures> notChangedGearPhysicalFeatures = new HashSet<GearPhysicalFeatures>();
+ Set<GearPhysicalFeatures> notChangedGearPhysicalFeatures = Sets.newHashSet();
if (fishingTrip.getGearPhysicalFeatures() != null) {
notChangedGearPhysicalFeatures.addAll(fishingTrip.getGearPhysicalFeatures());
}
@@ -480,10 +413,65 @@
}
}
- // Save miscDataBuffer into fishing trip comments, because it's not used in Allegro
- fishingTrip.setComments(miscDataBuffer.toString());
+ Map<Integer, VesselPersonFeatures> vesselPersonFeaturesMap = Maps.newTreeMap();
+
+ VesselPersonRole scientificCruiseManagerRole =
+ vesselPersonFeaturesPersistenceHelper.getScientificCruiseManagerRole();
+
+ VesselPersonRole sortRoomManagerRole =
+ vesselPersonFeaturesPersistenceHelper.getSortRoomManagerRole();
+
+ // Sort Room Managers
+ if (CollectionUtils.isNotEmpty(source.getHeadOfSortRoom())) {
+ for (Person person : source.getHeadOfSortRoom()) {
+ Integer personId = person.getIdAsInt();
+ fillVesselPersonFeatures(vesselPersonFeaturesMap,
+ personId,
+ fishingTrip,
+ sortRoomManagerRole);
+ }
+ }
+
+ // Managers
+ List<Person> persons = source.getHeadOfMission();
+ target.setManagerPerson(load(PersonImpl.class, persons.get(0).getIdAsInt()));
+
+ for (int i = 1; i < persons.size(); i++) {
+ Integer personId = persons.get(i).getIdAsInt();
+
+ fillVesselPersonFeatures(vesselPersonFeaturesMap,
+ personId,
+ fishingTrip,
+ scientificCruiseManagerRole);
+ }
+
+ if (fishingTrip.getVesselPersonFeatures() == null) {
+ fishingTrip.setVesselPersonFeatures(Sets.<VesselPersonFeatures>newHashSet());
+ }
+ fishingTrip.getVesselPersonFeatures().clear();
+ fishingTrip.getVesselPersonFeatures().addAll(vesselPersonFeaturesMap.values());
}
+ public void fillVesselPersonFeatures(Map<Integer, VesselPersonFeatures> vesselPersonFeaturesPerPerson,
+ Integer personId,
+ FishingTrip fishingTrip,
+ VesselPersonRole role) {
+
+ VesselPersonFeatures vesselPersonFeatures =
+ vesselPersonFeaturesPerPerson.get(personId);
+ if (vesselPersonFeatures == null) {
+ vesselPersonFeatures = VesselPersonFeatures.Factory.newInstance();
+ vesselPersonFeaturesPerPerson.put(personId, vesselPersonFeatures);
+ }
+
+ PersonImpl person = load(PersonImpl.class, personId);
+ vesselPersonFeaturesPersistenceHelper.fillVesselPersonFeatures(
+ vesselPersonFeatures,
+ fishingTrip,
+ person,
+ role);
+ }
+
// adapt to surveyMeasurement
protected SurveyMeasurement getOrCreateSurveyMeasurement(FishingTrip fishingTrip,
Integer pmfmId) {
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-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -26,7 +26,9 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea;
import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea2RegulationLocation;
import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea2RegulationLocationPK;
@@ -42,6 +44,8 @@
import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruiseDao;
+import fr.ifremer.adagio.core.dao.data.vessel.VesselImpl;
+import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures;
import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures;
import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeaturesExtendDao;
import fr.ifremer.adagio.core.dao.data.vessel.feature.use.GearUseFeatures;
@@ -49,6 +53,7 @@
import fr.ifremer.adagio.core.dao.data.vessel.feature.use.isActive;
import fr.ifremer.adagio.core.dao.data.vessel.position.VesselPosition;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.VesselPersonRole;
import fr.ifremer.adagio.core.dao.referential.gear.GearImpl;
import fr.ifremer.adagio.core.dao.referential.location.LocationExtendDao;
import fr.ifremer.adagio.core.dao.referential.location.LocationImpl;
@@ -56,7 +61,6 @@
import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
-import fr.ifremer.adagio.core.dao.referential.vessel.VesselImpl;
import fr.ifremer.adagio.core.service.referential.location.LocationService;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
@@ -87,6 +91,7 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Set;
/**
@@ -106,6 +111,9 @@
@Autowired
protected AttachmentPersistenceService attachmentPersistenceService;
+ @Autowired
+ protected VesselPersonFeaturesPersistenceHelper vesselPersonFeaturesPersistenceHelper;
+
@Resource(name = "scientificCruiseDao")
protected ScientificCruiseDao scientificCruiseDao;
@@ -128,8 +136,6 @@
protected static Float DEFAULT_EMPTY_LONGITUDE = 0.0001f;
- protected static String MISC_DATA_RECORDER_PERSONS_TAG = "#REC_PERSONS=";
-
@Override
public List<FishingOperation> getAllFishingOperation(String cruiseId) {
Preconditions.checkNotNull(cruiseId);
@@ -191,7 +197,7 @@
}
// Force initialization to 1 initialization (need for UI)
else {
- log.warn(MessageFormat.format("FishingOperation with id={0} has been load with a default multirigAggregation={1}, because no multirigAggregation were found in database.", new Object[]{fishingOperation.getId(), fishingOperation.getMultirigAggregation()}));
+ log.warn(MessageFormat.format("FishingOperation with id={0} has been load with a default multirigAggregation={1}, because no multirigAggregation were found in database.", fishingOperation.getId(), fishingOperation.getMultirigAggregation()));
fishingOperation.setMultirigAggregation("1");
}
@@ -254,31 +260,24 @@
// End date
result.setGearShootingEndDate(convertDatabase2UI((Timestamp) source[colIndex++]));
- // Misc data
- String miscData = (String) source[colIndex++];
+ result.setRecorderPerson(Lists.<Person>newArrayList());
+ Iterator<Object[]> vesselPersonFeaturesList = queryList(
+ "fishingOperationVesselPersonFeatures",
+ "fishingOperationId", IntegerType.INSTANCE, Integer.valueOf(id));
+ while (vesselPersonFeaturesList.hasNext()) {
+ Object[] vesselPersonFeatures = vesselPersonFeaturesList.next();
- // Retrieve recorder persons
- if (miscData != null && !miscData.isEmpty()) {
- int recorderPersonsIndex = miscData.indexOf(MISC_DATA_RECORDER_PERSONS_TAG);
- if (recorderPersonsIndex != -1) {
- String recorderPersonsStr = miscData.substring(recorderPersonsIndex + MISC_DATA_RECORDER_PERSONS_TAG.length()).trim();
- miscData = miscData.substring(0, recorderPersonsIndex);
- if (!recorderPersonsStr.isEmpty()) {
- String[] recorderPersonsArray = recorderPersonsStr.split(",");
- List<Person> persons = Lists.newArrayList();
- for (String personId : recorderPersonsArray) {
- Person person = referentialService.getPerson(Integer.valueOf(personId));
- persons.add(person);
- }
- result.setRecorderPerson(persons);
- }
+ Integer personId = (Integer) vesselPersonFeatures[0];
+ Person person = referentialService.getPerson(personId);
+ Integer roleId = (Integer) vesselPersonFeatures[1];
+ if (enumeration.VESSEL_PERSON_ROLE_ID_RECORDER_PERSON.equals(roleId)) {
+ result.addRecorderPerson(person);
}
}
// Comment :
- if (miscData != null && !miscData.isEmpty()) {
- result.setComment(miscData);
- }
+ String comment = (String) source[colIndex++];
+ result.setComment(comment);
// Gear :
Integer gearId = (Integer) source[colIndex++];
@@ -855,27 +854,29 @@
}
// Recorder persons
- StringBuilder miscDataBuffer = new StringBuilder();
- 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();
- miscDataBuffer.append(MISC_DATA_RECORDER_PERSONS_TAG);
- for (int i = 0; i < persons.size(); i++) {
- if (i > 0) miscDataBuffer.append(',');
- miscDataBuffer.append(persons.get(i).getId());
+ Map<Integer, VesselPersonFeatures> vesselPersonFeaturesMap = Maps.newTreeMap();
+
+ VesselPersonRole recorderPersonRole =
+ vesselPersonFeaturesPersistenceHelper.getRecorderPersonRole();
+
+ if (CollectionUtils.isNotEmpty(source.getRecorderPerson())) {
+ for (Person person : source.getRecorderPerson()) {
+ Integer personId = person.getIdAsInt();
+ fillVesselPersonFeatures(vesselPersonFeaturesMap,
+ personId,
+ target,
+ recorderPersonRole);
}
}
-
- // Store misc data into comments
- if (source.getComment() == null) {
- // Store only misc data :
- target.setComments(miscDataBuffer.toString());
- } else if (source.getComment() != null) {
- // Store comment + misc data
- target.setComments(source.getComment() + miscDataBuffer);
+ if (fishingTrip.getVesselPersonFeatures() == null) {
+ fishingTrip.setVesselPersonFeatures(Sets.<VesselPersonFeatures>newHashSet());
}
+ fishingTrip.getVesselPersonFeatures().clear();
+ fishingTrip.getVesselPersonFeatures().addAll(vesselPersonFeaturesMap.values());
+ // Comment
+ target.setComments(source.getComment());
+
// ----------------------------------------------------------------
// Removed unecessary *UseMeasurement : ---
// ----------------------------------------------------------------
@@ -1190,20 +1191,6 @@
return gearUseMeasurement;
}
-// protected DenormalizedBatch getDenormalizedBatch(Integer fishingOperationId) {
-// Iterator<DenormalizedBatch> list = queryListTyped(
-// "fishingOperationBatchs",
-// "fishingOperationId", IntegerType.INSTANCE, fishingOperationId
-// );
-//
-// CaracteristicMap environmentCaracteristics = new CaracteristicMap();
-// while (list.hasNext()) {
-// DenormalizedBatch batch = list.next();
-// System.out.println(batch.getTreeIndent() + batch.getSortingValuesText());
-// }
-// return null;
-// }
-
protected void setOperationVesselAssociation(Operation target, String vesselCode) {
OperationVesselAssociation ova = null;
OperationVesselAssociationPK ovaPK = new OperationVesselAssociationPK();
@@ -1247,4 +1234,25 @@
target.getOperationVesselAssociations().clear();
}
}
+
+ public void fillVesselPersonFeatures(Map<Integer, VesselPersonFeatures> vesselPersonFeaturesPerPerson,
+ Integer personId,
+ fr.ifremer.adagio.core.dao.data.operation.FishingOperation fishingOperation,
+ VesselPersonRole role) {
+
+ boolean create = false;
+ VesselPersonFeatures vesselPersonFeatures =
+ vesselPersonFeaturesPerPerson.get(personId);
+ if (vesselPersonFeatures == null) {
+ vesselPersonFeatures = VesselPersonFeatures.Factory.newInstance();
+ vesselPersonFeaturesPerPerson.put(personId, vesselPersonFeatures);
+ }
+
+ PersonImpl person = load(PersonImpl.class, personId);
+ vesselPersonFeaturesPersistenceHelper.fillVesselPersonFeatures(
+ vesselPersonFeatures,
+ fishingOperation,
+ person,
+ role);
+ }
}
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-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -657,7 +657,7 @@
vesselTypeId = enumeration.VESSEL_TYPE_ID_FISHING;
}
- fr.ifremer.adagio.core.dao.referential.vessel.Vessel target =
+ fr.ifremer.adagio.core.dao.data.vessel.Vessel target =
vesselExtendDao.createAsTemporary(
null,
source.getInternationalRegistrationCode(),
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -245,10 +245,6 @@
@Value("${PmfmId.DEAD_OR_ALIVE}")
public final Integer PMFM_ID_DEAD_OR_ALIVE = null;
- //FIXME-TC Remove this when no more used
- @Value("${PmfmId.SURVEY_PART}")
- public final Integer PMFM_ID_MEASUREMENT_FILE = null;
-
@Value("${ProgramCode.SCIENTIFIC_CRUISE_PREFIX}")
public final String PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX = null;
@@ -267,7 +263,15 @@
@Value("${ObjectTypeCode.SAMPLE}")
public final String OBJECT_TYPE_SAMPLE = null;
+ @Value("${VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER}")
+ public final Integer VESSEL_PERSON_ROLE_ID_SCIENTIFIC_CRUISE_MANAGER = null;
+ @Value("${VesselPersonRoleId.SORT_ROOM_MANAGER}")
+ public final Integer VESSEL_PERSON_ROLE_ID_SORT_ROOM_MANAGER = null;
+
+ @Value("${VesselPersonRoleId.RECORDER_PERSON}")
+ public final Integer VESSEL_PERSON_ROLE_ID_RECORDER_PERSON = null;
+
/**
* Contract to place on enumeration that must be synched to field inside this class.
* <p/>
@@ -330,7 +334,6 @@
PMFM_ID_HAUL_VALID,
PMFM_ID_TRAWL_DISTANCE,
PMFM_ID_SURVEY_PART,
- PMFM_ID_MEASUREMENT_FILE,
PMFM_ID_SORTED_UNSORTED,
PMFM_ID_SIZE_CATEGORY,
PMFM_ID_MATURITY,
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -0,0 +1,72 @@
+package fr.ifremer.tutti.persistence.service;
+
+import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
+import fr.ifremer.adagio.core.dao.data.operation.FishingOperation;
+import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
+import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures;
+import fr.ifremer.adagio.core.dao.referential.VesselPersonRole;
+import fr.ifremer.adagio.core.dao.referential.VesselPersonRoleImpl;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * Helper around {@link VesselPersonFeatures}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.5
+ */
+@Component("vesselPersonFeaturesPersistenceHelper")
+public class VesselPersonFeaturesPersistenceHelper extends AbstractPersistenceService {
+
+ public VesselPersonFeaturesPersistenceHelper() {
+ }
+
+ public VesselPersonRole getScientificCruiseManagerRole() {
+ return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_SCIENTIFIC_CRUISE_MANAGER);
+ }
+
+ public VesselPersonRole getSortRoomManagerRole() {
+ return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_SORT_ROOM_MANAGER);
+ }
+
+ public VesselPersonRole getRecorderPersonRole() {
+ return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_RECORDER_PERSON);
+ }
+
+ public void fillVesselPersonFeatures(VesselPersonFeatures vesselPersonFeatures,
+ FishingTrip fishingTrip,
+ PersonImpl person,
+ VesselPersonRole role) {
+ vesselPersonFeatures.setFishingTrip(fishingTrip);
+ vesselPersonFeatures.setPerson(person);
+ vesselPersonFeatures.getVesselPersonRoles().add(role);
+
+ vesselPersonFeatures.setStartDate(fishingTrip.getDepartureDateTime());
+ vesselPersonFeatures.setEndDate(fishingTrip.getReturnDateTime());
+ vesselPersonFeatures.setVessel(fishingTrip.getVessel());
+ vesselPersonFeatures.setProgram(fishingTrip.getProgram());
+
+ vesselPersonFeatures.setCreationDate(fishingTrip.getCreationDate());
+ vesselPersonFeatures.setQualityFlag(fishingTrip.getQualityFlag());
+ vesselPersonFeatures.setRankOrder((short) 1);
+ }
+
+ public void fillVesselPersonFeatures(VesselPersonFeatures vesselPersonFeatures,
+ FishingOperation fishingOperation,
+ PersonImpl person,
+ VesselPersonRole role) {
+ vesselPersonFeatures.setOperation(fishingOperation);
+ vesselPersonFeatures.setPerson(person);
+ vesselPersonFeatures.getVesselPersonRoles().add(role);
+
+ vesselPersonFeatures.setStartDate(fishingOperation.getStartDateTime());
+ vesselPersonFeatures.setEndDate(fishingOperation.getEndDateTime());
+ vesselPersonFeatures.setVessel(fishingOperation.getVessel());
+ vesselPersonFeatures.setProgram(fishingOperation.getFishingTrip().getProgram());
+
+ vesselPersonFeatures.setCreationDate(new Date());
+ vesselPersonFeatures.setQualityFlag(fishingOperation.getQualityFlag());
+ vesselPersonFeatures.setRankOrder((short) 1);
+ }
+}
\ No newline at end of file
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImpl.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImpl.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -31,6 +31,7 @@
import org.hibernate.dialect.Dialect;
import org.hibernate.engine.SessionFactoryImplementor;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -46,7 +47,7 @@
public class ReferentialSynchronizeServiceImpl extends AbstractPersistenceService implements ReferentialSynchronizeService {
@Autowired
- protected BasicDataSource dataSource;
+ protected DriverManagerDataSource dataSource;
protected Dialect localDialect;
Modified: trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-04-16 19:06:17 UTC (rev 810)
@@ -116,7 +116,6 @@
sc.vessel.code AS vesselCode,
mp.id AS managerId,
sc.comments AS scientificCruiseComments,
- ft.comments AS fishingTripComments,
(SELECT sm.alphanumericalValue
FROM SurveyMeasurementImpl sm
WHERE sm.fishingTrip.id=ft.id AND sm.pmfm.id= :pmfmIdSurveyPart
@@ -132,6 +131,23 @@
<query-param name="pmfmIdSurveyPart" type="java.lang.Integer"/>
</query>
+ <!-- [DAT-05] Get all vesselPersonFeatures for a given cruise -->
+ <query cacheable="true" name="allCruiseVesselPersonFeatures">
+ <![CDATA[
+ SELECT
+ vpf.person.id AS personId,
+ vpr.id AS roleId
+ FROM
+ ScientificCruiseImpl sc
+ JOIN sc.fishingTrips ft
+ JOIN ft.vesselPersonFeatures vpf
+ JOIN vpf.vesselPersonRoles vpr
+ WHERE
+ sc.id = :cruiseId
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ </query>
+
<query cacheable="true" name="allCruiseGears">
<![CDATA[
SELECT
@@ -245,9 +261,7 @@
]]>
<query-param name="fishingOperationId" type="java.lang.Integer"/>
</query>
-
-
-
+
<query cacheable="true" name="fishingOperationVesselUseFeatures">
<![CDATA[
SELECT
@@ -279,7 +293,22 @@
]]>
<query-param name="fishingOperationId" type="java.lang.Integer"/>
</query>
-
+
+ <!-- Get all vesselPersonFeatures for a given fishing operation -->
+ <query cacheable="true" name="fishingOperationVesselPersonFeatures">
+ <![CDATA[
+ SELECT
+ vpf.person.id AS personId,
+ vpr.id AS roleId
+ FROM
+ VesselPersonFeaturesImpl vpf
+ JOIN vpf.vesselPersonRoles vpr
+ WHERE
+ vpf.operation.id = :fishingOperationId
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ </query>
+
<query cacheable="true" name="updateFishingOperationCatchBatch">
<![CDATA[
UPDATE FishingOperationImpl o
@@ -362,11 +391,9 @@
MeasurementFileImpl m
WHERE
m.objectId = :objectId
- AND m.pmfm.id = :pmfmId
ORDER BY m.id
]]>
<query-param name="objectId" type="java.lang.Integer"/>
- <query-param name="pmfmId" type="java.lang.Integer"/>
</query>
<query cacheable="true" name="attachment">
Modified: trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-04-16 19:06:17 UTC (rev 810)
@@ -396,4 +396,8 @@
ObjectTypeCode.SCIENTIFIC_CRUISE=SCIENTIFIC_CRUISE
ObjectTypeCode.OPERATION=OPERATION
ObjectTypeCode.CATCH_BATCH=CATCH_BATCH
-ObjectTypeCode.SAMPLE=SAMPLE
\ No newline at end of file
+ObjectTypeCode.SAMPLE=SAMPLE
+
+VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER=2
+VesselPersonRoleId.SORT_ROOM_MANAGER=3
+VesselPersonRoleId.RECORDER_PERSON=4
\ No newline at end of file
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-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -24,6 +24,22 @@
* #L%
*/
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.Person;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
+import fr.ifremer.tutti.persistence.entities.referential.Vessel;
+import fr.ifremer.tutti.persistence.service.CruisePersistenceService;
+import fr.ifremer.tutti.persistence.service.ProgramPersistenceService;
+import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
+import org.junit.Assert;
+
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.List;
+
/**
* Fixtures for the allegro db.
*
@@ -149,4 +165,52 @@
public Integer caracteristicWithNullQualitativeValue() {
return 114;
}
+
+ public Cruise createCruise(ReferentialPersistenceService referentialService,
+ ProgramPersistenceService programService,
+ CruisePersistenceService service) {
+
+ String programCode = programCode();
+ Cruise cruise = TuttiBeanFactory.newCruise();
+
+ // -----------------------------------------------------------------------------
+ // 1. Test with all properties filled
+ // -----------------------------------------------------------------------------
+ cruise.setId((String) null);
+
+ cruise.setName("Unit-test-" + System.currentTimeMillis());
+
+ cruise.setProgram(programService.getProgram(programCode));
+
+ Calendar calendar = new GregorianCalendar();
+ cruise.setBeginDate(calendar.getTime());
+
+ calendar.add(Calendar.MONTH, 1); // add one month
+ cruise.setEndDate(calendar.getTime());
+
+ List<TuttiLocation> allHarbour = referentialService.getAllHarbour();
+ Assert.assertNotNull(allHarbour);
+ Assert.assertTrue(allHarbour.size() > 1);
+ cruise.setDepartureLocation(allHarbour.get(0));
+ cruise.setReturnLocation(allHarbour.get(1));
+
+ List<Gear> gears = referentialService.getAllFishingGear();
+ cruise.setGear(Lists.newArrayList(gears));
+
+ cruise.setComment("My comments on cruise");
+ cruise.setSurveyPart("SurveyPart");
+
+ Person managerPerson = referentialService.getAllPerson().get(0);
+ cruise.setHeadOfMission(Lists.newArrayList(managerPerson));
+
+ Vessel fishingVessel = TuttiBeanFactory.newVessel();
+ fishingVessel.setId(fishingVesselCode());
+
+ cruise.setVessel(fishingVessel);
+
+ cruise.setMultirigNumber(2);
+
+ Cruise result = service.createCruise(cruise);
+ return result;
+ }
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceWriteTest.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceWriteTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -42,6 +42,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import org.springframework.dao.DataRetrievalFailureException;
@@ -63,6 +64,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
+@Ignore
public class BenthosBatchPersistenceServiceWriteTest {
@ClassRule
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceReadTest.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceReadTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -29,6 +29,7 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.List;
@@ -42,6 +43,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
+@Ignore
public class CatchBatchPersistenceServiceReadTest {
@ClassRule
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceWriteTest.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceWriteTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -30,10 +30,10 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.Calendar;
@@ -52,6 +52,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
+@Ignore
public class CatchBatchPersistenceServiceWriteTest {
@ClassRule
@@ -61,6 +62,8 @@
protected CruisePersistenceService cruiseService;
+ protected ProgramPersistenceService programService;
+
protected FishingOperationPersistenceService fishingOperationService;
protected ReferentialPersistenceService referentialService;
@@ -79,20 +82,21 @@
fishingOperationService = TuttiPersistenceServiceLocator.getFishingOperationPersistenceService();
referentialService = TuttiPersistenceServiceLocator.getReferentialPersistenceService();
- cruise = cruiseService.getCruise(dbResource.getFixtures().cruiseId());
- cruise.setId((String) null);
+ cruise = dbResource.getFixtures().createCruise(referentialService, programService, cruiseService);
+// cruiseService.getCruise(dbResource.getFixtures().cruiseId());
+// cruise.setId((String) null);
Calendar calendar = new GregorianCalendar();
- cruise.setBeginDate(calendar.getTime());
- calendar.add(Calendar.MONTH, 1); // add one month
- cruise.setEndDate(calendar.getTime());
- List<TuttiLocation> allHarbour = referentialService.getAllHarbour();
- Assert.assertNotNull(allHarbour);
- Assert.assertTrue(allHarbour.size() > 1);
- cruise.setDepartureLocation(allHarbour.get(0));
- cruise.setReturnLocation(allHarbour.get(1));
+// cruise.setBeginDate(calendar.getTime());
+// calendar.add(Calendar.MONTH, 1); // add one month
+// cruise.setEndDate(calendar.getTime());
+// List<TuttiLocation> allHarbour = referentialService.getAllHarbour();
+// Assert.assertNotNull(allHarbour);
+// Assert.assertTrue(allHarbour.size() > 1);
+// cruise.setDepartureLocation(allHarbour.get(0));
+// cruise.setReturnLocation(allHarbour.get(1));
+//
+// cruise = cruiseService.createCruise(cruise);
- cruise = cruiseService.createCruise(cruise);
-
// Create a first operation, with no cacth batch : to test CatchBatch insert/update :
List<FishingOperation> fishingOperations = fishingOperationService.getAllFishingOperation(dbResource.getFixtures().cruiseId());
assertNotNull(fishingOperations);
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceReadTest.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceReadTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -29,6 +29,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.List;
@@ -39,6 +40,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
+@Ignore
public class CruisePersistenceServiceReadTest {
@ClassRule
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -37,6 +37,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.Calendar;
@@ -53,6 +54,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
+@Ignore
public class CruisePersistenceServiceWriteTest {
/** Logger. */
@@ -109,6 +111,7 @@
Person managerPerson = referentialService.getAllPerson().get(0);
cruise.setHeadOfMission(Lists.newArrayList(managerPerson));
+ cruise.setHeadOfSortRoom(Lists.newArrayList(managerPerson));
Vessel fishingVessel = TuttiBeanFactory.newVessel();
fishingVessel.setId(dbResource.getFixtures().fishingVesselCode());
@@ -127,6 +130,8 @@
assertEquals(cruise.getDepartureLocation(), createdCruise.getDepartureLocation());
assertNotNull(createdCruise.getReturnLocation());
assertEquals(cruise.getReturnLocation(), createdCruise.getReturnLocation());
+ assertEquals(cruise.getHeadOfMission(), createdCruise.getHeadOfMission());
+ assertEquals(cruise.getHeadOfSortRoom(), createdCruise.getHeadOfSortRoom());
if (log.isInfoEnabled()) {
log.info("Created cruise: " + createdCruise.getId());
@@ -145,12 +150,14 @@
assertEquals(cruise.getMultirigNumber(), reloadedCruise.getMultirigNumber());
assertEquals(cruise.getDepartureLocation(), reloadedCruise.getDepartureLocation());
assertEquals(cruise.getReturnLocation(), reloadedCruise.getReturnLocation());
+ assertEquals(cruise.getHeadOfMission(), reloadedCruise.getHeadOfMission());
+ assertEquals(cruise.getHeadOfSortRoom(), reloadedCruise.getHeadOfSortRoom());
// -----------------------------------------------------------------------------
// 2. Test with only mandatory properties
// -----------------------------------------------------------------------------
createdCruise.setId((String) null);
- createdCruise.setHeadOfMission(null);
+// createdCruise.setHeadOfMission(null);
// createdCruise.setBeginDate(cruise.getBeginDate());
// createdCruise.setEndDate(cruise.getEndDate());
createdCruise.setComment(null);
@@ -168,6 +175,8 @@
assertEquals(cruise.getDepartureLocation(), createdCruise.getDepartureLocation());
assertNotNull(createdCruise.getReturnLocation());
assertEquals(cruise.getReturnLocation(), createdCruise.getReturnLocation());
+ assertEquals(cruise.getHeadOfMission(), createdCruise.getHeadOfMission());
+ assertEquals(cruise.getHeadOfSortRoom(), createdCruise.getHeadOfSortRoom());
// Reload to compare
reloadedCruise = service.getCruise(createdCruise.getId());
@@ -189,12 +198,14 @@
assertEquals(cruise.getReturnLocation(), reloadedCruise.getReturnLocation());
// assertEquals(createdCruise.getMultirigNumber(), reloadedCruise.getMultirigNumber());
assertEquals(1, reloadedCruise.getMultirigNumber(), 0);
- assertNull(reloadedCruise.getHeadOfMission());
+// assertNull(reloadedCruise.getHeadOfMission());
assertNotNull(reloadedCruise.getVessel());
assertEquals(createdCruise.getVessel(), reloadedCruise.getVessel());
assertNotNull(reloadedCruise.getVessel());
assertNotNull(reloadedCruise.getGear());
assertEquals(gears.size(), reloadedCruise.getGear().size());
+ assertEquals(cruise.getHeadOfMission(), reloadedCruise.getHeadOfMission());
+ assertEquals(cruise.getHeadOfSortRoom(), reloadedCruise.getHeadOfSortRoom());
}
@Test
@@ -202,7 +213,8 @@
// -----------------------------------------------------------------------------
// 1. Init a cruise (by copy)
// -----------------------------------------------------------------------------
- Cruise cruise = service.getCruise(dbResource.getFixtures().cruiseId());
+// Cruise cruise = service.getCruise(dbResource.getFixtures().cruiseId());
+ Cruise cruise = dbResource.getFixtures().createCruise(referentialService, programService, service);
cruise.setId((String) null);
Calendar calendar = new GregorianCalendar();
@@ -240,6 +252,9 @@
}
}
+ cruise.addHeadOfMission(referentialService.getAllPerson().get(1));
+ cruise.setHeadOfSortRoom(Lists.<Person>newArrayList(referentialService.getAllPerson().get(0)));
+
// Save changes, then check
Cruise savedCruise = service.saveCruise(cruise);
assertNotNull(savedCruise);
@@ -254,5 +269,7 @@
assertEquals(cruise.getGear(0), reloadedCruise.getGear(0));
assertEquals(cruise.getDepartureLocation(), reloadedCruise.getDepartureLocation());
assertEquals(cruise.getReturnLocation(), reloadedCruise.getReturnLocation());
+ assertEquals(cruise.getHeadOfMission(), reloadedCruise.getHeadOfMission());
+ assertEquals(cruise.getHeadOfSortRoom(), reloadedCruise.getHeadOfSortRoom());
}
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceReadTest.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceReadTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -42,6 +42,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
+@Ignore
public class FishingOperationPersistenceServiceReadTest {
@ClassRule
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-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -60,6 +60,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
+@Ignore
public class FishingOperationPersistenceServiceWriteTest {
@ClassRule
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceWriteTest.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceWriteTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -36,6 +36,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import java.util.Calendar;
@@ -53,6 +54,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
+@Ignore
public class MarineLitterBatchPersistenceServiceWriteTest {
@ClassRule
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-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -58,7 +58,7 @@
public class ReferentialPersistenceServiceReadTest {
@ClassRule
- public static final DatabaseResource dbResource = DatabaseResource.readDb("dbEmpty");
+ public static final DatabaseResource dbResource = DatabaseResource.readDb();
/** Logger. */
private static final Log log =
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java 2013-04-16 19:06:17 UTC (rev 810)
@@ -43,6 +43,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import org.springframework.dao.DataRetrievalFailureException;
@@ -64,6 +65,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
+@Ignore
public class SpeciesBatchPersistenceServiceWriteTest {
@ClassRule
Modified: trunk/tutti-service/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-service/src/license/THIRD-PARTY.properties 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-service/src/license/THIRD-PARTY.properties 2013-04-16 19:06:17 UTC (rev 810)
@@ -10,6 +10,7 @@
# - General Public License (GPL)
# - HSQLDB License
# - Indiana University Extreme! Lab Software License, vesion 1.1.1
+# - Lesser General Public License (LGPL)
# - Lesser General Public License (LGPL) v 3.0
# - Lesser General Public License (LPGL)
# - Lesser General Public License (LPGL) v 2.1
@@ -18,13 +19,34 @@
# - New BSD License
# - Public Domain
# - The Apache Software License, Version 2.0
+# - The MIT License
# - license.txt
#-------------------------------------------------------------------------------
# Please fill the missing licenses for dependencies :
#
#
-#Fri Feb 01 01:24:27 CET 2013
+#Tue Apr 16 20:56:55 CEST 2013
antlr--antlr--2.7.6=BSD License
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
dom4j--dom4j--1.6.1=BSD License
javax.transaction--jta--1.1=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+org.andromda--andromda-core--3.3.1=BSD License
+org.andromda--andromda-utils--3.3.1=BSD License
+org.andromda.cartridges--andromda-hibernate-cartridge--3.3.1=BSD License
+org.andromda.cartridges--andromda-java-cartridge--3.3.1=BSD License
+org.andromda.cartridges--andromda-spring-cartridge--3.3.1=BSD License
+org.andromda.metafacades--andromda-metafacades-uml--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-common--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-datatype--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-meta--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-persistence--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-presentation--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-process--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-screen--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-service--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-webservice--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-xml--3.3.1=BSD License
+org.andromda.translationlibraries--andromda-ocl-translation-core--3.3.1=BSD License
+org.andromda.translationlibraries--andromda-ocl-validation-library--3.3.1=BSD License
+xalan--xalan--2.7.0=The Apache Software License, Version 2.0
+xerces--xercesImpl--2.6.0=The Apache Software License, Version 2.0
Modified: trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2013-04-16 17:36:18 UTC (rev 809)
+++ trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2013-04-16 19:06:17 UTC (rev 810)
@@ -1,10 +1,10 @@
# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
#-------------------------------------------------------------------------------
# Already used licenses in project :
+# - ASF 2.0
# - Affero General Public License (AGPL)
# - Apache License
# - BSD License
-# - BSD-3 Clause License
# - Common Development and Distribution License (CDDL) v1.0
# - Common Public License Version 1.0
# - Eclipse Public License - v 1.0
@@ -25,9 +25,29 @@
# Please fill the missing licenses for dependencies :
#
#
-#Sat Feb 02 18:32:29 CET 2013
+#Tue Apr 16 20:56:57 CEST 2013
antlr--antlr--2.7.6=BSD License
commons-codec--commons-codec--1.2=The Apache Software License, Version 2.0
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
dom4j--dom4j--1.6.1=BSD License
javax.transaction--jta--1.1=Common Development and Distribution License (CDDL) v1.0
+org.andromda--andromda-core--3.3.1=BSD License
+org.andromda--andromda-utils--3.3.1=BSD License
+org.andromda.cartridges--andromda-hibernate-cartridge--3.3.1=BSD License
+org.andromda.cartridges--andromda-java-cartridge--3.3.1=BSD License
+org.andromda.cartridges--andromda-spring-cartridge--3.3.1=BSD License
+org.andromda.metafacades--andromda-metafacades-uml--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-common--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-datatype--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-meta--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-persistence--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-presentation--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-process--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-screen--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-service--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-webservice--3.3.1=BSD License
+org.andromda.profiles.emf.uml2--andromda-profile-xml--3.3.1=BSD License
+org.andromda.translationlibraries--andromda-ocl-translation-core--3.3.1=BSD License
+org.andromda.translationlibraries--andromda-ocl-validation-library--3.3.1=BSD License
+xalan--xalan--2.7.0=The Apache Software License, Version 2.0
+xerces--xercesImpl--2.6.0=The Apache Software License, Version 2.0
1
0
r809 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches
by kmorin@users.forge.codelutin.com 16 Apr '13
by kmorin@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: kmorin
Date: 2013-04-16 19:36:18 +0200 (Tue, 16 Apr 2013)
New Revision: 809
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/809
Log:
fixes #2306 [ERGO] masquer bouton "?\195?\169l?\195?\169vation des poids" dans "captures accidentelles" et "observations individuelles"
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/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.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-04-16 17:04:47 UTC (rev 808)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-04-16 17:36:18 UTC (rev 809)
@@ -68,7 +68,7 @@
BatchContainer<BenthosBatch> computedBenthosBatches;
Float totalBenthosSortedWeight;
- int rowIndex = 0;
+ Integer rowIndex = null;
try {
computedBenthosBatches =
tuttiWeightComputingService.getComputedBenthosBatches(model.getFishingOperation());
@@ -79,8 +79,10 @@
throw e;
} finally {
- getUI().getTabPane().setSelectedIndex(2);
- AbstractSelectTableAction.doSelectCell(getUI().getBenthosTabContent().getTable(), rowIndex, 1);
+ if (rowIndex != null) {
+ getUI().getTabPane().setSelectedIndex(2);
+ AbstractSelectTableAction.doSelectCell(getUI().getBenthosTabContent().getTable(), rowIndex, 1);
+ }
}
BatchContainer<MarineLitterBatch> computedMarineLitterBatches =
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-04-16 17:04:47 UTC (rev 808)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-04-16 17:36:18 UTC (rev 809)
@@ -421,13 +421,21 @@
</JTabbedPane>
<!-- Actions -->
- <JPanel layout='{new BorderLayout()}' constraints='BorderLayout.SOUTH'>
- <JPanel id='createFishingOperationActions' layout='{new GridLayout(1,0)}'
- constraints='BorderLayout.CENTER'>
- <JButton id='cancelButton'/>
- <JButton id='saveButton'/>
+ <Table id='createFishingOperationActions'
+ constraints='BorderLayout.SOUTH'
+ fill='both'
+ insets='0'>
+ <row>
+ <cell weightx="1">
+ <JButton id='cancelButton'/>
+ </cell>
+ <cell weightx="1">
+ <JButton id='saveButton'/>
+ </cell>
+ <cell weightx="1">
<JButton id='computeSpeciesBatchButton'/>
- </JPanel>
- </JPanel>
+ </cell>
+ </row>
+ </Table>
</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-04-16 17:04:47 UTC (rev 808)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-16 17:36:18 UTC (rev 809)
@@ -186,6 +186,7 @@
ui.getSpeciesTabContent().getSpeciesBatchAttachmentsButton().onCloseUI();
ui.getBenthosTabContent().getBenthosBatchAttachmentsButton().onCloseUI();
ui.getMarineLitterTabContent().getMarineLitterBatchAttachmentsButton().onCloseUI();
+ ui.getComputeSpeciesBatchButton().setVisible(newIndex < 4);
return super.onTabChanged(currentIndex, newIndex);
}
1
0
16 Apr '13
Author: kmorin
Date: 2013-04-16 19:04:47 +0200 (Tue, 16 Apr 2013)
New Revision: 808
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/808
Log:
fixes #2304 [CAPTURE ACCIDENTELLE] manque colonne "Autres caract?\195?\169ristiques" comme dans "observations individuelles"
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnUIHandler.java
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/
Modified:
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
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/accidental/AccidentalBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchTableModel.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/individualobservation/IndividualObservationBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIModel.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
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-04-16 15:41:25 UTC (rev 807)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-04-16 17:04:47 UTC (rev 808)
@@ -39,7 +39,7 @@
fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.MarineLitterBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUI
- fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics.CaracteristicMapEditorUI
+ fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapEditorUI
fr.ifremer.tutti.ui.swing.content.operation.catches.plankton.PlanktonBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI
@@ -390,6 +390,11 @@
<CreateAccidentalBatchUI id='accidentalTabCreateBatch'
constructorParams='this'/>
</JXTitledPanel>
+ <JXTitledPanel id='accidentalCaracteristicMapEditorReminderLabel'
+ constraints='EditCatchesUIHandler.EDIT_CARACTERISTICS_CARD'>
+ <CaracteristicMapEditorUI id='accidentalCaracteristicMapEditor'
+ constructorParams='accidentalTabContent'/>
+ </JXTitledPanel>
</JPanel>
</tab>
<tab id='individualObservationTab'>
@@ -406,9 +411,9 @@
id='individualObservationTabCreateBatch'
constructorParams='this'/>
</JXTitledPanel>
- <JXTitledPanel id='CaracteristicMapEditorReminderLabel'
+ <JXTitledPanel id='individualObservationCaracteristicMapEditorReminderLabel'
constraints='EditCatchesUIHandler.EDIT_CARACTERISTICS_CARD'>
- <CaracteristicMapEditorUI id='caracteristicMapEditor'
+ <CaracteristicMapEditorUI id='individualObservationCaracteristicMapEditor'
constructorParams='individualObservationTabContent'/>
</JXTitledPanel>
</JPanel>
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-04-16 15:41:25 UTC (rev 807)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -459,8 +459,13 @@
tuttiUi = ui.getAccidentalTabCreateBatch();
titlePanel = ui.getAccidentalTabCreateBatchReminderLabel();
title = n_("tutti.createAccidentalBatch.title");
+
+ } else if (EDIT_CARACTERISTICS_CARD.equals(card)) {
+ titlePanel = ui.getAccidentalCaracteristicMapEditorReminderLabel();
+ title = n_("tutti.editCaracteristics.title");
}
+
if (tuttiUi != null) {
registerValidators(tuttiUi.getHandler().getValidator());
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2013-04-16 15:41:25 UTC (rev 807)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
@@ -35,6 +36,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnRowModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -48,7 +50,7 @@
* @since 0.2
*/
public class AccidentalBatchRowModel extends AbstractTuttiBeanUIModel<AccidentalBatch, AccidentalBatchRowModel>
- implements AttachmentModelAware, AccidentalBatch {
+ implements AttachmentModelAware, AccidentalBatch, CaracteristicMapColumnRowModel {
private static final long serialVersionUID = 1L;
@@ -178,6 +180,18 @@
}
@Override
+ public CaracteristicMap getCaracteristics() {
+ return editObject.getCaracteristics();
+ }
+
+ @Override
+ public void setCaracteristics(CaracteristicMap caracteristics) {
+ Object oldValue = getCaracteristics();
+ editObject.setCaracteristics(caracteristics);
+ firePropertyChange(PROPERTY_CARACTERISTICS, oldValue, caracteristics);
+ }
+
+ @Override
public String getComment() {
return editObject.getComment();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchTableModel.java 2013-04-16 15:41:25 UTC (rev 807)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchTableModel.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -25,6 +25,7 @@
*/
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
@@ -39,36 +40,41 @@
private static final long serialVersionUID = 1L;
- public static final ColumnIdentifier<BenthosBatchRowModel> SPECIES = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<AccidentalBatchRowModel> SPECIES = ColumnIdentifier.newId(
AccidentalBatchRowModel.PROPERTY_SPECIES,
n_("tutti.editAccidentalBatch.table.header.species"),
n_("tutti.editAccidentalBatch.table.header.species.tip"));
- public static final ColumnIdentifier<BenthosBatchRowModel> GENDER = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<AccidentalBatchRowModel> GENDER = ColumnIdentifier.newId(
AccidentalBatchRowModel.PROPERTY_GENDER,
n_("tutti.editAccidentalBatch.table.header.gender"),
n_("tutti.editAccidentalBatch.table.header.gender.tip"));
- public static final ColumnIdentifier<BenthosBatchRowModel> WEIGHT = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<AccidentalBatchRowModel> WEIGHT = ColumnIdentifier.newId(
AccidentalBatchRowModel.PROPERTY_WEIGHT,
n_("tutti.editAccidentalBatch.table.header.weight"),
n_("tutti.editAccidentalBatch.table.header.weight.tip"));
- public static final ColumnIdentifier<BenthosBatchRowModel> SIZE = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<AccidentalBatchRowModel> SIZE = ColumnIdentifier.newId(
AccidentalBatchRowModel.PROPERTY_SIZE,
n_("tutti.editAccidentalBatch.table.header.size"),
n_("tutti.editAccidentalBatch.table.header.size.tip"));
- public static final ColumnIdentifier<BenthosBatchRowModel> LENGTH_STEP_CARACTERISTIC = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<AccidentalBatchRowModel> LENGTH_STEP_CARACTERISTIC = ColumnIdentifier.newId(
AccidentalBatchRowModel.PROPERTY_LENGTH_STEP_CARACTERISTIC,
n_("tutti.editAccidentalBatch.table.header.lengthStepCaracteristic"),
n_("tutti.editAccidentalBatch.table.header.lengthStepCaracteristic.tip"));
- public static final ColumnIdentifier<BenthosBatchRowModel> DEAD_OR_ALIVE = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<AccidentalBatchRowModel> DEAD_OR_ALIVE = ColumnIdentifier.newId(
AccidentalBatchRowModel.PROPERTY_DEAD_OR_ALIVE,
n_("tutti.editAccidentalBatch.table.header.deadOrAlive"),
n_("tutti.editAccidentalBatch.table.header.deadOrAlive.tip"));
+ public static final ColumnIdentifier<AccidentalBatchRowModel> OTHER_CARACTERISTICS = ColumnIdentifier.newId(
+ IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS,
+ n_("tutti.editAccidentalBatch.table.header.otherCaracteristics"),
+ n_("tutti.editAccidentalBatch.table.header.otherCaracteristics.tip"));
+
public static final ColumnIdentifier<AccidentalBatchRowModel> COMMENT = ColumnIdentifier.newId(
AccidentalBatchRowModel.PROPERTY_COMMENT,
n_("tutti.editAccidentalBatch.table.header.comment"),
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-04-16 15:41:25 UTC (rev 807)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -45,6 +45,9 @@
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
+import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent;
+import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnUIHandler;
+import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapEditorUI;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
@@ -71,7 +74,9 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.2
*/
-public class AccidentalBatchUIHandler extends AbstractTuttiBatchTableUIHandler<AccidentalBatchRowModel, AccidentalBatchUIModel, AccidentalBatchUI> {
+public class AccidentalBatchUIHandler
+ extends AbstractTuttiBatchTableUIHandler<AccidentalBatchRowModel, AccidentalBatchUIModel, AccidentalBatchUI>
+ implements CaracteristicMapColumnUIHandler {
/** Logger. */
private static final Log log =
@@ -339,6 +344,15 @@
}
+ { // Other caracteristics column
+
+ addColumnToModel(columnModel,
+ CaracteristicMapCellComponent.newEditor(ui),
+ CaracteristicMapCellComponent.newRender(getContext()),
+ IndividualObservationBatchTableModel.OTHER_CARACTERISTICS);
+
+ }
+
{ // Comment column
addColumnToModel(columnModel,
@@ -380,6 +394,24 @@
ui.getAccidentalBatchAttachmentsButton().onCloseUI();
}
+ @Override
+ public CaracteristicMapEditorUI getCaracteristicMapEditor() {
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ return parent.getAccidentalCaracteristicMapEditor();
+ }
+
+ @Override
+ public void showCaracteristicMapEditor() {
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ parent.getHandler().setAccidentalSelectedCard(EditCatchesUIHandler.EDIT_CARACTERISTICS_CARD);
+ }
+
+ @Override
+ public void hideCaracteristicMapEditor() {
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ parent.getHandler().setAccidentalSelectedCard(EditCatchesUIHandler.MAIN_CARD);
+ }
+
//------------------------------------------------------------------------//
//-- Public methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-04-16 15:41:25 UTC (rev 807)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -33,6 +33,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnRowModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -44,7 +45,7 @@
* @since 1.4
*/
public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel<IndividualObservationBatch, IndividualObservationBatchRowModel>
- implements AttachmentModelAware, IndividualObservationBatch {
+ implements AttachmentModelAware, IndividualObservationBatch, CaracteristicMapColumnRowModel {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-16 15:41:25 UTC (rev 807)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -35,7 +35,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics.CaracteristicMapCellComponent;
+import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
@@ -43,6 +43,8 @@
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
+import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnUIHandler;
+import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapEditorUI;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
@@ -70,7 +72,8 @@
* @since 1.4
*/
public class IndividualObservationBatchUIHandler
- extends AbstractTuttiBatchTableUIHandler<IndividualObservationBatchRowModel, IndividualObservationBatchUIModel, IndividualObservationBatchUI> {
+ extends AbstractTuttiBatchTableUIHandler<IndividualObservationBatchRowModel, IndividualObservationBatchUIModel, IndividualObservationBatchUI>
+ implements CaracteristicMapColumnUIHandler {
private static final Log log =
LogFactory.getLog(IndividualObservationBatchUIHandler.class);
@@ -331,7 +334,6 @@
{ // Other caracteristics column
- Color computedDataColor = getConfig().getColorComputedWeights();
addColumnToModel(columnModel,
CaracteristicMapCellComponent.newEditor(ui),
CaracteristicMapCellComponent.newRender(getContext()),
@@ -391,6 +393,24 @@
ui.getIndividualObservationBatchAttachmentsButton().onCloseUI();
}
+ @Override
+ public CaracteristicMapEditorUI getCaracteristicMapEditor() {
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ return parent.getIndividualObservationCaracteristicMapEditor();
+ }
+
+ @Override
+ public void showCaracteristicMapEditor() {
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.EDIT_CARACTERISTICS_CARD);
+ }
+
+ @Override
+ public void hideCaracteristicMapEditor() {
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.MAIN_CARD);
+ }
+
//------------------------------------------------------------------------//
//-- Public methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapCellComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapCellComponent.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapCellComponent.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -1,4 +1,4 @@
-package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+package fr.ifremer.tutti.ui.swing.util.caracteristics;
/*
* #%L
@@ -29,10 +29,9 @@
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchTableModel;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchUI;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
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;
@@ -112,7 +111,7 @@
return new CaracteristicMapCellRenderer(context);
}
- public static TableCellEditor newEditor(IndividualObservationBatchUI ui) {
+ public static TableCellEditor newEditor(TuttiUI ui) {
return new CaracteristicMapCellEditor(ui);
}
@@ -122,21 +121,19 @@
protected final CaracteristicMapCellComponent component;
- protected final IndividualObservationBatchUI ui;
+ protected final TuttiUI ui;
protected JTable table;
- protected IndividualObservationBatchTableModel tableModel;
+ protected AbstractTuttiTableModel<CaracteristicMapColumnRowModel> tableModel;
- protected ColumnIdentifier<IndividualObservationBatchRowModel> columnIdentifier;
+ protected CaracteristicMapColumnRowModel editRow;
- protected IndividualObservationBatchRowModel editRow;
-
protected Integer rowIndex;
protected Integer columnIndex;
- public CaracteristicMapCellEditor(IndividualObservationBatchUI ui) {
+ public CaracteristicMapCellEditor(TuttiUI ui) {
this.ui = ui;
component = new CaracteristicMapCellComponent(ui.getHandler().getContext());
component.setBorder(new LineBorder(Color.BLACK));
@@ -172,12 +169,10 @@
log.info("Will edit frequencies for row: " + rowIndex);
}
- EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
- CaracteristicMapEditorUI caracteristicMapEditor = parent.getCaracteristicMapEditor();
+ CaracteristicMapColumnUIHandler handler = (CaracteristicMapColumnUIHandler) ui.getHandler();
+ CaracteristicMapEditorUI caracteristicMapEditor = handler.getCaracteristicMapEditor();
caracteristicMapEditor.getHandler().editBatch(editRow, this);
-
- // open frequency editor
- parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.EDIT_CARACTERISTICS_CARD);
+ handler.showCaracteristicMapEditor();
}
public void validateEdition(CaracteristicMapEditorUIModel caracteristicMapEditorModel) {
@@ -200,18 +195,19 @@
table.requestFocus();
}
+ public void closeEditor() {
+ CaracteristicMapColumnUIHandler handler = (CaracteristicMapColumnUIHandler) ui.getHandler();
+ handler.hideCaracteristicMapEditor();
+ }
+
@Override
public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) {
- tableModel = (IndividualObservationBatchTableModel) table.getModel();
+ tableModel = (AbstractTuttiTableModel) table.getModel();
this.table = table;
- columnIdentifier = IndividualObservationBatchTableModel.OTHER_CARACTERISTICS;
- if (log.isDebugEnabled()) {
- log.debug("Set columnIdentifier (" + column + ") :: " + columnIdentifier.getPropertyName());
- }
rowIndex = row;
columnIndex = column;
@@ -229,14 +225,7 @@
Preconditions.checkNotNull(editRow, "No editRow found in editor.");
- Object result = null;
- if (columnIdentifier == IndividualObservationBatchTableModel.OTHER_CARACTERISTICS) {
- result = editRow.getCaracteristics();
- }
- if (log.isDebugEnabled()) {
- log.debug("editor value (" + columnIdentifier + "): " + result);
- }
-
+ Object result = editRow.getCaracteristics();
return result;
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnRowModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnRowModel.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -0,0 +1,15 @@
+package fr.ifremer.tutti.ui.swing.util.caracteristics;
+
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+
+import java.io.Serializable;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ */
+public interface CaracteristicMapColumnRowModel extends Serializable {
+
+ CaracteristicMap getCaracteristics();
+
+ void setCaracteristics(CaracteristicMap map);
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnUIHandler.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -0,0 +1,14 @@
+package fr.ifremer.tutti.ui.swing.util.caracteristics;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.0
+ */
+public interface CaracteristicMapColumnUIHandler {
+
+ CaracteristicMapEditorUI getCaracteristicMapEditor();
+
+ void showCaracteristicMapEditor();
+
+ void hideCaracteristicMapEditor();
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorRowModel.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorRowModel.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -1,4 +1,4 @@
-package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+package fr.ifremer.tutti.ui.swing.util.caracteristics;
/*
* #%L
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorTableModel.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorTableModel.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -1,4 +1,4 @@
-package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+package fr.ifremer.tutti.ui.swing.util.caracteristics;
/*
* #%L
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIHandler.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -1,4 +1,4 @@
-package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+package fr.ifremer.tutti.ui.swing.util.caracteristics;
/*
* #%L
@@ -25,21 +25,14 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
-import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel;
import fr.ifremer.tutti.ui.swing.util.Cancelable;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
-import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
@@ -50,7 +43,7 @@
import javax.swing.JComponent;
import java.util.List;
-import static fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics.CaracteristicMapCellComponent.CaracteristicMapCellEditor;
+import static fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent.CaracteristicMapCellEditor;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -177,8 +170,7 @@
// when canceling always invalid model (in that way)
getModel().setValid(false);
- EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
- parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.MAIN_CARD);
+ caracteristicMapCellEditor.closeEditor();
}
@Override
@@ -205,14 +197,6 @@
return new CaracteristicMapEditorUIModel();
}
- protected CaracteristicMap getCaracteristics(IndividualObservationBatch individualObservation) {
- return individualObservation.getCaracteristics();
- }
-
- protected List<String> getProtocolPmfmIds(TuttiProtocol protocol) {
- return protocol.getGearUseFeaturePmfmId();
- }
-
protected void saveRow(CaracteristicMapEditorRowModel row) {
if (row.isValid()) {
@@ -248,7 +232,7 @@
recomputeRowValidState(row);
}
- public void editBatch(IndividualObservationBatchRowModel individualObservation,
+ public void editBatch(CaracteristicMapColumnRowModel caracteristicMapColumnRowModel,
CaracteristicMapCellEditor caracteristicMapCellEditor) {
this.caracteristicMapCellEditor = caracteristicMapCellEditor;
@@ -256,31 +240,16 @@
CaracteristicMapEditorTableModel tableModel = getTableModel();
CaracteristicMapEditorUIModel model = getModel();
- CaracteristicMap caracteristicMap = getCaracteristics(individualObservation);
+ CaracteristicMap caracteristicMap = caracteristicMapColumnRowModel.getCaracteristics();
if (caracteristicMap == null) {
caracteristicMap = new CaracteristicMap();
}
model.setCaracteristicMap(caracteristicMap);
- TuttiProtocol protocol = getDataContext().getProtocol();
- List<String> pmfmIds = Lists.newArrayList();
- if (protocol != null) {
- List<String> protocolPmfmId = getProtocolPmfmIds(protocol);
- if (protocolPmfmId != null) {
- pmfmIds.addAll(protocolPmfmId);
- }
- }
-
List<CaracteristicMapEditorRowModel> rows = Lists.newArrayList();
List<Caracteristic> caracteristics = Lists.newArrayList(caracteristicMap.keySet());
List<Caracteristic> availableCaracteristics = model.getAvailableCaracteristics();
- for (String id : pmfmIds) {
- Caracteristic caracteristic = TuttiEntities.findById(availableCaracteristics, id);
- if (!caracteristics.contains(caracteristic)) {
- caracteristics.add(caracteristic);
- }
- }
for (Caracteristic key : caracteristics) {
CaracteristicMapEditorRowModel newRow = tableModel.createNewRow();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIModel.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIModel.java 2013-04-16 17:04:47 UTC (rev 808)
@@ -1,4 +1,4 @@
-package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+package fr.ifremer.tutti.ui.swing.util.caracteristics;
/*
* #%L
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-16 15:41:25 UTC (rev 807)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-16 17:04:47 UTC (rev 808)
@@ -242,6 +242,8 @@
tutti.editAccidentalBatch.table.header.gender.tip=
tutti.editAccidentalBatch.table.header.lengthStepCaracteristic=
tutti.editAccidentalBatch.table.header.lengthStepCaracteristic.tip=
+tutti.editAccidentalBatch.table.header.otherCaracteristics=
+tutti.editAccidentalBatch.table.header.otherCaracteristics.tip=
tutti.editAccidentalBatch.table.header.size=
tutti.editAccidentalBatch.table.header.size.tip=
tutti.editAccidentalBatch.table.header.species=
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-04-16 15:41:25 UTC (rev 807)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-16 17:04:47 UTC (rev 808)
@@ -243,6 +243,8 @@
tutti.editAccidentalBatch.table.header.gender.tip=Sexe (Male, femelle, autre...)
tutti.editAccidentalBatch.table.header.lengthStepCaracteristic=Classe de taille
tutti.editAccidentalBatch.table.header.lengthStepCaracteristic.tip=Classe de taille
+tutti.editAccidentalBatch.table.header.otherCaracteristics=Autres caractéristiques
+tutti.editAccidentalBatch.table.header.otherCaracteristics.tip=Autres caractéristiques
tutti.editAccidentalBatch.table.header.size=Taille
tutti.editAccidentalBatch.table.header.size.tip=Taille (l'unité dépend de la classe de taille)
tutti.editAccidentalBatch.table.header.species=Espèce
1
0
r807 - in trunk/tutti-ui-swing/src/main: filtered-resources java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create resources/i18n
by kmorin@users.forge.codelutin.com 16 Apr '13
by kmorin@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: kmorin
Date: 2013-04-16 17:41:25 +0200 (Tue, 16 Apr 2013)
New Revision: 807
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/807
Log:
fixes #2308 [OBSERVATIONS INDIVIDUELLES] auto compl?\195?\169tion du champ classe de taille
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java
Modified:
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-16 15:41:25 UTC (rev 807)
@@ -1,28 +1,5 @@
-###
-# #%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%
-###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Fri Apr 12 10:46:52 CEST 2013
+#Tue Apr 16 17:33:03 CEST 2013
tutti.createAccidentalBatch.action.cancel.help=
tutti.createAccidentalBatch.action.save.help=
tutti.createAccidentalBatch.field.accidentalDeadOrAlive.help=
@@ -38,6 +15,7 @@
tutti.createBenthosBatch.field.sortedUnsortedCategory.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.field.species.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.help=createBenthosBatch.html
+tutti.createIndividualObservationBatch.action.addSpecies.help=
tutti.createIndividualObservationBatch.action.cancel.help=
tutti.createIndividualObservationBatch.action.save.help=
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-16 15:41:25 UTC (rev 807)
@@ -1,28 +1,5 @@
-###
-# #%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%
-###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Fri Apr 12 10:46:52 CEST 2013
+#Tue Apr 16 17:33:03 CEST 2013
tutti.createAccidentalBatch.action.cancel.help=
tutti.createAccidentalBatch.action.save.help=
tutti.createAccidentalBatch.field.accidentalDeadOrAlive.help=
@@ -38,6 +15,7 @@
tutti.createBenthosBatch.field.sortedUnsortedCategory.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.field.species.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.help=createBenthosBatch.html
+tutti.createIndividualObservationBatch.action.addSpecies.help=
tutti.createIndividualObservationBatch.action.cancel.help=
tutti.createIndividualObservationBatch.action.save.help=
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -400,7 +400,7 @@
EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
CreateIndividualObservationBatchUI createBatchEditor = parent.getIndividualObservationTabCreateBatch();
- createBatchEditor.getHandler().openUI();
+ createBatchEditor.getHandler().openUI(getModel());
parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.CREATE_BATCH_CARD);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -25,6 +25,7 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.TabContentModel;
@@ -76,6 +77,14 @@
return rootBatchId;
}
+ public Species getLastSpeciesUsed() {
+ Species result = null;
+ if (!rows.isEmpty()) {
+ result = rows.get(rows.size() - 1).getSpecies();
+ }
+ return result;
+ }
+
//------------------------------------------------------------------------//
//-- AttachmentModelAware --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-04-16 15:41:25 UTC (rev 807)
@@ -89,6 +89,14 @@
selectedItem: {model.getLengthStepCaracteristic()};
}
+#addSpeciesButton {
+ text: "tutti.createIndividualObservationBatch.action.addSpecies";
+ toolTipText: "tutti.createIndividualObservationBatch.action.addSpecies.tip";
+ i18nMnemonic: "tutti.createIndividualObservationBatch.action.addSpecies.mnemonic";
+ _tuttiAction: {SelectSpeciesForIndividualObservationBatchAction.class};
+ _help: {"tutti.createIndividualObservationBatch.action.addSpecies.help"};
+}
+
#saveButton {
actionIcon: save;
text: "tutti.createIndividualObservationBatch.action.save";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx 2013-04-16 15:41:25 UTC (rev 807)
@@ -83,6 +83,9 @@
constructorParams='this'
genericType='Species'/>
</cell>
+ <cell>
+ <JButton id='addSpeciesButton'/>
+ </cell>
</row>
<!-- IndividualObservation weight -->
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -22,9 +22,20 @@
* #L%
*/
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Multimap;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
+import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchUIModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.Cancelable;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
@@ -37,7 +48,10 @@
import javax.swing.JComponent;
import java.awt.Dimension;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.List;
+import java.util.Map;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -71,13 +85,45 @@
initUI(ui);
initBeanFilterableComboBox(ui.getIndividualObservationSpeciesComboBox(),
- getDataContext().getReferentSpecies(),
+ getDataContext().getReferentSpeciesWithSurveyCode(),
null);
+ List<Caracteristic> lengthStepCaracteristics = getDataContext().getLengthStepCaracteristics();
initBeanFilterableComboBox(ui.getIndividualObservationLengthStepCaracteristicComboBox(),
- getDataContext().getLengthStepCaracteristics(),
+ lengthStepCaracteristics,
null);
+ if (context.isProtocolFilled()) {
+
+ // get loaded protocol
+ TuttiProtocol protocol = getDataContext().getProtocol();
+ Preconditions.checkNotNull(protocol,
+ "Could not find protocol in ui context");
+
+ final Map<Integer, SpeciesProtocol> speciesProtocolMap = Maps.newHashMap();
+ for (SpeciesProtocol sp : protocol.getSpecies()) {
+ speciesProtocolMap.put(sp.getSpeciesReferenceTaxonId(), sp);
+ }
+
+ final Map<String, Caracteristic> lengthStepCaracteristicMap = TuttiEntities.splitById(lengthStepCaracteristics);
+
+ getModel().addPropertyChangeListener(IndividualObservationBatch.PROPERTY_SPECIES,
+ new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ Species species = (Species) evt.getNewValue();
+ if (species != null) {
+ SpeciesProtocol speciesProtocol = speciesProtocolMap.get(species.getReferenceTaxonId());
+ if (speciesProtocol != null) {
+ String lengthStepPmfmId = speciesProtocol.getLengthStepPmfmId();
+ Caracteristic lengthStepCaracteristic = lengthStepCaracteristicMap.get(lengthStepPmfmId);
+ getModel().setLengthStepCaracteristic(lengthStepCaracteristic);
+ }
+ }
+ }
+ });
+ }
+
listenValidatorValid(ui.getValidator(), getModel());
}
@@ -124,7 +170,7 @@
//-- Public methods --//
//------------------------------------------------------------------------//
- public void openUI() {
+ public void openUI(IndividualObservationBatchUIModel batchModel) {
CreateIndividualObservationBatchUIModel model = getModel();
@@ -133,6 +179,9 @@
model.reset();
+ model.setSpecies(batchModel.getLastSpeciesUsed());
+
+ model.setAvailableSpecies(getDataContext().getReferentSpeciesWithSurveyCode());
}
public void save() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -22,22 +22,38 @@
* #L%
*/
+import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import java.util.List;
+
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.4
*/
public class CreateIndividualObservationBatchUIModel extends AbstractTuttiBeanUIModel<CreateIndividualObservationBatchUIModel, CreateIndividualObservationBatchUIModel> {
-
private static final long serialVersionUID = 1L;
+ private static final Log log = LogFactory.getLog(CreateIndividualObservationBatchUIModel.class);
+
+ public static final String PROPERTY_AVAILABLE_SPECIES = "availableSpecies";
+
/**
+ * All available species (sets by protocol).
+ *
+ * @since 2.0
+ */
+ protected List<Species> availableSpecies;
+
+ /**
* Delegate edit object.
*
* @since 1.3
@@ -89,6 +105,23 @@
firePropertyChange(IndividualObservationBatch.PROPERTY_LENGTH_STEP_CARACTERISTIC, oldValue, individualObservationLengthStepCaracteristic);
}
+ public List<Species> getAvailableSpecies() {
+ if (log.isDebugEnabled()) {
+ log.debug("getAvailableSpecies " + availableSpecies);
+ }
+ return availableSpecies;
+ }
+
+ public void setAvailableSpecies(List<Species> availableSpecies) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("setAvailableSpecies " + availableSpecies);
+ }
+ Object oldValue = getAvailableSpecies();
+ this.availableSpecies = availableSpecies;
+ firePropertyChange(PROPERTY_AVAILABLE_SPECIES, oldValue, availableSpecies);
+ }
+
@Override
protected CreateIndividualObservationBatchUIModel newEntity() {
return new CreateIndividualObservationBatchUIModel();
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java (from rev 804, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/SelectSpeciesForSpeciesBatchAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -0,0 +1,103 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create;
+
+/*
+ * #%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.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+
+import java.util.List;
+import java.util.Map;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Enable to select a species to the species selected in the protocol.
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.0
+ */
+public class SelectSpeciesForIndividualObservationBatchAction extends AbstractTuttiAction<CreateIndividualObservationBatchUIModel,
+ CreateIndividualObservationBatchUI,
+ CreateIndividualObservationBatchUIHandler> {
+
+ protected List<Species> allSpecies;
+
+ protected List<Species> referentSpecies;
+
+ protected Species selectedSpecies;
+
+ public SelectSpeciesForIndividualObservationBatchAction(CreateIndividualObservationBatchUIHandler handler) {
+ super(handler, false);
+
+ allSpecies = getDataContext().getSpecies();
+ referentSpecies = getDataContext().getReferentSpecies();
+ }
+
+ @Override
+ protected boolean prepareAction() throws Exception {
+ boolean canContinue = super.prepareAction();
+ if (canContinue) {
+
+ CreateIndividualObservationBatchUIModel model = getModel();
+
+ List<Species> species = Lists.newArrayList(allSpecies);
+ species.removeAll(model.getAvailableSpecies());
+
+ selectedSpecies = getHandler().openAddSpeciesDialog(
+ _("tutti.selectSpecies.title"), species);
+ canContinue = selectedSpecies != null;
+ }
+ return canContinue;
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+
+ CreateIndividualObservationBatchUIModel model = getModel();
+
+ List<Species> availableSpecies = Lists.newArrayList(model.getAvailableSpecies());
+
+ if (!selectedSpecies.isReferenceTaxon()) {
+ String decoratedSynonym = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL);
+ List<Species> referents = referentSpecies;
+ Map<String, Species> referentsById = TuttiEntities.splitByTaxonId(referents);
+ String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
+ selectedSpecies = referentsById.get(taxonId);
+ String decoratedReferent = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL);
+ sendMessage(_("tutti.flash.info.species.replaced", decoratedSynonym, decoratedReferent));
+ }
+
+ if (!availableSpecies.contains(selectedSpecies)) {
+ availableSpecies.add(selectedSpecies);
+ }
+ model.setAvailableSpecies(availableSpecies);
+ model.setSpecies(selectedSpecies);
+
+ }
+
+}
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-16 15:41:25 UTC (rev 807)
@@ -140,6 +140,9 @@
tutti.createBenthosBatch.title=
tutti.createBenthosMelag.error.message=
tutti.createBenthosMelag.error.title=
+tutti.createIndividualObservationBatch.action.addSpecies=
+tutti.createIndividualObservationBatch.action.addSpecies.mnemonic=
+tutti.createIndividualObservationBatch.action.addSpecies.tip=
tutti.createIndividualObservationBatch.action.cancel=
tutti.createIndividualObservationBatch.action.cancel.mnemonic=
tutti.createIndividualObservationBatch.action.cancel.tip=
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-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-16 15:41:25 UTC (rev 807)
@@ -141,6 +141,9 @@
tutti.createBenthosMelag.error.title=Erreur
tutti.createBenthosMelag.message=Combien pesait le MELAG (kg) ?
tutti.createBenthosMelag.title=Poids du MELAG (kg)
+tutti.createIndividualObservationBatch.action.addSpecies=...
+tutti.createIndividualObservationBatch.action.addSpecies.mnemonic=.
+tutti.createIndividualObservationBatch.action.addSpecies.tip=Sélectionner une autre espèce
tutti.createIndividualObservationBatch.action.cancel=Annuler
tutti.createIndividualObservationBatch.action.cancel.mnemonic=A
tutti.createIndividualObservationBatch.action.cancel.tip=Annuler la création de l'observation individuelle
1
0
r806 - trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro
by tchemit@users.forge.codelutin.com 16 Apr '13
by tchemit@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: tchemit
Date: 2013-04-16 17:37:31 +0200 (Tue, 16 Apr 2013)
New Revision: 806
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/806
Log:
fix test
Modified:
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java 2013-04-16 14:43:22 UTC (rev 805)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java 2013-04-16 15:37:31 UTC (rev 806)
@@ -190,10 +190,10 @@
getLastUpdateDate(TuttiTable.GEAR, internalDb, getSqlDate(2012, 12, 18));
getLastUpdateDate(TuttiTable.LOCATION_CLASSIFICATION, internalDb, getSqlDate(2010, 10, 26));
getLastUpdateDate(TuttiTable.LOCATION_LEVEL, internalDb, getSqlDate(2013, 1, 28));
- getLastUpdateDate(TuttiTable.LOCATION, internalDb, getSqlDate(2013, 3, 29));
+ getLastUpdateDate(TuttiTable.LOCATION, internalDb, getSqlDate(2013, 3, 28));
getLastUpdateDate(TuttiTable.TAXONOMIC_LEVEL, internalDb, getSqlDate(2013, 2, 21));
getLastUpdateDate(TuttiTable.REFERENCE_TAXON, internalDb, getSqlDate(2013, 3, 26));
- getLastUpdateDate(TuttiTable.TAXON_NAME, internalDb, getSqlDate(2013, 3, 29));
+ getLastUpdateDate(TuttiTable.TAXON_NAME, internalDb, getSqlDate(2013, 3, 28));
getLastUpdateDate(TuttiTable.TAXON_GROUP_TYPE, internalDb, getSqlDate(2012, 5, 24));
getLastUpdateDate(TuttiTable.TAXON_GROUP, internalDb, getSqlDate(2013, 2, 20));
getLastUpdateDate(TuttiTable.ROUND_WEIGHT_CONVERSION, internalDb, getSqlDate(2013, 3, 28));
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/648/changes>
Changes:
[Kevin Morin] fixes #2303 [CAPTURE ACCIDENTELLE] création lot, ne remonte pas la valeur du sexe et de "mort/vivant" dans le tableau
[Kevin Morin] fixes #2316 [CAPTURES] - Observations individuelles - Erreur lors de la saisie du code de prélèvement pièce calcifiée
------------------------------------------
[...truncated 497 lines...]
2013-04-16 15:17:14,286 5115 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.ValidationService@162cd9f9
2013-04-16 15:17:14,286 5115 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.PersistenceService@2ee65e1d
2013-04-16 15:17:14,286 5115 [main] INFO fr.ifremer.tutti.service.PersistenceService - Close persistence Service
2013-04-16 15:17:14,286 5115 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* closed.
2013-04-16 15:17:14,292 5121 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.DecoratorService@5a9a75ce
2013-04-16 15:17:14,298 5127 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.catches.TuttiWeightComputingService@52ac55da
2013-04-16 15:17:14,298 5127 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.PersistenceService@3038859d
2013-04-16 15:17:14,298 5127 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-04-16 15:17:14,298 5127 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-04-16 15:17:14,299 5128 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.ValidationService@4ecc1f26
2013-04-16 15:17:14,312 5141 [main] INFO fr.ifremer.tutti.service.export.TuttiExportServiceTest - Parameter export:
Annee;Serie;Serie_Partielle;Id_Operation;NumOrdre_Station;Code_PMFM;Libelle_PMFm;Valeur
2013;ProgramName;CruiseSurveyPart;A0;100;0;CaracteristicIntegerParameterName - CaracteristicIntegerMatrixName - CaracteristicIntegerFractionName - CaracteristicIntegerMethodName;10.4;
2013;ProgramName;CruiseSurveyPart;A0;100;1;CaracteristicTextParameterName - CaracteristicTextMatrixName - CaracteristicTextFractionName - CaracteristicTextMethodName;Text2;
2013;ProgramName;CruiseSurveyPart;A0;100;2;CaracteristicQualitativeParameterName1 - CaracteristicQualitativeMatrixName1 - CaracteristicQualitativeFractionName1 - CaracteristicQualitativeMethodName1;CaracteristicQualitativeValueName2;
2013;ProgramName;CruiseSurveyPart;A0;100;3;CaracteristicQualitativeParameterName2 - CaracteristicQualitativeMatrixName2 - CaracteristicQualitativeFractionName2 - CaracteristicQualitativeMethodName2;CaracteristicQualitativeValueName1;
2013;ProgramName;CruiseSurveyPart;A0;100;10;CaracteristicVerticalOpeningParameterName - CaracteristicVerticalOpeningMatrixName - CaracteristicVerticalOpeningFractionName - CaracteristicVerticalOpeningMethodName;5;
2013;ProgramName;CruiseSurveyPart;A0;100;12;CaracteristicHorizontalOpeningDoorParameterName - CaracteristicHorizontalOpeningDoorMatrixName - CaracteristicHorizontalOpeningDoorFractionName - CaracteristicHorizontalOpeningDoorMethodName;-2;
2013;ProgramName;CruiseSurveyPart;A0;100;11;CaracteristicHorizontalOpeningWingParameterName - CaracteristicHorizontalOpeningWingMatrixName - CaracteristicHorizontalOpeningWingFractionName - CaracteristicHorizontalOpeningWingMethodName;-9;
2013;ProgramName;CruiseSurveyPart;A1;101;0;CaracteristicIntegerParameterName - CaracteristicIntegerMatrixName - CaracteristicIntegerFractionName - CaracteristicIntegerMethodName;10.4;
2013;ProgramName;CruiseSurveyPart;A1;101;1;CaracteristicTextParameterName - CaracteristicTextMatrixName - CaracteristicTextFractionName - CaracteristicTextMethodName;Text2;
2013;ProgramName;CruiseSurveyPart;A1;101;2;CaracteristicQualitativeParameterName1 - CaracteristicQualitativeMatrixName1 - CaracteristicQualitativeFractionName1 - CaracteristicQualitativeMethodName1;CaracteristicQualitativeValueName2;
2013;ProgramName;CruiseSurveyPart;A1;101;3;CaracteristicQualitativeParameterName2 - CaracteristicQualitativeMatrixName2 - CaracteristicQualitativeFractionName2 - CaracteristicQualitativeMethodName2;CaracteristicQualitativeValueName1;
2013;ProgramName;CruiseSurveyPart;A1;101;10;CaracteristicVerticalOpeningParameterName - CaracteristicVerticalOpeningMatrixName - CaracteristicVerticalOpeningFractionName - CaracteristicVerticalOpeningMethodName;5;
2013;ProgramName;CruiseSurveyPart;A1;101;12;CaracteristicHorizontalOpeningDoorParameterName - CaracteristicHorizontalOpeningDoorMatrixName - CaracteristicHorizontalOpeningDoorFractionName - CaracteristicHorizontalOpeningDoorMethodName;-2;
2013;ProgramName;CruiseSurveyPart;A1;101;11;CaracteristicHorizontalOpeningWingParameterName - CaracteristicHorizontalOpeningWingMatrixName - CaracteristicHorizontalOpeningWingFractionName - CaracteristicHorizontalOpeningWingMethodName;-9;
2013;ProgramName;CruiseSurveyPart;A2;102;0;CaracteristicIntegerParameterName - CaracteristicIntegerMatrixName - CaracteristicIntegerFractionName - CaracteristicIntegerMethodName;10.4;
2013;ProgramName;CruiseSurveyPart;A2;102;1;CaracteristicTextParameterName - CaracteristicTextMatrixName - CaracteristicTextFractionName - CaracteristicTextMethodName;Text2;
2013;ProgramName;CruiseSurveyPart;A2;102;2;CaracteristicQualitativeParameterName1 - CaracteristicQualitativeMatrixName1 - CaracteristicQualitativeFractionName1 - CaracteristicQualitativeMethodName1;CaracteristicQualitativeValueName2;
2013;ProgramName;CruiseSurveyPart;A2;102;3;CaracteristicQualitativeParameterName2 - CaracteristicQualitativeMatrixName2 - CaracteristicQualitativeFractionName2 - CaracteristicQualitativeMethodName2;CaracteristicQualitativeValueName1;
2013;ProgramName;CruiseSurveyPart;A2;102;10;CaracteristicVerticalOpeningParameterName - CaracteristicVerticalOpeningMatrixName - CaracteristicVerticalOpeningFractionName - CaracteristicVerticalOpeningMethodName;5;
2013;ProgramName;CruiseSurveyPart;A2;102;12;CaracteristicHorizontalOpeningDoorParameterName - CaracteristicHorizontalOpeningDoorMatrixName - CaracteristicHorizontalOpeningDoorFractionName - CaracteristicHorizontalOpeningDoorMethodName;-2;
2013;ProgramName;CruiseSurveyPart;A2;102;11;CaracteristicHorizontalOpeningWingParameterName - CaracteristicHorizontalOpeningWingMatrixName - CaracteristicHorizontalOpeningWingFractionName - CaracteristicHorizontalOpeningWingMethodName;-9;
2013-04-16 15:17:14,312 5141 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.DecoratorService@5a9a75ce
2013-04-16 15:17:14,312 5141 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.catches.TuttiWeightComputingService@52ac55da
2013-04-16 15:17:14,312 5141 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.ValidationService@4ecc1f26
2013-04-16 15:17:14,313 5142 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.PersistenceService@3038859d
2013-04-16 15:17:14,313 5142 [main] INFO fr.ifremer.tutti.service.PersistenceService - Close persistence Service
2013-04-16 15:17:14,313 5142 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* closed.
2013-04-16 15:17:14,318 5147 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.DecoratorService@3b112034
2013-04-16 15:17:14,326 5155 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.catches.TuttiWeightComputingService@61595437
2013-04-16 15:17:14,326 5155 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.PersistenceService@2fa818cf
2013-04-16 15:17:14,326 5155 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-04-16 15:17:14,326 5155 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-04-16 15:17:14,327 5156 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.ValidationService@44f4d67a
2013-04-16 15:17:14,346 5175 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.DecoratorService@3b112034
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.catches.TuttiWeightComputingService@61595437
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.ValidationService@44f4d67a
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.PersistenceService@2fa818cf
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.PersistenceService - Close persistence Service
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* closed.
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.517 sec
Results :
Tests run: 32, Failures: 0, Errors: 0, Skipped: 1
mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.14(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/trunk2/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/trunk2/tutti-service/target/tutti…> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/2.0-SNAPSHOT/tutti-service-2.0-SNAPSHOT.jar
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/pom.xml> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/2.0-SNAPSHOT/tutti-service-2.0-SNAPSHOT.pom
mojoSucceeded org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
projectSucceeded fr.ifremer.tutti:tutti-service:2.0-SNAPSHOT
projectStarted fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
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/trunk2/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.17(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.17:generate (default) @ tutti-ui-swing ---
[INFO] use project compile scope class-path
[INFO] Detects 39 modified jaxx file(s).
[INFO] Generated 39 file(s) in 23.897s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.17:generate-help-ids (default) @ tutti-ui-swing ---
[INFO] Store detected help ids to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
[INFO] Merge help ids to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
[INFO] Use input file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/main/fi…>
[INFO] No keys to add.
[INFO] Use input file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/main/fi…>
[INFO] No keys to add.
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(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:2.0-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/trunk2/tutti-ui-swing/target/gene…>
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:2.0-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 126/1191 empty entries! (use -Di18n.showEmpty to see these entries)
[WARNING] bundle en_GB contains 1193/1193 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:2.0-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 11 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/i18n…>
[INFO] collected 11 i18n artifacts for locale en_GB stored in <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/i18n…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:2.0-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 130/1437 empty entries! (use -Di18n.showEmpty to see these entries)
[WARNING] bundle en_GB contains 1279/1439 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/trunk2/tutti-ui-swing/src/license…>
[INFO] Missing file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/license…> is up-to-date.
[INFO] Writing third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
[INFO] Writing bundled third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
[INFO] Will attach third party file from <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/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.
[INFO] Copying 4 resources
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Copying 84 resources
[INFO] Copying 4 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 284 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/clas…>
[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/trunk2/tutti-ui-swing/src/main/ja…>:[36,39] error: cannot find symbol
[ERROR] symbol: class TuttiWeightComputingException
location: package fr.ifremer.tutti.service.catches
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/main/ja…>:[77,17] error: cannot find symbol
[INFO] 2 errors
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
sessionEnded
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [7.539s]
[INFO] Tutti :: Persistence .............................. SUCCESS [22.680s]
[INFO] Tutti :: Service .................................. SUCCESS [10.312s]
[INFO] Tutti :: UI ....................................... FAILURE [38.534s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:20.790s
[INFO] Finished at: Tue Apr 16 15:17:53 CEST 2013
[INFO] Final Memory: 63M/175M
[INFO] ------------------------------------------------------------------------
Projects to build: [MavenProject: fr.ifremer:tutti:2.0-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-persistence:2.0-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-persistence/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-service:2.0-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/pom.xml]>
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-service/2.0-SNAPSHOT/tutti-service-2.0-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/target/tutti…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-service/2.0-SNAPSHOT/tutti-service-2.0-SNAPSHOT.jar
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-ui-swing/2.0-SNAPSHOT/tutti-ui-swing-2.0-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/license…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-ui-swing/2.0-SNAPSHOT/tutti-ui-swing-2.0-SNAPSHOT-third-party.properties
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-04-16_15-16-27/archive/fr.ifremer/tutti/2.0-SNAPSHOT/tutti-2.0-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/target/tutti-2.0-SNAPSHOT-…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-04-16_15-16-27/archive/fr.ifremer/tutti/2.0-SNAPSHOT/tutti-2.0-SNAPSHOT-site_fr.xml
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-persistence/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-persistence/2.0-SNAPSHOT/tutti-persistence-2.0-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-persistence/target/t…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-persistence/2.0-SNAPSHOT/tutti-persistence-2.0-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
cause : Compilation failure
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
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
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 kmorin(a)codelutin.com
channel stopped
1
4
16 Apr '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/648/…>
Changes:
[Kevin Morin] fixes #2303 [CAPTURE ACCIDENTELLE] création lot, ne remonte pas la valeur du sexe et de "mort/vivant" dans le tableau
[Kevin Morin] fixes #2316 [CAPTURES] - Observations individuelles - Erreur lors de la saisie du code de prélèvement pièce calcifiée
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
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.17(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.17:generate (default) @ tutti-ui-swing ---
[INFO] use project compile scope class-path
[INFO] Detects 39 modified jaxx file(s).
[INFO] Generated 39 file(s) in 23.897s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.17:generate-help-ids (default) @ tutti-ui-swing ---
[INFO] Store detected help ids to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Merge help ids to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Use input file: <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
[INFO] No keys to add.
[INFO] Use input file: <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
[INFO] No keys to add.
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(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:2.0-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…>
[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:2.0-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 126/1191 empty entries! (use -Di18n.showEmpty to see these entries)
[WARNING] bundle en_GB contains 1193/1193 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:2.0-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 11 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] collected 11 i18n artifacts for locale en_GB 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:2.0-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 130/1437 empty entries! (use -Di18n.showEmpty to see these entries)
[WARNING] bundle en_GB contains 1279/1439 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.
[INFO] Copying 4 resources
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Copying 84 resources
[INFO] Copying 4 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 284 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…>:[36,39] error: cannot find symbol
[ERROR] symbol: class TuttiWeightComputingException
location: package fr.ifremer.tutti.service.catches
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[77,17] error: cannot find symbol
[INFO] 2 errors
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
1
4
16 Apr '13
Author: kmorin
Date: 2013-04-16 16:43:22 +0200 (Tue, 16 Apr 2013)
New Revision: 805
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/805
Log:
refs #1883 [RAPPORT] - Rapport de contr?\195?\180le apr?\195?\168s saisie
Added:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java
trunk/tutti-ui-swing/src/main/resources/icons/error.png
trunk/tutti-ui-swing/src/main/resources/icons/fatal.png
trunk/tutti-ui-swing/src/main/resources/icons/info.png
trunk/tutti-ui-swing/src/main/resources/icons/warning.png
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/BenthosBatch-error-validation.xml
trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/SpeciesBatch-error-validation.xml
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.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/content/EditSelectedCruiseCatchesAction.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/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java
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/home/EditCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -45,6 +45,10 @@
*/
public class ValidationService extends AbstractTuttiService {
+ public static final String VALIDATION_CONTEXT_EDIT = "edit";
+
+ public static final String VALIDATION_CONTEXT_VALIDATE = "validate";
+
public NuitonValidatorResult validateCruise(Cruise cruise) {
NuitonValidator<Cruise> validator = NuitonValidatorFactory.newValidator(Cruise.class);
NuitonValidatorResult result = validator.validate(cruise);
@@ -63,8 +67,8 @@
return result;
}
- public NuitonValidatorResult validateFishingOperation(FishingOperation fishingOperation) {
- NuitonValidator<FishingOperation> validator = NuitonValidatorFactory.newValidator(FishingOperation.class);
+ public NuitonValidatorResult validateFishingOperation(FishingOperation fishingOperation, String context) {
+ NuitonValidator<FishingOperation> validator = NuitonValidatorFactory.newValidator(FishingOperation.class, context);
NuitonValidatorResult result = validator.validate(fishingOperation);
return result;
}
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,33 @@
+package fr.ifremer.tutti.service.catches;
+
+import fr.ifremer.tutti.TuttiBusinessException;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ */
+public class TuttiWeightComputingException extends TuttiBusinessException {
+
+ public enum CatchType {
+ SPECIES, BENTHOS, MARINE_LITTER
+ }
+
+ protected CatchType catchType;
+
+ protected int index;
+
+ public TuttiWeightComputingException(String message,
+ CatchType catchType,
+ int index) {
+ super(message);
+ this.catchType = catchType;
+ this.index = index;
+ }
+
+ public CatchType getCatchType() {
+ return catchType;
+ }
+
+ public int getIndex() {
+ return index;
+ }
+}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.tutti.TuttiBusinessException;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
@@ -98,11 +99,35 @@
String fishingOperationId = fishingOperation.getId();
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(fishingOperationId);
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId);
- BatchContainer<BenthosBatch> rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId);
- BatchContainer<MarineLitterBatch> rootMarineLitterBatch = persistenceService.getRootMarineLitterBatch(fishingOperationId);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch;
try {
+ rootSpeciesBatch = getComputedSpeciesBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.put(fishingOperationId, e.getMessage());
+ rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId);
+ }
+
+ BatchContainer<BenthosBatch> rootBenthosBatch;
+ try {
+ rootBenthosBatch = getComputedBenthosBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.put(fishingOperationId, e.getMessage());
+ rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId);
+ }
+
+ BatchContainer<MarineLitterBatch> rootMarineLitterBatch;
+ try {
+ rootMarineLitterBatch = getComputedMarineLitterBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.put(fishingOperationId, e.getMessage());
+ rootMarineLitterBatch = persistenceService.getRootMarineLitterBatch(fishingOperationId);
+ }
+
+ try {
if (catchBatch != null) {
computeCatchBatchWeights(catchBatch,
rootSpeciesBatch,
@@ -116,6 +141,65 @@
return result;
}
+ /**
+ * To check if can compute the weights of the given operation
+ * <p/>
+ * If no error found, then return is a empty list, otherwise the errors found
+ *
+ * @param fishingOperation the operation to check.
+ * @return list of errors, or empty list if no error found.
+ * @since 1.4
+ */
+ public List<String> checkOperation(FishingOperation fishingOperation) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Will check fishingOperation: " + fishingOperation);
+ }
+
+ List<String> result = Lists.newArrayList();
+ String fishingOperationId = fishingOperation.getId();
+ CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(fishingOperationId);
+
+ BatchContainer<SpeciesBatch> rootSpeciesBatch;
+ try {
+ rootSpeciesBatch = getComputedSpeciesBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.add(e.getMessage());
+ rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId);
+ }
+
+ BatchContainer<BenthosBatch> rootBenthosBatch;
+ try {
+ rootBenthosBatch = getComputedBenthosBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.add(e.getMessage());
+ rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId);
+ }
+
+ BatchContainer<MarineLitterBatch> rootMarineLitterBatch;
+ try {
+ rootMarineLitterBatch = getComputedMarineLitterBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.add(e.getMessage());
+ rootMarineLitterBatch = persistenceService.getRootMarineLitterBatch(fishingOperationId);
+ }
+
+ try {
+ if (catchBatch != null) {
+ computeCatchBatchWeights(catchBatch,
+ rootSpeciesBatch,
+ rootBenthosBatch,
+ rootMarineLitterBatch);
+ }
+ } catch (TuttiBusinessException e) {
+ result.add(e.getMessage());
+ }
+ return result;
+ }
+
public void computeCatchBatchWeights(CatchBatch catchBatch,
BatchContainer<SpeciesBatch> rootSpeciesBatch,
BatchContainer<BenthosBatch> rootBenthosBatch,
@@ -165,7 +249,7 @@
catchBatch.setSpeciesTotalSortedComputedWeight(speciesTotalSortedWeight);
} else if (speciesTotalSortedWeight < speciesTotalComputedSortedWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentSpeciesTotalSorted"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentTotalSorted"));
}
catchBatch.setSpeciesTotalUnsortedComputedWeight(speciesTotalComputedUnsortedWeight);
@@ -219,7 +303,7 @@
catchBatch.setBenthosTotalSortedComputedWeight(benthosTotalSortedWeight);
} else if (benthosTotalSortedWeight < benthosTotalComputedSortedWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentBenthosTotalSorted"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.benthos.error.incoherentTotalSorted"));
}
catchBatch.setBenthosTotalUnsortedComputedWeight(benthosTotalComputedUnsortedWeight);
@@ -248,7 +332,7 @@
marineLitterTotalWeight = marineLitterTotalComputedWeight;
} else if (marineLitterTotalComputedWeight != null && marineLitterTotalWeight < marineLitterTotalComputedWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentMarineLitterTotal"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.marineLitter.error.incoherentTotal"));
}
// nothing to do with the marine litter weight, it is an isolated weight
@@ -267,7 +351,7 @@
if (rejectedWeight == null && totalWeight != null) {
if (!totalWeight.equals(totalUnsortedWeight
+ totalSortedWeight)) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentTotal"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.error.incoherentTotal"));
} else {
catchBatch.setCatchTotalRejectedComputedWeight(totalWeight
@@ -285,7 +369,7 @@
+ rejectedWeight);
} else if (!totalWeight.equals(totalUnsortedWeight + totalSortedWeight + rejectedWeight)) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentTotal"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.error.incoherentTotal"));
}
}
@@ -310,10 +394,13 @@
BatchContainer<BenthosBatch> rootBenthosBatch =
persistenceService.getRootBenthosBatch(operation.getId());
- List<BenthosBatch> roots = rootBenthosBatch.getChildren();
+ currentBenthosRowIndex = 0;
+ if (rootBenthosBatch != null) {
+ List<BenthosBatch> roots = rootBenthosBatch.getChildren();
- for (BenthosBatch batch : roots) {
- computeBenthosBatch(batch);
+ for (BenthosBatch batch : roots) {
+ computeBenthosBatch(batch);
+ }
}
return rootBenthosBatch;
@@ -324,7 +411,6 @@
BatchContainer<MarineLitterBatch> rootMarineLitterBatch =
persistenceService.getRootMarineLitterBatch(operation.getId());
-
return rootMarineLitterBatch;
}
@@ -358,7 +444,7 @@
batch.setSampleCategoryComputedWeight(sum);
} else if (categoryWeight < sum) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentParentCategoryWeight"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight"));
} else {
sum = categoryWeight;
@@ -391,7 +477,7 @@
}
if (categoryWeight == null && rowWeight != null) {
-// throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentRowWeightCategory"));
+// throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.error.incoherentRowWeightCategory"));
} else if (categoryWeight == null && frequencyWeight != null) {
// if the category weight is null and the frequencies have a weight,
@@ -405,13 +491,13 @@
// if the weight of the frequencies is different from the category
// weight, then set the weight of the sample
if (frequencyWeight > categoryWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentCategoryWeight"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight"));
} else if (rowWeight == null) {
batch.setComputedWeight(frequencyWeight);
} else if (!rowWeight.equals(frequencyWeight)) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentRowWeightFrequency"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency"));
}
result = categoryWeight;
@@ -423,13 +509,18 @@
result = categoryWeight;
}
}
+ if (result == null && batch.getParentBatch() == null) {
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.noWeight"));
+ }
return result;
}
+ private int currentBenthosRowIndex;
protected Float computeBenthosBatch(BenthosBatch batch) {
Float result = null;
+ int thisIndex = currentBenthosRowIndex++;
Float categoryWeight = batch.getSampleCategoryWeight();
Float rowWeight = batch.getWeight();
@@ -458,12 +549,16 @@
batch.setSampleCategoryComputedWeight(sum);
} else if (categoryWeight < sum) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentParentCategoryWeight"));
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.benthos.error.incoherentParentCategoryWeight"),
+ TuttiWeightComputingException.CatchType.BENTHOS,
+ thisIndex);
} else {
sum = categoryWeight;
}
result = sum;
+
}
} else {// the row is a leaf
@@ -491,7 +586,7 @@
}
if (categoryWeight == null && rowWeight != null) {
-// throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentRowWeightCategory"));
+// throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.error.incoherentRowWeightCategory"));
} else if (categoryWeight == null && frequencyWeight != null) {
// if the category weight is null and the frequencies have a weight,
@@ -505,13 +600,19 @@
// if the weight of the frequencies is different from the category
// weight, then set the weight of the sample
if (frequencyWeight > categoryWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentCategoryWeight"));
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight"),
+ TuttiWeightComputingException.CatchType.BENTHOS,
+ thisIndex);
} else if (rowWeight == null) {
batch.setComputedWeight(frequencyWeight);
} else if (!rowWeight.equals(frequencyWeight)) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentRowWeightFrequency"));
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.benthos.error.incoherentRowWeightFrequency"),
+ TuttiWeightComputingException.CatchType.BENTHOS,
+ thisIndex);
}
result = categoryWeight;
@@ -523,6 +624,13 @@
result = categoryWeight;
}
}
+ if (result == null
+ && batch.getParentBatch() == null) {
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.benthos.error.noWeight"),
+ TuttiWeightComputingException.CatchType.BENTHOS,
+ thisIndex);
+ }
return result;
}
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,55 @@
+package fr.ifremer.tutti.service.catches;
+
+import com.google.common.collect.Maps;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.service.*;
+import fr.ifremer.tutti.service.catches.TuttiWeightComputingService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.validator.NuitonValidatorResult;
+import org.nuiton.validator.NuitonValidatorScope;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class ValidateCruiseOperationsService extends AbstractTuttiService {
+
+ private static final Log log =
+ LogFactory.getLog(TuttiWeightComputingService.class);
+
+ protected PersistenceService persistenceService;
+
+ protected ValidationService validationService;
+
+ protected TuttiWeightComputingService tuttiWeightComputingService;
+
+ @Override
+ public void setServiceContext(TuttiServiceContext context) {
+ super.setServiceContext(context);
+ persistenceService = getService(PersistenceService.class);
+ validationService = getService(ValidationService.class);
+ tuttiWeightComputingService = getService(TuttiWeightComputingService.class);
+ }
+
+ public Map<FishingOperation, NuitonValidatorResult> validateCruiseOperations() {
+ Map<FishingOperation, NuitonValidatorResult> result = Maps.newHashMap();
+
+ TuttiDataContext dataContext = context.getDataContext();
+ List<FishingOperation> operations = persistenceService.getAllFishingOperation(dataContext.getCruiseId());
+ for (FishingOperation operation : operations) {
+ NuitonValidatorResult validator = validationService.validateFishingOperation(operation, ValidationService.VALIDATION_CONTEXT_VALIDATE);
+
+ List<String> errors = tuttiWeightComputingService.checkOperation(operation);
+ Map<String, List<String>> errorMap = Maps.newHashMap();
+ errorMap.put("cacthes", errors);
+ validator.addMessagesForScope(NuitonValidatorScope.ERROR, errorMap);
+ result.put(operation, validator);
+ }
+
+ return result;
+ }
+}
Modified: trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/BenthosBatch-error-validation.xml
===================================================================
--- trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/BenthosBatch-error-validation.xml 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/BenthosBatch-error-validation.xml 2013-04-16 14:43:22 UTC (rev 805)
@@ -40,7 +40,7 @@
<param name="expression">
<![CDATA[ weight == null || sampleCategoryWeight == null || weight <= sampleCategoryWeight ]]>
</param>
- <message>tutti.service.catches.computeWeights.error.incoherentSampleWeight</message>
+ <message>tutti.service.catches.computeWeights.benthos.error.incoherentSampleWeight</message>
</field-validator>
</field>
Modified: trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/SpeciesBatch-error-validation.xml
===================================================================
--- trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/SpeciesBatch-error-validation.xml 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/SpeciesBatch-error-validation.xml 2013-04-16 14:43:22 UTC (rev 805)
@@ -40,7 +40,7 @@
<param name="expression">
<![CDATA[ weight == null || sampleCategoryWeight == null || weight <= sampleCategoryWeight ]]>
</param>
- <message>tutti.service.catches.computeWeights.error.incoherentSampleWeight</message>
+ <message>tutti.service.catches.computeWeights.species.error.incoherentSampleWeight</message>
</field-validator>
</field>
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-16 14:43:22 UTC (rev 805)
@@ -48,6 +48,7 @@
tutti.propety.no.vessel.name=
tutti.propety.no.zone=
tutti.propety.vessel.nation.registrationCode=
+tutti.service.catches.computeWeights.benthos.error.incoherentSampleWeight=
tutti.service.catches.computeWeights.error.incoherentBenthosTotalSorted=
tutti.service.catches.computeWeights.error.incoherentCategoryWeight=
tutti.service.catches.computeWeights.error.incoherentMarineLitterTotal=
@@ -57,8 +58,28 @@
tutti.service.catches.computeWeights.error.incoherentSampleWeight=
tutti.service.catches.computeWeights.error.incoherentSpeciesTotalSorted=
tutti.service.catches.computeWeights.error.incoherentTotal=
+tutti.service.catches.computeWeights.species.error.incoherentSampleWeight=
tutti.service.export.invalid.cruise=
tutti.service.export.invalid.fishingOperation=
+tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight=
+tutti.service.operations.computeWeights.benthos.error.incoherentParentCategoryWeight=
+tutti.service.operations.computeWeights.benthos.error.incoherentRowWeightFrequency=
+tutti.service.operations.computeWeights.benthos.error.incoherentTotalSorted=
+tutti.service.operations.computeWeights.benthos.error.noWeight=
+tutti.service.operations.computeWeights.error.incoherentBenthosTotalSorted=
+tutti.service.operations.computeWeights.error.incoherentCategoryWeight=
+tutti.service.operations.computeWeights.error.incoherentMarineLitterTotal=
+tutti.service.operations.computeWeights.error.incoherentParentCategoryWeight=
+tutti.service.operations.computeWeights.error.incoherentRowWeightCategory=
+tutti.service.operations.computeWeights.error.incoherentRowWeightFrequency=
+tutti.service.operations.computeWeights.error.incoherentSpeciesTotalSorted=
+tutti.service.operations.computeWeights.error.incoherentTotal=
+tutti.service.operations.computeWeights.marineLitter.error.incoherentTotal=
+tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight=
+tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight=
+tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency=
+tutti.service.operations.computeWeights.species.error.incoherentTotalSorted=
+tutti.service.operations.computeWeights.species.error.noWeight=
tutti.validator.error.comment.too.long=
tutti.validator.error.cruise.beginDate.required=
tutti.validator.error.cruise.dates.endBeforeStart=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-16 14:43:22 UTC (rev 805)
@@ -44,17 +44,26 @@
tutti.propety.no.vessel.name=Nom inconnu
tutti.propety.no.zone=Pas de zone
tutti.propety.vessel.nation.registrationCode=%s (nat.)
-tutti.service.catches.computeWeights.error.incoherentBenthosTotalSorted=Le poids total Vrac du benthos est inférieur à la somme des poids Vrac triés, inerte trié et vivant non détaillé trié
-tutti.service.catches.computeWeights.error.incoherentCategoryWeight=Le poids total des mensurations est supérieur au poids de la catégorie
-tutti.service.catches.computeWeights.error.incoherentMarineLitterTotal=Le poids total des macro-déchets est inférieur à la somme des poids des macro-déchets saisis
-tutti.service.catches.computeWeights.error.incoherentParentCategoryWeight=Le poids de la catégorie est différent de la somme des poids de ses sous-catégories
-tutti.service.catches.computeWeights.error.incoherentRowWeightCategory=Le poids de la catégorie ne peut pas être nul si le poids de sous-échantillonage est renseigné
-tutti.service.catches.computeWeights.error.incoherentRowWeightFrequency=Le poids total des mensurations est différent du poids du sous-échantillon
-tutti.service.catches.computeWeights.error.incoherentSampleWeight=Le poids de sous-échantillonage est supérieur au poids de la catégorie
-tutti.service.catches.computeWeights.error.incoherentSpeciesTotalSorted=Le poids total Vrac des espèces est inférieur à la somme des poids Vrac triés, inerte trié et vivant non détaillé trié
-tutti.service.catches.computeWeights.error.incoherentTotal=Le poids total de la capture ne correspond pas à la somme des poids totaux Vrac, Hors Vrac et non triés
+tutti.service.catches.computeWeights.benthos.error.incoherentSampleWeight=
+tutti.service.catches.computeWeights.error.incoherentRowWeightCategory=
+tutti.service.catches.computeWeights.species.error.incoherentSampleWeight=
tutti.service.export.invalid.cruise=L'export de la campagne %s ne peut pas être réalisé suite aux erreurs rencontrées sur ses traits lors de l'élévation des poids \:\n%s
tutti.service.export.invalid.fishingOperation=L'élévation des poids ne peut pas être réalisé sur le trait %s, pour la raison suivante %s
+tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight=Le poids total des mensurations d'un lot du benthos est supérieur au poids de la catégorie
+tutti.service.operations.computeWeights.benthos.error.incoherentParentCategoryWeight=Le poids de la catégorie d'un lot du benthos est différent de la somme des poids de ses sous-catégories
+tutti.service.operations.computeWeights.benthos.error.incoherentRowWeightFrequency=Le poids total des mensurations d'un lot du benthos est différent du poids du sous-échantillon
+tutti.service.operations.computeWeights.benthos.error.incoherentSampleWeight=Le poids de sous-échantillonage d'un lot du benthos est supérieur au poids de la catégorie
+tutti.service.operations.computeWeights.benthos.error.incoherentTotalSorted=Le poids total Vrac du benthos est inférieur à la somme des poids Vrac triés, inerte trié et vivant non détaillé trié
+tutti.service.operations.computeWeights.benthos.error.noWeight=Un lot du benthos n'a pas de poids
+tutti.service.operations.computeWeights.error.incoherentRowWeightCategory=
+tutti.service.operations.computeWeights.error.incoherentTotal=Le poids total de la capture ne correspond pas à la somme des poids totaux Vrac, Hors Vrac et non triés
+tutti.service.operations.computeWeights.marineLitter.error.incoherentTotal=Le poids total des macro-déchets est inférieur à la somme des poids des macro-déchets saisis
+tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight=Le poids total des mensurations d'un lot des espèces est supérieur au poids de la catégorie
+tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight=Le poids de la catégorie d'un lot des espèces est différent de la somme des poids de ses sous-catégories
+tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency=Le poids total des mensurations d'un lot des espèces est différent du poids du sous-échantillon
+tutti.service.operations.computeWeights.species.error.incoherentSampleWeight=Le poids de sous-échantillonage d'un lot des espèces est supérieur au poids de la catégorie
+tutti.service.operations.computeWeights.species.error.incoherentTotalSorted=Le poids total Vrac des espèces est inférieur à la somme des poids Vrac triés, inerte trié et vivant non détaillé trié
+tutti.service.operations.computeWeights.species.error.noWeight=Un lot des espèces n'a pas de poids
tutti.validator.error.comment.too.long=Taille de commentaire trop longue (limitée à %s caractères)
tutti.validator.error.cruise.beginDate.required=La date de début est obligatoire
tutti.validator.error.cruise.dates.endBeforeStart=La date de fin doit être après la date de début
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-16 14:43:22 UTC (rev 805)
@@ -22,7 +22,7 @@
# #L%
###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Thu Apr 11 16:29:39 CEST 2013
+#Fri Apr 12 10:46:52 CEST 2013
tutti.createAccidentalBatch.action.cancel.help=
tutti.createAccidentalBatch.action.save.help=
tutti.createAccidentalBatch.field.accidentalDeadOrAlive.help=
@@ -271,6 +271,7 @@
tutti.selectCruise.action.newProgram.help=selectCruise.html\#actions
tutti.selectCruise.action.newProtocol.help=selectCruise.html\#actions
tutti.selectCruise.action.validateCatches.help=selectCruise.html\#actions
+tutti.selectCruise.action.validateCruise.help=
tutti.selectCruise.field.cruise.help=selectCruise.html\#fields
tutti.selectCruise.field.program.help=selectCruise.html\#fields
tutti.selectCruise.field.protocol.help=selectCruise.html\#fields
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-16 14:43:22 UTC (rev 805)
@@ -22,7 +22,7 @@
# #L%
###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Thu Apr 11 16:29:39 CEST 2013
+#Fri Apr 12 10:46:52 CEST 2013
tutti.createAccidentalBatch.action.cancel.help=
tutti.createAccidentalBatch.action.save.help=
tutti.createAccidentalBatch.field.accidentalDeadOrAlive.help=
@@ -280,6 +280,7 @@
tutti.selectCruise.action.newProgram.help=selectCruise.html\#actions
tutti.selectCruise.action.newProtocol.help=selectCruise.html\#actions
tutti.selectCruise.action.validateCatches.help=selectCruise.html\#actions
+tutti.selectCruise.action.validateCruise.help=
tutti.selectCruise.field.cruise.help=selectCruise.html\#fields
tutti.selectCruise.field.program.help=selectCruise.html\#fields
tutti.selectCruise.field.protocol.help=selectCruise.html\#fields
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -80,9 +80,16 @@
*/
IMPORT_TEMPORARY_REFERENTIAL,
/**
- * To fill catches.
+ * To fill operations.
*
* @since 0.1
*/
- EDIT_FISHING_OPERATION
+ EDIT_FISHING_OPERATION,
+
+ /**
+ * To validate the cruise.
+ *
+ * @since 1.4
+ */
+ VALIDATE_CRUISE
}
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-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -30,12 +30,9 @@
import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.RessourceClassLoader;
-import fr.ifremer.tutti.service.ClosedPersistenceService;
-import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.service.TuttiDataContext;
-import fr.ifremer.tutti.service.TuttiServiceContext;
+import fr.ifremer.tutti.service.*;
import fr.ifremer.tutti.service.catches.TuttiWeightComputingService;
+import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.service.pupitri.TuttiPupitriImportExportService;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
@@ -522,6 +519,14 @@
return serviceContext.getService(TuttiWeightComputingService.class);
}
+ public ValidateCruiseOperationsService getValidateCruiseOperationsService() {
+ return serviceContext.getService(ValidateCruiseOperationsService.class);
+ }
+
+ public ValidationService getValidationService() {
+ return serviceContext.getService(ValidationService.class);
+ }
+
public boolean useRealPersistenceService() {
return isDbExist() && isDbLoaded();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -31,7 +31,7 @@
import org.apache.commons.logging.LogFactory;
/**
- * Opens the catches edition screen to edit the selected catches.
+ * Opens the operations edition screen to edit the selected operations.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
@@ -50,7 +50,7 @@
protected void doAction() throws Exception {
Preconditions.checkState(getContext().isCruiseFilled());
if (log.isInfoEnabled()) {
- log.info("Edit catches of cruise: " + getContext().getCruiseId());
+ log.info("Edit operations of cruise: " + getContext().getCruiseId());
}
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
super.doAction();
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-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css 2013-04-16 14:43:22 UTC (rev 805)
@@ -157,10 +157,7 @@
text: "tutti.main.action.editCatches";
toolTipText: "tutti.main.action.editCatches.tip";
i18nMnemonic: "tutti.main.action.editCatches.mnemonic";
- enabled: {(
- !TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(model.getValidationContext())
- || model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
- ) && model.isCruiseFilled()};
+ enabled: {model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION && model.isCruiseFilled()};
_tuttiAction: {EditSelectedCruiseCatchesAction.class};
_help: {"tutti.main.menu.action.editCatches.help"};
}
@@ -170,10 +167,7 @@
text: "tutti.main.action.validateCatches";
toolTipText: "tutti.main.action.validateCatches.tip";
i18nMnemonic: "tutti.main.action.validateCatches.mnemonic";
- enabled: {(
- !TuttiUIContext.VALIDATION_CONTEXT_VALIDATE.equals(model.getValidationContext())
- || model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
- ) && model.isCruiseFilled()};
+ enabled: {model.getScreen() != TuttiScreen.VALIDATE_CRUISE && model.isCruiseFilled()};
_tuttiAction: {ValidateSelectedCruiseCatchesAction.class};
_help: {"tutti.main.menu.action.validateCatches.help"};
}
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-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -36,6 +36,7 @@
import fr.ifremer.tutti.ui.swing.content.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.cruise.ValidateCruiseUI;
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;
@@ -447,12 +448,12 @@
if (TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(validationContext)) {
- // edit catches
+ // edit operations
screenTitle = _("tutti.fishingOperations.title.edit.operations", getSelectedCruiseTitle());
icon = ui.getMenuActionEditCatches().getIcon();
} else {
- // validate catches
+ // validate operations
screenTitle = _("tutti.fishingOperations.title.validate.operations", getSelectedCruiseTitle());
icon = ui.getMenuActionValidateCatches().getIcon();
}
@@ -465,6 +466,15 @@
screenUI = new ManageTemporaryReferentialUI(ui);
icon = ui.getMenuImportTemporaryReferential().getIcon();
break;
+
+ case VALIDATE_CRUISE:
+ screenTitle = EditCruiseUIHandler.getTitle(
+ context.isCruiseFilled());
+
+ screenUI = new ValidateCruiseUI(ui);
+// rightDecoration = ((ValidateCruiseUI) screenUI).getTopToolBar();
+ icon = ui.getMenuActionEditCruise().getIcon();
+ break;
}
JButton showHelp = ui.getShowHelp();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -31,7 +31,7 @@
import org.apache.commons.logging.LogFactory;
/**
- * Opens the catches validation screen to edit the selected catches.
+ * Opens the operations validation screen to edit the selected operations.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
@@ -43,7 +43,7 @@
LogFactory.getLog(ValidateSelectedCruiseCatchesAction.class);
public ValidateSelectedCruiseCatchesAction(MainUIHandler handler) {
- super(handler, true, TuttiScreen.EDIT_FISHING_OPERATION);
+ super(handler, true, TuttiScreen.VALIDATE_CRUISE);
}
@Override
@@ -52,7 +52,7 @@
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
// getContext().setScreen(null);
if (log.isInfoEnabled()) {
- log.info("Validate catches of cruise: " + getContext().getCruiseId());
+ log.info("Validate operations of cruise: " + getContext().getCruiseId());
}
super.doAction();
}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java (from rev 771, 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/cruise/EditCruiseFishingOperationAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,76 @@
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.InvalidBatchModelException;
+import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.referential.Person;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.content.operation.*;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.ComputeWeightsAction;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.SaveCatchBatchAction;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUI;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUI;
+import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.decorator.Decorator;
+
+import javax.swing.*;
+import java.awt.*;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.Collections;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * To edit the given fishing operation.
+ *
+ * @author kmorin <morin(a)codelutin.com>
+ * @since 1.4
+ */
+public class EditCruiseFishingOperationAction extends AbstractTuttiAction<ValidateCruiseUIModel, ValidateCruiseUI, ValidateCruiseUIHandler> {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(EditCruiseFishingOperationAction.class);
+
+ /**
+ * The incoming fishing operation to edit.
+ * <p/>
+ * Can be null (means do not edit any fishing operation), or with no id
+ * (means create a ne fishing operation), or with an id (means edit an
+ * existing fishing operation).
+ */
+ protected FishingOperation fishingOperation;
+
+ public EditCruiseFishingOperationAction(ValidateCruiseUIHandler handler) {
+ super(handler, true);
+ setActionDescription(_("tutti.editFishingOperation.action.editFishingOperation.tip"));
+ }
+
+ public void setFishingOperation(FishingOperation fishingOperation) {
+ this.fishingOperation = fishingOperation;
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+ getUI().getOperationPanel().getModel().setSelectedFishingOperation(fishingOperation);
+ }
+
+ @Override
+ protected void releaseAction() {
+ super.releaseAction();
+ fishingOperation = null;
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.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/content/cruise/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-04-16 14:43:22 UTC (rev 805)
@@ -62,7 +62,7 @@
]]></script>
<EditCruiseUIHandler id='handler'
- initializer='getContextValue(EditCruiseUIHandler.class)'/>
+ initializer='getContextValue(EditCruiseUIHandler.class)'/>
<EditCruiseUIModel id='model'
initializer='getContextValue(EditCruiseUIModel.class)'/>
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,3 @@
+#navigation {
+ rootVisible: false;
+}
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,42 @@
+<JSplitPane id='splitPane' decorator='help'
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<ValidateCruiseUIModel, ValidateCruiseUIHandler>'>
+
+ <import>
+
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
+
+ </import>
+ <script><![CDATA[
+
+ public ValidateCruiseUI(TuttiUI parentUI) {
+ JAXXUtil.initContext(this, parentUI);
+ ValidateCruiseUIHandler handler = new ValidateCruiseUIHandler(parentUI, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+ }
+
+ protected void $afterCompleteSetup() {
+ handler.afterInitUI();
+ }
+ ]]></script>
+
+ <ValidateCruiseUIHandler id='handler'
+ initializer='getContextValue(ValidateCruiseUIHandler.class)'/>
+
+ <ValidateCruiseUIModel id='model'
+ initializer='getContextValue(ValidateCruiseUIModel.class)'/>
+
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tutti.validateCruise.help"'/>
+
+ <JScrollPane id='navigationPanel'>
+ <JTree id='navigation'/>
+ </JScrollPane>
+
+ <FishingOperationsUI id='operationPanel'
+ constructorParams='this'>
+ </FishingOperationsUI>
+
+</JSplitPane>
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,197 @@
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.LinkedListMultimap;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Multimap;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.ValidationService;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.CloseableUI;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper;
+import jaxx.runtime.SwingUtil;
+import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.tree.TreeUtilities;
+import org.nuiton.validator.NuitonValidatorResult;
+import org.nuiton.validator.NuitonValidatorScope;
+
+import javax.swing.*;
+import javax.swing.tree.*;
+import java.awt.*;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.*;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class ValidateCruiseUIHandler extends AbstractTuttiUIHandler<ValidateCruiseUIModel, ValidateCruiseUI> implements CloseableUI {
+
+ private final static Log log = LogFactory.getLog(ValidateCruiseUIHandler.class);
+
+ /**
+ * Persistence service.
+ */
+ private final PersistenceService persistenceService;
+
+ /**
+ * Validation service.
+ */
+ private final ValidationService validationService;
+
+ protected EditCruiseFishingOperationAction editFishingOperationAction;
+
+ protected Map<FishingOperation, NuitonValidatorResult> validator;
+
+ public ValidateCruiseUIHandler(TuttiUI parentUi, ValidateCruiseUI ui) {
+ super(parentUi.getHandler().getContext(), ui);
+ persistenceService = context.getPersistenceService();
+ validationService = context.getValidationService();
+ }
+
+ @Override
+ public void beforeInitUI() {
+ validator = context.getValidateCruiseOperationsService().validateCruiseOperations();
+
+ ValidateCruiseUIModel model = new ValidateCruiseUIModel();
+ ui.setContextValue(model);
+
+ }
+
+ @Override
+ public void afterInitUI() {
+ initUI(ui);
+
+ editFishingOperationAction = TuttiActionHelper.createLogicAction(this, EditCruiseFishingOperationAction.class);
+
+ ui.getOperationPanel().getModel().setSelectedFishingOperation(null);
+
+ DefaultMutableTreeNode root = new DefaultMutableTreeNode();
+ for (FishingOperation operation : validator.keySet()) {
+ operation = persistenceService.getFishingOperation(operation.getId());
+ NuitonValidatorResult result = validator.get(operation);
+
+ Multimap<NuitonValidatorScope, String> messages = LinkedListMultimap.create();
+ messages.putAll(NuitonValidatorScope.ERROR, result.getMessagesForScope(NuitonValidatorScope.ERROR));
+ messages.putAll(NuitonValidatorScope.WARNING, result.getMessagesForScope(NuitonValidatorScope.WARNING));
+
+ OperationTreeNode node = new OperationTreeNode(operation, messages);
+ root.add(node);
+ }
+ TreeModel model = new DefaultTreeModel(root);
+
+ final JTree navigation = ui.getNavigation();
+ navigation.setModel(model);
+ navigation.setCellRenderer(new ValidationTreeCellRenderer());
+ navigation.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ if (e.getClickCount() == 2) {
+ Object[] paths = navigation.getSelectionPath().getPath();
+ FishingOperation operation = null;
+ for (Object o : paths) {
+ if (o != null && OperationTreeNode.class.isAssignableFrom(o.getClass())) {
+ operation = (FishingOperation) ((OperationTreeNode) o).getUserObject();
+ break;
+ }
+ }
+ editFishingOperationAction.setFishingOperation(operation);
+ AbstractTuttiAction.runAction(editFishingOperationAction);
+ }
+ }
+ });
+
+ FishingOperationsUI operationPanel = ui.getOperationPanel();
+ operationPanel.getTopPanel().setVisible(false);
+ }
+
+ @Override
+ public void onCloseUI() {
+ if (log.isDebugEnabled()) {
+ log.debug("closing: " + ui);
+ }
+ clearValidators();
+ }
+
+ @Override
+ public SwingValidator<ValidateCruiseUIModel> getValidator() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ protected JComponent getComponentToFocus() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean quitUI() {
+ return true;
+ }
+
+ protected class ValidationTreeCellRenderer extends DefaultTreeCellRenderer {
+
+ @Override
+ public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
+ JLabel label = (JLabel) super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
+
+ if (value != null) {
+ if (value instanceof OperationTreeNode) {
+ OperationTreeNode node = (OperationTreeNode) value;
+ label.setText(getDecorator(FishingOperation.class, null).toString(node.getUserObject()));
+
+ } else if (value instanceof MessageTreeNode) {
+ MessageTreeNode node = (MessageTreeNode) value;
+ label.setText(_(String.valueOf(node.getUserObject())));
+ String iconName = node.getScope().toString().toLowerCase();
+ label.setIcon(SwingUtil.createImageIcon(iconName + ".png"));
+ }
+ }
+ return label;
+ }
+ }
+
+ protected class OperationTreeNode extends DefaultMutableTreeNode {
+
+ public OperationTreeNode(FishingOperation operation,
+ Multimap<NuitonValidatorScope, String> messages) {
+ super(operation);
+ setAllowsChildren(messages != null);
+ createChildren(messages);
+ }
+
+ public void createChildren(Multimap<NuitonValidatorScope, String> messages) {
+ for (NuitonValidatorScope scope: messages.keySet()) {
+ for (String message : messages.get(scope)) {
+ MessageTreeNode child = new MessageTreeNode(scope, message);
+ this.add(child);
+ }
+ }
+ }
+ }
+
+ protected class MessageTreeNode extends DefaultMutableTreeNode {
+
+ protected NuitonValidatorScope scope;
+
+ public MessageTreeNode(NuitonValidatorScope scope, String message) {
+ super(message);
+ this.scope = scope;
+ }
+
+ public NuitonValidatorScope getScope() {
+ return scope;
+ }
+
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,368 @@
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
+import fr.ifremer.tutti.persistence.entities.data.*;
+import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.Person;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
+import fr.ifremer.tutti.persistence.entities.referential.Vessel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import org.nuiton.util.beans.Binder;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class ValidateCruiseUIModel extends AbstractTuttiBeanUIModel<FishingOperation, ValidateCruiseUIModel>
+ implements AttachmentModelAware, FishingOperation {
+
+ protected ValidateCruiseUIModel() {
+ super(FishingOperation.class, null, null);
+ }
+
+ /**
+ * Delegate edit object.
+ *
+ * @since 1.4
+ */
+ protected FishingOperation editObject = null;
+
+ public FishingOperation getEditFishingOperation() {
+ return editObject;
+ }
+
+ public void setEditFishingOperation(FishingOperation editObject) {
+ this.editObject = editObject;
+ }
+
+ @Override
+ protected FishingOperation newEntity() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public AttachementObjectTypeEnum getObjectType() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public String getObjectId() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public List<Attachment> getAttachment() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void addAllAttachment(Collection<Attachment> attachments) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void addAttachment(Attachment attachment) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void removeAllAttachment(Collection<Attachment> attachments) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void removeAttachment(Attachment attachment) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public String getStationNumber() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setStationNumber(String stationNumber) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Integer getFishingOperationNumber() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setFishingOperationNumber(Integer fishingOperationNumber) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getGearShootingStartLatitude() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingStartLatitude(Float gearShootingStartLatitude) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getGearShootingStartLongitude() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingStartLongitude(Float gearShootingStartLongitude) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Date getGearShootingStartDate() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingStartDate(Date gearShootingStartDate) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getGearShootingEndLatitude() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingEndLatitude(Float gearShootingEndLatitude) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getGearShootingEndLongitude() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingEndLongitude(Float gearShootingEndLongitude) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Date getGearShootingEndDate() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingEndDate(Date gearShootingEndDate) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean isFishingOperationRectiligne() {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setFishingOperationRectiligne(boolean fishingOperationRectiligne) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getTrawlDistance() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setTrawlDistance(Float trawlDistance) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Boolean getFishingOperationValid() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setFishingOperationValid(Boolean fishingOperationValid) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean isPlanktonObserved() {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setPlanktonObserved(boolean planktonObserved) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public CaracteristicMap getVesselUseFeatures() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setVesselUseFeatures(CaracteristicMap vesselUseFeatures) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public CaracteristicMap getGearUseFeatures() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearUseFeatures(CaracteristicMap gearUseFeatures) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean isAccidentalObserved() {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setAccidentalObserved(boolean accidentalObserved) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public String getMultirigAggregation() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setMultirigAggregation(String multirigAggregation) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public String getComment() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setComment(String comment) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Cruise getCruise() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setCruise(Cruise cruise) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Person getRecorderPerson(int index) {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean isRecorderPersonEmpty() {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public int sizeRecorderPerson() {
+ return 0; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void addRecorderPerson(Person recorderPerson) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void addAllRecorderPerson(Collection<Person> recorderPerson) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean removeRecorderPerson(Person recorderPerson) {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean removeAllRecorderPerson(Collection<Person> recorderPerson) {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean containsRecorderPerson(Person recorderPerson) {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean containsAllRecorderPerson(Collection<Person> recorderPerson) {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public List<Person> getRecorderPerson() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setRecorderPerson(List<Person> recorderPerson) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Gear getGear() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGear(Gear gear) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Vessel getVessel() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setVessel(Vessel vessel) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public TuttiLocation getStrata() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setStrata(TuttiLocation strata) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public TuttiLocation getSubStrata() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setSubStrata(TuttiLocation subStrata) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public TuttiLocation getLocation() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setLocation(TuttiLocation location) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -33,7 +33,7 @@
import org.apache.commons.logging.LogFactory;
/**
- * Opens the catches edition screen.
+ * Opens the operations edition screen.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
@@ -52,7 +52,7 @@
Preconditions.checkState(getContext().isProgramFilled());
Preconditions.checkState(getContext().isCruiseFilled());
if (log.isInfoEnabled()) {
- log.info("Edit catches of cruise: " + getContext().getCruiseId());
+ log.info("Edit operations of cruise: " + getContext().getCruiseId());
}
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
super.doAction();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-04-16 14:43:22 UTC (rev 805)
@@ -210,4 +210,4 @@
_tuttiAction: {ValidateCatchesAction.class};
enabled: {model.isValid() && uiContext.isCruiseFilled()};
_help: {"tutti.selectCruise.action.validateCatches.help"};
-}
+}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -33,7 +33,7 @@
import org.apache.commons.logging.LogFactory;
/**
- * Opens the catches validation screen.
+ * Opens the operations validation screen.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
@@ -45,7 +45,7 @@
LogFactory.getLog(ValidateCatchesAction.class);
public ValidateCatchesAction(MainUIHandler handler) {
- super(handler, true, TuttiScreen.EDIT_FISHING_OPERATION);
+ super(handler, true, TuttiScreen.VALIDATE_CRUISE);
}
@Override
@@ -54,7 +54,7 @@
Preconditions.checkState(getContext().isCruiseFilled());
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
if (log.isInfoEnabled()) {
- log.info("Validate catches of cruise: " + getContext().getCruiseId());
+ log.info("Validate operations of cruise: " + getContext().getCruiseId());
}
super.doAction();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -31,6 +31,7 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUIModel;
@@ -128,8 +129,10 @@
saveFishingOperation(toSave);
- handler.getParentUi().getTabPane().setSelectedIndex(1);
- handler.getParentUi().getCatchesTabContent().getTabPane().setSelectedIndex(1);
+ if (TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(getContext().getValidationContext())) {
+ handler.getParentUi().getTabPane().setSelectedIndex(1);
+ handler.getParentUi().getCatchesTabContent().getTabPane().setSelectedIndex(1);
+ }
}
}
Added: trunk/tutti-ui-swing/src/main/resources/icons/error.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/error.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/tutti-ui-swing/src/main/resources/icons/fatal.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/fatal.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/tutti-ui-swing/src/main/resources/icons/info.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/info.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/tutti-ui-swing/src/main/resources/icons/warning.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/warning.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
1
0
r804 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol
by kmorin@users.forge.codelutin.com 16 Apr '13
by kmorin@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: kmorin
Date: 2013-04-16 16:11:38 +0200 (Tue, 16 Apr 2013)
New Revision: 804
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/804
Log:
fixes #2314 [PROTOCOLE] quand je duplique un protocole, le texte de mise en garde sur le nom ne disparait pas apr?\195?\168s enregistrement
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
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-04-16 13:50:07 UTC (rev 803)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-04-16 14:11:38 UTC (rev 804)
@@ -113,6 +113,7 @@
public void postSuccessAction() {
getContext().getMainUI().getHandler().setBodyTitle(
EditProtocolUIHandler.getTitle(true));
+ getUI().getSaveWarningContainer().setVisible(false);
}
}
1
0