branch feature/6592 updated (f9c0068 -> 772a8ea)
This is an automated email from the git hooks/post-receive script. New change to branch feature/6592 in repository tutti. See http://git.codelutin.com/tutti.git omits f9c0068 Fix javadoc omits 1c8f110 séparation du service d'import pupitri en 2 parties : - lecture des fichiers d'import - enregistrement des données importées cela permet de saisir un poids total de melag avant de faire l'élévation des poids (fixes #6592) adds accaf10 Use nuiton-version and snapshots on nuiton new d5c74b5 séparation du service d'import pupitri en 2 parties : - lecture des fichiers d'import - enregistrement des données importées cela permet de saisir un poids total de melag avant de faire l'élévation des poids (fixes #6592) new 772a8ea Fix javadoc This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (f9c0068) \ N -- N -- N refs/heads/feature/6592 (772a8ea) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omits" are not gone; other references still refer to them. Any revisions marked "discards" are gone forever. The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 772a8ea94fc37f4d50fec6fc889a262cd6f66427 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Jan 12 12:06:55 2016 +0100 Fix javadoc commit d5c74b541fe652b361f9cf06a36400bddb48c3d7 Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 11 16:52:18 2016 +0100 séparation du service d'import pupitri en 2 parties : - lecture des fichiers d'import - enregistrement des données importées cela permet de saisir un poids total de melag avant de faire l'élévation des poids (fixes #6592) Summary of changes: pom.xml | 11 ++++++++--- tutti-persistence/pom.xml | 4 ++++ .../src/main/java/fr/ifremer/tutti/TuttiConfiguration.java | 2 +- .../main/java/fr/ifremer/tutti/TuttiConfigurationOption.java | 2 +- .../fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java | 2 +- .../ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java | 2 +- .../persistence/service/TechnicalPersistenceService.java | 2 +- .../persistence/service/TechnicalPersistenceServiceImpl.java | 10 +++++----- .../tutti/persistence/service/UpdateSchemaContextSupport.java | 2 +- tutti-service/pom.xml | 4 ++++ .../java/fr/ifremer/tutti/service/PersistenceService.java | 2 +- tutti-ui-swing/pom.xml | 4 ++++ .../ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java | 2 +- .../tutti/ui/swing/content/db/actions/ImportDbAction.java | 2 +- .../tutti/ui/swing/content/db/actions/OpenDbAction.java | 2 +- .../tutti/ui/swing/update/module/TuttiModuleUpdater.java | 4 ++-- 16 files changed, 37 insertions(+), 20 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6592 in repository tutti. See http://git.codelutin.com/tutti.git commit d5c74b541fe652b361f9cf06a36400bddb48c3d7 Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 11 16:52:18 2016 +0100 séparation du service d'import pupitri en 2 parties : - lecture des fichiers d'import - enregistrement des données importées cela permet de saisir un poids total de melag avant de faire l'élévation des poids (fixes #6592) --- .../tutti/service/pupitri/PupitriImportResult.java | 4 + .../service/pupitri/PupitriImportService.java | 40 +++++- .../pupitri/PupitriImportServiceEvo6149Test.java | 4 +- ...t.java => PupitriImportServiceEvo6592Test.java} | 35 ++--- .../src/test/resources/pupitri/evo-6592.car | 8 ++ .../src/test/resources/pupitri/evo-6592.tnk | 32 +++++ .../test/resources/pupitri/evo-6592.tuttiProtocol | 154 +++++++++++++++++++++ .../species/ImportPupitriMelagWeightPopupUI.css | 55 ++++++++ .../species/ImportPupitriMelagWeightPopupUI.jaxx | 73 ++++++++++ .../ImportPupitriMelagWeightPopupUIHandler.java | 79 +++++++++++ .../ImportPupitriMelagWeightPopupUIModel.java | 35 +++++ .../species/actions/ImportPupitriAction.java | 55 ++++++-- ...mportPupitriMelagWeightPopupValidateAction.java | 20 +++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 6 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 + 15 files changed, 565 insertions(+), 38 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java index 08d8440..103f180 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java @@ -185,6 +185,10 @@ public class PupitriImportResult { return melagTotalWeight == null ? null : melagTotalWeight.floatValue(); } + public void setMelagTotalWeight(float melagTotalWeight) { + this.melagTotalWeight.setValue(melagTotalWeight); + } + public Float getMelagSortedWeight() { return melagSortedWeight == null ? null : melagSortedWeight.floatValue(); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportService.java index 1a73504..ddaf547 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportService.java @@ -138,22 +138,52 @@ public class PupitriImportService extends AbstractTuttiService { } /** - * @param trunkFile incoming trunk file - * @param carrouselFile incoming carroussle file - * @param operation target operation - * @param catchBatch target catch batch - * @return the number of rows of the .car file which have not been imported + * Used merely in tests. + * @param trunkFile + * @param carrouselFile + * @param operation + * @param catchBatch + * @return */ public PupitriImportResult importPupitri(File trunkFile, File carrouselFile, FishingOperation operation, CatchBatch catchBatch) { + PupitriImportResult result = readImportPupitri(trunkFile, carrouselFile, operation); + return saveImportPupitri(trunkFile, carrouselFile, operation, catchBatch, result); + } + + /** + * @param trunkFile incoming trunk file + * @param carrouselFile incoming carroussle file + * @param operation target operation + * @return the number of rows of the .car file which have not been imported + */ + public PupitriImportResult readImportPupitri(File trunkFile, + File carrouselFile, + FishingOperation operation) { + PupitriImportResult result = new PupitriImportResult(); importPupitriTrunk(result, trunkFile, operation); importPupitriCarrousel(result, carrouselFile, operation); + return result; + } + + /** + * @param trunkFile incoming trunk file + * @param carrouselFile incoming carroussle file + * @param operation target operation + * @return the number of rows of the .car file which have not been imported + */ + public PupitriImportResult saveImportPupitri(File trunkFile, + File carrouselFile, + FishingOperation operation, + CatchBatch catchBatch, + PupitriImportResult result) { + if (result.isFishingOperationFound()) { // generation du rapport diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6149Test.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6149Test.java index 4a969e6..c11f7df 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6149Test.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6149Test.java @@ -55,7 +55,7 @@ import java.util.Set; public class PupitriImportServiceEvo6149Test extends PupitryImportServiceTestSupport { /** Logger. */ - private static final Log log = LogFactory.getLog(PupitriImportServiceEvo5062Test.class); + private static final Log log = LogFactory.getLog(PupitriImportServiceEvo6149Test.class); @Test public void importPupitri() throws IOException { @@ -91,7 +91,7 @@ public class PupitriImportServiceEvo6149Test extends PupitryImportServiceTestSup /* Melange total 100Kg / sorted 50Kg -> ratio = x2 - MERL-MCC un lot G (50Kg) + MERL-MCC un lot G (100Kg) MERL-MCC un lot P (25x2 -> 50Kg) TRAC-TRU un lot VRAC (25x2 -> 50Kg) ENGR-ENC un lot HV 75Kg diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6149Test.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6592Test.java similarity index 87% copy from tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6149Test.java copy to tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6592Test.java index 4a969e6..8ac4490 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6149Test.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6592Test.java @@ -52,17 +52,17 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.10 */ -public class PupitriImportServiceEvo6149Test extends PupitryImportServiceTestSupport { +public class PupitriImportServiceEvo6592Test extends PupitryImportServiceTestSupport { /** Logger. */ - private static final Log log = LogFactory.getLog(PupitriImportServiceEvo5062Test.class); + private static final Log log = LogFactory.getLog(PupitriImportServiceEvo6592Test.class); @Test public void importPupitri() throws IOException { - File trunk = dbResource.copyClassPathResource("pupitri/evo-6149.tnk", "pupitri.tnk"); - File carroussel = dbResource.copyClassPathResource("pupitri/evo-6149.car", "pupitri.car"); - dbResource.loadInternalProtocolFile("pupitri/", "evo-6149"); + File trunk = dbResource.copyClassPathResource("pupitri/evo-6592.tnk", "pupitri.tnk"); + File carroussel = dbResource.copyClassPathResource("pupitri/evo-6592.car", "pupitri.car"); + dbResource.loadInternalProtocolFile("pupitri/", "evo-6592"); FishingOperation operation = dataContext.operations.get(1); CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId()); @@ -71,7 +71,10 @@ public class PupitriImportServiceEvo6149Test extends PupitryImportServiceTestSup BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false); Assert.assertEquals(0, rootSpeciesBatch.sizeChildren()); - PupitriImportResult pupitriImportResult = service.importPupitri(trunk, carroussel, operation, catchBatch); + PupitriImportResult pupitriImportResult = service.readImportPupitri(trunk, carroussel, operation); + pupitriImportResult.setMelagTotalWeight(200); + pupitriImportResult = service.saveImportPupitri(trunk, carroussel, operation, catchBatch, pupitriImportResult); + Assert.assertTrue(pupitriImportResult.isFishingOperationFound()); int nbNotAdded = pupitriImportResult.getNbCarrousselNotImported(); Assert.assertEquals(1, nbNotAdded); @@ -90,10 +93,10 @@ public class PupitriImportServiceEvo6149Test extends PupitryImportServiceTestSup Assert.assertEquals(3, rootSpeciesBatchAfter.sizeChildren()); /* - Melange total 100Kg / sorted 50Kg -> ratio = x2 - MERL-MCC un lot G (50Kg) - MERL-MCC un lot P (25x2 -> 50Kg) - TRAC-TRU un lot VRAC (25x2 -> 50Kg) + Melange total 200kg / sorted 50Kg -> ratio = x4 + MERL-MCC un lot G (100Kg) + MERL-MCC un lot P (25x4 -> 100Kg) + TRAC-TRU un lot VRAC (25x4 -> 100Kg) ENGR-ENC un lot HV 75Kg */ Set<Integer> expectedSpecies = Sets.newHashSet( @@ -146,8 +149,8 @@ public class PupitriImportServiceEvo6149Test extends PupitryImportServiceTestSup if (16994 == speciesId) { // un lot VRAC (sans poids) avec deux fils - // un G (100Kg) - // un P (50Kg) + // un G (100kg) + // un P (100kg) Assert.assertTrue(batchVracPredicate.apply(speciesBatch)); Assert.assertFalse(speciesBatch.isChildBatchsEmpty()); @@ -162,7 +165,7 @@ public class PupitriImportServiceEvo6149Test extends PupitryImportServiceTestSup } else if (smallVracPredicate.apply(child)) { - Assert.assertEquals(50, child.getSampleCategoryWeight(), 0.001); + Assert.assertEquals(100, child.getSampleCategoryWeight(), 0.001); } else { Assert.fail("le lot " + child + " doit etre une categorisation Taille Gros ou petit"); } @@ -175,7 +178,7 @@ public class PupitriImportServiceEvo6149Test extends PupitryImportServiceTestSup } else if (smallVracPredicate.apply(child)) { - Assert.assertEquals(50, child.getSampleCategoryWeight(), 0.001); + Assert.assertEquals(100, child.getSampleCategoryWeight(), 0.001); } else { Assert.fail("le lot " + child + " doit etre une categorisation Taille Gros ou petit"); } @@ -186,10 +189,10 @@ public class PupitriImportServiceEvo6149Test extends PupitryImportServiceTestSup if (17116 == speciesId) { - // un unique lot vrac de 50Kg + // un unique lot vrac de 100kg Assert.assertTrue(batchVracPredicate.apply(speciesBatch)); Assert.assertTrue(speciesBatch.isChildBatchsEmpty()); - Assert.assertEquals(50, speciesBatch.getSampleCategoryWeight(), 0.001); + Assert.assertEquals(100, speciesBatch.getSampleCategoryWeight(), 0.001); } } diff --git a/tutti-service/src/test/resources/pupitri/evo-6592.car b/tutti-service/src/test/resources/pupitri/evo-6592.car new file mode 100644 index 0000000..651dc19 --- /dev/null +++ b/tutti-service/src/test/resources/pupitri/evo-6592.car @@ -0,0 +1,8 @@ +$TSMES,27/11/13,13:14:46.647,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0025.0, +$TSMES,27/11/13,13:16:26.243,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0025.0, +$TSMES,27/11/13,13:16:41.355,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0050.0, +$TSMES,27/11/13,13:28:27.717,BLCAR, 0,A,1,002,MERL-MCC,G,VAT,0100.0, (du merlu gros) +$TSMES,27/11/13,13:30:30.398,BLCAR, 0,A,1,001,MERL-MCC,T,VAT,0025.0, (du merlu petit) +$TSMES,27/11/13,13:31:17.004,BLCAR, 0,A,1,001,TRAC-TRU,T,VAT,0025.0, (du trac-tru en melange) -> lot unique +$TSMES,27/11/13,13:31:17.004,BLCAR, 0,A,1,001,TRAC-BIZ,T,VAT,0025.0, (espece non connue) +$TSMES,27/11/13,13:31:17.004,BLCAR, 0,A,1,001,ENGR-ENC,0,HOV,0075.0, (HV) \ No newline at end of file diff --git a/tutti-service/src/test/resources/pupitri/evo-6592.tnk b/tutti-service/src/test/resources/pupitri/evo-6592.tnk new file mode 100644 index 0000000..bdb8624 --- /dev/null +++ b/tutti-service/src/test/resources/pupitri/evo-6592.tnk @@ -0,0 +1,32 @@ +$TSMES,27/11/13,09:08:45.130,BLTNK, 0,A,1,VAT,0045.4, +$TSMES,27/11/13,09:10:10.522,BLTNK, 0,A,1,VAT,0045.0, +$TSMES,27/11/13,09:12:14.730,BLTNK, 0,A,1,VAT,0043.9, +$TSMES,27/11/13,09:14:06.033,BLTNK, 0,A,1,VAT,0044.0, +$TSMES,27/11/13,09:16:08.907,BLTNK, 0,A,1,VAT,0042.4, +$TSMES,27/11/13,09:17:47.515,BLTNK, 0,A,1,VAT,0044.3, +$TSMES,27/11/13,09:19:44.039,BLTNK, 0,A,1,VAT,0043.6, +$TSMES,27/11/13,09:21:49.166,BLTNK, 0,A,1,VAT,0044.2, +$TSMES,27/11/13,09:26:57.681,BLTNK, 0,A,1,VAT,0045.9, +$TSMES,27/11/13,09:29:20.020,BLTNK, 0,A,1,VAT,0045.8, +$TSMES,27/11/13,09:30:37.535,BLTNK, 0,A,1,VAT,0047.0, +$TSMES,27/11/13,09:32:16.153,BLTNK, 0,A,1,VAT,0046.6, +$TSMES,27/11/13,09:33:30.882,BLTNK, 0,A,1,VAT,0044.4, +$TSMES,27/11/13,09:34:50.649,BLTNK, 0,A,1,VAT,0044.5, +$TSMES,27/11/13,09:36:36.933,BLTNK, 0,A,1,VAT,0043.7, +$TSMES,27/11/13,09:37:53.424,BLTNK, 0,A,1,VAT,0046.4, +$TSMES,27/11/13,09:41:40.944,BLTNK, 0,A,1,VAT,0048.6, +$TSMES,27/11/13,09:43:33.377,BLTNK, 0,A,1,VAT,0046.4, +$TSMES,27/11/13,09:44:46.487,BLTNK, 0,A,1,VAT,0046.4, +$TSMES,27/11/13,09:46:12.192,BLTNK, 0,A,1,VAT,0045.2, +$TSMES,27/11/13,09:47:34.846,BLTNK, 0,A,1,VAT,0045.4, +$TSMES,27/11/13,09:48:55.920,BLTNK, 0,A,1,VAT,0048.4, +$TSMES,27/11/13,09:51:12.724,BLTNK, 0,A,1,VAT,0046.4, +$TSMES,27/11/13,09:54:14.063,BLTNK, 0,A,1,VAT,0040.4, +$TSMES,27/11/13,09:56:11.000,BLTNK, 0,A,1,VAT,0044.2, +$TSMES,27/11/13,09:57:38.344,BLTNK, 0,A,1,VAT,0047.3, +$TSMES,27/11/13,09:59:23.603,BLTNK, 0,A,1,VAT,0047.6, +$TSMES,27/11/13,10:00:51.868,BLTNK, 0,A,1,VAT,0047.9, +$TSMES,27/11/13,10:02:29.655,BLTNK, 0,A,1,VAT,0044.2, +$TSMES,27/11/13,10:04:14.101,BLTNK, 0,A,1,VAT,0045.9, +$TSMES,27/11/13,10:06:08.886,BLTNK, 0,A,1,VAT,0043.2, +$TSMES,27/11/13,10:08:35.000,BLTNK, 0,A,1,VAT,0007.5, diff --git a/tutti-service/src/test/resources/pupitri/evo-6592.tuttiProtocol b/tutti-service/src/test/resources/pupitri/evo-6592.tuttiProtocol new file mode 100644 index 0000000..62af9e3 --- /dev/null +++ b/tutti-service/src/test/resources/pupitri/evo-6592.tuttiProtocol @@ -0,0 +1,154 @@ +id: c6ee2088-9720-46c0-b8d2-8f21c902676f +name: Protocole EVHOE 2013 +benthos: +comment: Protocole pour les tests 2013 avec Jean Jacques Rivoalen +gearUseFeaturePmfmId: +- 131 +- 828 +- 884 +- 965 +lengthClassesPmfmId: +- 306 +- 622 +- 307 +- 302 +- 299 +- 1394 +- 1417 +- 1425 +- 1426 +- 1427 +- 283 +- 284 +- 285 +- 294 +- 295 +- 300 +- 301 +- 304 +- 318 +- 319 +- 322 +- 323 +- 661 +- 662 +species: +- !SpeciesProtocol + id: 056a7ad4-934c-4d69-b068-1a2dd64012cb + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 306 + mandatorySampleCategoryId: [] + speciesReferenceTaxonId: 2786 + speciesSurveyCode: EUPH-AUX + weightEnabled: true +- !SpeciesProtocol + id: 5f7e400c-6a03-4092-9ccf-0031823b3a14 + calcifySampleEnabled: true + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 306 + mandatorySampleCategoryId: + - 198 + - 196 + speciesReferenceTaxonId: 1540 + speciesSurveyCode: MERL-MCC + weightEnabled: true +- !SpeciesProtocol + id: dc5738bb-ed38-4814-a016-9fabfd833212 + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 306 + mandatorySampleCategoryId: + - 198 + speciesReferenceTaxonId: 1662 + speciesSurveyCode: TRAC-TRU + weightEnabled: true +- !SpeciesProtocol + id: e4577b1e-18d1-459c-acff-04aedf4e917d + calcifySampleEnabled: true + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 307 + mandatorySampleCategoryId: [] + speciesReferenceTaxonId: 1362 + speciesSurveyCode: ENGR-ENC + weightEnabled: true +- !SpeciesProtocol + id: 4076fe7e-01fe-4164-820a-47b50dfa8e02 + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 306 + mandatorySampleCategoryId: [] + speciesReferenceTaxonId: 1920 + speciesSurveyCode: EUTR-GUR + weightEnabled: true +- !SpeciesProtocol + id: 16f4a094-1904-4e50-aff9-1f2dcab3a909 + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 306 + mandatorySampleCategoryId: + - 198 + speciesReferenceTaxonId: 1772 + speciesSurveyCode: SCOM-SCO + weightEnabled: true +- !SpeciesProtocol + id: d5887f0e-bd99-4f66-a967-8fcff8224b32 + calcifySampleEnabled: true + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 306 + mandatorySampleCategoryId: + - 198 + - 196 + speciesReferenceTaxonId: 1553 + speciesSurveyCode: MICR-POU + weightEnabled: true +- !SpeciesProtocol + id: 944db3c6-d870-4f03-8abc-9a985a6feb65 + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 306 + mandatorySampleCategoryId: [] + speciesReferenceTaxonId: 1415 + speciesSurveyCode: MYCT-PUN + weightEnabled: true +- !SpeciesProtocol + id: 2a8122cf-d238-4820-a7b9-eacaf1f302bd + calcifySampleEnabled: true + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 306 + mandatorySampleCategoryId: [] + speciesReferenceTaxonId: 1551 + speciesSurveyCode: MELA-NGE + weightEnabled: true +- !SpeciesProtocol + id: 0de3f5c9-0ca9-4a7c-84aa-323d9eaa7f7f + countIfNoFrequencyEnabled: true + mandatorySampleCategoryId: [] + speciesReferenceTaxonId: 872 + speciesSurveyCode: ACAN-PEL + weightEnabled: true +- !SpeciesProtocol + id: ddffa4c9-cbb5-447f-a829-e2ac0cfea0f5 + countIfNoFrequencyEnabled: true + lengthStepPmfmId: 306 + mandatorySampleCategoryId: [] + speciesReferenceTaxonId: 1732 + speciesSurveyCode: ACANPAL + weightEnabled: true +vesselUseFeaturePmfmId: +- 173 +- 194 +- 230 +- 782 +- 843 +- 844 +- 846 +- 847 +- 848 +- 849 +- 850 +- 851 +- 857 +- 858 +- 859 +- 861 +- 862 +- 863 +- 881 +- 882 +- 883 diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUI.css new file mode 100644 index 0000000..c6b279b --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUI.css @@ -0,0 +1,55 @@ +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% +*/ + +#importPupitriMelagWeightDialog { + modal: true; + title: "tutti.importPupitri.melagWeight.title"; +} + +#message { + text: "tutti.importPupitri.melagWeight.message"; +} + +#melagWeightLabel { + text: "tutti.importPupitri.melagWeight.field"; + labelFor: {melagWeight}; + _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()}; +} + +#melagWeight { + autoPopup: {handler.getConfig().isAutoPopupNumberEditor()}; + showPopupButton: {handler.getConfig().isShowNumberEditorButton()}; + showReset: true; + numberType: {Float.class}; + computedDataColor: {handler.getConfig().getColorComputedWeights()}; + bean: {model.getTotalMelagComputedOrNotWeight()}; + numberValue: {model.getTotalMelagWeight()}; +} + +#validateButton { + actionIcon: add; + text: "tutti.common.validate"; + toolTipText: "tutti.common.validate"; + i18nMnemonic: "tutti.common.validate.mnemonic"; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.operation.catches.species.actions.ImportPupitriMelagWeightPopupValidateAction.class}; +} + diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUI.jaxx new file mode 100644 index 0000000..5e538ae --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUI.jaxx @@ -0,0 +1,73 @@ +<!-- + #%L + Tutti :: UI + %% + Copyright (C) 2012 - 2014 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<JDialog id='importPupitriMelagWeightDialog' layout='{new BorderLayout()}' + implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<ImportPupitriMelagWeightPopupUIModel, ImportPupitriMelagWeightPopupUIHandler>'> + + <import> + fr.ifremer.tutti.ui.swing.TuttiUIContext + fr.ifremer.tutti.ui.swing.util.TuttiUI + fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor + fr.ifremer.tutti.type.WeightUnit + </import> + + <script><![CDATA[ + +public ImportPupitriMelagWeightPopupUI(TuttiUI<?,?> parentUI) { + super(parentUI.getHandler().getContext().getMainUI()); + TuttiUIUtil.setParentUI(this, parentUI); +} + +public void open(float initialWeight) { + handler.open(initialWeight); +} + ]]></script> + + <ImportPupitriMelagWeightPopupUIModel id="model" initializer='getContextValue(ImportPupitriMelagWeightPopupUIModel.class)'/> + + <Table id='mainPanel' fill='both'> + + <row columns='2'> + <cell> + <JLabel id='message'/> + </cell> + </row> + + <row> + <cell> + <JLabel id='melagWeightLabel'/> + </cell> + <cell weightx='1'> + <ComputableDataEditor id='melagWeight' + genericType="Float" constructorParams='this'/> + </cell> + </row> + + <row> + <cell columns='2'> + <JButton id='validateButton'/> + </cell> + </row> + + </Table> + +</JDialog> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUIHandler.java new file mode 100644 index 0000000..565c2fb --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUIHandler.java @@ -0,0 +1,79 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species; + +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.validator.swing.SwingValidator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.JComponent; + +/** + * @author kmorin <morin@codelutin.com> + * @since 4.3 + */ +public class ImportPupitriMelagWeightPopupUIHandler extends AbstractTuttiUIHandler<ImportPupitriMelagWeightPopupUIModel, ImportPupitriMelagWeightPopupUI> { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ImportPupitriMelagWeightPopupUIHandler.class); + + @Override + public void beforeInit(ImportPupitriMelagWeightPopupUI ui) { + super.beforeInit(ui); + ui.setContextValue(new ImportPupitriMelagWeightPopupUIModel()); + } + + @Override + public void afterInit(ImportPupitriMelagWeightPopupUI ui) { + initUI(ui); + ui.pack(); + ui.setResizable(true); + } + + @Override + protected JComponent getComponentToFocus() { + return ui.getValidateButton(); + } + + @Override + public void onCloseUI() { + getModel().setTotalMelagWeight(null); + getModel().setComputedTotalMelagWeight(null); + } + + @Override + public SwingValidator<ImportPupitriMelagWeightPopupUIModel> getValidator() { + return null; + } + + public void open(float initialWeight) { + ui.getModel().setComputedTotalMelagWeight(initialWeight); + + SwingUtil.center(TuttiUIUtil.getApplicationContext(ui).getMainUI(), ui); + ui.setVisible(true); + } + +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUIModel.java new file mode 100644 index 0000000..feefd6d --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriMelagWeightPopupUIModel.java @@ -0,0 +1,35 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species; + +import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; +import org.jdesktop.beans.AbstractSerializableBean; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.3 + */ +public class ImportPupitriMelagWeightPopupUIModel extends AbstractSerializableBean { + + public static final String PROPERTY_TOTAL_MELAG_WEIGHT = "totalMelagWeight"; + + protected ComputableData<Float> totalMelagWeight = new ComputableData<>(); + + public ComputableData<Float> getTotalMelagComputedOrNotWeight() { + return totalMelagWeight; + } + + public Float getTotalMelagWeight() { + return totalMelagWeight.getDataOrComputedData(); + } + + public void setTotalMelagWeight(Float totalMelagWeight) { +// Object oldValue = getTotalMelagWeight(); + this.totalMelagWeight.setData(totalMelagWeight); +// firePropertyChange(PROPERTY_TOTAL_MELAG_WEIGHT, oldValue, totalMelagWeight); + } + + public void setComputedTotalMelagWeight(Float totalMelagWeight) { +// Object oldValue = getTotalMelagWeight(); + this.totalMelagWeight.setComputedData(totalMelagWeight); +// firePropertyChange(PROPERTY_TOTAL_MELAG_WEIGHT, oldValue, totalMelagWeight); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/ImportPupitriAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/ImportPupitriAction.java index 74162aa..fc14abb 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/ImportPupitriAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/ImportPupitriAction.java @@ -31,17 +31,18 @@ import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.pupitri.PupitriImportResult; import fr.ifremer.tutti.service.pupitri.PupitriImportService; -import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; -import fr.ifremer.tutti.ui.swing.content.operation.fishing.actions.EditFishingOperationAction; import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.ImportPupitriMelagWeightPopupUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.ImportPupitriPopupUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIModel; +import fr.ifremer.tutti.ui.swing.content.operation.fishing.actions.EditFishingOperationAction; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; @@ -143,6 +144,38 @@ public class ImportPupitriAction extends LongActionSupport<SpeciesBatchUIModel, result = importedTrunkFile != null && importedCarrouselFile != null; } + if (result) { + EditCatchesUI parentContainer = handler.getParentContainer(EditCatchesUI.class); + EditCatchesUIModel model = parentContainer.getModel(); + + FishingOperation operation = model.getFishingOperation(); + + // import + PupitriImportService service = getContext().getPupitriImportService(); + importResult = service.readImportPupitri(importedTrunkFile, + importedCarrouselFile, + operation); + + result = importResult.isFishingOperationFound(); + + if (!result) { + displayWarningMessage( + t("tutti.editSpeciesBatch.action.importPupitri.no.matching.fishingOperation.title"), + "<html><body>" + + t("tutti.editSpeciesBatch.action.importPupitri.no.matching.fishingOperation") + + "</body></html>" + ); + sendMessage(t("tutti.editSpeciesBatch.action.importPupitri.no.matching.data")); + + } else if (importResult.isFoundTotalMelag()) { + + ImportPupitriMelagWeightPopupUI importPupitriMelagWeightDialog = new ImportPupitriMelagWeightPopupUI(getUI()); + importPupitriMelagWeightDialog.open(importResult.getMelagTotalWeight()); + float weight = importPupitriMelagWeightDialog.getModel().getTotalMelagWeight(); + importResult.setMelagTotalWeight(weight); + } + } + return result; } @@ -157,10 +190,11 @@ public class ImportPupitriAction extends LongActionSupport<SpeciesBatchUIModel, // import PupitriImportService service = getContext().getPupitriImportService(); - importResult = service.importPupitri(importedTrunkFile, - importedCarrouselFile, - operation, - catchBatch); + importResult = service.saveImportPupitri(importedTrunkFile, + importedCarrouselFile, + operation, + catchBatch, + importResult); if (importResult.isFishingOperationFound()) { @@ -239,15 +273,6 @@ public class ImportPupitriAction extends LongActionSupport<SpeciesBatchUIModel, TuttiUIUtil.openResource(attachmentFile); } - } else { - - displayWarningMessage( - t("tutti.editSpeciesBatch.action.importPupitri.no.matching.fishingOperation.title"), - "<html><body>" + - t("tutti.editSpeciesBatch.action.importPupitri.no.matching.fishingOperation") + - "</body></html>" - ); - sendMessage(t("tutti.editSpeciesBatch.action.importPupitri.no.matching.data")); } } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/ImportPupitriMelagWeightPopupValidateAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/ImportPupitriMelagWeightPopupValidateAction.java new file mode 100644 index 0000000..a51e60c --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/ImportPupitriMelagWeightPopupValidateAction.java @@ -0,0 +1,20 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.actions; + +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.ImportPupitriMelagWeightPopupUI; +import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.3 + */ +public class ImportPupitriMelagWeightPopupValidateAction extends SimpleActionSupport<ImportPupitriMelagWeightPopupUI> { + + public ImportPupitriMelagWeightPopupValidateAction(ImportPupitriMelagWeightPopupUI importPupitriMelagWeightPopupUI) { + super(importPupitriMelagWeightPopupUI); + } + + @Override + protected void onActionPerformed(ImportPupitriMelagWeightPopupUI importPupitriMelagWeightPopupUI) { + importPupitriMelagWeightPopupUI.dispose(); + } +} diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 0f46a3f..4491961 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1215,6 +1215,8 @@ tutti.editSpeciesBatch.action.importPupitri.speciesNotImported.message= tutti.editSpeciesBatch.action.importPupitri.speciesNotImported.title= tutti.editSpeciesBatch.action.importPupitri.success= tutti.editSpeciesBatch.action.importPupitri.tip= +tutti.editSpeciesBatch.action.importPupitri.totalMelag.message= +tutti.editSpeciesBatch.action.importPupitri.totalMelag.title= tutti.editSpeciesBatch.action.removeBatch= tutti.editSpeciesBatch.action.removeBatch.confirm.message= tutti.editSpeciesBatch.action.removeBatch.confirm.title= @@ -1669,6 +1671,10 @@ tutti.importPupitri.error.fileMissing.message= tutti.importPupitri.error.fileMissing.title= tutti.importPupitri.field.carrouselFile= tutti.importPupitri.field.trunkFile= +tutti.importPupitri.melagWeight.field= +tutti.importPupitri.melagWeight.field.melagWeight= +tutti.importPupitri.melagWeight.message= +tutti.importPupitri.melagWeight.title= tutti.importPupitri.title= tutti.importPupitri.trunkFile.extension= tutti.importPupitri.trunkFile.extension.description= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 04f079d..df9bf99 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1585,6 +1585,9 @@ tutti.importPupitri.error.fileMissing.message=Vous devez sélectionner un fichie tutti.importPupitri.error.fileMissing.title=Fichier non renseigné tutti.importPupitri.field.carrouselFile=Fichier du carrousel tutti.importPupitri.field.trunkFile=Fichier du trémie +tutti.importPupitri.melagWeight.field=Poids total du melag +tutti.importPupitri.melagWeight.message=Du melag a été détecté lors de l'import, veuillez saisir le poids total du melag. +tutti.importPupitri.melagWeight.title=Melag détecté tutti.importPupitri.title=Import Pupitri tutti.importPupitri.trunkFile.extension=tnk tutti.importPupitri.trunkFile.extension.description=Fichier du trémie (.tnk) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6592 in repository tutti. See http://git.codelutin.com/tutti.git commit 772a8ea94fc37f4d50fec6fc889a262cd6f66427 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Jan 12 12:06:55 2016 +0100 Fix javadoc --- .../tutti/service/pupitri/PupitriImportServiceEvo6592Test.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6592Test.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6592Test.java index 8ac4490..eae13ab 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6592Test.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo6592Test.java @@ -49,8 +49,8 @@ import java.util.Set; /** * Created on 11/21/14. * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.10 + * @author Kevin Morin - morin@codelutin.com + * @since 4.3 */ public class PupitriImportServiceEvo6592Test extends PupitryImportServiceTestSupport { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm