branch feature/6115_ajout_RTP updated (863af8b -> d24f9e0)
This is an automated email from the git hooks/post-receive script. New change to branch feature/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git discards 863af8b On sauve seulement (on en ferme pas) quand on clique sur le bouton Enregistrer (refs #6115) discards 688fb26 reset le formulaire quand on quitte sans sauvegarder (refs #6115) discards 31522f4 ajout du validateur + passage du tablemodel dans l'editor (refs #6115) discards 05e8fca ajout du validateur + passage du tablemodel dans le model de l'editor (refs #6115) discards 21a465e Début de l'éditeur des relations RTP, mais tout ne fonctionne pas encore.. (See #6115) discards ba442f6 Ajout du model de RTP sur SpeciesProtocol (See #6115) adds c3afc48 Utiliser un comparateur de date pour le tri de la liste des opérations (See #7874) adds 20d63c1 Suppression constante inutile adds a205fc9 Merge branch 'feature/7874_tri_sur_les_traits_par_date' into 'develop' adds 8d70e7d Renommage des css en jcss adds 8eedb54 Changement du niveau de log adds 5c9c674 Ajout de méthodes sur la persistence pour récupérer des objets obsolètes (See #7909) adds 7d9a05a Pouvoir lors de l'import générique utiliser des objets obsolètes (partie service) (See #7909) adds 1e1adbb Pouvoir lors de l'import générique utiliser des objets obsolètes (partie ui) (See #7909) adds feda4a0 Mise à jour des tests d'import générique adds 912ce8c Les bases de tests ont été mises à jour, plus besoin d'utiliser l'ancien mécanisme pour récupérer les utilisateurs adds 3fc6609 Utilisation d'une base vide pour les tests d'import générique adds bccde35 Ajout d'un test pour la validation d'import générique avec des données obsolètes (See #7909) adds 9b20e27 Test d'import de données obsolètes pour les engins, strates adds 5f644ac Permettre de récupérer des référentiels obsolètes (See #7909) adds 8139a51 Suppresion d'un service obsolète adds fa6349e Correction de la requete pour récupérer les navires obsolètes adds 31acffd Correction de la requete pour récupérer les navires obsolètes adds 69fac2b Fixes #7909 Merge branch 'feature/7909_import_generique_id_obsoletes' into develop adds c96516d Nettoyage de la javadoc (See #7898) adds cb6308c Merge branch 'feature/7898' into develop adds fbebf9d Mise à jour des librairies lutins adds d3f73ef Mise à jour des librairies lutins adds 677e889 [jgitflow-maven-plugin]updating poms for 4.4-SNAPSHOT development adds cbbe213 [jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts adds b81f1a2 Add missing file headers adds 1b39774 [jgitflow-maven-plugin]updating poms for branch'release/4.3' with non-snapshot versions adds de8efb0 [jgitflow-maven-plugin]merging 'release/4.3' into 'master' adds 49ebb38 [jgitflow-maven-plugin]merging 'master' into 'develop' adds eab4ab7 [jgitflow-maven-plugin]Updating develop poms back to pre merge state adds 3a178e1 upgrade jaxx verison (fixes #7924) adds 1bdf452 [jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts adds 8caea2d [jgitflow-maven-plugin]updating poms for 4.3.1 branch with snapshot versions adds 419d3b2 [jgitflow-maven-plugin]updating poms for branch'release/4.3.1' with non-snapshot versions adds 15285f0 [jgitflow-maven-plugin]merging 'release/4.3.1' into 'master' adds bbbaefa [jgitflow-maven-plugin]merging 'master' into 'develop' adds 97d8cec [jgitflow-maven-plugin]Updating develop poms back to pre merge state new 6b0f8d5 Ajout du model de RTP sur SpeciesProtocol (See #6115) new dcea62f Début de l'éditeur des relations RTP, mais tout ne fonctionne pas encore.. (See #6115) new 67e11e1 ajout du validateur + passage du tablemodel dans le model de l'editor (refs #6115) new 59845da ajout du validateur + passage du tablemodel dans l'editor (refs #6115) new 392b446 reset le formulaire quand on quitte sans sauvegarder (refs #6115) new 9b27d5b On sauve seulement (on en ferme pas) quand on clique sur le bouton Enregistrer (refs #6115) new d24f9e0 nouvelle extension des fichiers css + libellés (refs #6115) 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 (863af8b) \ N -- N -- N refs/heads/feature/6115_ajout_RTP (d24f9e0) 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 7 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 d24f9e0634c6a5ad7ed54fef53a55ce8af047fd7 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 19 11:23:02 2016 +0100 nouvelle extension des fichiers css + libellés (refs #6115) commit 9b27d5b332f195fa47b9052f0169eb4967fe50c5 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 19 10:42:51 2016 +0100 On sauve seulement (on en ferme pas) quand on clique sur le bouton Enregistrer (refs #6115) commit 392b4461c87d5e18099afff3cfcb8185d17b5758 Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 18 13:43:05 2016 +0100 reset le formulaire quand on quitte sans sauvegarder (refs #6115) commit 59845dacac83f15e731c51deaf2639e554fe0fae Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 18 11:38:54 2016 +0100 ajout du validateur + passage du tablemodel dans l'editor (refs #6115) commit 67e11e15de1c2a971c46306e4fcebfb631aea45a Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 18 11:37:29 2016 +0100 ajout du validateur + passage du tablemodel dans le model de l'editor (refs #6115) commit dcea62faaaa9613d84376e1e109836f302c52e41 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Jan 14 22:57:42 2016 +0100 Début de l'éditeur des relations RTP, mais tout ne fonctionne pas encore.. (See #6115) commit 6b0f8d5d7c2ecad974877ef14a6f2009d7eb561d Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Jan 14 21:50:35 2016 +0100 Ajout du model de RTP sur SpeciesProtocol (See #6115) Summary of changes: pom.xml | 10 +- tutti-ichtyometer/pom.xml | 2 +- .../tutti/ichtyometer/IchtyometerClient.java | 4 +- .../ichtyometer/LocalDeviceNotFoundException.java | 4 +- .../tutti/ichtyometer/RemoteDeviceChooser.java | 2 +- .../ichtyometer/RemoteDeviceNotFoundException.java | 4 +- .../RemoteDeviceServiceNotFoundException.java | 4 +- .../ifremer/tutti/ichtyometer/feed/FeedReader.java | 4 +- .../ichtyometer/feed/event/FeedReaderEvent.java | 2 +- .../ichtyometer/feed/event/FeedReaderListener.java | 4 +- .../tutti/ichtyometer/interactive/Command.java | 2 +- .../ichtyometer/interactive/CommandEngine.java | 4 +- .../interactive/IchtyometerCommandException.java | 2 +- .../tutti/ichtyometer/tool/FeedReaderTool.java | 2 +- .../tutti/ichtyometer/tool/SendCommandTool.java | 2 +- .../tutti/ichtyometer/IchtyometerClientTest.java | 4 +- .../tutti/ichtyometer/feed/FeedReaderTest.java | 2 +- .../ichtyometer/interactive/CommandEngineTest.java | 2 +- tutti-persistence/pom.xml | 2 +- .../src/main/java/fr/ifremer/tutti/LabelAware.java | 2 +- .../java/fr/ifremer/tutti/TuttiConfiguration.java | 2 +- .../fr/ifremer/tutti/TuttiConfigurationOption.java | 4 +- .../ifremer/tutti/TuttiConfigurationProvider.java | 2 +- .../persistence/InvalidBatchModelException.java | 2 +- .../tutti/persistence/ProgressionModel.java | 2 +- .../tutti/persistence/RessourceClassLoader.java | 2 +- .../tutti/persistence/TuttiPersistence.java | 2 +- .../tutti/persistence/TuttiPersistenceImpl.java | 49 +- .../persistence/TuttiPersistenceNoDbImpl.java | 42 +- .../TuttiPersistenceServiceImplementor.java | 2 +- .../dao/GearPhysicalFeaturesDaoImplTutti.java | 5 +- .../dao/GearPhysicalFeaturesDaoTutti.java | 2 +- .../tutti/persistence/dao/TaxonNameDaoTutti.java | 19 +- .../persistence/dao/TaxonNameDaoTuttiImpl.java | 109 ++ .../persistence/entities/CaracteristicMap.java | 2 +- .../tutti/persistence/entities/TuttiEntities.java | 2 +- .../tutti/persistence/entities/TuttiEntity.java | 2 +- .../persistence/entities/TuttiEntityBean.java | 2 +- .../persistence/entities/TuttiEnumerable.java | 2 +- .../persistence/entities/data/BatchContainer.java | 2 +- .../persistence/entities/data/SampleCategory.java | 2 +- .../entities/data/SampleCategoryModel.java | 2 +- .../data/SampleCategoryModelConverter.java | 4 +- .../entities/data/SampleCategoryModelEntry.java | 4 +- .../protocol/CaracteristicMappingRows.java | 24 + .../entities/protocol/CaracteristicType.java | 2 +- .../entities/protocol/SpeciesProtocols.java | 24 + .../entities/protocol/TuttiProtocols.java | 2 +- .../entities/protocol/v1/SpeciesProtocol1.java | 2 +- .../entities/protocol/v1/SpeciesProtocolBean1.java | 2 +- .../entities/protocol/v1/TuttiProtocol1.java | 2 +- .../entities/protocol/v1/TuttiProtocolBean1.java | 2 +- .../service/AbstractPersistenceService.java | 8 +- .../service/AccidentalBatchPersistenceService.java | 2 +- .../AccidentalBatchPersistenceServiceImpl.java | 2 +- .../service/AttachmentPersistenceService.java | 2 +- .../service/AttachmentPersistenceServiceImpl.java | 2 +- .../service/BenthosBatchPersistenceService.java | 6 +- .../BenthosBatchPersistenceServiceImpl.java | 2 +- .../service/CruisePersistenceService.java | 2 +- .../service/CruisePersistenceServiceImpl.java | 2 +- .../FishingOperationPersistenceService.java | 2 +- .../FishingOperationPersistenceServiceImpl.java | 11 +- ...dividualObservationBatchPersistenceService.java | 2 +- ...dualObservationBatchPersistenceServiceImpl.java | 2 +- .../MarineLitterBatchPersistenceService.java | 4 +- .../MarineLitterBatchPersistenceServiceImpl.java | 2 +- .../service/ProgramPersistenceService.java | 7 +- .../service/ProgramPersistenceServiceImpl.java | 2 +- .../service/ProtocolPersistenceService.java | 2 +- .../service/ProtocolPersistenceServiceImpl.java | 2 +- .../service/ReferentialPersistenceService.java | 495 ------- .../service/ReferentialPersistenceServiceImpl.java | 1423 -------------------- .../service/SpeciesBatchPersistenceService.java | 6 +- .../SpeciesBatchPersistenceServiceImpl.java | 2 +- .../service/TechnicalPersistenceService.java | 6 +- .../service/TechnicalPersistenceServiceImpl.java | 2 +- .../service/TuttiPersistenceServiceLocator.java | 2 +- .../service/batch/TuttiCatchBatchValidator.java | 2 +- .../referential/GearPersistenceService.java | 16 +- .../referential/GearPersistenceServiceImpl.java | 42 +- .../referential/LocationPersistenceService.java | 18 +- .../LocationPersistenceServiceImpl.java | 129 +- .../referential/PersonPersistenceService.java | 15 +- .../referential/PersonPersistenceServiceImpl.java | 32 +- .../ReferentialPersistenceServiceSupport.java | 24 +- .../referential/SpeciesPersistenceService.java | 16 +- .../referential/SpeciesPersistenceServiceImpl.java | 41 +- .../referential/VesselPersistenceService.java | 14 +- .../referential/VesselPersistenceServiceImpl.java | 134 +- .../referential/synchro/ReferentialUpdateTask.java | 7 +- .../TuttiReferentialSynchroServiceImpl.java | 9 +- .../service/util/BatchPersistenceHelper.java | 4 +- .../persistence/service/util/BatchTreeHelper.java | 4 +- .../service/util/MeasurementPersistenceHelper.java | 2 +- .../service/util/SamplePersistenceHelper.java | 2 +- .../service/util/SynchronizationStatusHelper.java | 4 +- .../VesselPersonFeaturesPersistenceHelper.java | 2 +- .../tutti/persistence/test/DatabaseFixtures.java | 2 +- .../tutti/persistence/test/DatabaseResource.java | 13 +- .../tutti/persistence/test/TuttiRunListener.java | 2 +- .../tutti/persistence/test/TuttiRunner.java | 5 +- .../ifremer/tutti/type/CoordinateEditorType.java | 4 +- .../java/fr/ifremer/tutti/type/WeightUnit.java | 4 +- .../main/java/fr/ifremer/tutti/util/Weights.java | 2 +- .../resources/applicationContext-service-tutti.xml | 32 +- .../src/main/resources/queries-failsafe.hbm.xml | 187 ++- .../ReferentialSynchroTableMetadataTest.java | 2 +- .../config/TuttiPersistenceConfigTest.java | 2 +- .../entities/protocol/TuttiProtocolsTest.java | 2 +- .../AccidentalBatchPersistenceServiceReadTest.java | 2 +- ...AccidentalBatchPersistenceServiceWriteTest.java | 2 +- .../AttachmentPersistenceServiceWriteTest.java | 2 +- .../BenthosBatchPersistenceServiceReadTest.java | 2 +- .../BenthosBatchPersistenceServiceWriteTest.java | 2 +- .../CatchBatchPersistenceServiceReadTest.java | 2 +- .../CatchBatchPersistenceServiceWriteTest.java | 2 +- .../service/CruisePersistenceServiceReadTest.java | 2 +- .../service/CruisePersistenceServiceWriteTest.java | 2 +- ...hingOperationPersistenceServiceAno4995Test.java | 4 +- ...FishingOperationPersistenceServiceReadTest.java | 2 +- ...ishingOperationPersistenceServiceWriteTest.java | 2 +- ...bservationBatchPersistenceServiceWriteTest.java | 2 +- ...arineLitterBatchPersistenceServiceReadTest.java | 2 +- ...rineLitterBatchPersistenceServiceWriteTest.java | 2 +- .../service/ProgramPersistenceServiceReadTest.java | 2 +- .../ProgramPersistenceServiceWriteTest.java | 2 +- .../ProtocolPersistenceServiceReadTest.java | 2 +- .../ProtocolPersistenceServiceWriteTest.java | 2 +- .../ReferentialPersistenceServiceWriteTest.java | 2 +- .../SpeciesBatchPersistenceServiceReadTest.java | 2 +- .../SpeciesBatchPersistenceServiceWriteTest.java | 2 +- tutti-report-generator/pom.xml | 2 +- tutti-service/pom.xml | 2 +- .../tutti/service/AbstractTuttiService.java | 6 +- .../tutti/service/ClosedPersistenceService.java | 2 +- .../fr/ifremer/tutti/service/DecoratorService.java | 57 +- .../ifremer/tutti/service/PersistenceService.java | 42 +- .../fr/ifremer/tutti/service/TuttiDataContext.java | 12 +- .../fr/ifremer/tutti/service/TuttiDecorator.java | 4 +- .../fr/ifremer/tutti/service/TuttiService.java | 8 +- .../ifremer/tutti/service/TuttiServiceContext.java | 4 +- .../tutti/service/TuttiValidationDataContext.java | 2 +- .../service/TuttiValidationDataContextSupport.java | 10 +- .../ifremer/tutti/service/ValidationService.java | 2 +- .../tutti/service/bigfin/BigfinImportResult.java | 2 +- .../catches/TuttiWeightComputingException.java | 2 +- .../catches/ValidateCruiseOperationsService.java | 2 +- .../service/catches/WeightCleaningService.java | 8 +- .../service/catches/WeightComputingService.java | 2 +- .../multipost/AbstractFishingOperationRow.java | 2 +- .../AbstractFishingOperationRowModel.java | 2 +- .../catches/multipost/AccidentalCatchRow.java | 2 +- .../catches/multipost/AccidentalCatchRowModel.java | 2 +- .../service/catches/multipost/AttachmentRow.java | 2 +- .../catches/multipost/AttachmentRowModel.java | 2 +- .../catches/multipost/CaracteristicRow.java | 2 +- .../catches/multipost/CaracteristicRowModel.java | 2 +- .../catches/multipost/CatchFrequencyRow.java | 2 +- .../catches/multipost/CatchFrequencyRowModel.java | 2 +- .../tutti/service/catches/multipost/CatchRow.java | 2 +- .../service/catches/multipost/CatchRowModel.java | 2 +- .../service/catches/multipost/CatchWeightsRow.java | 2 +- .../catches/multipost/CatchWeightsRowModel.java | 2 +- .../catches/multipost/FishingOperationRow.java | 2 +- .../multipost/FishingOperationRowModel.java | 2 +- .../multipost/IndividualObservationRow.java | 2 +- .../multipost/IndividualObservationRowModel.java | 2 +- .../service/catches/multipost/MarineLitterRow.java | 2 +- .../catches/multipost/MarineLitterRowModel.java | 2 +- .../catches/multipost/MarineLitterWeightRow.java | 2 +- .../multipost/MarineLitterWeightRowModel.java | 2 +- .../catches/multipost/MultiPostExportService.java | 4 +- .../catches/multipost/MultiPostImportService.java | 2 +- .../service/csv/CaracteristicParserFormatter.java | 5 + .../service/csv/EntityParserFormatterSupport.java | 15 +- .../FishingOperationLocationParserFormatter.java | 5 + .../csv/FishingOperationStrataParserFormatter.java | 5 + .../FishingOperationSubStrataParserFormatter.java | 5 + .../service/csv/ForeignKeyListParserFormatter.java | 2 +- .../service/csv/ForeignKeyParserFormatter.java | 2 +- .../tutti/service/csv/GearParserFormatter.java | 5 + .../tutti/service/csv/HarbourParserFormatter.java | 5 + .../tutti/service/csv/PersonParserFormatter.java | 5 + .../tutti/service/csv/ProgramParserFormatter.java | 5 + .../tutti/service/csv/SpeciesParserFormatter.java | 5 + .../fr/ifremer/tutti/service/csv/TuttiCsvUtil.java | 2 +- .../tutti/service/csv/VesselParserFormatter.java | 5 + .../tutti/service/export/ExportCatchContext.java | 4 +- .../export/pdf/CatchesPdfExportService.java | 2 +- .../tutti/service/export/sumatra/CatchRow.java | 2 +- .../service/export/sumatra/CatchRowModel.java | 2 +- .../sumatra/CatchesSumatraExportService.java | 2 +- .../export/sumatra/SumatraExportResult.java | 2 +- .../genericformat/GenericFormatExportService.java | 4 +- .../GenericFormatImportConfiguration.java | 10 + .../GenericFormatImportEntityParserFactory.java | 17 +- .../genericformat/GenericFormatImportRequest.java | 4 + .../genericformat/csv/AccidentalCatchModel.java | 2 +- .../genericformat/csv/AccidentalCatchRow.java | 2 +- .../service/genericformat/csv/CatchModel.java | 2 +- .../tutti/service/genericformat/csv/CatchRow.java | 2 +- .../genericformat/csv/ExportSampleCategory.java | 2 +- .../genericformat/csv/GearCaracteristicModel.java | 2 +- .../genericformat/csv/GearCaracteristicRow.java | 2 +- .../csv/IndividualObservationModel.java | 2 +- .../csv/IndividualObservationRow.java | 2 +- .../genericformat/csv/MarineLitterModel.java | 2 +- .../service/genericformat/csv/MarineLitterRow.java | 2 +- .../service/genericformat/csv/OperationModel.java | 2 +- .../service/genericformat/csv/OperationRow.java | 2 +- .../service/genericformat/csv/ParameterModel.java | 2 +- .../service/genericformat/csv/ParameterRow.java | 2 +- .../genericformat/csv/SpeciesExportModel.java | 2 +- .../genericformat/csv/SpeciesExportRow.java | 2 +- .../service/genericformat/csv/SurveyModel.java | 2 +- .../tutti/service/genericformat/csv/SurveyRow.java | 2 +- .../tutti/service/protocol/CaracteristicRow.java | 2 +- .../service/protocol/CaracteristicRowModel.java | 2 +- .../protocol/ProtocolImportExportService.java | 2 +- .../ifremer/tutti/service/protocol/SpeciesRow.java | 2 +- .../tutti/service/protocol/SpeciesRowModel.java | 2 +- .../service/psionimport/PsionImportBatchModel.java | 2 +- .../service/psionimport/PsionImportModel.java | 2 +- .../service/psionimport/PsionImportResult.java | 2 +- .../service/psionimport/PsionImportService.java | 8 +- .../ifremer/tutti/service/pupitri/Directions.java | 2 +- .../tutti/service/pupitri/PupitriImportResult.java | 4 +- .../service/pupitri/PupitriImportService.java | 2 +- .../service/pupitri/PupitriSpeciesContext.java | 2 +- .../fr/ifremer/tutti/service/pupitri/Signs.java | 2 +- .../tutti/service/pupitri/csv/CarrouselRow.java | 2 +- .../service/pupitri/csv/CarrouselRowModel.java | 2 +- .../tutti/service/pupitri/csv/SpeciesRow.java | 2 +- .../tutti/service/pupitri/csv/SpeciesRowModel.java | 2 +- .../tutti/service/pupitri/csv/TrunkRow.java | 2 +- .../tutti/service/pupitri/csv/TrunkRowModel.java | 2 +- .../TuttiReferentialSynchronizeService.java | 2 +- .../tutti/service/referential/csv/GearModel.java | 2 +- .../tutti/service/referential/csv/PersonModel.java | 2 +- .../service/referential/csv/SpeciesModel.java | 2 +- .../tutti/service/referential/csv/VesselModel.java | 2 +- .../ifremer/tutti/service/AbstractServiceTest.java | 2 +- .../tutti/service/BeanValidatorDetectorTest.java | 2 +- .../tutti/service/DecoratorServiceTest.java | 2 +- .../ifremer/tutti/service/ServiceDbResource.java | 22 +- .../tutti/service/ValidationServiceTest.java | 2 +- .../service/bigfin/BigfinImportService2Test.java | 1 - .../catches/WeightComputingServiceTest.java | 2 +- .../multipost/MultiPostExportServiceTest.java | 2 +- .../export/pdf/CatchesPdfExportServiceTest.java | 2 +- .../sumatra/CatchesSumatraExportServiceTest.java | 2 +- .../GenericFormatExportServiceTest.java | 2 +- .../GenericFormatImportServiceTest.java | 3 +- .../GenericFormatImportServiceValidTest.java | 40 +- .../protocol/ProtocolImportExportServiceTest.java | 2 +- .../psionimport/PsionImportServiceTest.java | 2 +- .../pupitri/PupitriImportServiceAno3898Test.java | 2 +- .../pupitri/PupitriImportServiceAno5032Test.java | 2 +- .../pupitri/PupitriImportServiceAno5079Test.java | 2 +- .../pupitri/PupitriImportServiceEvo5060Test.java | 2 +- .../pupitri/PupitriImportServiceEvo5062Test.java | 2 +- .../service/pupitri/PupitriImportServiceTest.java | 2 +- .../ReferentialTemporaryExportServiceTest.java | 2 +- .../test/resources/genericFormat/catch/catch.csv | 866 ++++++------ .../test/resources/genericFormat/default/catch.csv | 866 ++++++------ .../resources/genericFormat/default/operation.csv | 6 +- .../resources/genericFormat/default/survey.csv | 4 +- .../test/resources/genericFormat/empty/catch.csv | 2 +- .../resources/genericFormat/empty/operation.csv | 2 +- .../test/resources/genericFormat/empty/survey.csv | 2 +- .../genericFormat/marineLitter/marineLitter.csv | 8 +- .../genericFormat/operation/operation.csv | 6 +- .../referentials/temporarySpecies.csv | 18 +- .../test/resources/genericFormat/survey/survey.csv | 4 +- .../genericFormat/withObsoletes/catch.csv | 16 + .../{empty => withObsoletes}/operation.csv | 3 +- .../withObsoletes/protocol.tuttiProtocol} | 29 +- .../genericFormat/withObsoletes/sampleCategory.csv | 9 + .../genericFormat/withObsoletes/survey.csv | 2 + .../genericFormat/withObsoletes/temporaryGears.csv | 1 + .../withObsoletes/temporaryPersons.csv | 1 + .../withObsoletes/temporarySpecies.csv | 11 + .../withObsoletes/temporaryVessels.csv | 1 + tutti-ui-swing-updater/pom.xml | 2 +- tutti-ui-swing/pom.xml | 5 +- .../filtered-resources/tutti-help-fr.properties | 5 +- .../java/fr/ifremer/tutti/ui/swing/RunTutti.java | 2 +- .../ifremer/tutti/ui/swing/TuttiActionFactory.java | 2 +- .../fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java | 2 +- .../fr/ifremer/tutti/ui/swing/TuttiScreen.java | 2 +- .../fr/ifremer/tutti/ui/swing/TuttiUIContext.java | 2 +- .../ui/swing/content/{Common.css => Common.jcss} | 0 .../ui/swing/content/{MainUI.css => MainUI.jcss} | 0 .../tutti/ui/swing/content/MainUIHandler.java | 2 +- .../actions/AbstractChangeLocaleAction.java | 2 +- .../actions/AbstractChangeScreenAction.java | 50 +- .../content/actions/AbstractMainUITuttiAction.java | 2 +- .../content/actions/ChangeToLocaleFRAction.java | 2 +- .../content/actions/ChangeToLocaleUKAction.java | 2 +- .../content/actions/CloseApplicationAction.java | 2 +- .../content/actions/ConnectIchtyometerAction.java | 4 +- .../actions/DisconnectIchtyometerAction.java | 4 +- .../EditCatchesForSelectedCruiseAction.java | 2 +- .../content/actions/EditSelectedCruiseAction.java | 2 +- .../content/actions/EditSelectedProgramAction.java | 2 +- .../actions/EditSelectedProtocolAction.java | 2 +- .../content/actions/GoToPreviousScreenAction.java | 2 +- .../swing/content/actions/OpenDbScreenAction.java | 2 +- .../actions/OpenGenericFormatImportScreen.java | 2 +- .../content/actions/OpenHomeScreenAction.java | 2 +- .../content/actions/OpenReportScreenAction.java | 2 +- .../OpenSampleCategoryModelScreenAction.java | 2 +- .../OpenTemporaryReferentialScreenAction.java | 2 +- .../ui/swing/content/actions/ShowAboutAction.java | 2 +- .../ui/swing/content/actions/ShowConfigAction.java | 2 +- .../ui/swing/content/actions/StartAction.java | 4 +- .../actions/ValidateSelectedCruiseAction.java | 2 +- .../EditSampleCategoryModelTableModel.java | 2 +- ...yModelUI.css => EditSampleCategoryModelUI.jcss} | 0 .../category/EditSampleCategoryModelUIHandler.java | 2 +- .../category/EditSampleCategoryModelUIModel.java | 2 +- .../actions/SaveSampleCategoryModelAction.java | 2 +- .../{TuttiConfigUI.css => TuttiConfigUI.jcss} | 0 .../swing/content/config/TuttiConfigUIHandler.java | 2 +- .../content/config/actions/ReloadTuttiAction.java | 2 +- .../cruise/{EditCruiseUI.css => EditCruiseUI.jcss} | 0 .../swing/content/cruise/EditCruiseUIHandler.java | 2 +- .../ui/swing/content/cruise/EditCruiseUIModel.java | 2 +- .../cruise/GearCaracteristicsEditorRowModel.java | 2 +- .../cruise/GearCaracteristicsEditorTableModel.java | 2 +- ...ditorUI.css => GearCaracteristicsEditorUI.jcss} | 0 .../cruise/GearCaracteristicsEditorUIHandler.java | 2 +- .../cruise/GearCaracteristicsEditorUIModel.java | 2 +- .../ui/swing/content/cruise/VesselTypeEnum.java | 2 +- .../actions/EditGearCaracteristicsAction.java | 2 +- .../content/cruise/actions/SaveCruiseAction.java | 2 +- .../actions/ViewGearCaracteristicsAction.java | 2 +- .../db/{DbManagerUI.css => DbManagerUI.jcss} | 0 .../ui/swing/content/db/DbManagerUIHandler.java | 2 +- .../ui/swing/content/db/actions/CloseDbAction.java | 2 +- .../content/db/actions/ExportAndCleanDbAction.java | 2 +- .../swing/content/db/actions/ExportDbAction.java | 2 +- .../swing/content/db/actions/ImportDbAction.java | 2 +- .../db/actions/ImportOrReimportDbAction.java | 2 +- .../swing/content/db/actions/InstallDbAction.java | 2 +- .../db/actions/InstallOrReinstallDbAction.java | 2 +- .../ui/swing/content/db/actions/OpenDbAction.java | 2 +- .../swing/content/db/actions/ReimportDbAction.java | 2 +- .../content/db/actions/ReinstallDbAction.java | 2 +- .../swing/content/db/actions/UpdateDbAction.java | 2 +- ...rmatExportUI.css => GenericFormatExportUI.jcss} | 0 .../genericformat/GenericFormatImportUI.jaxx | 5 + ...rmatImportUI.css => GenericFormatImportUI.jcss} | 7 + .../GenericFormatImportUIHandler.java | 14 +- .../genericformat/GenericFormatImportUIModel.java | 16 + .../{SelectCruiseUI.css => SelectCruiseUI.jcss} | 0 .../swing/content/home/SelectCruiseUIHandler.java | 2 +- .../ui/swing/content/home/SelectCruiseUIModel.java | 2 +- .../content/home/actions/CloneProtocolAction.java | 2 +- .../content/home/actions/DeleteProtocolAction.java | 2 +- .../content/home/actions/EditCatchesAction.java | 2 +- .../content/home/actions/EditCruiseAction.java | 2 +- .../content/home/actions/EditProgramAction.java | 2 +- .../content/home/actions/EditProtocolAction.java | 2 +- .../home/actions/ExportCruiseForSumatraAction.java | 2 +- .../content/home/actions/ExportProtocolAction.java | 2 +- .../content/home/actions/ImportProtocolAction.java | 2 +- .../content/home/actions/NewCruiseAction.java | 2 +- .../content/home/actions/NewProgramAction.java | 2 +- .../content/home/actions/NewProtocolAction.java | 2 +- .../home/actions/SendCruiseReportAction.java | 2 +- .../SpeciesToConfirmReportForCruiseAction.java | 2 +- .../home/actions/ValidateCatchesAction.java | 2 +- ...OperationUI.css => EditFishingOperationUI.jcss} | 0 .../operation/EditFishingOperationUIHandler.java | 2 +- .../operation/EditFishingOperationUIModel.java | 2 +- ...ngOperationsUI.css => FishingOperationsUI.jcss} | 0 .../operation/FishingOperationsUIHandler.java | 2 +- .../operation/FishingOperationsUIModel.java | 12 +- .../content/operation/SecondaryVesselTypeEnum.java | 2 +- .../catches/AbstractTuttiBatchTableUIHandler.java | 4 +- .../catches/AbstractTuttiBatchUIModel.java | 2 +- .../{EditCatchesUI.css => EditCatchesUI.jcss} | 0 .../operation/catches/EditCatchesUIHandler.java | 2 +- .../operation/catches/EditCatchesUIModel.java | 6 +- .../catches/FrequencyConfigurationMode.java | 2 +- ...LogDialog.css => MultiPostImportLogDialog.jcss} | 0 .../operation/catches/SampleCategoryAble.java | 2 +- .../catches/SampleCategoryColumnIdentifier.java | 2 +- .../operation/catches/SampleCategoryComponent.java | 6 +- .../operation/catches/SelectedCategoryAble.java | 2 +- .../catches/SpeciesAbleBatchRowHelper.java | 2 +- .../operation/catches/SpeciesBatchDecorator.java | 2 +- .../catches/SpeciesBatchDecoratorComparator.java | 6 +- .../content/operation/catches/SpeciesSortMode.java | 2 +- .../operation/catches/SpeciesSortableRowModel.java | 2 +- .../content/operation/catches/TableViewMode.java | 2 +- .../accidental/AccidentalBatchRowModel.java | 2 +- .../accidental/AccidentalBatchTableModel.java | 2 +- ...ccidentalBatchUI.css => AccidentalBatchUI.jcss} | 0 .../accidental/AccidentalBatchUIHandler.java | 2 +- .../catches/accidental/AccidentalBatchUIModel.java | 2 +- .../actions/ExportMultiPostAccidentalAction.java | 2 +- .../actions/ImportMultiPostAccidentalAction.java | 2 +- .../actions/RemoveAccidentalBatchAction.java | 2 +- ...talBatchUI.css => CreateAccidentalBatchUI.jcss} | 0 .../create/CreateAccidentalBatchUIHandler.java | 2 +- .../create/CreateAccidentalBatchUIModel.java | 2 +- .../actions/CancelEditCatchBatchAction.java | 2 +- .../catches/actions/CleanBatchWeightsAction.java | 4 +- .../catches/actions/ComputeBatchWeightsAction.java | 2 +- .../ExportFishingOperationForSumatraAction.java | 2 +- .../ExportFishingOperationReportAction.java | 2 +- .../actions/ExportMultiPostActionSupport.java | 2 +- .../actions/ImportMultiPostActionSupport.java | 2 +- .../catches/actions/SaveCatchBatchAction.java | 2 +- .../catches/benthos/BenthosBatchRowModel.java | 2 +- .../catches/benthos/BenthosBatchTableModel.java | 2 +- .../{BenthosBatchUI.css => BenthosBatchUI.jcss} | 0 .../catches/benthos/BenthosBatchUIHandler.java | 2 +- .../catches/benthos/BenthosBatchUIModel.java | 2 +- .../benthos/actions/CreateBenthosMelagAction.java | 2 +- .../actions/ExportMultiPostBenthosAction.java | 2 +- .../actions/ImportMultiPostBenthosAction.java | 2 +- .../benthos/actions/RemoveBenthosBatchAction.java | 2 +- .../actions/RemoveBenthosSubBatchAction.java | 2 +- .../benthos/actions/RenameBenthosBatchAction.java | 2 +- ...enthosBatchUI.css => CreateBenthosBatchUI.jcss} | 0 .../create/CreateBenthosBatchUIHandler.java | 2 +- .../benthos/create/CreateBenthosBatchUIModel.java | 2 +- .../SelectSpeciesForBenthosBatchAction.java | 2 +- .../frequency/BenthosFrequencyCellComponent.java | 2 +- .../frequency/BenthosFrequencyRowModel.java | 2 +- .../frequency/BenthosFrequencyTableModel.java | 2 +- ...thosFrequencyUI.css => BenthosFrequencyUI.jcss} | 0 .../frequency/BenthosFrequencyUIHandler.java | 2 +- .../benthos/frequency/BenthosFrequencyUIModel.java | 2 +- .../benthos/split/SplitBenthosBatchRowModel.java | 2 +- .../benthos/split/SplitBenthosBatchTableModel.java | 2 +- ...BenthosBatchUI.css => SplitBenthosBatchUI.jcss} | 0 .../benthos/split/SplitBenthosBatchUIHandler.java | 2 +- .../benthos/split/SplitBenthosBatchUIModel.java | 2 +- .../IndividualObservationBatchRowModel.java | 2 +- .../IndividualObservationBatchTableModel.java | 2 +- ...tchUI.css => IndividualObservationBatchUI.jcss} | 0 .../IndividualObservationBatchUIHandler.java | 2 +- .../IndividualObservationBatchUIModel.java | 2 +- ...ExportMultiPostIndividualObservationAction.java | 2 +- ...ImportMultiPostIndividualObservationAction.java | 2 +- .../RemoveAllIndividualObservationBatchAction.java | 2 +- .../RemoveIndividualObservationBatchAction.java | 2 +- ...SpeciesForIndividualObservationBatchAction.java | 2 +- ...css => CreateIndividualObservationBatchUI.jcss} | 0 .../CreateIndividualObservationBatchUIHandler.java | 2 +- .../CreateIndividualObservationBatchUIModel.java | 4 +- .../marinelitter/MarineLitterBatchRowModel.java | 2 +- .../marinelitter/MarineLitterBatchTableModel.java | 2 +- ...eLitterBatchUI.css => MarineLitterBatchUI.jcss} | 0 .../marinelitter/MarineLitterBatchUIHandler.java | 2 +- .../marinelitter/MarineLitterBatchUIModel.java | 2 +- .../actions/ExportMultiPostMarineLitterAction.java | 2 +- .../actions/ImportMultiPostMarineLitterAction.java | 2 +- .../actions/RemoveMarineLitterBatchAction.java | 2 +- ...rBatchUI.css => CreateMarineLitterBatchUI.jcss} | 0 .../create/CreateMarineLitterBatchUIHandler.java | 2 +- .../create/CreateMarineLitterBatchUIModel.java | 2 +- ...UI.css => ImportPupitriMelagWeightPopupUI.jcss} | 0 .../ImportPupitriMelagWeightPopupUIHandler.java | 2 +- .../ImportPupitriMelagWeightPopupUIModel.java | 24 + ...upitriPopupUI.css => ImportPupitriPopupUI.jcss} | 0 .../species/ImportPupitriPopupUIHandler.java | 4 +- .../catches/species/ImportPupitriPopupUIModel.java | 24 + .../catches/species/SpeciesBatchRowModel.java | 2 +- .../catches/species/SpeciesBatchTableModel.java | 2 +- .../{SpeciesBatchUI.css => SpeciesBatchUI.jcss} | 0 .../catches/species/SpeciesBatchUIHandler.java | 2 +- .../catches/species/SpeciesBatchUIModel.java | 2 +- .../species/actions/CreateSpeciesMelagAction.java | 2 +- .../actions/ExportMultiPostSpeciesAction.java | 2 +- .../species/actions/ImportBigfinAction.java | 2 +- .../actions/ImportMultiPostSpeciesAction.java | 2 +- .../catches/species/actions/ImportPsionAction.java | 2 +- .../species/actions/ImportPupitriAction.java | 2 +- ...mportPupitriMelagWeightPopupValidateAction.java | 24 + .../species/actions/RemoveSpeciesBatchAction.java | 2 +- .../actions/RemoveSpeciesSubBatchAction.java | 2 +- .../species/actions/RenameSpeciesBatchAction.java | 2 +- ...peciesBatchUI.css => CreateSpeciesBatchUI.jcss} | 0 .../create/CreateSpeciesBatchUIHandler.java | 2 +- .../species/create/CreateSpeciesBatchUIModel.java | 2 +- .../SelectSpeciesForSpeciesBatchAction.java | 2 +- .../frequency/SpeciesFrequencyCellComponent.java | 2 +- .../frequency/SpeciesFrequencyRowModel.java | 2 +- .../frequency/SpeciesFrequencyTableModel.java | 2 +- ...ciesFrequencyUI.css => SpeciesFrequencyUI.jcss} | 0 .../frequency/SpeciesFrequencyUIHandler.java | 2 +- .../species/frequency/SpeciesFrequencyUIModel.java | 2 +- .../species/split/SplitSpeciesBatchRowModel.java | 2 +- .../species/split/SplitSpeciesBatchTableModel.java | 2 +- ...SpeciesBatchUI.css => SplitSpeciesBatchUI.jcss} | 0 .../species/split/SplitSpeciesBatchUIHandler.java | 2 +- .../species/split/SplitSpeciesBatchUIModel.java | 2 +- .../fishing/AbstractCaracteristicRowModel.java | 2 +- .../fishing/AbstractCaracteristicTabUIHandler.java | 2 +- .../fishing/AbstractCaracteristicTabUIModel.java | 2 +- .../operation/fishing/GearUseFeatureRowModel.java | 2 +- ...seFeatureTabUI.css => GearUseFeatureTabUI.jcss} | 0 .../fishing/VesselUseFeatureRowModel.java | 2 +- ...FeatureTabUI.css => VesselUseFeatureTabUI.jcss} | 0 .../actions/CancelEditFishingOperationAction.java | 2 +- .../actions/DeleteFishingOperationAction.java | 2 +- .../actions/EditFishingOperationAction.java | 6 +- .../fishing/actions/NewFishingOperationAction.java | 2 +- .../actions/SaveFishingOperationAction.java | 2 +- .../{EditProgramUI.css => EditProgramUI.jcss} | 0 .../content/program/EditProgramUIHandler.java | 2 +- .../swing/content/program/EditProgramUIModel.java | 2 +- .../content/program/actions/SaveProgramAction.java | 4 +- .../{EditProtocolUI.css => EditProtocolUI.jcss} | 0 .../content/protocol/EditProtocolUIHandler.java | 2 +- .../content/protocol/EditProtocolUIModel.java | 2 +- .../MandatorySampleCategoryColumnIdentifier.java | 2 +- .../protocol/actions/AddBenthosProtocolAction.java | 2 +- .../actions/AddCaracteristicMappingAction.java | 2 +- .../protocol/actions/AddSpeciesProtocolAction.java | 2 +- .../actions/ExportAllCaracteristicAction.java | 2 +- .../actions/ExportProtocolBenthosAction.java | 2 +- .../actions/ExportProtocolCaracteristicAction.java | 2 +- .../actions/ExportProtocolSpeciesAction.java | 2 +- .../protocol/actions/ExportPupitriAction.java | 2 +- .../actions/ImportProtocolBenthosAction.java | 2 +- .../actions/ImportProtocolCaracteristicAction.java | 2 +- .../actions/ImportProtocolSpeciesAction.java | 2 +- .../actions/RemoveBenthosProtocolAction.java | 2 +- .../actions/RemoveSpeciesProtocolAction.java | 2 +- .../protocol/actions/SaveProtocolAction.java | 2 +- .../protocol/actions/SelectOtherBenthosAction.java | 2 +- .../protocol/actions/SelectOtherSpeciesAction.java | 2 +- .../rtp/{RtpEditorUI.css => RtpEditorUI.jcss} | 0 ...ialUI.css => ManageTemporaryReferentialUI.jcss} | 0 .../ManageTemporaryReferentialUIHandler.java | 2 +- .../actions/ExportExistingTemporaryGearAction.java | 2 +- .../ExportExistingTemporaryPersonAction.java | 2 +- .../ExportExistingTemporarySpeciesAction.java | 2 +- .../ExportExistingTemporaryVesselAction.java | 2 +- .../actions/ExportTemporaryGearExampleAction.java | 2 +- .../ExportTemporaryPersonExampleAction.java | 2 +- .../ExportTemporarySpeciesExampleAction.java | 2 +- .../ExportTemporaryVesselExampleAction.java | 2 +- .../actions/ImportTemporaryGearAction.java | 2 +- .../actions/ImportTemporaryPersonAction.java | 2 +- .../actions/ImportTemporarySpeciesAction.java | 2 +- .../actions/ImportTemporaryVesselAction.java | 2 +- ...oraryUI.css => AbstractReplaceTemporaryUI.jcss} | 0 ...oraryGearUI.css => ReplaceTemporaryGearUI.jcss} | 0 ...yPersonUI.css => ReplaceTemporaryPersonUI.jcss} | 0 ...peciesUI.css => ReplaceTemporarySpeciesUI.jcss} | 0 ...yVesselUI.css => ReplaceTemporaryVesselUI.jcss} | 0 .../content/report/{ReportUI.css => ReportUI.jcss} | 0 .../ui/swing/content/report/ReportUIHandler.java | 2 +- .../ui/swing/content/report/ReportUIModel.java | 2 +- .../report/actions/GenerateReportAction.java | 2 +- ...{ValidateCruiseUI.css => ValidateCruiseUI.jcss} | 0 .../validation/ValidateCruiseUIHandler.java | 2 +- .../content/validation/ValidateCruiseUIModel.java | 2 +- .../actions/EditCruiseInValidationUIAction.java | 2 +- .../EditFishingOperationInValidationUIAction.java | 4 +- .../ExportCruiseValidationMessagesAction.java | 2 +- .../ExportOperationValidationMessagesAction.java | 2 +- .../actions/SaveCruiseToReadyToSynchAction.java | 2 +- .../ui/swing/update/TuttiDbUpdaterCallBack.java | 2 +- .../update/actions/UpdateApplicationAction.java | 2 +- .../swing/update/actions/UpdateReportAction.java | 2 +- .../ui/swing/util/AbstractTuttiBeanUIModel.java | 2 +- .../util/AbstractTuttiTabContainerUIHandler.java | 2 +- .../ui/swing/util/AbstractTuttiUIHandler.java | 2 +- .../util/RemoveablePropertyChangeListener.java | 4 +- .../tutti/ui/swing/util/TuttiBeanMonitor.java | 2 +- .../tutti/ui/swing/util/TuttiExceptionHandler.java | 6 +- .../fr/ifremer/tutti/ui/swing/util/TuttiUI.java | 2 +- .../ifremer/tutti/ui/swing/util/TuttiUIUtil.java | 2 +- .../tutti/ui/swing/util/UIMessageNotifier.java | 2 +- .../ui/swing/util/actions/LongActionSupport.java | 2 +- .../util/attachment/AttachmentCellEditor.java | 4 +- .../util/attachment/AttachmentCellRenderer.java | 4 +- ...achmentEditorUI.css => AttachmentEditorUI.jcss} | 0 .../util/attachment/AttachmentEditorUIHandler.java | 4 +- .../{AttachmentItem.css => AttachmentItem.jcss} | 0 .../util/attachment/AttachmentModelAware.java | 2 +- .../ui/swing/util/attachment/ButtonAttachment.java | 2 +- .../attachment/actions/SaveAttachmentAction.java | 2 +- .../ui/swing/util/auth/AuthenticationInfo.java | 2 +- .../swing/util/auth/{LoginUI.css => LoginUI.jcss} | 0 .../tutti/ui/swing/util/auth/LoginUIHandler.java | 2 +- .../CaracteristicMapCellComponent.java | 2 +- .../CaracteristicMapColumnRowModel.java | 2 +- .../CaracteristicMapColumnUIHandler.java | 2 +- .../CaracteristicMapEditorRowModel.java | 2 +- .../CaracteristicMapEditorTableModel.java | 2 +- ...pEditorUI.css => CaracteristicMapEditorUI.jcss} | 0 .../CaracteristicMapEditorUIHandler.java | 2 +- .../CaracteristicMapEditorUIModel.java | 2 +- .../caracteristics/CaracteristicValueEditor.java | 2 +- .../caracteristics/CaracteristicValueRenderer.java | 2 +- .../GearCaracteristicListCellRenderer.java | 2 +- .../{EnterWeightUI.css => EnterWeightUI.jcss} | 0 .../swing/util/catches/EnterWeightUIHandler.java | 2 +- .../tutti/ui/swing/util/comment/ButtonComment.java | 2 +- .../ui/swing/util/comment/CommentCellEditor.java | 2 +- .../ui/swing/util/comment/CommentCellRenderer.java | 2 +- .../{CommentEditorUI.css => CommentEditorUI.jcss} | 0 .../swing/util/comment/CommentEditorUIHandler.java | 2 +- .../ui/swing/util/computable/ComputableData.java | 2 +- .../computable/ComputableDataEditorHandler.java | 2 +- .../util/computable/ComputableDataTableCell.java | 2 +- .../swing/util/editor/TuttiLocationTableCell.java | 2 +- .../ui/swing/util/editor/VesselTableCell.java | 2 +- ...erMelagWeightUI.css => EnterMelagWeightUI.jcss} | 0 .../util/species/EnterMelagWeightUIHandler.java | 2 +- .../{SelectSpeciesUI.css => SelectSpeciesUI.jcss} | 0 .../swing/util/species/SelectSpeciesUIHandler.java | 2 +- .../swing/util/species/SelectSpeciesUIModel.java | 2 +- .../util/table/AbstractTuttiTableUIHandler.java | 4 +- .../util/table/AbstractTuttiTableUIModel.java | 2 +- .../util/table/CaracteristicColumnIdentifier.java | 2 +- .../ui/swing/util/table/CaracteristicRow.java | 2 +- .../resources/i18n/tutti-ui-swing_en_GB.properties | 6 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 10 +- .../tutti/ui/swing/BeanValidatorDetectorTest.java | 2 +- .../frequency/SpeciesFrequencyRowModelTest.java | 2 +- 631 files changed, 2779 insertions(+), 3645 deletions(-) copy tutti-service/src/main/java/fr/ifremer/tutti/service/operationimport/ImportFromColumnFileFishingOperationNotFoundException.java => tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/TaxonNameDaoTutti.java (65%) create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/TaxonNameDaoTuttiImpl.java delete mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java delete mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java create mode 100644 tutti-service/src/test/resources/genericFormat/withObsoletes/catch.csv copy tutti-service/src/test/resources/genericFormat/{empty => withObsoletes}/operation.csv (71%) copy tutti-service/src/test/resources/{pupitri/evo-6116.tuttiProtocol => genericFormat/withObsoletes/protocol.tuttiProtocol} (87%) create mode 100644 tutti-service/src/test/resources/genericFormat/withObsoletes/sampleCategory.csv create mode 100644 tutti-service/src/test/resources/genericFormat/withObsoletes/survey.csv create mode 100644 tutti-service/src/test/resources/genericFormat/withObsoletes/temporaryGears.csv create mode 100644 tutti-service/src/test/resources/genericFormat/withObsoletes/temporaryPersons.csv create mode 100644 tutti-service/src/test/resources/genericFormat/withObsoletes/temporarySpecies.csv create mode 100644 tutti-service/src/test/resources/genericFormat/withObsoletes/temporaryVessels.csv rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/{Common.css => Common.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/{MainUI.css => MainUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/{EditSampleCategoryModelUI.css => EditSampleCategoryModelUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/{TuttiConfigUI.css => TuttiConfigUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/{EditCruiseUI.css => EditCruiseUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/{GearCaracteristicsEditorUI.css => GearCaracteristicsEditorUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/{DbManagerUI.css => DbManagerUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/{GenericFormatExportUI.css => GenericFormatExportUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/{GenericFormatImportUI.css => GenericFormatImportUI.jcss} (96%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/{SelectCruiseUI.css => SelectCruiseUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/{EditFishingOperationUI.css => EditFishingOperationUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/{FishingOperationsUI.css => FishingOperationsUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/{EditCatchesUI.css => EditCatchesUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/{MultiPostImportLogDialog.css => MultiPostImportLogDialog.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/{AccidentalBatchUI.css => AccidentalBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/{CreateAccidentalBatchUI.css => CreateAccidentalBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/{BenthosBatchUI.css => BenthosBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/{CreateBenthosBatchUI.css => CreateBenthosBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/{BenthosFrequencyUI.css => BenthosFrequencyUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/{SplitBenthosBatchUI.css => SplitBenthosBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/{IndividualObservationBatchUI.css => IndividualObservationBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/{CreateIndividualObservationBatchUI.css => CreateIndividualObservationBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/{MarineLitterBatchUI.css => MarineLitterBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/{CreateMarineLitterBatchUI.css => CreateMarineLitterBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/{ImportPupitriMelagWeightPopupUI.css => ImportPupitriMelagWeightPopupUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/{ImportPupitriPopupUI.css => ImportPupitriPopupUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/{SpeciesBatchUI.css => SpeciesBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/{CreateSpeciesBatchUI.css => CreateSpeciesBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/{SpeciesFrequencyUI.css => SpeciesFrequencyUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/{SplitSpeciesBatchUI.css => SplitSpeciesBatchUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/{GearUseFeatureTabUI.css => GearUseFeatureTabUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/{VesselUseFeatureTabUI.css => VesselUseFeatureTabUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/{EditProgramUI.css => EditProgramUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/{EditProtocolUI.css => EditProtocolUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/{RtpEditorUI.css => RtpEditorUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/{ManageTemporaryReferentialUI.css => ManageTemporaryReferentialUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/replace/{AbstractReplaceTemporaryUI.css => AbstractReplaceTemporaryUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/replace/{ReplaceTemporaryGearUI.css => ReplaceTemporaryGearUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/replace/{ReplaceTemporaryPersonUI.css => ReplaceTemporaryPersonUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/replace/{ReplaceTemporarySpeciesUI.css => ReplaceTemporarySpeciesUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/replace/{ReplaceTemporaryVesselUI.css => ReplaceTemporaryVesselUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/report/{ReportUI.css => ReportUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/validation/{ValidateCruiseUI.css => ValidateCruiseUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/{AttachmentEditorUI.css => AttachmentEditorUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/{AttachmentItem.css => AttachmentItem.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/{LoginUI.css => LoginUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/{CaracteristicMapEditorUI.css => CaracteristicMapEditorUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/catches/{EnterWeightUI.css => EnterWeightUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/comment/{CommentEditorUI.css => CommentEditorUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/{EnterMelagWeightUI.css => EnterMelagWeightUI.jcss} (100%) rename tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/{SelectSpeciesUI.css => SelectSpeciesUI.jcss} (100%) -- 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/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git commit 6b0f8d5d7c2ecad974877ef14a6f2009d7eb561d Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Jan 14 21:50:35 2016 +0100 Ajout du model de RTP sur SpeciesProtocol (See #6115) --- .../entities/protocol/SpeciesProtocolBean.java | 25 +++++++++++++++++++++ .../src/main/xmi/tutti-persistence.zargo | Bin 58480 -> 59339 bytes 2 files changed, 25 insertions(+) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/SpeciesProtocolBean.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/SpeciesProtocolBean.java new file mode 100644 index 0000000..6361366 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/SpeciesProtocolBean.java @@ -0,0 +1,25 @@ +package fr.ifremer.tutti.persistence.entities.protocol; + +/** + * Created on 14/01/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class SpeciesProtocolBean extends AbstractSpeciesProtocolBean { + + @Override + public boolean withRtpMale() { + return rtpMale != null; + } + + @Override + public boolean withRtpFemale() { + return rtpFemale != null; + } + + @Override + public boolean withRtpUndefined() { + return rtpUndefined != null; + } + +} diff --git a/tutti-persistence/src/main/xmi/tutti-persistence.zargo b/tutti-persistence/src/main/xmi/tutti-persistence.zargo index 656c0df..1545a4d 100644 Binary files a/tutti-persistence/src/main/xmi/tutti-persistence.zargo and b/tutti-persistence/src/main/xmi/tutti-persistence.zargo differ -- 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/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git commit dcea62faaaa9613d84376e1e109836f302c52e41 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Jan 14 22:57:42 2016 +0100 Début de l'éditeur des relations RTP, mais tout ne fonctionne pas encore.. (See #6115) --- .../protocol/EditProtocolSpeciesRowModel.java | 74 ++++++++++- .../protocol/EditProtocolSpeciesTableModel.java | 5 + .../ui/swing/content/protocol/EditProtocolUI.jaxx | 3 + .../content/protocol/EditProtocolUIHandler.java | 11 ++ .../ui/swing/content/protocol/rtp/RtpButton.java | 74 +++++++++++ .../swing/content/protocol/rtp/RtpCellEditor.java | 101 ++++++++++++++ .../content/protocol/rtp/RtpCellRenderer.java | 91 +++++++++++++ .../ui/swing/content/protocol/rtp/RtpEditorUI.css | 111 ++++++++++++++++ .../ui/swing/content/protocol/rtp/RtpEditorUI.jaxx | 148 +++++++++++++++++++++ .../content/protocol/rtp/RtpEditorUIHandler.java | 85 ++++++++++++ .../content/protocol/rtp/RtpEditorUIModel.java | 126 ++++++++++++++++++ .../protocol/rtp/actions/CancelRtpAction.java | 23 ++++ .../protocol/rtp/actions/SaveRtpAction.java | 36 +++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 41 ++++++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 28 ++++ 15 files changed, 955 insertions(+), 2 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java index 3585692..505d2a3 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java @@ -22,6 +22,7 @@ package fr.ifremer.tutti.ui.swing.content.protocol; * #L% */ +import fr.ifremer.tutti.persistence.entities.protocol.Rtp; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -53,6 +54,8 @@ public class EditProtocolSpeciesRowModel extends AbstractTuttiBeanUIModel<Specie public static final String PROPERTY_CALCIFY_SAMPLE_ENABLED = "calcifySampleEnabled"; + public static final String PROPERTY_USE_RTP = "useRtp"; + protected Species species; protected String speciesSurveyCode; @@ -67,13 +70,19 @@ public class EditProtocolSpeciesRowModel extends AbstractTuttiBeanUIModel<Specie protected List<Integer> mandatorySampleCategoryId; + protected Rtp rtpMale; + + protected Rtp rtpFemale; + + protected Rtp rtpUndefined; + protected static final Binder<SpeciesProtocol, EditProtocolSpeciesRowModel> fromBeanBinder = BinderFactory.newBinder(SpeciesProtocol.class, - EditProtocolSpeciesRowModel.class); + EditProtocolSpeciesRowModel.class); protected static final Binder<EditProtocolSpeciesRowModel, SpeciesProtocol> toBeanBinder = BinderFactory.newBinder(EditProtocolSpeciesRowModel.class, - SpeciesProtocol.class); + SpeciesProtocol.class); public EditProtocolSpeciesRowModel() { super(fromBeanBinder, toBeanBinder); @@ -248,4 +257,65 @@ public class EditProtocolSpeciesRowModel extends AbstractTuttiBeanUIModel<Specie this.mandatorySampleCategoryId = mandatorySampleCategoryId; firePropertyChange(PROPERTY_MANDATORY_SAMPLE_CATEGORY_ID, null, mandatorySampleCategoryId); } + + public boolean isUseRtp() { + return withRtpFemale() && withRtpMale() && withRtpUndefined(); + } + + public void setUseRtp(boolean useRtp) { +// Object oldValue = isUseRtp(); +// this.useRtp = useRtp; + // Normalement pas utilisé + firePropertyChange(PROPERTY_USE_RTP, null, useRtp); + } + + @Override + public Rtp getRtpMale() { + return rtpMale; + } + + @Override + public void setRtpMale(Rtp rtpMale) { + Object oldValue = getRtpMale(); + this.rtpMale = rtpMale; + firePropertyChange(PROPERTY_RTP_MALE, oldValue, rtpMale); + } + + @Override + public Rtp getRtpFemale() { + return rtpFemale; + } + + @Override + public void setRtpFemale(Rtp rtpFemale) { + Object oldValue = getRtpFemale(); + this.rtpFemale = rtpFemale; + firePropertyChange(PROPERTY_RTP_FEMALE, oldValue, rtpFemale); + } + + @Override + public Rtp getRtpUndefined() { + return rtpUndefined; + } + + public void setRtpUndefined(Rtp rtpUndefined) { + Object oldValue = getRtpUndefined(); + this.rtpUndefined = rtpUndefined; + firePropertyChange(PROPERTY_RTP_UNDEFINED, oldValue, rtpUndefined); + } + + @Override + public boolean withRtpMale() { + return rtpMale != null; + } + + @Override + public boolean withRtpFemale() { + return rtpFemale != null; + } + + @Override + public boolean withRtpUndefined() { + return rtpUndefined != null; + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java index 56020d9..e1aae83 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java @@ -69,6 +69,11 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel n("tutti.editProtocol.table.header.calcifySample"), n("tutti.editProtocol.table.header.calcifySample.tip")); + public static final ColumnIdentifier<EditProtocolSpeciesRowModel> USE_RTP = ColumnIdentifier.newId( + EditProtocolSpeciesRowModel.PROPERTY_USE_RTP, + n("tutti.editProtocol.table.header.useRtp"), + n("tutti.editProtocol.table.header.useRtp.tip")); + protected final SampleCategoryModel sampleCategoryModel; private static final long serialVersionUID = 1L; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx index dcdd35b..3516602 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx @@ -27,6 +27,7 @@ fr.ifremer.tutti.persistence.entities.referential.Species fr.ifremer.tutti.ui.swing.TuttiHelpBroker + fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpEditorUI fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil @@ -57,6 +58,8 @@ <TuttiHelpBroker id='broker' constructorParams='"tutti.editProtocol.help"'/> + <RtpEditorUI id='rtpEditorUI' constructorParams='this'/> + <BeanValidator id='validator' bean='model' uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'> <field name='name' component='nameField'/> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index 0292e00..4b21d16 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -49,6 +49,8 @@ import fr.ifremer.tutti.ui.swing.content.home.actions.CloneProtocolAction; import fr.ifremer.tutti.ui.swing.content.home.actions.EditProtocolAction; import fr.ifremer.tutti.ui.swing.content.home.actions.ImportProtocolAction; import fr.ifremer.tutti.ui.swing.content.operation.catches.SpeciesAbleBatchRowHelper; +import fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpCellEditor; +import fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpCellRenderer; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.editor.bean.BeanDoubleList; @@ -383,6 +385,10 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI } addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.CALCIFY_SAMPLE_ENABLED, table); + addColumnToModel(columnModel, + RtpCellEditor.newEditor(ui), + new RtpCellRenderer(), + EditProtocolSpeciesTableModel.USE_RTP); initTable(table, columnModel, @@ -444,6 +450,11 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.CALCIFY_SAMPLE_ENABLED, table); + addColumnToModel(columnModel, + RtpCellEditor.newEditor(ui), + new RtpCellRenderer(), + EditProtocolSpeciesTableModel.USE_RTP); + initTable(table, columnModel, speciesColumn, diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpButton.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpButton.java new file mode 100644 index 0000000..6a016dc --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpButton.java @@ -0,0 +1,74 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.rtp; + +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; +import jaxx.runtime.SwingUtil; + +import javax.swing.JToggleButton; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 14/01/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class RtpButton extends JToggleButton { + + private static final long serialVersionUID = 1L; + + protected final RtpEditorUI popup; + + public RtpButton(final EditProtocolUI ui) { + + setIcon(SwingUtil.createActionIcon("edit-attachment")); + setText(t("tutti.editRtp.button")); + setToolTipText(t("tutti.editRtp.button.tip")); + + popup = ui.getRtpEditorUI(); + + popup.addWindowListener(new WindowAdapter() { + + @Override + public void windowOpened(WindowEvent e) { + setSelected(true); + } + + @Override + public void windowClosing(WindowEvent e) { + setSelected(false); + } + + @Override + public void windowClosed(WindowEvent e) { + + setSelected(false); + } + }); + + addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + if (isSelected()) { + if (!popup.isVisible()) { + SwingUtil.center(ui, popup); + popup.openEditor(); + } + } +// else { +// popup.closeEditor(); +// } + } + }); + + } + + public void init(EditProtocolSpeciesRowModel model) { + popup.setBean(model); + } + +} \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java new file mode 100644 index 0000000..0044160 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java @@ -0,0 +1,101 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.rtp; + +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; + +import javax.swing.AbstractCellEditor; +import javax.swing.JTable; +import javax.swing.border.LineBorder; +import javax.swing.event.CellEditorListener; +import javax.swing.event.ChangeEvent; +import javax.swing.table.TableCellEditor; +import java.awt.Color; +import java.awt.Component; +import java.util.EventObject; + +/** + * Created on 14/01/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class RtpCellEditor extends AbstractCellEditor implements TableCellEditor { + + private static final long serialVersionUID = 1L; + + public static TableCellEditor newEditor(EditProtocolUI ui) { + return new RtpCellEditor(ui); + } + + protected JTable table; + + protected EditProtocolSpeciesTableModel tableModel; + + protected Integer rowIndex; + + protected Integer columnIndex; + + protected final RtpButton editorButton; + + public RtpCellEditor(EditProtocolUI context) { + + this.editorButton = new RtpButton(context); + this.editorButton.setBorder(new LineBorder(Color.BLACK)); + addCellEditorListener(new CellEditorListener() { + @Override + public void editingStopped(ChangeEvent e) { + editorButton.setSelected(false); + } + + @Override + public void editingCanceled(ChangeEvent e) { + editorButton.setSelected(false); + } + }); + } + + @Override + public Component getTableCellEditorComponent(JTable table, + Object value, + boolean isSelected, + int row, + int column) { + this.table = table; + this.tableModel = (EditProtocolSpeciesTableModel) table.getModel(); + + rowIndex = row; + columnIndex = column; + + EditProtocolSpeciesRowModel model = tableModel.getEntry(row); + + editorButton.init(model); + + return editorButton; + } + + @Override + public boolean shouldSelectCell(EventObject anEvent) { + return false; + } + + @Override + public Object getCellEditorValue() { + + return true; + } + +// @Override +// public boolean stopCellEditing() { +// boolean b = super.stopCellEditing(); +// if (b) { +// editorButton.setBean(null); +// } +// return b; +// } +// +// @Override +// public void cancelCellEditing() { +// editorButton.setBean(null); +// super.cancelCellEditing(); +// } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java new file mode 100644 index 0000000..a924aef --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java @@ -0,0 +1,91 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.rtp; + +import jaxx.runtime.SwingUtil; + +import javax.swing.JComponent; +import javax.swing.JTable; +import javax.swing.UIManager; +import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Color; +import java.awt.Font; + +import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 14/01/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class RtpCellRenderer extends DefaultTableCellRenderer { + + public static final String TEXT_PATTERN = "<html><body>%s</body></html>"; + + private static final long serialVersionUID = 1L; + + private final String withoutRtp; + + private final String withRtp; + + private Font defaulfFont; + + private Font selectedFont; + + public RtpCellRenderer() { + setHorizontalAlignment(CENTER); + setIcon(SwingUtil.createActionIcon("edit-attachment")); + this.withoutRtp = n("tutti.editRtp.withoutRtp.tip"); + this.withRtp = n("tutti.editRtp.withRtp.tip"); + } + + @Override + protected void setValue(Object value) { + // do nothing + } + + @Override + public JComponent getTableCellRendererComponent(JTable table, + Object value, + boolean isSelected, + boolean hasFocus, + int row, + int column) { + + if (defaulfFont == null) { + defaulfFont = UIManager.getFont("Table.font"); + selectedFont = defaulfFont.deriveFont(Font.BOLD); + } + + boolean useRtp = (boolean) value; + + String toolTipTextValue; + String textValue; + if (!useRtp) { + + // use HTML to show the tooltip in italic + toolTipTextValue = "<i>" + t(withoutRtp) + "</i>"; + textValue = t(withoutRtp); + + + } else { + toolTipTextValue = t(withRtp); + textValue = t(withRtp); + + } + boolean editable = table.isCellEditable(row, column); + toolTipTextValue = String.format(TEXT_PATTERN, toolTipTextValue); + setEnabled(editable); + setText(textValue); + setToolTipText(toolTipTextValue); + setBackground(null); + setForeground(Color.BLACK); + + if (isSelected) { + setFont(selectedFont); + } else { + setFont(defaulfFont); + } + + return this; + } +} \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.css new file mode 100644 index 0000000..f266278 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.css @@ -0,0 +1,111 @@ + +NumberEditor { + autoPopup: {handler.getConfig().isAutoPopupNumberEditor()}; + showPopupButton: {handler.getConfig().isShowNumberEditorButton()}; + bean: {model}; + showReset: true; + numberType: {Float.class}; + _selectOnFocus: {true}; +} + +#rtpEditorDialog { + undecorated: true; + alwaysOnTop: true; +} + +#rtpMaleALabel { + text: "tutti.editRtp.field.rtpMaleA"; + toolTipText: "tutti.editRtp.field.rtpMaleA.tip"; + labelFor: {rtpMaleAField}; + _help: {"tutti.editRtp.field.rtpMaleA.help"}; +} + +#rtpMaleAField { + property:{RtpEditorUIModel.PROPERTY_RTP_MALE_A}; + numberValue: {model.getRtpMale().getA()};; + _help: {"tutti.editRtp.field.rtpMaleA.help"}; +} + +#rtpMaleBLabel { + text: "tutti.editRtp.field.rtpMaleB"; + toolTipText: "tutti.editRtp.field.rtpMaleB.tip"; + labelFor: {rtpMaleBField}; + _help: {"tutti.editRtp.field.rtpMaleB.help"}; +} + +#rtpMaleBField { + property:{RtpEditorUIModel.PROPERTY_RTP_MALE_B}; + numberValue: {model.getRtpMale().getB()};; + _help: {"tutti.editRtp.field.rtpMaleB.help"}; +} + +#rtpFemaleALabel { + text: "tutti.editRtp.field.rtpFemaleA"; + toolTipText: "tutti.editRtp.field.rtpFemaleA.tip"; + labelFor: {rtpFemaleAField}; + _help: {"tutti.editRtp.field.rtpFemaleA.help"}; +} + +#rtpFemaleAField { + property:{RtpEditorUIModel.PROPERTY_RTP_FEMALE_A}; + numberValue: {model.getRtpFemale().getA()};; + _help: {"tutti.editRtp.field.rtpFemaleA.help"}; +} + +#rtpFemaleBLabel { + text: "tutti.editRtp.field.rtpFemaleB"; + toolTipText: "tutti.editRtp.field.rtpFemaleB.tip"; + labelFor: {rtpFemaleBField}; + _help: {"tutti.editRtp.field.rtpFemaleB.help"}; +} + +#rtpFemaleBField { + property:{RtpEditorUIModel.PROPERTY_RTP_FEMALE_B}; + numberValue: {model.getRtpFemale().getB()};; + _help: {"tutti.editRtp.field.rtpFemaleB.help"}; +} + +#rtpUndefinedALabel { + text: "tutti.editRtp.field.rtpUndefinedA"; + toolTipText: "tutti.editRtp.field.rtpUndefinedA.tip"; + labelFor: {rtpUndefinedAField}; + _help: {"tutti.editRtp.field.rtpUndefinedA.help"}; +} + +#rtpUndefinedAField { + property:{RtpEditorUIModel.PROPERTY_RTP_UNDEFINED_A}; + numberValue: {model.getRtpUndefined().getA()};; + _help: {"tutti.editRtp.field.rtpUndefinedA.help"}; +} + +#rtpUndefinedBLabel { + text: "tutti.editRtp.field.rtpUndefinedB"; + toolTipText: "tutti.editRtp.field.rtpUndefinedB.tip"; + labelFor: {rtpUndefinedBField}; + _help: {"tutti.editRtp.field.rtpUndefinedB.help"}; +} + +#rtpUndefinedBField { + property:{RtpEditorUIModel.PROPERTY_RTP_UNDEFINED_B}; + numberValue: {model.getRtpUndefined().getB()};; + _help: {"tutti.editRtp.field.rtpUndefinedB.help"}; +} + +#saveButton { + actionIcon: save; + text: "tutti.editRtp.action.save"; + toolTipText: "tutti.editRtp.action.save.tip"; + i18nMnemonic: "tutti.editRtp.action.save.mnemonic"; + enabled: {model.isModify() && model.isValid()}; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions.SaveRtpAction.class}; + _help: {"tutti.editRtp.action.save.help"}; +} + +#cancelButton { + actionIcon: cancel; + text: "tutti.editRtp.action.cancel"; + toolTipText: "tutti.editRtp.action.cancel.tip"; + i18nMnemonic: "tutti.editRtp.action.cancel.mnemonic"; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions.CancelRtpAction.class}; + _help: {"tutti.editRtp.action.cancel.help"}; +} \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx new file mode 100644 index 0000000..9324c25 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx @@ -0,0 +1,148 @@ +<!-- + #%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='rtpEditorDialog' layout='{new BorderLayout()}' modal="true" + implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<RtpEditorUIModel, RtpEditorUIHandler>'> + + <import> + + fr.ifremer.tutti.ui.swing.TuttiHelpBroker + fr.ifremer.tutti.ui.swing.TuttiUIContext + fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel + fr.ifremer.tutti.ui.swing.util.TuttiUI + fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + + org.jdesktop.swingx.JXTitledPanel + org.nuiton.jaxx.widgets.number.NumberEditor + + javax.swing.JComponent + </import> + + <script><![CDATA[ + +public RtpEditorUI(TuttiUI<?,?> parentUI) { + super(parentUI.getHandler().getContext().getMainUI()); + TuttiUIUtil.setParentUI(this, parentUI); +} + +public void setBean(EditProtocolSpeciesRowModel bean) { handler.setBean(bean); } + +public void openEditor() { handler.openEditor(); } + +public void closeEditor() { handler.closeEditor(); } + + ]]></script> + + <RtpEditorUIModel id="model" initializer='getContextValue(RtpEditorUIModel.class)'/> + + <TuttiHelpBroker id='broker' constructorParams='"tutti.editRtp.help"'/> + + <BeanValidator id='validator' bean='model' uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'> + <field name='rtpMaleA' component='rtpMaleAField'/> + <field name='rtpMaleB' component='rtpMaleBField'/> + <field name='rtpFemaleA' component='rtpFemaleAField'/> + <field name='rtpFemaleB' component='rtpFemaleBField'/> + <field name='rtpUndefinedA' component='rtpUndefinedAField'/> + <field name='rtpUndefinedB' component='rtpUndefinedBField'/> + </BeanValidator> + + <JXTitledPanel id="bodyPanel" constraints='BorderLayout.NORTH'> + <JPanel layout="{new GridLayout(3, 1)}"> + <JPanel id="malePanel" layout="{new GridLayout(1, 2)}" border='{new TitledBorder(t("tutti.editRtp.malePanel"))}'> + <Table id='maleAPanel' fill='both'> + <row> + <cell> + <JLabel id='rtpMaleALabel'/> + </cell> + <cell weightx='1'> + <NumberEditor id='rtpMaleAField'/> + </cell> + </row> + </Table> + <Table id='maleBPanel' fill='both'> + <row> + <cell> + <JLabel id='rtpMaleBLabel'/> + </cell> + <cell weightx='1'> + <NumberEditor id='rtpMaleBField'/> + </cell> + </row> + </Table> + </JPanel> + + <JPanel id="femalePanel" layout="{new GridLayout(1, 2)}" + border='{new TitledBorder(t("tutti.editRtp.femalePanel"))}'> + <Table id='femaleAPanel' fill='both'> + <row> + <cell> + <JLabel id='rtpFemaleALabel'/> + </cell> + <cell weightx='1'> + <NumberEditor id='rtpFemaleAField'/> + </cell> + </row> + </Table> + <Table id='femaleBPanel' fill='both'> + <row> + <cell> + <JLabel id='rtpFemaleBLabel'/> + </cell> + <cell weightx='1'> + <NumberEditor id='rtpFemaleBField'/> + </cell> + </row> + </Table> + </JPanel> + + <JPanel id="undefinedPanel" layout="{new GridLayout(1, 2)}" + border='{new TitledBorder(t("tutti.editRtp.undefinedPanel"))}'> + <Table id='undefinedAPanel' fill='both'> + <row> + <cell> + <JLabel id='rtpUndefinedALabel'/> + </cell> + <cell weightx='1'> + <NumberEditor id='rtpUndefinedAField'/> + </cell> + </row> + </Table> + <Table id='undefinedBPanel' fill='both'> + <row> + <cell> + <JLabel id='rtpUndefinedBLabel'/> + </cell> + <cell weightx='1'> + <NumberEditor id='rtpUndefinedBField'/> + </cell> + </row> + </Table> + </JPanel> + </JPanel> + + </JXTitledPanel> + + <JPanel id="actions" constraints='BorderLayout.SOUTH' layout="{new GridLayout(1, 2)}"> + <JButton id='cancelButton'/> + <JButton id='saveButton'/> + </JPanel> + +</JDialog> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java new file mode 100644 index 0000000..ebd800e --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java @@ -0,0 +1,85 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.rtp; + +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; +import jaxx.runtime.validator.swing.SwingValidator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.JComponent; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 14/01/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, RtpEditorUI> { + + /** Logger. */ + private static final Log log = LogFactory.getLog(RtpEditorUIHandler.class); + + @Override + public void beforeInit(RtpEditorUI ui) { + super.beforeInit(ui); + + RtpEditorUIModel model = new RtpEditorUIModel(); + + listModelIsModify(model); + + this.ui.setContextValue(model); + + } + + @Override + public void afterInit(RtpEditorUI ui) { + + super.initUI(ui); + + ui.pack(); + ui.setResizable(true); + + } + + @Override + protected JComponent getComponentToFocus() { + return getUI().getRtpMaleAField(); + } + + @Override + public void onCloseUI() { + ui.dispose(); + } + + @Override + public SwingValidator<RtpEditorUIModel> getValidator() { + return ui.getValidator(); + } + + public void setBean(EditProtocolSpeciesRowModel rowModel) { + + Species species = rowModel.getSpecies(); + + String decorate = decorate(species); + + if (log.isInfoEnabled()) { + log.info("Edit RTP for species: " + decorate); + } + + ui.getBodyPanel().setTitle(t("tutti.rtpEdit.title", decorate)); + + getModel().setRowModel(rowModel); + + } + + public void openEditor() { + ui.setVisible(true); + } + + public void closeEditor() { + ui.dispose(); + } + +} \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java new file mode 100644 index 0000000..25a95b9 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java @@ -0,0 +1,126 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.rtp; + +import fr.ifremer.tutti.persistence.entities.protocol.Rtp; +import fr.ifremer.tutti.persistence.entities.protocol.RtpBean; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; + +/** + * Created on 14/01/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeciesRowModel, RtpEditorUIModel> { + + public static final String PROPERTY_RTP_MALE_A = "rtpMaleA"; + public static final String PROPERTY_RTP_MALE_B = "rtpMaleB"; + public static final String PROPERTY_RTP_FEMALE_A = "rtpFemaleA"; + public static final String PROPERTY_RTP_FEMALE_B = "rtpFemaleB"; + public static final String PROPERTY_RTP_UNDEFINED_A = "rtpUndefinedA"; + public static final String PROPERTY_RTP_UNDEFINED_B = "rtpUndefinedB"; + + protected final Rtp rtpMale = new RtpBean(); + + protected final Rtp rtpFemale = new RtpBean(); + + protected final Rtp rtpUndefined = new RtpBean(); + + protected EditProtocolSpeciesRowModel rowModel; + + public RtpEditorUIModel() { + super(null, null); + } + + @Override + protected EditProtocolSpeciesRowModel newEntity() { + return null; + } + + public Rtp getRtpMale() { + return rtpMale; + } + + public Rtp getRtpUndefined() { + return rtpUndefined; + } + + public Rtp getRtpFemale() { + return rtpFemale; + } + + public Float getRtpMaleA() { + return rtpMale.getA(); + } + + public void setRtpMaleA(Float a) { + rtpMale.setA(a); + firePropertyChanged(PROPERTY_RTP_MALE_A, null, a); + } + + public Float getRtpMaleB() { + return rtpMale.getB(); + } + + public void setRtpMaleB(Float b) { + rtpMale.setB(b); + firePropertyChanged(PROPERTY_RTP_MALE_B, null, b); + } + + public Float getRtpFemaleA() { + return rtpFemale.getA(); + } + + public void setRtpFemaleA(Float a) { + rtpFemale.setA(a); + firePropertyChanged(PROPERTY_RTP_FEMALE_A, null, a); + } + + public Float getRtpFemaleB() { + return rtpFemale.getB(); + } + + public void setRtpFemaleB(Float b) { + rtpFemale.setB(b); + firePropertyChanged(PROPERTY_RTP_FEMALE_B, null, b); + } + + public Float getRtpUndefinedA() { + return rtpUndefined.getA(); + } + + public void setRtpUndefinedA(Float a) { + rtpUndefined.setA(a); + firePropertyChanged(PROPERTY_RTP_UNDEFINED_A, null, a); + } + + public Float getRtpUndefinedB() { + return rtpUndefined.getB(); + } + + public void setRtpUndefinedB(Float b) { + rtpUndefined.setB(b); + firePropertyChanged(PROPERTY_RTP_UNDEFINED_B, null, b); + } + + public void setRowModel(EditProtocolSpeciesRowModel rowModel) { + + this.rowModel = rowModel; + + Rtp rtpMale = rowModel.getRtpMale(); + setRtpMaleA(rtpMale == null ? null : rtpMale.getA()); + setRtpMaleB(rtpMale == null ? null : rtpMale.getB()); + + Rtp rtpFemale = rowModel.getRtpFemale(); + setRtpFemaleA(rtpFemale == null ? null : rtpFemale.getA()); + setRtpFemaleB(rtpFemale == null ? null : rtpFemale.getB()); + + Rtp rtpUndefined = rowModel.getRtpUndefined(); + setRtpUndefinedA(rtpUndefined == null ? null : rtpUndefined.getA()); + setRtpUndefinedB(rtpUndefined == null ? null : rtpUndefined.getB()); + + } + + public EditProtocolSpeciesRowModel getRowModel() { + return rowModel; + } +} \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java new file mode 100644 index 0000000..ef4b50c --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions; + +import fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpEditorUI; +import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; + +/** + * Created on 14/01/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class CancelRtpAction extends SimpleActionSupport<RtpEditorUI> { + + private static final long serialVersionUID = 1L; + + public CancelRtpAction(RtpEditorUI ui) { + super(ui); + } + + @Override + protected void onActionPerformed(RtpEditorUI ui) { + ui.dispose(); + } +} \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java new file mode 100644 index 0000000..a2082b4 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java @@ -0,0 +1,36 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions; + +import fr.ifremer.tutti.persistence.entities.protocol.Rtps; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; +import fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpEditorUI; +import fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpEditorUIModel; +import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; + +/** + * Created on 14/01/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class SaveRtpAction extends SimpleActionSupport<RtpEditorUI> { + + private static final long serialVersionUID = 1L; + + public SaveRtpAction(RtpEditorUI ui) { + super(ui); + } + + @Override + protected void onActionPerformed(RtpEditorUI ui) { + + RtpEditorUIModel model = ui.getModel(); + + EditProtocolSpeciesRowModel rowModel = model.getRowModel(); + + rowModel.setRtpMale(Rtps.newRtp(model.getRtpMale())); + rowModel.setRtpFemale(Rtps.newRtp(model.getRtpFemale())); + rowModel.setRtpUndefined(Rtps.newRtp(model.getRtpUndefined())); + + ui.dispose(); + + } +} \ No newline at end of file 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 a4669b9..4daea25 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 @@ -1,6 +1,9 @@ application.action.create.error= application.error.ui.business.warning= jaxx.application.action.create.error= +rtpEditor.femalePanel= +rtpEditor.malePanel= +rtpEditor.undefinedPanel= swing.error.cannot.open.file= tutti.about.bottomText= tutti.about.message= @@ -1095,10 +1098,20 @@ tutti.editProtocol.table.header.operationFields.field= tutti.editProtocol.table.header.operationFields.field.tip= tutti.editProtocol.table.header.operationFields.importFileColumn= tutti.editProtocol.table.header.operationFields.importFileColumn.tip= +tutti.editProtocol.table.header.rtpFemaleA= +tutti.editProtocol.table.header.rtpFemaleA.tip= +tutti.editProtocol.table.header.rtpFemaleB= +tutti.editProtocol.table.header.rtpFemaleB.tip= +tutti.editProtocol.table.header.rtpMaleA= +tutti.editProtocol.table.header.rtpMaleA.tip= +tutti.editProtocol.table.header.rtpMaleB= +tutti.editProtocol.table.header.rtpMaleB.tip= tutti.editProtocol.table.header.speciesReferenceTaxonId= tutti.editProtocol.table.header.speciesReferenceTaxonId.tip= tutti.editProtocol.table.header.speciesSurveyCode= tutti.editProtocol.table.header.speciesSurveyCode.tip= +tutti.editProtocol.table.header.useRtp= +tutti.editProtocol.table.header.useRtp.tip= tutti.editProtocol.table.header.weight= tutti.editProtocol.table.header.weight.tip= tutti.editProtocol.title.choose.benthosExportFile= @@ -1112,6 +1125,33 @@ tutti.editProtocol.title.edit.protocol= tutti.editProtocol.warn.clean= tutti.editProtocol.warn.clone= tutti.editProtocol.warn.import= +tutti.editRtp.action.cancel= +tutti.editRtp.action.cancel.mnemonic= +tutti.editRtp.action.cancel.tip= +tutti.editRtp.action.save= +tutti.editRtp.action.save.mnemonic= +tutti.editRtp.action.save.tip= +tutti.editRtp.action.tip= +tutti.editRtp.button= +tutti.editRtp.button.tip= +tutti.editRtp.femalePanel= +tutti.editRtp.field.rtpFemaleA= +tutti.editRtp.field.rtpFemaleA.tip= +tutti.editRtp.field.rtpFemaleB= +tutti.editRtp.field.rtpFemaleB.tip= +tutti.editRtp.field.rtpMaleA= +tutti.editRtp.field.rtpMaleA.tip= +tutti.editRtp.field.rtpMaleB= +tutti.editRtp.field.rtpMaleB.tip= +tutti.editRtp.field.rtpUndefinedA= +tutti.editRtp.field.rtpUndefinedA.tip= +tutti.editRtp.field.rtpUndefinedB= +tutti.editRtp.field.rtpUndefinedB.tip= +tutti.editRtp.malePanel= +tutti.editRtp.simpleText= +tutti.editRtp.undefinedPanel= +tutti.editRtp.withRtp.tip= +tutti.editRtp.withoutRtp.tip= tutti.editSampleCategoryModel.action.close= tutti.editSampleCategoryModel.action.close.mnemonic= tutti.editSampleCategoryModel.action.close.tip= @@ -2026,6 +2066,7 @@ tutti.report.title= tutti.report.title.choose.saveReportFile= tutti.resetCruise.action.cruiseReloaded= tutti.resetProgram.action.programReloaded= +tutti.rtpEdit.title= tutti.selectBenthos.title= tutti.selectCruise.action.chooseCruiseExportFile= tutti.selectCruise.action.chooseProgramExportFile= 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 61efbe2..f3acfb3 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 @@ -1058,6 +1058,8 @@ tutti.editProtocol.table.header.speciesReferenceTaxonId=Espèce tutti.editProtocol.table.header.speciesReferenceTaxonId.tip=Code Rubin – Nom scientifique tutti.editProtocol.table.header.speciesSurveyCode=Code campagne tutti.editProtocol.table.header.speciesSurveyCode.tip=Code campagne (non synchronisable dans Harmonie) +tutti.editProtocol.table.header.useRtp=RTP +tutti.editProtocol.table.header.useRtp.tip=Relation taille-poids tutti.editProtocol.table.header.weight=Pesée tutti.editProtocol.table.header.weight.tip=L'espèce doit elle être pesée ? tutti.editProtocol.title.choose.benthosExportFile=Exporter les benthos @@ -1071,6 +1073,31 @@ tutti.editProtocol.title.edit.protocol=Éditer un protocole de saisie existant tutti.editProtocol.warn.clean=Des catégories non reconnues ont été supprimées du protocole, ces modifications ne seront sauvegardées que lorsque vous cliquerez sur le bouton "Enregistrer". tutti.editProtocol.warn.clone=Le protocole que vous venez de cloner ne sera sauvegardé que lorsque vous cliquerez sur le bouton "Enregistrer". tutti.editProtocol.warn.import=Le protocole que vous venez d'importer ne sera sauvegardé que lorsque vous cliquerez sur le bouton "Enregistrer". +tutti.editRtp.action.cancel=Annuler +tutti.editRtp.action.cancel.mnemonic=A +tutti.editRtp.action.cancel.tip=Annuler l'édition des RTP +tutti.editRtp.action.save=Enregistrer +tutti.editRtp.action.save.mnemonic=E +tutti.editRtp.action.save.tip=Enregister les RTP +tutti.editRtp.button=RTP +tutti.editRtp.button.tip=Éditer les RTP de l'espèce +tutti.editRtp.femalePanel=Femelle +tutti.editRtp.field.rtpFemaleA=A +tutti.editRtp.field.rtpFemaleA.tip=Paramètre A +tutti.editRtp.field.rtpFemaleB=B +tutti.editRtp.field.rtpFemaleB.tip=Paramètre B +tutti.editRtp.field.rtpMaleA=A +tutti.editRtp.field.rtpMaleA.tip=Paramètre A +tutti.editRtp.field.rtpMaleB=B +tutti.editRtp.field.rtpMaleB.tip=Paramètre B +tutti.editRtp.field.rtpUndefinedA=A +tutti.editRtp.field.rtpUndefinedA.tip=Paramètre A +tutti.editRtp.field.rtpUndefinedB=B +tutti.editRtp.field.rtpUndefinedB.tip=Paramètre B +tutti.editRtp.malePanel=Male +tutti.editRtp.undefinedPanel=Sexe inconnu +tutti.editRtp.withRtp.tip=RTP renseignés +tutti.editRtp.withoutRtp.tip=RTP non renseignés tutti.editSampleCategoryModel.action.close=Fermer tutti.editSampleCategoryModel.action.close.mnemonic=F tutti.editSampleCategoryModel.action.close.tip=Fermer l'édition des catégories @@ -1892,6 +1919,7 @@ tutti.report.title=Rapports tutti.report.title.choose.saveReportFile=Enregistrer le rapport généré tutti.resetCruise.action.cruiseReloaded=<html><body>La campagne <strong>%s</strong> est rechargée</body></html>. tutti.resetProgram.action.programReloaded=<html><body>Le programme <strong>%s</strong> est rechargé</body></html>. +tutti.rtpEdit.title=Édition des relations taille-poids de l'espèce %s tutti.selectBenthos.title=Choisissez une espèce du benthos tutti.selectCruise.action.chooseCruiseExportFile=Exporter tutti.selectCruise.action.chooseProgramExportFile=Exporter -- 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/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git commit 67e11e15de1c2a971c46306e4fcebfb631aea45a Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 18 11:37:29 2016 +0100 ajout du validateur + passage du tablemodel dans le model de l'editor (refs #6115) --- .../rtp/RtpEditorUIModel-error-validation.xml | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel-error-validation.xml b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel-error-validation.xml new file mode 100644 index 0000000..8eff41c --- /dev/null +++ b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel-error-validation.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%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% + --> + +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> +<validators> + + <field name="selectedSource"> + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.replaceTemporaryReferential.source.required + </message> + </field-validator> + </field> + + <field name="selectedTarget"> + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.replaceTemporaryReferential.target.required + </message> + </field-validator> + </field> + +</validators> -- 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/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git commit 59845dacac83f15e731c51deaf2639e554fe0fae Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 18 11:38:54 2016 +0100 ajout du validateur + passage du tablemodel dans l'editor (refs #6115) --- .../ui/swing/content/protocol/rtp/RtpButton.java | 6 +- .../swing/content/protocol/rtp/RtpCellEditor.java | 2 +- .../ui/swing/content/protocol/rtp/RtpEditorUI.jaxx | 4 +- .../content/protocol/rtp/RtpEditorUIHandler.java | 69 ++++++++++++++++++++-- .../content/protocol/rtp/RtpEditorUIModel.java | 14 +++-- .../protocol/rtp/actions/CancelRtpAction.java | 3 +- .../protocol/rtp/actions/SaveRtpAction.java | 2 - .../rtp/RtpEditorUIModel-error-validation.xml | 39 ++++++++++-- .../resources/i18n/tutti-ui-swing_en_GB.properties | 8 +++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 8 +++ 10 files changed, 132 insertions(+), 23 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpButton.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpButton.java index 6a016dc..dd60643 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpButton.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpButton.java @@ -1,6 +1,6 @@ package fr.ifremer.tutti.ui.swing.content.protocol.rtp; -import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; import jaxx.runtime.SwingUtil; @@ -67,8 +67,8 @@ public class RtpButton extends JToggleButton { } - public void init(EditProtocolSpeciesRowModel model) { - popup.setBean(model); + public void init(EditProtocolSpeciesTableModel tableModel, int row) { + popup.setBean(tableModel, row); } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java index 0044160..bf76dad 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java @@ -68,7 +68,7 @@ public class RtpCellEditor extends AbstractCellEditor implements TableCellEditor EditProtocolSpeciesRowModel model = tableModel.getEntry(row); - editorButton.init(model); + editorButton.init(tableModel, row); return editorButton; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx index 9324c25..ec1482c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx @@ -26,7 +26,7 @@ fr.ifremer.tutti.ui.swing.TuttiHelpBroker fr.ifremer.tutti.ui.swing.TuttiUIContext - fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel + fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil @@ -43,7 +43,7 @@ public RtpEditorUI(TuttiUI<?,?> parentUI) { TuttiUIUtil.setParentUI(this, parentUI); } -public void setBean(EditProtocolSpeciesRowModel bean) { handler.setBean(bean); } +public void setBean(EditProtocolSpeciesTableModel tableModel, int row) { handler.setBean(tableModel, row); } public void openEditor() { handler.openEditor(); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java index ebd800e..ca6841e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java @@ -2,12 +2,16 @@ package fr.ifremer.tutti.ui.swing.content.protocol.rtp; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; +import jaxx.runtime.swing.ComponentMover; +import jaxx.runtime.swing.ComponentResizer; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; +import javax.swing.JOptionPane; import static org.nuiton.i18n.I18n.t; @@ -41,6 +45,12 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, ui.pack(); ui.setResizable(true); + ComponentResizer cr = new ComponentResizer(); + cr.registerComponent(ui); + ComponentMover cm = new ComponentMover(); + cm.setDragInsets(cr.getDragInsets()); + cm.registerComponent(ui); + } @Override @@ -50,7 +60,54 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, @Override public void onCloseUI() { - ui.dispose(); + + boolean result = true; + + RtpEditorUIModel model = getModel(); + + if (model.isModify()) { + if (model.isValid()) { + + result = quitUnsavedRtpForm(); + + } else { + + // model is not valid, ask user to continue or not + + result = askCancelEditBeforeLeaving( + t("tutti.rtpEdit.askCancelEditBeforeLeaving")); + } + } + + if (result) { + ui.dispose(); + } + } + + protected boolean quitUnsavedRtpForm() { + // ask if user want to save, do not save or cancel action + + boolean result; + + String message = t("tutti.rtpEdit.askSaveBeforeLeaving"); + + int answer = askSaveBeforeLeaving(message); + switch (answer) { + case JOptionPane.OK_OPTION: + getContext().getActionEngine().runAction(ui.getSaveButton()); + result = true; + break; + + case JOptionPane.NO_OPTION: + getContext().getActionEngine().runAction(ui.getCancelButton()); + result = true; + break; + + default: + // other case, use cancel action + result = false; + } + return result; } @Override @@ -58,7 +115,11 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, return ui.getValidator(); } - public void setBean(EditProtocolSpeciesRowModel rowModel) { + public void setBean(EditProtocolSpeciesTableModel tableModel, int row) { + + getModel().setRowModel(tableModel, row); + + EditProtocolSpeciesRowModel rowModel = getModel().getRowModel(); Species species = rowModel.getSpecies(); @@ -70,8 +131,6 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, ui.getBodyPanel().setTitle(t("tutti.rtpEdit.title", decorate)); - getModel().setRowModel(rowModel); - } public void openEditor() { @@ -79,7 +138,7 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, } public void closeEditor() { - ui.dispose(); + onCloseUI(); } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java index 25a95b9..3b8bbc7 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java @@ -3,6 +3,7 @@ package fr.ifremer.tutti.ui.swing.content.protocol.rtp; import fr.ifremer.tutti.persistence.entities.protocol.Rtp; import fr.ifremer.tutti.persistence.entities.protocol.RtpBean; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; /** @@ -25,7 +26,9 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci protected final Rtp rtpUndefined = new RtpBean(); - protected EditProtocolSpeciesRowModel rowModel; + protected EditProtocolSpeciesTableModel tableModel; + + protected int row; public RtpEditorUIModel() { super(null, null); @@ -102,9 +105,12 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci firePropertyChanged(PROPERTY_RTP_UNDEFINED_B, null, b); } - public void setRowModel(EditProtocolSpeciesRowModel rowModel) { + public void setRowModel(EditProtocolSpeciesTableModel tableModel, int row) { + + this.row = row; + this.tableModel = tableModel; - this.rowModel = rowModel; + EditProtocolSpeciesRowModel rowModel = tableModel.getEntry(row); Rtp rtpMale = rowModel.getRtpMale(); setRtpMaleA(rtpMale == null ? null : rtpMale.getA()); @@ -121,6 +127,6 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci } public EditProtocolSpeciesRowModel getRowModel() { - return rowModel; + return tableModel.getEntry(row); } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java index ef4b50c..ce215d0 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java @@ -18,6 +18,7 @@ public class CancelRtpAction extends SimpleActionSupport<RtpEditorUI> { @Override protected void onActionPerformed(RtpEditorUI ui) { - ui.dispose(); + + ui.getHandler().closeEditor(); } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java index a2082b4..7f83ea3 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java @@ -30,7 +30,5 @@ public class SaveRtpAction extends SimpleActionSupport<RtpEditorUI> { rowModel.setRtpFemale(Rtps.newRtp(model.getRtpFemale())); rowModel.setRtpUndefined(Rtps.newRtp(model.getRtpUndefined())); - ui.dispose(); - } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel-error-validation.xml b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel-error-validation.xml index 8eff41c..d704589 100644 --- a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel-error-validation.xml +++ b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel-error-validation.xml @@ -26,20 +26,49 @@ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> - <field name="selectedSource"> + <field name="rtpMaleA"> <field-validator type="required" short-circuit="true"> <message> - tutti.validator.error.replaceTemporaryReferential.source.required + tutti.validator.error.rtpEditor.rtpMaleA.required </message> </field-validator> </field> - - <field name="selectedTarget"> + <field name="rtpMaleB"> + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.rtpEditor.rtpMaleB.required + </message> + </field-validator> + </field> + <field name="rtpFemaleA"> <field-validator type="required" short-circuit="true"> <message> - tutti.validator.error.replaceTemporaryReferential.target.required + tutti.validator.error.rtpEditor.rtpFemaleA.required </message> </field-validator> </field> + <field name="rtpFemaleB"> + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.rtpEditor.rtpFemaleB.required + </message> + </field-validator> + </field> + <field name="rtpUndefinedA"> + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.rtpEditor.rtpUndefinedA.required + </message> + </field-validator> + </field> + <field name="rtpUndefinedB"> + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.rtpEditor.rtpUndefinedB.required + </message> + </field-validator> + </field> + + </validators> 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 4daea25..54ec8d1 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 @@ -2066,6 +2066,8 @@ tutti.report.title= tutti.report.title.choose.saveReportFile= tutti.resetCruise.action.cruiseReloaded= tutti.resetProgram.action.programReloaded= +tutti.rtpEdit.askCancelEditBeforeLeaving= +tutti.rtpEdit.askSaveBeforeLeaving= tutti.rtpEdit.title= tutti.selectBenthos.title= tutti.selectCruise.action.chooseCruiseExportFile= @@ -2294,6 +2296,12 @@ tutti.validator.error.report.cruiseId.required= tutti.validator.error.report.fishingOperation.required= tutti.validator.error.report.outputFile.required= tutti.validator.error.report.report.required= +tutti.validator.error.rtpEditor.rtpFemaleA.required= +tutti.validator.error.rtpEditor.rtpFemaleB.required= +tutti.validator.error.rtpEditor.rtpMaleA.required= +tutti.validator.error.rtpEditor.rtpMaleB.required= +tutti.validator.error.rtpEditor.rtpUndefinedA.required= +tutti.validator.error.rtpEditor.rtpUndefinedB.required= tutti.validator.error.speciesFrequency.incoherentTotalWeights= tutti.validator.error.speciesFrequency.lengthStepCaracteristic.required= tutti.validator.error.speciesFrequency.oneRowRequired= 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 f3acfb3..c97007a 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 @@ -1919,6 +1919,8 @@ tutti.report.title=Rapports tutti.report.title.choose.saveReportFile=Enregistrer le rapport généré tutti.resetCruise.action.cruiseReloaded=<html><body>La campagne <strong>%s</strong> est rechargée</body></html>. tutti.resetProgram.action.programReloaded=<html><body>Le programme <strong>%s</strong> est rechargé</body></html>. +tutti.rtpEdit.askCancelEditBeforeLeaving= +tutti.rtpEdit.askSaveBeforeLeaving= tutti.rtpEdit.title=Édition des relations taille-poids de l'espèce %s tutti.selectBenthos.title=Choisissez une espèce du benthos tutti.selectCruise.action.chooseCruiseExportFile=Exporter @@ -2129,6 +2131,12 @@ tutti.validator.error.report.cruiseId.required=La campagne est obligatoire tutti.validator.error.report.fishingOperation.required=Un trait doit être sélectionné tutti.validator.error.report.outputFile.required=Le fichier de sortie est obligatoire tutti.validator.error.report.report.required=Un modèle de rapport doit être sélectionné +tutti.validator.error.rtpEditor.rtpFemaleA.required= +tutti.validator.error.rtpEditor.rtpFemaleB.required= +tutti.validator.error.rtpEditor.rtpMaleA.required= +tutti.validator.error.rtpEditor.rtpMaleB.required= +tutti.validator.error.rtpEditor.rtpUndefinedA.required= +tutti.validator.error.rtpEditor.rtpUndefinedB.required= tutti.validator.error.speciesFrequency.incoherentTotalWeights=Le poids total est différent de la somme des poids des poids observés tutti.validator.error.speciesFrequency.lengthStepCaracteristic.required=La classe de taille est obligatoire tutti.validator.error.speciesFrequency.oneRowRequired=Au moins une classe de taille doit être observée -- 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/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git commit 392b4461c87d5e18099afff3cfcb8185d17b5758 Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 18 13:43:05 2016 +0100 reset le formulaire quand on quitte sans sauvegarder (refs #6115) --- .../ui/swing/content/protocol/rtp/RtpEditorUI.css | 26 +++++++++++----------- .../ui/swing/content/protocol/rtp/RtpEditorUI.jaxx | 2 +- .../content/protocol/rtp/RtpEditorUIHandler.java | 15 ++++++++----- .../content/protocol/rtp/RtpEditorUIModel.java | 12 ++++++++++ .../{CancelRtpAction.java => CloseRtpAction.java} | 4 ++-- .../resources/i18n/tutti-ui-swing_en_GB.properties | 3 +++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 +++ 7 files changed, 44 insertions(+), 21 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.css index f266278..d47e59d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.css @@ -22,7 +22,7 @@ NumberEditor { #rtpMaleAField { property:{RtpEditorUIModel.PROPERTY_RTP_MALE_A}; - numberValue: {model.getRtpMale().getA()};; + numberValue: {model.getRtpMaleA()};; _help: {"tutti.editRtp.field.rtpMaleA.help"}; } @@ -35,7 +35,7 @@ NumberEditor { #rtpMaleBField { property:{RtpEditorUIModel.PROPERTY_RTP_MALE_B}; - numberValue: {model.getRtpMale().getB()};; + numberValue: {model.getRtpMaleB()}; _help: {"tutti.editRtp.field.rtpMaleB.help"}; } @@ -48,7 +48,7 @@ NumberEditor { #rtpFemaleAField { property:{RtpEditorUIModel.PROPERTY_RTP_FEMALE_A}; - numberValue: {model.getRtpFemale().getA()};; + numberValue: {model.getRtpFemaleA()}; _help: {"tutti.editRtp.field.rtpFemaleA.help"}; } @@ -61,7 +61,7 @@ NumberEditor { #rtpFemaleBField { property:{RtpEditorUIModel.PROPERTY_RTP_FEMALE_B}; - numberValue: {model.getRtpFemale().getB()};; + numberValue: {model.getRtpFemaleB()}; _help: {"tutti.editRtp.field.rtpFemaleB.help"}; } @@ -74,7 +74,7 @@ NumberEditor { #rtpUndefinedAField { property:{RtpEditorUIModel.PROPERTY_RTP_UNDEFINED_A}; - numberValue: {model.getRtpUndefined().getA()};; + numberValue: {model.getRtpUndefinedA()}; _help: {"tutti.editRtp.field.rtpUndefinedA.help"}; } @@ -87,7 +87,7 @@ NumberEditor { #rtpUndefinedBField { property:{RtpEditorUIModel.PROPERTY_RTP_UNDEFINED_B}; - numberValue: {model.getRtpUndefined().getB()};; + numberValue: {model.getRtpUndefinedB()}; _help: {"tutti.editRtp.field.rtpUndefinedB.help"}; } @@ -101,11 +101,11 @@ NumberEditor { _help: {"tutti.editRtp.action.save.help"}; } -#cancelButton { - actionIcon: cancel; - text: "tutti.editRtp.action.cancel"; - toolTipText: "tutti.editRtp.action.cancel.tip"; - i18nMnemonic: "tutti.editRtp.action.cancel.mnemonic"; - _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions.CancelRtpAction.class}; - _help: {"tutti.editRtp.action.cancel.help"}; +#closeButton { + actionIcon: close; + text: "tutti.editRtp.action.close"; + toolTipText: "tutti.editRtp.action.close.tip"; + i18nMnemonic: "tutti.editRtp.action.close.mnemonic"; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions.CloseRtpAction.class}; + _help: {"tutti.editRtp.action.close.help"}; } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx index ec1482c..9c0bf66 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx @@ -141,7 +141,7 @@ public void closeEditor() { handler.closeEditor(); } </JXTitledPanel> <JPanel id="actions" constraints='BorderLayout.SOUTH' layout="{new GridLayout(1, 2)}"> - <JButton id='cancelButton'/> + <JButton id='closeButton'/> <JButton id='saveButton'/> </JPanel> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java index ca6841e..2ff199b 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java @@ -80,6 +80,7 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, } if (result) { + getModel().reset(); ui.dispose(); } } @@ -93,13 +94,12 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, int answer = askSaveBeforeLeaving(message); switch (answer) { - case JOptionPane.OK_OPTION: + case JOptionPane.YES_OPTION: getContext().getActionEngine().runAction(ui.getSaveButton()); result = true; break; case JOptionPane.NO_OPTION: - getContext().getActionEngine().runAction(ui.getCancelButton()); result = true; break; @@ -117,9 +117,11 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, public void setBean(EditProtocolSpeciesTableModel tableModel, int row) { - getModel().setRowModel(tableModel, row); + RtpEditorUIModel model = getModel(); + + model.setRowModel(tableModel, row); - EditProtocolSpeciesRowModel rowModel = getModel().getRowModel(); + EditProtocolSpeciesRowModel rowModel = model.getRowModel(); Species species = rowModel.getSpecies(); @@ -131,6 +133,10 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, ui.getBodyPanel().setTitle(t("tutti.rtpEdit.title", decorate)); + if (log.isInfoEnabled()) { + log.info("model valid " + model.isValid()); + log.info("model modified " + model.isModify()); + } } public void openEditor() { @@ -140,5 +146,4 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, public void closeEditor() { onCloseUI(); } - } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java index 3b8bbc7..a3d47a7 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java @@ -5,6 +5,8 @@ import fr.ifremer.tutti.persistence.entities.protocol.RtpBean; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * Created on 14/01/16. @@ -13,6 +15,9 @@ import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; */ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeciesRowModel, RtpEditorUIModel> { + /** Logger. */ + private static final Log log = LogFactory.getLog(RtpEditorUIModel.class); + public static final String PROPERTY_RTP_MALE_A = "rtpMaleA"; public static final String PROPERTY_RTP_MALE_B = "rtpMaleB"; public static final String PROPERTY_RTP_FEMALE_A = "rtpFemaleA"; @@ -107,6 +112,9 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci public void setRowModel(EditProtocolSpeciesTableModel tableModel, int row) { + if (log.isInfoEnabled()) { + log.info("setRowModel " + row); + } this.row = row; this.tableModel = tableModel; @@ -129,4 +137,8 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci public EditProtocolSpeciesRowModel getRowModel() { return tableModel.getEntry(row); } + + public void reset() { + setRowModel(tableModel, row); + } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CloseRtpAction.java similarity index 80% rename from tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java rename to tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CloseRtpAction.java index ce215d0..944f0f4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CancelRtpAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/CloseRtpAction.java @@ -8,11 +8,11 @@ import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; * * @author Tony Chemit - chemit@codelutin.com */ -public class CancelRtpAction extends SimpleActionSupport<RtpEditorUI> { +public class CloseRtpAction extends SimpleActionSupport<RtpEditorUI> { private static final long serialVersionUID = 1L; - public CancelRtpAction(RtpEditorUI ui) { + public CloseRtpAction(RtpEditorUI ui) { super(ui); } 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 54ec8d1..1a92b95 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 @@ -1128,6 +1128,9 @@ tutti.editProtocol.warn.import= tutti.editRtp.action.cancel= tutti.editRtp.action.cancel.mnemonic= tutti.editRtp.action.cancel.tip= +tutti.editRtp.action.close= +tutti.editRtp.action.close.mnemonic= +tutti.editRtp.action.close.tip= tutti.editRtp.action.save= tutti.editRtp.action.save.mnemonic= tutti.editRtp.action.save.tip= 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 c97007a..2de27e9 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 @@ -1076,6 +1076,9 @@ tutti.editProtocol.warn.import=Le protocole que vous venez d'importer ne sera sa tutti.editRtp.action.cancel=Annuler tutti.editRtp.action.cancel.mnemonic=A tutti.editRtp.action.cancel.tip=Annuler l'édition des RTP +tutti.editRtp.action.close= +tutti.editRtp.action.close.mnemonic= +tutti.editRtp.action.close.tip= tutti.editRtp.action.save=Enregistrer tutti.editRtp.action.save.mnemonic=E tutti.editRtp.action.save.tip=Enregister les RTP -- 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/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git commit 9b27d5b332f195fa47b9052f0169eb4967fe50c5 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 19 10:42:51 2016 +0100 On sauve seulement (on en ferme pas) quand on clique sur le bouton Enregistrer (refs #6115) --- .../tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java | 7 +++++-- .../tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java | 1 + .../ui/swing/content/protocol/rtp/actions/SaveRtpAction.java | 2 ++ .../src/main/resources/i18n/tutti-ui-swing_fr_FR.properties | 9 +++------ 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java index 2ff199b..62bd254 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java @@ -31,8 +31,6 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, RtpEditorUIModel model = new RtpEditorUIModel(); - listModelIsModify(model); - this.ui.setContextValue(model); } @@ -51,6 +49,9 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, cm.setDragInsets(cr.getDragInsets()); cm.registerComponent(ui); + RtpEditorUIModel model = getModel(); + listModelIsModify(model); + listenValidatorValid(ui.getValidator(), model); } @Override @@ -121,6 +122,8 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, model.setRowModel(tableModel, row); + model.setModify(false); + EditProtocolSpeciesRowModel rowModel = model.getRowModel(); Species species = rowModel.getSpecies(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java index a3d47a7..c078631 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java @@ -140,5 +140,6 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci public void reset() { setRowModel(tableModel, row); + setModify(false); } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java index 7f83ea3..0e00ba1 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/SaveRtpAction.java @@ -30,5 +30,7 @@ public class SaveRtpAction extends SimpleActionSupport<RtpEditorUI> { rowModel.setRtpFemale(Rtps.newRtp(model.getRtpFemale())); rowModel.setRtpUndefined(Rtps.newRtp(model.getRtpUndefined())); + model.setModify(false); + } } \ No newline at end of file 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 2de27e9..0e5cddb 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 @@ -1073,12 +1073,9 @@ tutti.editProtocol.title.edit.protocol=Éditer un protocole de saisie existant tutti.editProtocol.warn.clean=Des catégories non reconnues ont été supprimées du protocole, ces modifications ne seront sauvegardées que lorsque vous cliquerez sur le bouton "Enregistrer". tutti.editProtocol.warn.clone=Le protocole que vous venez de cloner ne sera sauvegardé que lorsque vous cliquerez sur le bouton "Enregistrer". tutti.editProtocol.warn.import=Le protocole que vous venez d'importer ne sera sauvegardé que lorsque vous cliquerez sur le bouton "Enregistrer". -tutti.editRtp.action.cancel=Annuler -tutti.editRtp.action.cancel.mnemonic=A -tutti.editRtp.action.cancel.tip=Annuler l'édition des RTP -tutti.editRtp.action.close= -tutti.editRtp.action.close.mnemonic= -tutti.editRtp.action.close.tip= +tutti.editRtp.action.close=Fermer +tutti.editRtp.action.close.mnemonic=F +tutti.editRtp.action.close.tip=Fermer l'éditeur des RTP tutti.editRtp.action.save=Enregistrer tutti.editRtp.action.save.mnemonic=E tutti.editRtp.action.save.tip=Enregister les RTP -- 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/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git commit d24f9e0634c6a5ad7ed54fef53a55ce8af047fd7 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 19 11:23:02 2016 +0100 nouvelle extension des fichiers css + libellés (refs #6115) --- .../swing/content/protocol/rtp/{RtpEditorUI.css => RtpEditorUI.jcss} | 0 .../src/main/resources/i18n/tutti-ui-swing_fr_FR.properties | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss similarity index 100% rename from tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.css rename to tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss 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 0e5cddb..9359cc6 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 @@ -1919,8 +1919,8 @@ tutti.report.title=Rapports tutti.report.title.choose.saveReportFile=Enregistrer le rapport généré tutti.resetCruise.action.cruiseReloaded=<html><body>La campagne <strong>%s</strong> est rechargée</body></html>. tutti.resetProgram.action.programReloaded=<html><body>Le programme <strong>%s</strong> est rechargé</body></html>. -tutti.rtpEdit.askCancelEditBeforeLeaving= -tutti.rtpEdit.askSaveBeforeLeaving= +tutti.rtpEdit.askCancelEditBeforeLeaving=Les relations taille-poids ne sont pas valides et ne peuvent pas être enregistrées +tutti.rtpEdit.askSaveBeforeLeaving=Des modifications n'ont pas été enregistrées tutti.rtpEdit.title=Édition des relations taille-poids de l'espèce %s tutti.selectBenthos.title=Choisissez une espèce du benthos tutti.selectCruise.action.chooseCruiseExportFile=Exporter -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm