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
- 4058 discussions
17 Apr '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/6…>
Changes:
[Tony Chemit] refs #2281: [TECH] - Répercution des nouveautés du modèle adagio (utilisation des transcodage)
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-persistence:2.0-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: Persistence 2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/fr/ifremer/adagio/adagi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/… (2 KB at 5.7 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/fr/ifremer/adagio/adagi…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/… (600 B at 16.7 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio/… (18 KB at 434.6 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-persistence ---
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-persistence ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.eugene:eugene-maven-plugin:2.6.2(default)
[INFO]
[INFO] --- eugene-maven-plugin:2.6.2:generate (default) @ tutti-persistence ---
[INFO] Process phase [zargo] for one entry.
[INFO] Expanding 1 xmi file(s) from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…> to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Generate one file in 29.517ms.
[INFO] Process phase [xmi] for one entry.
[INFO] Processing XSL tranformation on <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…> for 1 file(s).
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…> to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Generate one file in 2.784s.
[INFO] Process phase [model] for one entry.
WARN [pool-1-thread-1] (ObjectModelReader.java:297) loadModelTagValue - Invalid model tag value [model.tagvalue.simpleBeanExtractPojoInterface] : the tagvalue 'simpleBeanExtractPojoInterface' is unkown.
INFO [pool-1-thread-1] (ObjectModelReader.java:273) loadModelProperties - 22 tag values were succesfull imported from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Apply generator JavaInterfaceTransformer
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:911) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.TuttiEntity], already found in class-path.
[INFO] Apply generator SimpleJavaBeanTransformer
[INFO] Apply generator JavaEnumerationTransformer
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:911) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum], already found in class-path.
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:911) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum], already found in class-path.
[INFO] No file generated.
[INFO] Add compile source root : <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Add resource root :Resource {targetPath: null, filtering: false, FileSet {directory: <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…,> PatternSet [includes: {}, excludes: {**/*.java}]}}
mojoSucceeded org.nuiton.eugene:eugene-maven-plugin:2.6.2(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-persistence ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-persistence:2.0-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-persistence ---
[INFO] Copying tutti-persistence.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)[INFO] Copying tutti-persistence.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
forkedProjectSucceeded fr.ifremer.tutti:tutti-persistence: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-persistence ---
[WARNING] bundle fr_FR contains 3/35 empty entries! (use -Di18n.showEmpty to see these entries)
[WARNING] bundle en_GB contains 35/35 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 8 resources
[INFO] Copying 0 resource
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-persistence ---
[INFO] Compiling 126 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] -------------------------------------------------------------
[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-persistence/w…>:[35,51] error: cannot find symbol
[ERROR] symbol: class TaxonRefVO
location: package fr.ifremer.adagio.core.dao.referential.taxon
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[823,34] error: cannot find symbol
[ERROR] symbol: class TaxonRefVO
location: class ReferentialPersistenceServiceImpl
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[378,8] error: cannot find symbol
[ERROR] symbol: class TaxonRefVO
location: class ReferentialPersistenceServiceImpl
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[378,43] error: method getAllTaxonNames in interface TaxonNameExtendDao cannot be applied to given types;
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)[ERROR] required: boolean
found: boolean,Integer
reason: actual and formal argument lists differ in length
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[384,13] error: cannot find symbol
[ERROR] symbol: class TaxonRefVO
location: class ReferentialPersistenceServiceImpl
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[406,8] error: cannot find symbol
[ERROR] symbol: class TaxonRefVO
location: class ReferentialPersistenceServiceImpl
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[406,43] error: method getAllTaxonNames in interface TaxonNameExtendDao cannot be applied to given types;
[ERROR] required: boolean
found: boolean,Integer
reason: actual and formal argument lists differ in length
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[410,13] error: cannot find symbol
[ERROR] symbol: class TaxonRefVO
location: class ReferentialPersistenceServiceImpl
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[443,12] error: cannot find symbol
[ERROR] symbol: class TaxonRefVO
location: class ReferentialPersistenceServiceImpl
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[443,44] error: method getTaxonNameReferent in interface TaxonNameExtendDao cannot be applied to given types;
[ERROR] required: Integer
found: Integer,Integer
reason: actual and formal argument lists differ in length
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[718,8] error: cannot find symbol
[ERROR] symbol: class TaxonRefVO
location: class ReferentialPersistenceServiceImpl
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[718,35] error: cannot find symbol
[INFO] 12 errors
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-persistence:2.0-SNAPSHOT
1
1
r816 - in trunk/tutti-persistence/src: main/java/fr/ifremer/tutti/persistence/service main/resources main/xmi test/java/fr/ifremer/tutti/persistence test/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 17 Apr '13
by tchemit@users.forge.codelutin.com 17 Apr '13
17 Apr '13
Author: tchemit
Date: 2013-04-17 18:40:09 +0200 (Wed, 17 Apr 2013)
New Revision: 816
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/816
Log:
refs #2281: [TECH] - R?\195?\169percution des nouveaut?\195?\169s du mod?\195?\168le adagio (utilisation des transcodage)
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.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/resources/applicationContext-service-tutti.xml
trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.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/ReferentialPersistenceServiceWriteTest.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-04-17 10:20:07 UTC (rev 815)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-04-17 16:40:09 UTC (rev 816)
@@ -167,12 +167,28 @@
* @param referenceTaxonId id of the reference taxon of the species to load
* @return the species or {@code null} if not found.
* @see Species#getReferenceTaxonId()
+ * @see Species#getRefTaxCode()
* @since 0.3
*/
@Cacheable(value = "referentSpeciesById", key = "#referenceTaxonId", condition = "#referenceTaxonId != null")
Species getSpeciesByReferenceTaxonId(Integer referenceTaxonId);
/**
+ * Obtain a species with external code as vernacular code given his referenceTaxonId.
+ * <p/>
+ * <strong>Note:</strong> {@link Species#getRefTaxCode()} will not be
+ * filled by with method.
+ *
+ * @param referenceTaxonId id of the reference taxon of the species to load
+ * @return the species or {@code null} if not found.
+ * @see Species#getReferenceTaxonId()
+ * @see Species#getVernacularCode()
+ * @since 1.5
+ */
+ @Cacheable(value = "referentSpeciesByIdVernacular", key = "#referenceTaxonId", condition = "#referenceTaxonId != null")
+ Species getSpeciesByReferenceTaxonIdWithVernacularCode(Integer referenceTaxonId);
+
+ /**
* @return all caracteristics of the system.
* @since 1.0
*/
@@ -239,7 +255,7 @@
* @since 1.0
*/
@Transactional(readOnly = false)
- @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById"}, allEntries = true)
+ @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true)
List<Species> importTemporarySpecies(List<Species> species);
/**
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-17 10:20:07 UTC (rev 815)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-04-17 16:40:09 UTC (rev 816)
@@ -32,7 +32,7 @@
import fr.ifremer.adagio.core.dao.referential.gear.FishingGearExtendDao;
import fr.ifremer.adagio.core.dao.referential.location.LocationExtendDao;
import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameExtendDao;
-import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefTaxVO;
+import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefVO;
import fr.ifremer.adagio.core.service.technical.CacheService;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
@@ -375,12 +375,13 @@
@Override
public List<Species> getAllSpecies() {
- TaxonRefTaxVO[] sources = taxonNameDao.getAllTaxonNames(true);
+ TaxonRefVO[] sources = taxonNameDao.getAllTaxonNames(
+ true, enumeration.TRANSCRIBING_TYPE_ID_REFTAX);
List<Species> result = Lists.newArrayListWithCapacity(sources.length);
List<Species> referenceTaxonsOnly = Lists.newArrayList();
Cache referentSpeciesByIdCache = cacheService.getCache("referentSpeciesById");
- for (TaxonRefTaxVO source : sources) {
+ for (TaxonRefVO source : sources) {
Species target = loadSpecies(source);
if (target.isReferenceTaxon()) {
@@ -402,10 +403,11 @@
@Override
public List<Species> getAllReferentSpecies() {
- TaxonRefTaxVO[] sources = taxonNameDao.getAllTaxonNames(false);
+ TaxonRefVO[] sources = taxonNameDao.getAllTaxonNames(
+ false, enumeration.TRANSCRIBING_TYPE_ID_REFTAX);
List<Species> result = Lists.newArrayListWithCapacity(sources.length);
Cache referentSpeciesByIdCache = cacheService.getCache("referentSpeciesById");
- for (TaxonRefTaxVO source : sources) {
+ for (TaxonRefVO source : sources) {
Species target = loadSpecies(source);
// Add to cache :
@@ -418,10 +420,28 @@
@Override
public Species getSpeciesByReferenceTaxonId(Integer speciesId) {
+ Species result = getSpeciesByReferenceTaxonId(
+ speciesId,
+ enumeration.TRANSCRIBING_TYPE_ID_REFTAX);
+ return result;
+ }
+
+ @Override
+ public Species getSpeciesByReferenceTaxonIdWithVernacularCode(Integer speciesId) {
+ Species result = getSpeciesByReferenceTaxonId(
+ speciesId,
+ enumeration.TRANSCRIBING_TYPE_ID_VERNACULAIRE);
+ result.setVernacularCode(result.getRefTaxCode());
+ result.setRefTaxCode(null);
+ return result;
+ }
+
+ protected Species getSpeciesByReferenceTaxonId(Integer speciesId,
+ Integer transcribingTypeId) {
Species target;
try {
- TaxonRefTaxVO source = taxonNameDao.getTaxonNameReferent(
- speciesId);
+ TaxonRefVO source = taxonNameDao.getTaxonNameReferent(
+ speciesId, transcribingTypeId);
target = loadSpecies(source);
} catch (DataRetrievalFailureException drfe) {
target = null;
@@ -695,7 +715,7 @@
Preconditions.checkNotNull(source);
Preconditions.checkNotNull(source.getName());
- TaxonRefTaxVO taxonName = new TaxonRefTaxVO();
+ TaxonRefVO taxonName = new TaxonRefVO();
taxonName.setName(source.getName());
taxonName = taxonNameDao.createAsTemporary(
taxonName,
@@ -800,11 +820,11 @@
return result;
}
- protected Species loadSpecies(TaxonRefTaxVO source) {
+ protected Species loadSpecies(TaxonRefVO source) {
Species target = TuttiBeanFactory.newSpecies();
target.setId(String.valueOf(source.getTaxonNameId()));
target.setName(source.getName());
- target.setRefTaxCode(source.getRefTaxCode());
+ target.setRefTaxCode(source.getExternalCode());
target.setReferenceTaxonId(source.getReferenceTaxonId());
target.setReferenceTaxon(source.getIsReference());
fr.ifremer.adagio.core.dao.referential.Status status = statusDao.load(source.getStatus().getValue());
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-17 10:20:07 UTC (rev 815)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-04-17 16:40:09 UTC (rev 816)
@@ -272,6 +272,12 @@
@Value("${VesselPersonRoleId.RECORDER_PERSON}")
public final Integer VESSEL_PERSON_ROLE_ID_RECORDER_PERSON = null;
+ @Value("${TranscribingTypeId.TAXINOMIE_REFTAX_MNEMONIQUE}")
+ public final Integer TRANSCRIBING_TYPE_ID_REFTAX = null;
+
+ @Value("${TranscribingTypeId.TAXINOMIE_COMMUN_NOM_VERNACULAIRE}")
+ public final Integer TRANSCRIBING_TYPE_ID_VERNACULAIRE = null;
+
/**
* Contract to place on enumeration that must be synched to field inside this class.
* <p/>
Modified: trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2013-04-17 10:20:07 UTC (rev 815)
+++ trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2013-04-17 16:40:09 UTC (rev 816)
@@ -130,6 +130,11 @@
<property name="maxElementsInMemory" value="20000"/>
<property name="maxElementsOnDisk" value="20000"/>
</bean>
+ <bean id="tuttiReferentSpeciesByIdVenacularCache" parent="tuttiAbstractEternalCache">
+ <property name="cacheName" value="referentSpeciesByIdVernacular" />
+ <property name="maxElementsInMemory" value="20000"/>
+ <property name="maxElementsOnDisk" value="20000"/>
+ </bean>
<bean id="tuttiGearsCache" parent="tuttiAbstractEternalCache">
<property name="cacheName" value="gears" />
Modified: trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-04-17 10:20:07 UTC (rev 815)
+++ trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-04-17 16:40:09 UTC (rev 816)
@@ -400,4 +400,7 @@
VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER=2
VesselPersonRoleId.SORT_ROOM_MANAGER=3
-VesselPersonRoleId.RECORDER_PERSON=4
\ No newline at end of file
+VesselPersonRoleId.RECORDER_PERSON=4
+
+TranscribingTypeId.TAXINOMIE_REFTAX_MNEMONIQUE=101
+TranscribingTypeId.TAXINOMIE_COMMUN_NOM_VERNACULAIRE=102
\ No newline at end of file
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
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-17 10:20:07 UTC (rev 815)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-04-17 16:40:09 UTC (rev 816)
@@ -143,13 +143,21 @@
}
public String refSpeciesId() {
- return "15461";
+ return "15923";
}
public Integer refSpeciesTaxonId() {
- return 1;
+ return 467;
}
+ public String refSpeciesRefTaxCode() {
+ return "SEPIOFF";
+ }
+
+ public String refSpeciesVernacularCode() {
+ return "Seiche";
+ }
+
public Integer refBadSpeciesTaxonId() {
return 7632;
}
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-17 10:20:07 UTC (rev 815)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-04-17 16:40:09 UTC (rev 816)
@@ -225,11 +225,25 @@
Integer taxonId = fixtures.refSpeciesTaxonId();
Species species = service.getSpeciesByReferenceTaxonId(taxonId);
Assert.assertNotNull(species);
+ Assert.assertNull(species.getVernacularCode());
Assert.assertEquals(speciesId, species.getId());
- Assert.assertEquals(fixtures.refSpeciesTaxonId(), species.getReferenceTaxonId());
+ Assert.assertEquals(taxonId, species.getReferenceTaxonId());
+ Assert.assertEquals(fixtures.refSpeciesRefTaxCode(), species.getRefTaxCode());
}
@Test
+ public void getSpeciesByReferenceTaxonIdWithVernacularCode(/*String speciesReferenceTaxonId*/) {
+ String speciesId = fixtures.refSpeciesId();
+ Integer taxonId = fixtures.refSpeciesTaxonId();
+ Species species = service.getSpeciesByReferenceTaxonIdWithVernacularCode(taxonId);
+ Assert.assertNotNull(species);
+ Assert.assertNull(species.getRefTaxCode());
+ Assert.assertEquals(speciesId, species.getId());
+ Assert.assertEquals(taxonId, species.getReferenceTaxonId());
+ Assert.assertEquals(fixtures.refSpeciesVernacularCode(), species.getVernacularCode());
+ }
+
+ @Test
public void getBadSpeciesByReferenceTaxonId(/*String speciesReferenceTaxonId*/) {
Integer taxonId = fixtures.refBadSpeciesTaxonId();
service.getSpeciesByReferenceTaxonId(taxonId);
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceWriteTest.java 2013-04-17 10:20:07 UTC (rev 815)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceWriteTest.java 2013-04-17 16:40:09 UTC (rev 816)
@@ -90,8 +90,8 @@
Assert.assertEquals(sp1.getName(), createdSp1.getName());
// TODO TC :question pour TC pourquoi faire le test suivant NotNull, car tu n'a rien mis en entree de ce code ?
// faut-il que le genere ?
- //Assert.assertNotNull(createdSp1.getRefTaxCode());
- //Assert.assertNotSame(sp1.getRefTaxCode(), createdSp1.getRefTaxCode());
+ //Assert.assertNotNull(createdSp1.getExternalCode());
+ //Assert.assertNotSame(sp1.getExternalCode(), createdSp1.getExternalCode());
Assert.assertNull(createdSp1.getSurveyCode());
Assert.assertNotNull(createdSp1.getId());
Assert.assertNotSame(sp1.getId(), createdSp1.getId());
1
0
r815 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches: accidental individualobservation
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 12:20:07 +0200 (Wed, 17 Apr 2013)
New Revision: 815
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/815
Log:
layout
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx 2013-04-17 09:48:13 UTC (rev 814)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx 2013-04-17 10:20:07 UTC (rev 815)
@@ -77,22 +77,16 @@
<JMenuItem id='removeAccidentalBatchMenu'/>
</JPopupMenu>
- <Table id='form' fill='both' constraints='BorderLayout.NORTH'>
+ <JPanel id='tableToolbar'
+ constraints='BorderLayout.NORTH'
+ layout='{new BorderLayout()}'>
+ <JPanel layout='{new GridLayout(1,0)}'
+ constraints='BorderLayout.WEST'>
+ <JButton id='createAccidentalBatchButton'
+ onActionPerformed='handler.createBatch()'/>
+ </JPanel>
+ </JPanel>
- <!-- Toolbar / Filter -->
- <row>
- <cell columns="2">
- <JPanel id='tableToolbar' layout='{new BorderLayout()}'>
- <JPanel layout='{new GridLayout(1,0)}'
- constraints='BorderLayout.WEST'>
- <JButton id='createAccidentalBatchButton'
- onActionPerformed='handler.createBatch()'/>
- </JPanel>
- </JPanel>
- </cell>
- </row>
- </Table>
-
<JScrollPane id='tableScrollPane' constraints='BorderLayout.CENTER'>
<JXTable id='table'
onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-04-17 09:48:13 UTC (rev 814)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-04-17 10:20:07 UTC (rev 815)
@@ -76,22 +76,16 @@
<JMenuItem id='removeIndividualObservationBatchMenu'/>
</JPopupMenu>
- <Table id='form' fill='both' constraints='BorderLayout.NORTH'>
+ <JPanel id='tableToolbar'
+ constraints='BorderLayout.NORTH'
+ layout='{new BorderLayout()}'>
+ <JPanel layout='{new GridLayout(1,0)}'
+ constraints='BorderLayout.WEST'>
+ <JButton id='createIndividualObservationBatchButton'
+ onActionPerformed='handler.createBatch()' />
+ </JPanel>
+ </JPanel>
- <!-- Toolbar / Filter -->
- <row>
- <cell columns="2">
- <JPanel id='tableToolbar' layout='{new BorderLayout()}'>
- <JPanel layout='{new GridLayout(1,0)}'
- constraints='BorderLayout.WEST'>
- <JButton id='createIndividualObservationBatchButton'
- onActionPerformed='handler.createBatch()'/>
- </JPanel>
- </JPanel>
- </cell>
- </row>
- </Table>
-
<JScrollPane id='tableScrollPane' constraints='BorderLayout.CENTER'>
<JXTable id='table'
onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'
1
0
Author: tchemit
Date: 2013-04-17 11:48:13 +0200 (Wed, 17 Apr 2013)
New Revision: 814
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/814
Log:
refs #2281: [TECH] - R?\195?\169percution des nouveaut?\195?\169s du mod?\195?\168le adagio (mise a jour doc)
Modified:
trunk/src/site/rst/mapping.rst
Modified: trunk/src/site/rst/mapping.rst
===================================================================
--- trunk/src/site/rst/mapping.rst 2013-04-17 09:42:36 UTC (rev 813)
+++ trunk/src/site/rst/mapping.rst 2013-04-17 09:48:13 UTC (rev 814)
@@ -83,17 +83,11 @@
Chef(s) de mission
La première personne de la liste est stockée sous ScientificCruise.manager (SCIENTIFIC_CRUISE.MANAGER_PERSON_FK)
- En v1, les identifiant des personnes suivantes sont stockées dans ScientificCruise.fishingTrip.comments
- derrière la balise : "#MANAGERS=<liste_des_IDs>"
- En v2, ce stockage devra se faire dans ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne>
- **WARNING** : modèle UML + synchronisation Allegro à mettre à jour pour pouvoir importer/exporter VesselPersonFeatures et les tables liées
+ Pour les autres personnes, ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne>
Responsable(s) de salle de tri
- En v1, tous les identifiants des personnes sélectionnées sont stockées dans ScientificCruise.fishingTrip.comments
- derrière la balise : "#SORT_MANAGERS=<liste_des_IDs>"
- En v2, ce stockage devra se faire dans ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_salle_de_tri>
- **WARNING** : modèle UML + synchronisation Allegro à mettre à jour pour pouvoir importer/exporter VesselPersonFeatures et les tables liées
-
+ ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_salle_de_tri>
+
Commentaire
ScientificCruise.comments (SCIENTIFIC_CRUISE.COMMENTS)
@@ -217,10 +211,7 @@
Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.HAUL_VALID>)
Saisisseur(s)
- En v1, les identifiant des personnes suivantes sont stockées dans ScientificCruise.fishingTrip.comments
- derrière la balise : #MANAGERS=<liste_des_IDs>
- En v2, ce stockage devra se faire dans ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne>
- **WARNING** : modèle UML + synchronisation Allegro à mettre à jour pour pouvoir importer/exporter VesselPersonFeatures et les tables liées
+ Operation.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne>
Navire
(depuis version 1.2)
@@ -243,7 +234,6 @@
MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif)
MeasurementFile.name : nom
MeasurementFile.comments : commentaire
- **WARNING** : modification de modèle à faire pour pouvoir avoir MEASUREMENT_FILE.PMFM_FK=null
Trait > Mise en oeuvre de l'engin
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1
0
r813 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content: . config
by tchemit@users.forge.codelutin.com 17 Apr '13
by tchemit@users.forge.codelutin.com 17 Apr '13
17 Apr '13
Author: tchemit
Date: 2013-04-17 11:42:36 +0200 (Wed, 17 Apr 2013)
New Revision: 813
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/813
Log:
fixes #2312: [CONFIGURATION] je pr?\195?\169cise que le navire avec config "caroussel" est le Gwen Drez, il y a alors un bouton "Lancer" si c'est pour relancer Tutti ?\195?\167a ne marche pas
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ReloadTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ReloadTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ReloadTuttiAction.java 2013-04-17 09:17:29 UTC (rev 812)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ReloadTuttiAction.java 2013-04-17 09:42:36 UTC (rev 813)
@@ -44,11 +44,8 @@
@Override
protected void doAction() throws Exception {
- // Close the application
- RunTutti.closeTutti(getHandler(), null);
-
- // Restart
- RunTutti.startTutti(getContext(), true);
+ // Close the application, will exit and restart application
+ RunTutti.closeTutti(getHandler(), RunTutti.UPATE_EXIT_CODE);
}
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-04-17 09:17:29 UTC (rev 812)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-04-17 09:42:36 UTC (rev 813)
@@ -34,6 +34,7 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
import fr.ifremer.tutti.ui.swing.util.editor.TuttiLocationTableCell;
import fr.ifremer.tutti.ui.swing.util.editor.VesselTableCell;
import jaxx.runtime.SwingUtil;
@@ -215,7 +216,9 @@
}
protected void reloadApplication() {
- TuttiActionHelper.runActionAndWait(this, ReloadTuttiAction.class);
+ ReloadTuttiAction action = TuttiActionHelper.createLogicAction(this, ReloadTuttiAction.class);
+ TuttiActionHelper.runAction(action);
+// TuttiActionHelper.runActionAndWait(this, ReloadTuttiAction.class);
}
protected void reloadUI() {
1
0
17 Apr '13
Author: kmorin
Date: 2013-04-17 11:17:29 +0200 (Wed, 17 Apr 2013)
New Revision: 812
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/812
Log:
improve weight computing
Modified:
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
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-17 09:16:32 UTC (rev 811)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-17 09:17:29 UTC (rev 812)
@@ -58,7 +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.marineLitter.error.noWeight=Un lot de macro-déchets n'a pas de poids
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
1
0
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