branch develop updated (9ff0339 -> 41ae7f5)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 9ff0339 refs #7886 Correction de la migration new 150fc03 Gérer les associations ordonnées (avec colonne _idx) lors de la réplication des entités new 82b701f Suppression d'une api obsolète new 8b5270a refs #8554 Ajout de logs sur le sql new 160c3dd refs #8554 : changement de la configuration du pool de connections new 9d34e50 Ajout raccourci clavier sur les listes déroulantes new f3617cd Gestion du focus sur les écrans d'édition (reste juste le référentiel à faire) new 6781948 Introduction de ObserveFocusManager et réusinage des ui (amélioration de la généricité + nouvel héritage pour les référentiels i18n) new 946b44c Ajout de raccourci clavier sur les actions des formulaires new 21627b9 clean code + ne plus étendre l'arbre automatiquement new 8357698 meilleure gestion du faction, réusinage des actions, ajout des actions globales new 6035bd0 Ajout de Program.tripCount pour optimiser le chargement dans l'arbre de naigation new 090748a Clean code new 67e39b8 On repasse en sélection automatique sinon l'arbre ne se charge plus bien (en attendant de revoir l'API d'arbre) new ec6c26c Amélioration paquetage de binders new fe96e92 refs #8429 : réusinage des arbres new bed31c0 ne pas pas afficher les erreurs sur la base locale si cela n'est pas important new 7c376d4 refs #8429 Ajout service pour charger l'arbre de navigation new a2957b3 refs #8429 Ajout méthodes utiles new 946c8f9 refs #8429 revue des nœud de chargement et utilisation de NavigationService new 628c272 refs #8429 continue les adaptations sur les arbres new b1782db meilleure remontée de données new 5682241 gestion des nœuds de création new e25e7ae meilleure gestion de l'affichage des nœuds new 2d34b2d ajout API getChild pour remplacer l'API findNodeById new abd3d69 refs #8429 meilleure gestion du focus dans les assistants de base + suppression code mort new 6804ee8 refs #8554 Ajout de logs sur le sql new e67fb09 refs #8429 fix referential access new 905a69b [iso] clean code new 86666a5 Retour sur develop même s'il reste 2, 3 choses à revoir Merge branch 'feature/8429' into develop new 5f2ce44 clean code new be439f1 refs #8554 optimisation des chargements des branchlines new 41ae7f5 La sauvegarde de marées central->local plante au-delà d'une dizaine de marées Fixes #8554 Merge branch 'feature/8554_export' into develop The 32 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 41ae7f5e026aab67ded99ee7c3281bd770c85f8e Merge: 86666a5 be439f1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 17:42:39 2016 +0100 La sauvegarde de marées central->local plante au-delà d'une dizaine de marées Fixes #8554 Merge branch 'feature/8554_export' into develop commit be439f17d21f3cc4ba9f97e9bff8ed1bf671c55f Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 17:42:17 2016 +0100 refs #8554 optimisation des chargements des branchlines commit 5f2ce4405c78c5941aa6136007b8afb8473f82c7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:40:16 2016 +0100 clean code commit 86666a581338524c1d4bf38cbc81acea1f4cb45b Merge: 82b701f 905a69b Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:44:26 2016 +0100 Retour sur develop même s'il reste 2, 3 choses à revoir Merge branch 'feature/8429' into develop commit 905a69b8081b6d43f275b6a7b4b497409b8b57ad Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:21:42 2016 +0100 [iso] clean code commit e67fb0956d32a522ea32aa91c96ee243c64ddaa1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:21:14 2016 +0100 refs #8429 fix referential access commit 6804ee830bd419d64a2c416030cd8ed9319e5ed7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:20:11 2016 +0100 refs #8554 Ajout de logs sur le sql commit abd3d69ee3c260e40844306c9712207d3d4cad06 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 09:11:21 2016 +0100 refs #8429 meilleure gestion du focus dans les assistants de base + suppression code mort commit 2d34b2d3a547d43f742c75c2991a073f889391b8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 23 09:18:14 2016 +0100 ajout API getChild pour remplacer l'API findNodeById commit e25e7aeec3d9ef0ea8e320a22695614f877207ee Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 23 09:17:47 2016 +0100 meilleure gestion de l'affichage des nœuds commit 5682241e89918ba47c7a7fd665059d463946d4f3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 18:13:55 2016 +0100 gestion des nœuds de création commit b1782dbb4283ce9b18e8a3974e2581598856969a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 18:13:35 2016 +0100 meilleure remontée de données commit 628c272fed4e830f1b1a0fe910662871a2b6f844 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:15:26 2016 +0100 refs #8429 continue les adaptations sur les arbres commit 946c8f9015acc618731f5857b9ca68df48c0dba8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:14:26 2016 +0100 refs #8429 revue des nœud de chargement et utilisation de NavigationService commit a2957b3603984c17b97140fbbc86a5d87a8e4428 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:13:15 2016 +0100 refs #8429 Ajout méthodes utiles commit 7c376d4b872107c50dec5d488c96db207bea8345 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:12:40 2016 +0100 refs #8429 Ajout service pour charger l'arbre de navigation commit bed31c0eba0b6951db1a49356ba606746f5c7998 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 21 09:25:52 2016 +0100 ne pas pas afficher les erreurs sur la base locale si cela n'est pas important commit fe96e92e9d3e3c9f7d0f22376623df49fc212c07 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 21 07:57:52 2016 +0100 refs #8429 : réusinage des arbres commit ec6c26ced3320ffc19efdcb8771b6fd1bc9c940d Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 18 21:59:33 2016 +0100 Amélioration paquetage de binders commit 67e39b8c06cbc283600afca2c872469edb7299c9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 14 09:12:23 2016 +0100 On repasse en sélection automatique sinon l'arbre ne se charge plus bien (en attendant de revoir l'API d'arbre) commit 090748a5234462aacc78d9d6bf1b77f94af25544 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 14 09:11:44 2016 +0100 Clean code commit 6035bd0df1eb1d03428e59561f1fab6607ba4388 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 14 09:11:25 2016 +0100 Ajout de Program.tripCount pour optimiser le chargement dans l'arbre de naigation commit 8357698a5edcfa54ce08177117fbc421690be78b Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 13 20:13:56 2016 +0100 meilleure gestion du faction, réusinage des actions, ajout des actions globales commit 21627b9f7346371f9eb7a846cf8169f9c3ad9b84 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 10 12:12:03 2016 +0100 clean code + ne plus étendre l'arbre automatiquement commit 946b44c4142e6dbe164fdaf19893c1883596e643 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 10 11:56:57 2016 +0100 Ajout de raccourci clavier sur les actions des formulaires commit 678194870c37a286713de2ca7239c4ede2afe432 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 9 16:13:31 2016 +0100 Introduction de ObserveFocusManager et réusinage des ui (amélioration de la généricité + nouvel héritage pour les référentiels i18n) commit f3617cd007ac56a3e56de13cf8eb7ebc00e668a4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 8 20:20:34 2016 +0100 Gestion du focus sur les écrans d'édition (reste juste le référentiel à faire) commit 9d34e50c74d689c97d15afb2f1d791b6b4a67a97 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 8 12:20:37 2016 +0100 Ajout raccourci clavier sur les listes déroulantes commit 160c3dd34986bb75da4b3da8983696f3870cda89 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:22:11 2016 +0100 refs #8554 : changement de la configuration du pool de connections commit 8b5270a0c18ad9fecaf774b7ac17f097e1f20c8a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:20:11 2016 +0100 refs #8554 Ajout de logs sur le sql commit 82b701f6b21e574cec0c06bd9e015985b6c7429a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 10:33:34 2016 +0100 Suppression d'une api obsolète commit 150fc0385c19287a4ea9b5df98258763e845cde2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 24 23:56:12 2016 +0100 Gérer les associations ordonnées (avec colonne _idx) lors de la réplication des entités Summary of changes: .../swing/decoration/DecoratorService.java | 8 +- .../CoordinateLatitudeDtoFieldValidator.java | 4 + .../CoordinateLongitudeDtoFieldValidator.java | 4 + .../swing/ObserveSwingApplicationContext.java | 104 +- .../ObserveSwingApplicationDataSourcesManager.java | 12 +- .../swing/db/ObserveSwingDataSource.java | 21 +- .../application/swing/ui/BorderFocusListener.java | 50 + .../application/swing/ui/ObserveMainUI.jaxx | 39 +- .../application/swing/ui/ObserveMainUI.jcss | 16 +- .../application/swing/ui/ObserveMainUIHandler.java | 232 +++-- .../ui/actions/ImportStorageFromFileAction.java | 4 +- .../swing/ui/actions/ReloadStorageAction.java | 7 +- .../actions/content/AbstractContentUIAction.java | 32 + .../{shared => content}/CancelCreateUIAction.java | 35 +- .../ui/actions/content/CloseAndCreateUIAction.java | 154 +++ .../ui/actions/content/CloseOpenUIAction.java | 125 +++ .../ui/actions/content/CreateOpenUIAction.java | 29 + .../{shared => content}/DeleteDataUIAction.java | 27 +- .../DeleteReferenceUIAction.java | 37 +- .../actions/content/DeleteTableEntryUIAction.java | 29 + .../MoveActivityLonglinesUIAction.java | 103 +- .../MoveActivitySeinesUIAction.java | 108 +- .../{shared => content}/MoveRoutesUIAction.java | 99 +- .../MoveTripLonglinesUIAction.java | 24 +- .../MoveTripSeinesUIAction.java | 24 +- .../{shared => content}/MoveTripsUIAction.java | 103 +- .../ui/actions/content/NewTableEntryUIAction.java | 30 + .../swing/ui/actions/content/ReOpenUIAction.java | 90 ++ .../{shared => content}/ResetEditUIAction.java | 31 +- .../actions/content/ResetTableEntryUIAction.java | 40 + .../{shared => content}/SaveEditUIAction.java | 27 +- .../ui/actions/content/SaveTableEntryUIAction.java | 40 + .../ui/actions/global/AbstractGlobalUIAction.java | 18 + .../actions/global/ChangeFocusGlobalUIAction.java | 60 ++ .../actions/global/DeleteDataGlobalUIAction.java | 45 + .../actions/global/NewNextDataGlobalUIAction.java | 45 + .../global/OpenCloseDataGlobalUIAction.java | 76 ++ .../ui/actions/global/ResetDataGlobalUIAction.java | 38 + .../ui/actions/global/SaveDataGlobalUIAction.java | 38 + .../swing/ui/actions/shared/AbstractUIAction.java | 130 ++- .../ui/actions/shared/CloseAndCreateUIAction.java | 157 --- .../swing/ui/actions/shared/CloseOpenUIAction.java | 173 ---- .../swing/ui/actions/shared/GoDownUIAction.java | 54 +- .../swing/ui/actions/shared/GoUpUIAction.java | 36 +- .../swing/ui/actions/shared/ReOpenUIAction.java | 103 -- .../ui/actions/shared/SelectNodeUIAction.java | 9 +- .../ui/actions/shared/SelectOpenNodeUIAction.java | 20 +- .../swing/ui/admin/AdminTabUIHandler.java | 74 +- .../application/swing/ui/admin/AdminUIHandler.java | 31 + .../application/swing/ui/admin/AdminUIModel.java | 216 ++-- .../swing/ui/admin/config/ConfigUI.jaxx | 3 +- .../swing/ui/admin/config/ConfigUIHandler.java | 28 +- .../swing/ui/admin/config/SelectDataUI.jaxx | 40 +- .../swing/ui/admin/config/SelectDataUI.jcss | 19 +- .../ui/admin/consolidate/ConsolidateUIHandler.java | 44 +- .../swing/ui/admin/export/ExportModel.java | 65 +- .../swing/ui/admin/export/ExportUIHandler.java | 23 +- .../swing/ui/admin/report/ReportUIHandler.java | 26 +- .../admin/synchronize/data/DataSynchroModel.java | 40 +- .../data/DataSynchroSelectionTreeCellRenderer.java | 45 +- .../ui/admin/synchronize/data/DataSynchroUI.jaxx | 33 +- .../ui/admin/synchronize/data/DataSynchroUI.jcss | 22 - .../synchronize/data/DataSynchroUIHandler.java | 93 +- .../referential/ng/ReferentialSynchroUI.jaxx | 4 - .../swing/ui/admin/validate/ValidateUI.jaxx | 4 +- .../swing/ui/admin/validate/ValidateUIHandler.java | 82 +- .../application/swing/ui/content/Common.jcss | 4 + .../application/swing/ui/content/ContentUI.jaxx | 11 +- .../application/swing/ui/content/ContentUI.jcss | 2 + .../swing/ui/content/ContentUIBlockingLayerUI.java | 111 +++ .../swing/ui/content/ContentUIHandler.java | 182 ++-- .../swing/ui/content/ContentUIInitializer.java | 81 +- .../swing/ui/content/ContentUIManager.java | 284 +----- .../swing/ui/content/ContentUIModel.java | 4 +- .../swing/ui/content/ObserveActionMap.java | 120 +++ .../swing/ui/content/ObserveContentUI.java | 2 +- .../swing/ui/content/ObserveFocusManager.java | 1036 ++++++++++++++++++++ .../ui/content/impl/longline/BranchlineUI.jaxx | 34 +- .../content/impl/longline/BranchlineUIHandler.java | 12 +- .../impl/longline/LonglineDetailCompositionUI.jaxx | 16 +- .../LonglineDetailCompositionUIHandler.java | 26 +- .../impl/longline/LonglineGlobalCompositionUI.jaxx | 16 +- .../LonglineGlobalCompositionUIHandler.java | 20 +- .../ui/content/impl/longline/SetLonglineUI.jaxx | 30 +- .../impl/longline/SetLonglineUIHandler.java | 18 +- .../FloatingObjectTransmittingBuoyOperationUI.jaxx | 61 +- ...ngObjectTransmittingBuoyOperationUIHandler.java | 17 +- .../ui/content/impl/seine/FloatingObjectUI.jaxx | 32 +- .../impl/seine/FloatingObjectUIHandler.java | 24 +- .../swing/ui/content/impl/seine/SetSeineUI.jaxx | 16 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 32 +- .../swing/ui/content/list/ContentListUI.jaxx | 26 +- .../swing/ui/content/list/ContentListUI.jcss | 9 +- .../ui/content/list/ContentListUIHandler.java | 59 +- .../list/impl/longline/ActivityLonglinesUI.jaxx | 17 +- .../list/impl/longline/ActivityLonglinesUI.jcss | 7 +- .../impl/longline/ActivityLonglinesUIHandler.java | 11 +- .../content/list/impl/longline/CommonListUI.jcss | 4 + .../list/impl/longline/TripLonglinesUI.jaxx | 10 +- .../list/impl/longline/TripLonglinesUI.jcss | 8 +- .../list/impl/longline/TripLonglinesUIHandler.java | 13 +- .../content/list/impl/seine/ActivitySeinesUI.jaxx | 14 +- .../list/impl/seine/ActivitySeinesUIHandler.java | 11 +- .../ui/content/list/impl/seine/CommonListUI.jcss | 4 + .../swing/ui/content/list/impl/seine/RoutesUI.jaxx | 10 +- .../content/list/impl/seine/RoutesUIHandler.java | 8 +- .../ui/content/list/impl/seine/TripSeinesUI.jaxx | 10 +- .../list/impl/seine/TripSeinesUIHandler.java | 11 +- .../swing/ui/content/open/ContentOpenableUI.jaxx | 31 +- .../swing/ui/content/open/ContentOpenableUI.jcss | 13 +- .../ui/content/open/ContentOpenableUIHandler.java | 55 +- .../open/impl/longline/ActivityLonglineUI.jaxx | 18 +- .../impl/longline/ActivityLonglineUIHandler.java | 11 +- .../content/open/impl/longline/TripLonglineUI.jaxx | 49 +- .../open/impl/longline/TripLonglineUIHandler.java | 7 +- .../content/open/impl/seine/ActivitySeineUI.jaxx | 7 +- .../open/impl/seine/ActivitySeineUIHandler.java | 11 +- .../swing/ui/content/open/impl/seine/RouteUI.jaxx | 16 +- .../ui/content/open/impl/seine/RouteUIHandler.java | 69 +- .../ui/content/open/impl/seine/TripSeineUI.jaxx | 27 +- .../open/impl/seine/TripSeineUIHandler.java | 20 +- ...itySeineUI.jaxx => ContentI18nReferenceUI.jaxx} | 70 +- .../ui/content/ref/ContentI18nReferenceUI.jcss | 71 ++ .../swing/ui/content/ref/ContentReferenceUI.jaxx | 36 +- .../swing/ui/content/ref/ContentReferenceUI.jcss | 1 + .../ui/content/ref/ContentReferenceUIHandler.java | 40 +- .../swing/ui/content/ref/ReferenceHomeUI.jaxx | 7 +- .../ui/content/ref/ReferenceHomeUIHandler.java | 4 +- .../swing/ui/content/ref/ReferenceHomeUIModel.java | 2 +- .../ref/ReferentialContentUIInitializer.java | 13 +- .../swing/ui/content/ref/UniqueKeyTableModel.java | 2 +- .../swing/ui/content/ref/impl/CountryUI.jaxx | 97 +- .../swing/ui/content/ref/impl/CountryUIModel.java | 2 +- .../swing/ui/content/ref/impl/FpaZoneUI.jaxx | 95 +- .../swing/ui/content/ref/impl/FpaZoneUIModel.java | 2 +- .../content/ref/impl/GearCaracteristicTypeUI.jaxx | 95 +- .../ref/impl/GearCaracteristicTypeUIModel.java | 2 +- .../ui/content/ref/impl/GearCaracteristicUI.jaxx | 97 +- .../content/ref/impl/GearCaracteristicUIModel.java | 4 +- .../swing/ui/content/ref/impl/GearUI.jaxx | 25 +- .../swing/ui/content/ref/impl/GearUI.jcss | 4 - .../swing/ui/content/ref/impl/GearUIHandler.java | 9 +- .../swing/ui/content/ref/impl/GearUIModel.java | 2 +- .../swing/ui/content/ref/impl/HarbourUI.jaxx | 27 +- .../swing/ui/content/ref/impl/HarbourUIModel.java | 22 +- .../ui/content/ref/impl/I18nReferenceEntity.jcss | 92 -- .../content/ref/impl/LengthLengthParameterUI.jaxx | 7 +- .../ref/impl/LengthLengthParameterUIHandler.java | 7 +- .../content/ref/impl/LengthWeightParameterUI.jaxx | 7 +- .../ref/impl/LengthWeightParameterUIHandler.java | 9 +- .../ref/impl/LengthWeightParameterUIModel.java | 3 +- .../ref/impl/NeedCommentReferenceEntity.jcss | 25 - .../swing/ui/content/ref/impl/OceanUI.jaxx | 96 +- .../swing/ui/content/ref/impl/OceanUIModel.java | 2 +- .../swing/ui/content/ref/impl/OrganismUI.jaxx | 98 +- .../swing/ui/content/ref/impl/OrganismUIModel.java | 2 +- .../swing/ui/content/ref/impl/PersonUI.jaxx | 23 +- .../swing/ui/content/ref/impl/PersonUIModel.java | 14 +- .../swing/ui/content/ref/impl/ProgramUI.jaxx | 41 +- .../swing/ui/content/ref/impl/ProgramUI.jcss | 4 - .../ui/content/ref/impl/ProgramUIHandler.java | 9 +- .../swing/ui/content/ref/impl/ProgramUIModel.java | 2 +- .../swing/ui/content/ref/impl/ReferenceEntity.jcss | 3 + .../swing/ui/content/ref/impl/SexUI.jaxx | 95 +- .../swing/ui/content/ref/impl/SexUIModel.java | 2 +- .../swing/ui/content/ref/impl/ShipOwnerUI.jaxx | 24 +- .../ui/content/ref/impl/SizeMeasureTypeUI.jaxx | 92 +- .../content/ref/impl/SizeMeasureTypeUIModel.java | 2 +- .../swing/ui/content/ref/impl/SpeciesGroupUI.jaxx | 97 +- .../ui/content/ref/impl/SpeciesGroupUIModel.java | 2 +- .../swing/ui/content/ref/impl/SpeciesListUI.jaxx | 29 +- .../swing/ui/content/ref/impl/SpeciesListUI.jcss | 4 - .../ui/content/ref/impl/SpeciesListUIHandler.java | 9 +- .../ui/content/ref/impl/SpeciesListUIModel.java | 2 +- .../swing/ui/content/ref/impl/SpeciesUI.jaxx | 19 +- .../swing/ui/content/ref/impl/SpeciesUI.jcss | 4 - .../ui/content/ref/impl/SpeciesUIHandler.java | 9 +- .../swing/ui/content/ref/impl/SpeciesUIModel.java | 22 +- .../ui/content/ref/impl/VesselSizeCategoryUI.jaxx | 30 +- .../ref/impl/VesselSizeCategoryUIModel.java | 2 +- .../swing/ui/content/ref/impl/VesselTypeUI.jaxx | 28 +- .../ui/content/ref/impl/VesselTypeUIModel.java | 2 +- .../swing/ui/content/ref/impl/VesselUI.jaxx | 38 +- .../swing/ui/content/ref/impl/VesselUI.jcss | 4 - .../swing/ui/content/ref/impl/VesselUIHandler.java | 9 +- .../ui/content/ref/impl/WeightMeasureTypeUI.jaxx | 93 +- .../content/ref/impl/WeightMeasureTypeUIModel.java | 2 +- .../ref/impl/longline/BaitHaulingStatusUI.jaxx | 95 +- .../impl/longline/BaitHaulingStatusUIModel.java | 2 +- .../ref/impl/longline/BaitSettingStatusUI.jaxx | 97 +- .../impl/longline/BaitSettingStatusUIModel.java | 2 +- .../ui/content/ref/impl/longline/BaitTypeUI.jaxx | 94 +- .../content/ref/impl/longline/BaitTypeUIModel.java | 2 +- .../ref/impl/longline/CatchFateLonglineUI.jaxx | 95 +- .../impl/longline/CatchFateLonglineUIModel.java | 2 +- .../content/ref/impl/longline/EncounterTypeUI.jaxx | 95 +- .../ref/impl/longline/EncounterTypeUIModel.java | 2 +- .../ui/content/ref/impl/longline/HealthnessUI.jaxx | 94 +- .../ref/impl/longline/HealthnessUIModel.java | 2 +- .../content/ref/impl/longline/HookPositionUI.jaxx | 95 +- .../ref/impl/longline/HookPositionUIModel.java | 2 +- .../ui/content/ref/impl/longline/HookSizeUI.jaxx | 94 +- .../content/ref/impl/longline/HookSizeUIModel.java | 2 +- .../ui/content/ref/impl/longline/HookTypeUI.jaxx | 96 +- .../content/ref/impl/longline/HookTypeUIModel.java | 2 +- .../impl/longline/ItemHorizontalPositionUI.jaxx | 95 +- .../longline/ItemHorizontalPositionUIModel.java | 2 +- .../ref/impl/longline/ItemVerticalPositionUI.jaxx | 95 +- .../impl/longline/ItemVerticalPositionUIModel.java | 2 +- .../ref/impl/longline/LightsticksColorUI.jaxx | 95 +- .../ref/impl/longline/LightsticksColorUIModel.java | 2 +- .../ref/impl/longline/LightsticksTypeUI.jaxx | 95 +- .../ref/impl/longline/LightsticksTypeUIModel.java | 2 +- .../ui/content/ref/impl/longline/LineTypeUI.jaxx | 94 +- .../content/ref/impl/longline/LineTypeUIModel.java | 2 +- .../ref/impl/longline/MaturityStatusUI.jaxx | 98 +- .../ref/impl/longline/MaturityStatusUIModel.java | 2 +- .../ref/impl/longline/MitigationTypeUI.jaxx | 95 +- .../ref/impl/longline/MitigationTypeUIModel.java | 2 +- .../content/ref/impl/longline/SensorBrandUI.jaxx | 24 +- .../ref/impl/longline/SensorBrandUIModel.java | 2 +- .../ref/impl/longline/SensorDataFormatUI.jaxx | 95 +- .../ref/impl/longline/SensorDataFormatUIModel.java | 2 +- .../ui/content/ref/impl/longline/SensorTypeUI.jaxx | 94 +- .../ref/impl/longline/SensorTypeUIModel.java | 2 +- .../content/ref/impl/longline/SettingShapeUI.jaxx | 95 +- .../ref/impl/longline/SettingShapeUIModel.java | 2 +- .../ref/impl/longline/StomacFullnessUI.jaxx | 95 +- .../ref/impl/longline/StomacFullnessUIModel.java | 2 +- .../ui/content/ref/impl/longline/TripTypeUI.jaxx | 94 +- .../content/ref/impl/longline/TripTypeUIModel.java | 2 +- .../impl/longline/VesselActivityLonglineUI.jaxx | 95 +- .../longline/VesselActivityLonglineUIModel.java | 2 +- .../ui/content/ref/impl/seine/DetectionModeUI.jaxx | 95 +- .../ref/impl/seine/DetectionModeUIModel.java | 2 +- .../ui/content/ref/impl/seine/ObjectFateUI.jaxx | 93 +- .../content/ref/impl/seine/ObjectFateUIModel.java | 2 +- .../content/ref/impl/seine/ObjectOperationUI.jaxx | 96 +- .../ref/impl/seine/ObjectOperationUIModel.java | 2 +- .../ui/content/ref/impl/seine/ObjectTypeUI.jaxx | 93 +- .../content/ref/impl/seine/ObjectTypeUIModel.java | 2 +- .../content/ref/impl/seine/ObservedSystemUI.jaxx | 97 +- .../ref/impl/seine/ObservedSystemUIModel.java | 2 +- .../content/ref/impl/seine/ReasonForDiscardUI.jaxx | 96 +- .../ref/impl/seine/ReasonForDiscardUIModel.java | 2 +- .../ref/impl/seine/ReasonForNoFishingUI.jaxx | 99 +- .../ref/impl/seine/ReasonForNoFishingUIModel.java | 2 +- .../content/ref/impl/seine/ReasonForNullSetUI.jaxx | 94 +- .../ref/impl/seine/ReasonForNullSetUIModel.java | 2 +- .../ui/content/ref/impl/seine/SpeciesFateUI.jaxx | 78 +- .../ui/content/ref/impl/seine/SpeciesStatusUI.jaxx | 94 +- .../ref/impl/seine/SpeciesStatusUIModel.java | 2 +- .../ref/impl/seine/SurroundingActivityUI.jaxx | 94 +- .../ref/impl/seine/SurroundingActivityUIModel.java | 2 +- .../impl/seine/TransmittingBuoyOperationUI.jaxx | 96 +- .../seine/TransmittingBuoyOperationUIModel.java | 2 +- .../ref/impl/seine/TransmittingBuoyTypeUI.jaxx | 93 +- .../impl/seine/TransmittingBuoyTypeUIModel.java | 2 +- .../ref/impl/seine/VesselActivitySeineUI.jaxx | 80 +- .../ref/impl/seine/VesselActivitySeineUIModel.java | 3 +- .../content/ref/impl/seine/WeightCategoryUI.jaxx | 94 +- .../ref/impl/seine/WeightCategoryUIModel.java | 2 +- .../swing/ui/content/ref/impl/seine/WindUI.jaxx | 98 +- .../ui/content/ref/impl/seine/WindUIModel.java | 2 +- .../swing/ui/content/table/CommonTable.jcss | 4 + .../swing/ui/content/table/ContentTableModel.java | 7 +- .../swing/ui/content/table/ContentTableUI.jaxx | 33 +- .../swing/ui/content/table/ContentTableUI.jcss | 31 +- .../ui/content/table/ContentTableUIHandler.java | 138 +-- .../content/table/ContentTableUIInitializer.java | 11 +- .../ui/content/table/ContentTableUIModel.java | 6 +- .../ui/content/table/ObserveContentTableUI.java | 10 +- .../table/impl/longline/BaitsCompositionUI.jaxx | 19 +- .../impl/longline/BaitsCompositionUIHandler.java | 10 +- .../impl/longline/BaitsCompositionUIModel.java | 20 +- .../impl/longline/BranchlinesCompositionUI.jaxx | 19 +- .../longline/BranchlinesCompositionUIHandler.java | 10 +- .../longline/BranchlinesCompositionUIModel.java | 20 +- .../impl/longline/CatchLonglineTableModel.java | 3 +- .../table/impl/longline/CatchLonglineUI.jaxx | 59 +- .../impl/longline/CatchLonglineUIHandler.java | 32 +- .../table/impl/longline/CatchLonglineUIModel.java | 58 +- .../content/table/impl/longline/EncounterUI.jaxx | 14 +- .../table/impl/longline/EncounterUIHandler.java | 13 +- .../table/impl/longline/EncounterUIModel.java | 12 +- .../impl/longline/FloatlinesCompositionUI.jaxx | 16 +- .../longline/FloatlinesCompositionUIHandler.java | 10 +- .../longline/FloatlinesCompositionUIModel.java | 17 +- .../GearUseFeaturesLonglineTableModel.java | 8 +- .../impl/longline/GearUseFeaturesLonglineUI.jaxx | 25 +- .../longline/GearUseFeaturesLonglineUIHandler.java | 9 +- .../longline/GearUseFeaturesLonglineUIModel.java | 10 +- .../table/impl/longline/HooksCompositionUI.jaxx | 20 +- .../impl/longline/HooksCompositionUIHandler.java | 8 +- .../impl/longline/HooksCompositionUIModel.java | 19 +- .../content/table/impl/longline/SensorUsedUI.jaxx | 18 +- .../table/impl/longline/SensorUsedUIHandler.java | 16 +- .../table/impl/longline/SensorUsedUIModel.java | 23 +- .../ui/content/table/impl/longline/TdrUI.jaxx | 27 +- .../content/table/impl/longline/TdrUIHandler.java | 13 +- .../ui/content/table/impl/longline/TdrUIModel.java | 5 +- .../table/impl/seine/AbstractSampleUIHandler.java | 6 +- .../impl/seine/GearUseFeaturesSeineTableModel.java | 8 +- .../table/impl/seine/GearUseFeaturesSeineUI.jaxx | 25 +- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 9 +- .../impl/seine/GearUseFeaturesSeineUIModel.java | 24 +- .../content/table/impl/seine/NonTargetCatchUI.jaxx | 45 +- .../table/impl/seine/NonTargetCatchUIHandler.java | 7 +- .../table/impl/seine/NonTargetCatchUIModel.java | 12 +- .../table/impl/seine/NonTargetSampleUI.jaxx | 15 +- .../table/impl/seine/NonTargetSampleUIHandler.java | 7 +- .../table/impl/seine/NonTargetSampleUIModel.java | 23 +- .../table/impl/seine/ObjectObservedSpeciesUI.jaxx | 31 +- .../impl/seine/ObjectObservedSpeciesUIHandler.java | 13 +- .../impl/seine/ObjectObservedSpeciesUIModel.java | 13 +- .../table/impl/seine/ObjectSchoolEstimateUI.jaxx | 31 +- .../impl/seine/ObjectSchoolEstimateUIHandler.java | 13 +- .../impl/seine/ObjectSchoolEstimateUIModel.java | 13 +- .../content/table/impl/seine/SchoolEstimateUI.jaxx | 24 +- .../table/impl/seine/SchoolEstimateUIHandler.java | 15 +- .../table/impl/seine/SchoolEstimateUIModel.java | 19 +- .../ui/content/table/impl/seine/TargetCatchUI.jaxx | 27 +- .../table/impl/seine/TargetCatchUIHandler.java | 13 +- .../table/impl/seine/TargetCatchUIModel.java | 27 +- .../table/impl/seine/TargetDiscardCatchUI.jaxx | 33 +- .../impl/seine/TargetDiscardCatchUIHandler.java | 7 +- .../impl/seine/TargetDiscardCatchUIModel.java | 27 +- .../table/impl/seine/TargetSampleCaptureUI.jaxx | 7 +- .../table/impl/seine/TargetSampleRejeteUI.jaxx | 7 +- .../content/table/impl/seine/TargetSampleUI.jaxx | 17 +- .../table/impl/seine/TargetSampleUIHandler.java | 10 +- .../table/impl/seine/TargetSampleUIModel.java | 4 +- .../swing/ui/storage/ObstunaAdminAction.java | 53 +- .../swing/ui/storage/StorageBackupUILauncher.java | 30 +- .../swing/ui/storage/StorageUIHandler.java | 192 ++-- .../swing/ui/storage/StorageUILauncher.java | 192 +--- .../swing/ui/storage/StorageUIModel.java | 105 +- .../swing/ui/storage/tabs/ChooseDbModeUI.jcss | 2 +- .../swing/ui/storage/tabs/ConfigUI.jaxx | 93 +- .../swing/ui/storage/tabs/DataSelectionModel.java | 619 ------------ .../swing/ui/storage/tabs/SelectDataUI.jaxx | 24 +- .../swing/ui/storage/tabs/SelectDataUI.jcss | 6 - .../swing/ui/storage/tabs/StorageTabUIHandler.java | 99 +- .../ui/tree/DataSelectionTreeSelectionModel.java | 709 -------------- .../ui/tree/NavigationTreeSelectionModel.java | 118 --- .../swing/ui/tree/ObserveDataProvider.java | 83 -- .../tree/ObserveNavigationTreeShowPopupAction.java | 54 +- .../swing/ui/tree/ObserveTreeBridge.java | 142 --- .../swing/ui/tree/ObserveTreeHelper.java | 633 ------------ .../swing/ui/tree/ObserveTreeNodeSupport.java | 39 + .../actions/ChangeActivityRouteActionListener.java | 25 +- .../actions/ChangeActivityTripActionListener.java | 25 +- .../actions/ChangeRouteTripActionListener.java | 25 +- .../actions/ChangeTripProgramActionListener.java | 23 +- .../ui/tree/actions/NodeChangeActionListener.java | 36 +- .../loadors/AbstractDataReferenceChildLoador.java | 39 - .../ui/tree/loadors/AbstractNodeChildLoador.java | 95 -- .../loadors/ActivityLonglineNodeChildLoador.java | 109 -- .../loadors/ActivityLonglinesNodeChildLoador.java | 64 -- .../tree/loadors/ActivitySeineNodeChildLoador.java | 97 -- .../loadors/ActivitySeinesNodeChildLoador.java | 66 -- .../loadors/FloatingObjectNodeChildLoador.java | 60 -- .../loadors/ProgramLonglineNodeChildLoador.java | 126 --- .../tree/loadors/ProgramSeineNodeChildLoador.java | 119 --- .../ui/tree/loadors/ReferenceNodeChildLoador.java | 80 -- .../swing/ui/tree/loadors/RootNodeChildLoador.java | 148 --- .../ui/tree/loadors/RoutesNodeChildLoador.java | 70 -- .../tree/loadors/SetLonglineNodeChildLoador.java | 67 -- .../ui/tree/loadors/SetSeineNodeChildLoador.java | 76 -- .../MoveActivityLonglineNodeMenuPopulator.java | 29 +- .../menu/MoveActivitySeineNodeMenuPopulator.java | 29 +- .../swing/ui/tree/menu/MoveNodeMenuPopulator.java | 18 +- .../ui/tree/menu/MoveRouteNodeMenuPopulator.java | 29 +- .../ui/tree/menu/MoveTripNodeMenuPopulator.java | 41 +- .../swing/ui/tree/navigation/NavigationTree.java | 524 ++++++++++ .../navigation/NavigationTreeCellRenderer.java | 69 ++ .../ui/tree/navigation/NavigationTreeHeader.jaxx | 45 + .../ui/tree/navigation/NavigationTreeHeader.jcss | 53 + .../navigation/NavigationTreeHeaderHandler.java | 106 ++ .../ui/tree/navigation/NavigationTreeModel.java | 148 +++ .../navigation/nodes/ClassNavigationTreeNode.java | 57 ++ .../nodes/NavigationTreeNodeSupport.java | 117 +++ .../nodes/ReferenceNavigationTreeNodeSupport.java | 45 + .../navigation/nodes/RootNavigationTreeNode.java | 42 + .../nodes/StringNavigationTreeNodeSupport.java | 52 + .../ActivitiesLonglineNavigationTreeNode.java | 57 ++ .../ActivityLonglineNavigationTreeNode.java | 71 ++ .../longline/CatchLonglineNavigationTreeNode.java | 28 + .../EncounterLonglineNavigationTreeNode.java | 28 + .../GearUseFeaturesLonglineNavigationTreeNode.java | 34 + .../ProgramLonglineNavigationTreeNode.java | 48 + .../SensorUsedLonglineNavigationTreeNode.java | 28 + ...etailCompositionLonglineNavigationTreeNode.java | 28 + ...lobalCompositionLonglineNavigationTreeNode.java | 28 + .../longline/SetLonglineNavigationTreeNode.java | 38 + .../longline/TdrLonglineNavigationTreeNode.java | 28 + .../longline/TripLonglineNavigationTreeNode.java | 47 + .../referential/ReferentialNavigationTreeNode.java | 59 ++ .../ReferentialsNavigationTreeNode.java | 51 + .../seine/ActivitiesSeineNavigationTreeNode.java | 62 ++ .../seine/ActivitySeineNavigationTreeNode.java | 56 ++ ...cardedTargetCatchesSeineNavigationTreeNode.java | 28 + ...cardedTargetSamplesSeineNavigationTreeNode.java | 28 + .../FloatingObjectSeineNavigationTreeNode.java | 35 + .../GearUseFeaturesSeineNavigationTreeNode.java | 34 + .../KeptTargetCatchesSeineNavigationTreeNode.java | 29 + .../KeptTargetSamplesSeineNavigationTreeNode.java | 28 + .../NonTargetCatchesSeineNavigationTreeNode.java | 28 + .../NoneTargetSamplesSeineNavigationTreeNode.java | 29 + .../seine/ProgramSeineNavigationTreeNode.java | 48 + .../nodes/seine/RouteSeineNavigationTreeNode.java | 44 + .../nodes/seine/RoutesSeineNavigationTreeNode.java | 62 ++ .../SchoolEstimatesSeineNavigationTreeNode.java | 28 + .../nodes/seine/SetSeineNavigationTreeNode.java | 41 + .../nodes/seine/TripSeineNavigationTreeNode.java | 48 + .../ui/tree/node/AbstrctReferenceNodeSupport.java | 116 --- .../swing/ui/tree/node/ActivityLonglineNode.java | 52 - .../swing/ui/tree/node/ActivitySeineNode.java | 52 - .../ui/tree/node/DataReferenceNodeSupport.java | 98 -- .../ui/tree/node/FloatingObjectSeineNode.java | 52 - .../swing/ui/tree/node/ObserveNode.java | 119 --- .../swing/ui/tree/node/ProgramLonglineNode.java | 71 -- .../swing/ui/tree/node/ProgramSeineNode.java | 69 -- .../tree/node/ReferentialReferenceNodeSupport.java | 85 -- .../swing/ui/tree/node/RouteSeineNode.java | 49 - .../swing/ui/tree/node/SetLonglineNode.java | 52 - .../swing/ui/tree/node/SetSeineNode.java | 52 - .../swing/ui/tree/node/TripLonglineNode.java | 50 - .../swing/ui/tree/node/TripSeineNode.java | 62 -- .../renderer/AbstractObserveTreeCellRenderer.java | 434 -------- .../renderer/DataSelectionTreeCellRenderer.java | 140 --- .../tree/renderer/NavigationTreeCellRenderer.java | 101 -- .../swing/ui/tree/selection/SelectionTree.java | 164 ++++ .../tree/selection/SelectionTreeCellRenderer.java | 39 + .../ui/tree/selection/SelectionTreeHeader.jaxx | 43 + .../selection/SelectionTreeHeader.jcss} | 42 +- .../tree/selection/SelectionTreeHeaderHandler.java | 96 ++ .../ui/tree/selection/SelectionTreeModel.java | 401 ++++++++ .../selection/nodes/ProgramSelectionTreeNode.java | 86 ++ .../nodes/ReferenceSelectionTreeNodeSupport.java | 52 + .../nodes/ReferentialSelectionTreeNode.java | 51 + .../nodes/ReferentialsSelectionTreeNode.java | 86 ++ .../selection/nodes/RootSelectionTreeNode.java | 61 ++ .../selection/nodes/SelectionTreeNodeSupport.java | 68 ++ .../nodes/TripLonglineSelectionTreeNode.java | 44 + .../nodes/TripSeineSelectionTreeNode.java | 45 + .../nodes/TripSelectionTreeNodeSupport.java | 27 + .../swing/ui/util/DecoratedNodeEntity.java | 6 +- .../ftl/dataSourceConnectionReport_en.ftl | 10 +- .../ftl/dataSourceConnectionReport_es.ftl | 10 +- .../ftl/dataSourceConnectionReport_fr.ftl | 10 +- .../i18n/application-swing_en_GB.properties | 3 + .../i18n/application-swing_es_ES.properties | 3 + .../i18n/application-swing_fr_FR.properties | 3 + .../v1/data/NavigationServiceController.java | 24 + application-web/src/main/resources/mapping | 1 + .../DataSourceMigrationForVersion_5_1.java | 1 + ...V5_1_19_ano_8554_brancheline_add_section-H2.sql | 3 + ...V5_1_19_ano_8554_brancheline_add_section-PG.sql | 3 + .../observe/ObserveTopiaApplicationContext.java | 52 +- .../fr/ird/observe/ObserveTopiaConfiguration.java | 12 +- .../observe/ObserveTopiaConfigurationFactory.java | 17 +- .../observe/ObserveTopiaPersistenceContext.java | 18 +- .../java/fr/ird/observe/RunScriptTopiaSqlWork.java | 11 +- .../fr/ird/observe/RunScriptsTopiaSqlWork.java | 6 +- .../entities/longline/TripLonglineImpl.java | 11 + .../entities/longline/TripLonglineTopiaDao.java | 7 +- .../observe/entities/referentiel/ProgramImpl.java | 16 +- .../entities/referentiel/ProgramTopiaDao.java | 121 --- .../ird/observe/entities/seine/TripSeineImpl.java | 4 +- entities/src/main/xmi/observe-common.zargo | Bin 45678 -> 45811 bytes entities/src/main/xmi/observe-longline.zargo | Bin 93824 -> 95950 bytes entities/src/main/xmi/observe.ini | 1 + ...ObserveDataSourceConfigurationTopiaSupport.java | 11 + .../dto/reference/DataReferenceSetDefinitions.java | 1 + .../ReferentialReferenceSetDefinitions.java | 3 +- .../services/dto/longline/TripLonglineHelper.java | 14 + .../services/dto/referential/ProgramHelper.java | 6 +- .../seine/VesselActivitySeineHelper.java | 26 +- .../services/dto/seine/ActivitySeineDto.java | 25 +- .../services/dto/seine/TripSeineHelper.java | 13 + .../src/main/xmi/observe-services-dto-common.zargo | Bin 48945 -> 49022 bytes .../main/xmi/observe-services-dto-longline.zargo | Bin 67946 -> 68017 bytes .../topia/binder/BinderEngineInitializer.java | 230 ++--- .../{ => longline}/ActivityLonglineBinder.java | 3 +- .../ActivityLonglineEncouterDtoBinder.java | 3 +- .../ActivityLonglineSensorUsedDtoBinder.java | 3 +- .../ActivityLonglineStubDtoBinder.java | 3 +- .../{ => longline}/BaitsCompositionBinder.java | 3 +- .../binder/data/{ => longline}/BasketBinder.java | 3 +- .../data/{ => longline}/BranchlineBinder.java | 3 +- .../BranchlinesCompositionBinder.java | 3 +- .../data/{ => longline}/CatchLonglineBinder.java | 3 +- .../data/{ => longline}/EncounterBinder.java | 3 +- .../FloatlinesCompositionBinder.java | 3 +- .../GearUseFeaturesLonglineBinder.java | 3 +- .../GearUseFeaturesMeasurementLonglineBinder.java | 3 +- .../{ => longline}/HooksCompositionBinder.java | 3 +- .../binder/data/{ => longline}/SectionBinder.java | 3 +- .../data/{ => longline}/SensorUsedBinder.java | 3 +- .../data/{ => longline}/SetLonglineBinder.java | 3 +- .../{ => longline}/SetLonglineCatchDtoBinder.java | 3 +- .../SetLonglineDetailCompositionDtoBinder.java | 3 +- .../SetLonglineGlobalCompositionDtoBinder.java | 3 +- .../{ => longline}/SetLonglineStubDtoBinder.java | 3 +- .../{ => longline}/SetLonglineTdrDtoBinder.java | 3 +- .../data/{ => longline}/SizeMeasureBinder.java | 3 +- .../binder/data/{ => longline}/TdrBinder.java | 3 +- .../TripLonglineActivityDtoBinder.java | 3 +- .../data/{ => longline}/TripLonglineBinder.java | 7 +- .../TripLonglineGearUseDtoBinder.java | 3 +- .../data/{ => longline}/WeightMeasureBinder.java | 3 +- .../data/{ => seine}/ActivitySeineBinder.java | 3 +- .../{ => seine}/ActivitySeineStubDtoBinder.java | 3 +- .../data/{ => seine}/FloatingObjectBinder.java | 3 +- .../FloatingObjectObservedSpeciesDtoBinder.java | 3 +- .../FloatingObjectSchoolEstimateDtoBinder.java | 3 +- .../FloatingObjectTransmittingBuoyDtoBinder.java | 3 +- .../GearUseFeaturesMeasurementSeineBinder.java | 3 +- .../{ => seine}/GearUseFeaturesSeineBinder.java | 3 +- .../data/{ => seine}/NonTargetCatchBinder.java | 3 +- .../data/{ => seine}/NonTargetLengthBinder.java | 3 +- .../data/{ => seine}/NonTargetSampleBinder.java | 3 +- .../{ => seine}/ObjectObservedSpeciesBinder.java | 3 +- .../{ => seine}/ObjectSchoolEstimateBinder.java | 3 +- .../topia/binder/data/{ => seine}/RouteBinder.java | 3 +- .../data/{ => seine}/RouteStubDtoBinder.java | 3 +- .../data/{ => seine}/SchoolEstimateBinder.java | 3 +- .../binder/data/{ => seine}/SetSeineBinder.java | 3 +- .../SetSeineNonTargetCatchDtoBinder.java | 3 +- .../SetSeineSchoolEstimateDtoBinder.java | 3 +- .../{ => seine}/SetSeineTargetCatchDtoBinder.java | 3 +- .../binder/data/{ => seine}/TargetCatchBinder.java | 3 +- .../data/{ => seine}/TargetLengthBinder.java | 3 +- .../data/{ => seine}/TargetSampleBinder.java | 3 +- .../data/{ => seine}/TransmittingBuoyBinder.java | 3 +- .../binder/data/{ => seine}/TripSeineBinder.java | 3 +- .../{ => seine}/TripSeineGearUseDtoBinder.java | 3 +- .../referential/{ => common}/CountryBinder.java | 3 +- .../referential/{ => common}/FpaZoneBinder.java | 3 +- .../referential/{ => common}/GearBinder.java | 3 +- .../{ => common}/GearCaracteristicBinder.java | 3 +- .../{ => common}/GearCaracteristicTypeBinder.java | 3 +- .../referential/{ => common}/HarbourBinder.java | 3 +- .../{ => common}/LengthLengthParameterBinder.java | 3 +- .../{ => common}/LengthWeightParameterBinder.java | 3 +- .../referential/{ => common}/OceanBinder.java | 3 +- .../referential/{ => common}/OrganismBinder.java | 3 +- .../referential/{ => common}/PersonBinder.java | 3 +- .../referential/{ => common}/ProgramBinder.java | 12 +- .../binder/referential/{ => common}/SexBinder.java | 3 +- .../referential/{ => common}/ShipOwnerBinder.java | 3 +- .../{ => common}/SizeMeasureTypeBinder.java | 3 +- .../referential/{ => common}/SpeciesBinder.java | 3 +- .../{ => common}/SpeciesGroupBinder.java | 3 +- .../{ => common}/SpeciesListBinder.java | 3 +- .../referential/{ => common}/VesselBinder.java | 3 +- .../{ => common}/VesselSizeCategoryBinder.java | 3 +- .../referential/{ => common}/VesselTypeBinder.java | 3 +- .../{ => common}/WeightMeasureTypeBinder.java | 3 +- .../{ => longline}/BaitHaulingStatusBinder.java | 3 +- .../{ => longline}/BaitSettingStatusBinder.java | 3 +- .../referential/{ => longline}/BaitTypeBinder.java | 3 +- .../{ => longline}/CatchFateLonglineBinder.java | 3 +- .../{ => longline}/EncounterTypeBinder.java | 3 +- .../{ => longline}/HealthnessBinder.java | 3 +- .../{ => longline}/HookPositionBinder.java | 3 +- .../referential/{ => longline}/HookSizeBinder.java | 3 +- .../referential/{ => longline}/HookTypeBinder.java | 3 +- .../ItemHorizontalPositionBinder.java | 3 +- .../{ => longline}/ItemVerticalPositionBinder.java | 3 +- .../{ => longline}/LightsticksColorBinder.java | 3 +- .../{ => longline}/LightsticksTypeBinder.java | 3 +- .../referential/{ => longline}/LineTypeBinder.java | 3 +- .../{ => longline}/MaturityStatusBinder.java | 3 +- .../{ => longline}/MitigationTypeBinder.java | 3 +- .../{ => longline}/SensorBrandBinder.java | 3 +- .../{ => longline}/SensorDataFormatBinder.java | 3 +- .../{ => longline}/SensorTypeBinder.java | 3 +- .../{ => longline}/SettingShapeBinder.java | 3 +- .../{ => longline}/StomacFullnessBinder.java | 3 +- .../referential/{ => longline}/TripTypeBinder.java | 3 +- .../VesselActivityLonglineBinder.java | 3 +- .../{ => seine}/DetectionModeBinder.java | 3 +- .../referential/{ => seine}/ObjectFateBinder.java | 3 +- .../{ => seine}/ObjectOperationBinder.java | 3 +- .../referential/{ => seine}/ObjectTypeBinder.java | 3 +- .../{ => seine}/ObservedSystemBinder.java | 3 +- .../{ => seine}/ReasonForDiscardBinder.java | 3 +- .../{ => seine}/ReasonForNoFishingBinder.java | 3 +- .../{ => seine}/ReasonForNullSetBinder.java | 3 +- .../referential/{ => seine}/SpeciesFateBinder.java | 3 +- .../{ => seine}/SpeciesStatusBinder.java | 3 +- .../{ => seine}/SurroundingActivityBinder.java | 3 +- .../TransmittingBuoyOperationBinder.java | 3 +- .../{ => seine}/TransmittingBuoyTypeBinder.java | 3 +- .../{ => seine}/VesselActivitySeineBinder.java | 3 +- .../{ => seine}/WeightCategoryBinder.java | 3 +- .../binder/referential/{ => seine}/WindBinder.java | 3 +- .../services/topia/ObserveServiceContextTopia.java | 33 +- .../services/topia/ObserveServiceFactoryTopia.java | 3 - .../ObserveTopiaApplicationContextFactory.java | 15 +- .../topia/entity/BasketEntitiesExtractor.java | 59 -- .../topia/entity/BranchlineEntitiesExtractor.java | 66 -- .../services/topia/entity/EntitiesExtractor.java | 76 -- .../services/topia/entity/EntitiesSetFactory.java | 310 ------ .../topia/entity/SectionEntitiesExtractor.java | 47 - .../topia/entity/SpeciesListEntitiesExtractor.java | 59 -- .../entity/SpeciesListOceanEntitiesExtractor.java | 58 -- .../topia/service/DataSourceServiceTopia.java | 2 + .../service/data/ImportTripScriptTopiaSqlWork.java | 14 +- .../topia/service/data/NavigationServiceTopia.java | 79 ++ .../service/data/TripManagementServiceTopia.java | 9 +- .../data}/TripMapDtoFactory.java | 24 +- .../data/longline/BranchlineServiceTopia.java | 1 + .../SetLonglineDetailCompositionServiceTopia.java | 23 +- .../data/longline/TripLonglineServiceTopia.java | 4 +- .../service/data/seine/TripSeineServiceTopia.java | 5 +- .../service/sql/SqlScriptProducerServiceTopia.java | 9 +- .../observe/services/ObserveServicesProvider.java | 3 + .../services/service/data/NavigationRequest.java | 30 + .../services/service/data/NavigationResult.java | 40 + .../services/service/data/NavigationService.java | 15 + .../persistence/metadata/TopiaMetadataEntity.java | 43 +- .../metadata/TopiaMetadataModelVisitor.java | 3 + .../topia/service/sql/batch/SqlRequests.java | 108 +- .../sql/batch/TopiaSqlBatchServiceImpl.java | 8 +- .../sql/batch/actions/AbstractSchemaAction.java | 4 +- .../sql/batch/actions/AbstractSqlAction.java | 15 +- .../sql/batch/actions/AbstractSqlRequest.java | 7 - .../sql/batch/actions/AbstractTablesAction.java | 48 +- .../sql/batch/actions/CreateSchemaAction.java | 14 +- .../sql/batch/actions/DeleteTablesAction.java | 10 +- .../sql/batch/actions/DropSchemaAction.java | 15 +- .../sql/batch/actions/ReplicateTablesAction.java | 6 +- .../sql/batch/actions/UpdateTablesAction.java | 10 +- .../service/sql/batch/tables/TopiaSqlTables.java | 25 +- .../sql/batch/tables/TopiaSqlTablesFactory.java | 12 +- .../templates/TopiaMetadataModelGenerator.java | 19 +- 639 files changed, 10470 insertions(+), 15126 deletions(-) create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/BorderFocusListener.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/AbstractContentUIAction.java rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/CancelCreateUIAction.java (60%) create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseOpenUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CreateOpenUIAction.java rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/DeleteDataUIAction.java (71%) rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/DeleteReferenceUIAction.java (62%) create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteTableEntryUIAction.java rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/MoveActivityLonglinesUIAction.java (61%) rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/MoveActivitySeinesUIAction.java (60%) rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/MoveRoutesUIAction.java (64%) rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/MoveTripLonglinesUIAction.java (85%) rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/MoveTripSeinesUIAction.java (85%) rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/MoveTripsUIAction.java (61%) create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/NewTableEntryUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ReOpenUIAction.java rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/ResetEditUIAction.java (66%) create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetTableEntryUIAction.java rename application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/{shared => content}/SaveEditUIAction.java (66%) create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveTableEntryUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/AbstractGlobalUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ChangeFocusGlobalUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/DeleteDataGlobalUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/NewNextDataGlobalUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/OpenCloseDataGlobalUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ResetDataGlobalUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/SaveDataGlobalUIAction.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java copy application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/{impl/seine/VesselActivitySeineUI.jaxx => ContentI18nReferenceUI.jaxx} (54%) create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentI18nReferenceUI.jcss delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/I18nReferenceEntity.jcss delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/NeedCommentReferenceEntity.jcss delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/DataSelectionModel.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/DataSelectionTreeSelectionModel.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/NavigationTreeSelectionModel.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveDataProvider.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeBridge.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeNodeSupport.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/AbstractDataReferenceChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/AbstractNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivityLonglineNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivitySeineNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivitySeinesNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/FloatingObjectNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramLonglineNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramSeineNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ReferenceNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/RootNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/RoutesNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/SetLonglineNodeChildLoador.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/SetSeineNodeChildLoador.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jaxx create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jcss create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeaderHandler.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ClassNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/StringNavigationTreeNodeSupport.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialsNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/FloatingObjectSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SetSeineNavigationTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ActivityLonglineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ActivitySeineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/DataReferenceNodeSupport.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/FloatingObjectSeineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ObserveNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramLonglineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramSeineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ReferentialReferenceNodeSupport.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/RouteSeineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/SetLonglineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/SetSeineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/TripLonglineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/TripSeineNode.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/AbstractObserveTreeCellRenderer.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/DataSelectionTreeCellRenderer.java delete mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/NavigationTreeCellRenderer.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeCellRenderer.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeader.jaxx copy application-swing/src/main/java/fr/ird/observe/application/swing/ui/{content/table/CommonTable.jcss => tree/selection/SelectionTreeHeader.jcss} (59%) create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeaderHandler.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferenceSelectionTreeNodeSupport.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferentialSelectionTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferentialsSelectionTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/SelectionTreeNodeSupport.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripLonglineSelectionTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripSeineSelectionTreeNode.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripSelectionTreeNodeSupport.java create mode 100644 application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/NavigationServiceController.java create mode 100644 entities-migration/src/main/resources/db/migration/5.1/V5_1_19_ano_8554_brancheline_add_section-H2.sql create mode 100644 entities-migration/src/main/resources/db/migration/5.1/V5_1_19_ano_8554_brancheline_add_section-PG.sql delete mode 100644 entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramTopiaDao.java create mode 100644 services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java create mode 100644 services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/ActivityLonglineBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/ActivityLonglineEncouterDtoBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/ActivityLonglineSensorUsedDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/ActivityLonglineStubDtoBinder.java (93%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/BaitsCompositionBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/BasketBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/BranchlineBinder.java (97%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/BranchlinesCompositionBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/CatchLonglineBinder.java (98%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/EncounterBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/FloatlinesCompositionBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/GearUseFeaturesLonglineBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/GearUseFeaturesMeasurementLonglineBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/HooksCompositionBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/SectionBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/SensorUsedBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/SetLonglineBinder.java (98%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/SetLonglineCatchDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/SetLonglineDetailCompositionDtoBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/SetLonglineGlobalCompositionDtoBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/SetLonglineStubDtoBinder.java (93%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/SetLonglineTdrDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/SizeMeasureBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/TdrBinder.java (98%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/TripLonglineActivityDtoBinder.java (93%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/TripLonglineBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/TripLonglineGearUseDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => longline}/WeightMeasureBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/ActivitySeineBinder.java (98%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/ActivitySeineStubDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/FloatingObjectBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/FloatingObjectObservedSpeciesDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/FloatingObjectSchoolEstimateDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/FloatingObjectTransmittingBuoyDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/GearUseFeaturesMeasurementSeineBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/GearUseFeaturesSeineBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/NonTargetCatchBinder.java (97%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/NonTargetLengthBinder.java (97%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/NonTargetSampleBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/ObjectObservedSpeciesBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/ObjectSchoolEstimateBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/RouteBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/RouteStubDtoBinder.java (93%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/SchoolEstimateBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/SetSeineBinder.java (97%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/SetSeineNonTargetCatchDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/SetSeineSchoolEstimateDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/SetSeineTargetCatchDtoBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/TargetCatchBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/TargetLengthBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/TargetSampleBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/TransmittingBuoyBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/TripSeineBinder.java (97%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/{ => seine}/TripSeineGearUseDtoBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/CountryBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/FpaZoneBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/GearBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/GearCaracteristicBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/GearCaracteristicTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/HarbourBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/LengthLengthParameterBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/LengthWeightParameterBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/OceanBinder.java (93%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/OrganismBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/PersonBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/ProgramBinder.java (91%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/SexBinder.java (93%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/ShipOwnerBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/SizeMeasureTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/SpeciesBinder.java (96%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/SpeciesGroupBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/SpeciesListBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/VesselBinder.java (97%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/VesselSizeCategoryBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/VesselTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => common}/WeightMeasureTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/BaitHaulingStatusBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/BaitSettingStatusBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/BaitTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/CatchFateLonglineBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/EncounterTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/HealthnessBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/HookPositionBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/HookSizeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/HookTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/ItemHorizontalPositionBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/ItemVerticalPositionBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/LightsticksColorBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/LightsticksTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/LineTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/MaturityStatusBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/MitigationTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/SensorBrandBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/SensorDataFormatBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/SensorTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/SettingShapeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/StomacFullnessBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/TripTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => longline}/VesselActivityLonglineBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/DetectionModeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/ObjectFateBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/ObjectOperationBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/ObjectTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/ObservedSystemBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/ReasonForDiscardBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/ReasonForNoFishingBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/ReasonForNullSetBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/SpeciesFateBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/SpeciesStatusBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/SurroundingActivityBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/TransmittingBuoyOperationBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/TransmittingBuoyTypeBinder.java (94%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/VesselActivitySeineBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/WeightCategoryBinder.java (95%) rename services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/{ => seine}/WindBinder.java (94%) delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/BasketEntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/BranchlineEntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesSetFactory.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/SectionEntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListEntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListOceanEntitiesExtractor.java create mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/service/data/NavigationServiceTopia.java rename services-topia/src/main/java/fr/ird/observe/services/topia/{entity => service/data}/TripMapDtoFactory.java (75%) create mode 100644 services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java create mode 100644 services/src/main/java/fr/ird/observe/services/service/data/NavigationResult.java create mode 100644 services/src/main/java/fr/ird/observe/services/service/data/NavigationService.java -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 150fc0385c19287a4ea9b5df98258763e845cde2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 24 23:56:12 2016 +0100 Gérer les associations ordonnées (avec colonne _idx) lors de la réplication des entités --- .../persistence/metadata/TopiaMetadataEntity.java | 43 +++++++--------------- .../metadata/TopiaMetadataModelVisitor.java | 3 ++ .../sql/batch/actions/AbstractTablesAction.java | 1 - .../templates/TopiaMetadataModelGenerator.java | 19 ++++++++-- 4 files changed, 32 insertions(+), 34 deletions(-) diff --git a/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataEntity.java b/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataEntity.java index e2ecf98..5acfff6 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataEntity.java +++ b/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataEntity.java @@ -23,7 +23,6 @@ package org.nuiton.topia.persistence.metadata; */ import com.google.common.base.MoreObjects; -import com.google.common.collect.ImmutableSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; @@ -91,10 +90,14 @@ public class TopiaMetadataEntity { */ protected final Map<String, String> properties = new LinkedHashMap<>(); /** - * Le dictionnaire des propriétés de type {@link Blob} + * La liste des propriétés de type {@link Blob} */ protected final Set<String> blobProperties = new HashSet<>(); /** + * La liste des colomnes supplémentaires ajoutée. + */ + protected final Set<String> extraColumnNames = new HashSet<>(); + /** * Le nom des colunnes correspondants aux propriétés de l'entité. * <b>Note: </b> On ne conserve que les correspondances qui diffèrent du nom de la propriété. * @@ -140,10 +143,6 @@ public class TopiaMetadataEntity { .toString(); } - public boolean withParent() { - return parent != null; - } - public String getParent() { return parent; } @@ -177,6 +176,7 @@ public class TopiaMetadataEntity { allDbColumnNames.add(TopiaEntity.PROPERTY_TOPIA_ID.toLowerCase()); allDbColumnNames.add(TopiaEntity.PROPERTY_TOPIA_CREATE_DATE.toLowerCase()); allDbColumnNames.add(TopiaEntity.PROPERTY_TOPIA_VERSION.toLowerCase()); + allDbColumnNames.addAll(extraColumnNames); } return allDbColumnNames; } @@ -205,17 +205,8 @@ public class TopiaMetadataEntity { return properties; } - public static final Set<String> PRIMITIVE_TYPES = ImmutableSet.of("byte", "boolean", "char", "int", "long", "float", "double"); - - public Set<String> getPrimitivePropertyNames() { - Set<String> names = new LinkedHashSet<>(); - for (Map.Entry<String, String> entry : properties.entrySet()) { - String propertyType = entry.getValue(); - if (PRIMITIVE_TYPES.contains(propertyType)) { - names.add(entry.getKey()); - } - } - return names; + public Set<String> getExtraColumnNames() { + return extraColumnNames; } public Set<String> getPrimitivePropertyNames(String primitiveType) { @@ -263,6 +254,10 @@ public class TopiaMetadataEntity { addDbColumnName(name, dbColumnName); } + public void addExtraColumn(String extraColumn) { + extraColumnNames.add(extraColumn); + } + public void addOneToManyAssociationInverse(TopiaMetadataEntity associationClazz, String name, String dbColumnName) { log.debug(getType() + "/" + name + "(" + dbColumnName + ") →" + associationClazz.getType()); oneToManyAssociationInverses.add(name); @@ -297,19 +292,6 @@ public class TopiaMetadataEntity { addDbColumnName(name, dbColumnName); } - public TopiaMetadataEntity copy() { - TopiaMetadataEntity copy = new TopiaMetadataEntity(parent, type, dbSchemaName, dbTableName); - copy.oneToManyAssociations.putAll(oneToManyAssociations); - copy.oneToManyAssociationInverses.addAll(oneToManyAssociationInverses); - copy.reversedAssociations.putAll(reversedAssociations); - copy.manyToManyAssociations.putAll(manyToManyAssociations); - copy.manyToOneAssociations.putAll(manyToOneAssociations); - copy.properties.putAll(properties); - copy.dbColumnsName.putAll(dbColumnsName); - copy.dbManyToManyAssociationsTableName.putAll(dbManyToManyAssociationsTableName); - return copy; - } - public void putAll(TopiaMetadataEntity metadataEntity) { metadataEntity.getOneToManyAssociations().putAll(getOneToManyAssociations()); metadataEntity.getOneToManyAssociationInverses().addAll(getOneToManyAssociationInverses()); @@ -317,6 +299,7 @@ public class TopiaMetadataEntity { metadataEntity.getManyToManyAssociations().putAll(getManyToManyAssociations()); metadataEntity.getManyToOneAssociations().putAll(getManyToOneAssociations()); metadataEntity.getProperties().putAll(getProperties()); + metadataEntity.getExtraColumnNames().addAll(getExtraColumnNames()); metadataEntity.getDbColumnsName().putAll(getDbColumnsName()); metadataEntity.getDbColumnsName().putAll(getDbManyToManyAssociationsTableName()); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataModelVisitor.java b/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataModelVisitor.java index 081660c..293e5f3 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataModelVisitor.java +++ b/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataModelVisitor.java @@ -210,6 +210,9 @@ public interface TopiaMetadataModelVisitor { } else { prefix += " "; appendPrefix("E → ").append(metadataEntity).append(eol); + if (!metadataEntity.getExtraColumnNames().isEmpty()) { + appendPrefix("Extra column names: ").append(metadataEntity.getExtraColumnNames()).append(eol); + } } } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java index d084f12..a3ee8bc 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java @@ -126,7 +126,6 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte if (table.isAssociationTable()) { authorizedColumnNames = new TreeSet<>(); - String entityType = table.getAssociationMetadataEntity().getType(); TopiaMetadataEntity entity = table.getAssociationMetadataEntity(); authorizedColumnNames.addAll(entity.getManyToManyAssociations().entrySet().stream() .filter(entry -> entry.getValue().equals(metadataEntity.getType())) diff --git a/topia-templates-extension/src/main/java/org/nuiton/topia/templates/TopiaMetadataModelGenerator.java b/topia-templates-extension/src/main/java/org/nuiton/topia/templates/TopiaMetadataModelGenerator.java index 9271d54..3151968 100644 --- a/topia-templates-extension/src/main/java/org/nuiton/topia/templates/TopiaMetadataModelGenerator.java +++ b/topia-templates-extension/src/main/java/org/nuiton/topia/templates/TopiaMetadataModelGenerator.java @@ -28,6 +28,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.EugeneCoreTagValues; import org.nuiton.eugene.GeneratorUtil; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAttribute; @@ -62,6 +63,7 @@ public class TopiaMetadataModelGenerator extends ObjectModelGenerator { protected TopiaTemplateHelper templateHelper; protected TopiaHibernateTagValues topiaHibernateTagValues; + protected EugeneCoreTagValues eugeneCoreTagValues; public TopiaTemplateHelper getTemplateHelper() { if (templateHelper == null) { @@ -154,7 +156,7 @@ public class TopiaMetadataModelGenerator extends ObjectModelGenerator { Optional<TopiaMetadataEntity> optionalClazz = metadataModel.getOptionalEntity(entityClassName); if (optionalClazz.isPresent()) { - metadataEntity = optionalClazz.get().copy(); + metadataEntity = optionalClazz.get(); } else { @@ -231,7 +233,7 @@ public class TopiaMetadataModelGenerator extends ObjectModelGenerator { TopiaMetadataEntity attributeClazz; if (optionalAttributeClass.isPresent()) { - attributeClazz = optionalAttributeClass.get().copy(); + attributeClazz = optionalAttributeClass.get(); } else { attributeClazz = buildMetadataEntity(attributeClass, metadataModel, oneToManyAssociationInverses); } @@ -245,9 +247,20 @@ public class TopiaMetadataModelGenerator extends ObjectModelGenerator { } else { // one to many + boolean ordered = EugeneCoreTagValues.isOrdered(attr); + if (ordered) { + String extraColumn = templateHelper.getReverseDbName(attr); + if (extraColumn==null) { + extraColumn = entityClassName.toLowerCase(); + } + extraColumn+="_idx"; + if (log.isInfoEnabled()) { + log.info("Found ordered "+attr+" -> "+extraColumn); + } + attributeClazz.addExtraColumn(extraColumn); + } metadataEntity.addOneToManyAssociation(attributeClazz, name, attrColumn); oneToManyAssociationInverses.put(attributeClazz.getType(), metadataEntity.getType()); - } } else { -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 946c8f9015acc618731f5857b9ca68df48c0dba8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:14:26 2016 +0100 refs #8429 revue des nœud de chargement et utilisation de NavigationService --- .../swing/ui/tree/navigation/NavigationTree.java | 91 ++++-------- .../navigation/NavigationTreeCellRenderer.java | 165 ++------------------- .../ui/tree/navigation/NavigationTreeHeader.jaxx | 45 ++++++ .../ui/tree/navigation/NavigationTreeHeader.jcss | 53 +++++++ .../navigation/NavigationTreeHeaderHandler.java | 106 +++++++++++++ .../ui/tree/navigation/NavigationTreeModel.java | 87 ++++++++--- .../nodes/ReferenceNavigationTreeNodeSupport.java | 2 +- .../navigation/nodes/RootNavigationTreeNode.java | 45 +----- .../ActivitiesLonglineNavigationTreeNode.java | 13 ++ .../ActivityLonglineNavigationTreeNode.java | 35 +++-- .../GearUseFeaturesLonglineNavigationTreeNode.java | 6 + .../ProgramLonglineNavigationTreeNode.java | 23 +-- .../longline/TripLonglineNavigationTreeNode.java | 16 +- .../seine/ActivitiesSeineNavigationTreeNode.java | 18 ++- .../seine/ActivitySeineNavigationTreeNode.java | 30 ++-- .../GearUseFeaturesSeineNavigationTreeNode.java | 7 + .../seine/ProgramSeineNavigationTreeNode.java | 24 +-- .../nodes/seine/RouteSeineNavigationTreeNode.java | 10 +- .../nodes/seine/RoutesSeineNavigationTreeNode.java | 20 ++- .../nodes/seine/TripSeineNavigationTreeNode.java | 16 +- .../ui/tree/selection/SelectionTreeModel.java | 66 ++++++++- .../selection/nodes/ProgramSelectionTreeNode.java | 5 +- .../selection/nodes/RootSelectionTreeNode.java | 54 ------- 23 files changed, 536 insertions(+), 401 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java index aacee98..84e0c71 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java @@ -1,6 +1,5 @@ package fr.ird.observe.application.swing.ui.tree.navigation; -import com.google.common.collect.Lists; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; @@ -40,8 +39,8 @@ import javax.swing.SwingUtilities; import javax.swing.event.TreeExpansionEvent; import javax.swing.event.TreeWillExpandListener; import javax.swing.tree.ExpandVetoException; -import javax.swing.tree.TreeCellRenderer; import javax.swing.tree.TreePath; +import javax.swing.tree.TreeSelectionModel; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -61,7 +60,6 @@ public class NavigationTree extends JXTree { /** Logger */ private static final Log log = LogFactory.getLog(NavigationTree.class); - public static void sortPrograms(List<ReferentialReference<ProgramDto>> data) { ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, data); } @@ -70,6 +68,8 @@ public class NavigationTree extends JXTree { super(new NavigationTreeModel()); setLargeModel(true); setRootVisible(false); + getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + addTreeWillExpandListener(new TreeWillExpandListener() { @Override @@ -77,7 +77,7 @@ public class NavigationTree extends JXTree { if (!(getModel() instanceof NavigationTreeModel)) { return; } - NavigationTreeModel model = getNavigationTreeModel(); + NavigationTreeModel model = getTreeModel(); NavigationTreeNodeSupport node = (NavigationTreeNodeSupport) event.getPath().getLastPathComponent(); model.open(node); @@ -113,7 +113,7 @@ public class NavigationTree extends JXTree { return; } TreePath path = e.getPath(); - getNavigationTreeModel().open((NavigationTreeNodeSupport) path.getLastPathComponent()); + getTreeModel().open((NavigationTreeNodeSupport) path.getLastPathComponent()); }); NavigationTreeCellRenderer renderer = new NavigationTreeCellRenderer(); @@ -121,7 +121,7 @@ public class NavigationTree extends JXTree { } - public NavigationTreeModel getNavigationTreeModel() { + public NavigationTreeModel getTreeModel() { return (NavigationTreeModel) getModel(); } @@ -157,8 +157,8 @@ public class NavigationTree extends JXTree { if (log.isDebugEnabled()) { log.debug("try to select node from ids " + Arrays.toString(path)); } - RootNavigationTreeNode root = this.getNavigationTreeModel().getRoot(); - NavigationTreeNodeSupport node = NavigationTreeNodeSupport.findNode(getNavigationTreeModel(), root, path); + RootNavigationTreeNode root = this.getTreeModel().getRoot(); + NavigationTreeNodeSupport node = NavigationTreeNodeSupport.findNode(getTreeModel(), root, path); if (log.isDebugEnabled()) { log.debug("selected node [" + node + "]"); } @@ -177,42 +177,26 @@ public class NavigationTree extends JXTree { if (log.isDebugEnabled()) { log.debug("try to select node [" + node + "]"); } - TreePath path = new TreePath(getNavigationTreeModel().getPathToRoot(node)); + TreePath path = new TreePath(getTreeModel().getPathToRoot(node)); - addSelectionPath(path); + setSelectionPath(path); scrollPathToVisible(path); } public NavigationTreeNodeSupport getChild(NavigationTreeNodeSupport node, String id) { - return node.findNodeById(getNavigationTreeModel(), id); + return node.findNodeById(getTreeModel(), id); } - public NavigationTreeNodeSupport removeNode(NavigationTreeNodeSupport node) { - getNavigationTreeModel().removeNodeFromParent(node); - return null; + public void removeNode(NavigationTreeNodeSupport node) { + getTreeModel().removeNodeFromParent(node); } public void insertNode(NavigationTreeNodeSupport parentNode, NavigationTreeNodeSupport node, int position) { - getNavigationTreeModel().insertNodeInto(node, parentNode, position); + getTreeModel().insertNodeInto(node, parentNode, position); } public void clearModel() { - - NavigationTreeModel treeModel = new NavigationTreeModel(); - treeModel.setLoadLongline(false); - treeModel.setLoadReferential(false); - treeModel.setLoadSeine(false); - treeModel.setRoot(new RootNavigationTreeNode()); - setModel(treeModel); - } - - public void createModel() { - NavigationTreeModel treeModel = new NavigationTreeModel(); - treeModel.setLoadLongline(true); - treeModel.setLoadReferential(true); - treeModel.setLoadSeine(true); - treeModel.setRoot(new RootNavigationTreeNode()); - setModel(treeModel); + getTreeModel().setRoot(new RootNavigationTreeNode()); } /** @@ -253,7 +237,7 @@ public class NavigationTree extends JXTree { // on selectionne le premier noeud de $root - NavigationTreeNodeSupport node = getNavigationTreeModel().getRoot(); + NavigationTreeNodeSupport node = getTreeModel().getRoot(); if (!node.isLeaf()) { node = (NavigationTreeNodeSupport) node.getFirstChild(); } @@ -291,7 +275,7 @@ public class NavigationTree extends JXTree { // 3. Let's re-generate node's children by populating the node : this will call the child loaders. node.reload(); - node.populateChilds(getNavigationTreeModel()); + node.populateChilds(getTreeModel()); if (expandNode) { @@ -302,17 +286,17 @@ public class NavigationTree extends JXTree { } } - public void reloadNode(NavigationTreeNodeSupport node, boolean deep) { + public void reloadNode(NavigationTreeNodeSupport<?> node, boolean deep) { if (log.isDebugEnabled()) { log.debug("Will refresh (deep ? " + deep + ") node " + node); } - getNavigationTreeModel().nodeChanged(node); + getTreeModel().nodeChanged(node); if (deep) { // repaint childs nodes - Enumeration<NavigationTreeNodeSupport> e = node.children(); + Enumeration<NavigationTreeNodeSupport<?>> e = node.children(); while (e.hasMoreElements()) { - NavigationTreeNodeSupport child = e.nextElement(); + NavigationTreeNodeSupport<?> child = e.nextElement(); reloadNode(child, true); } } @@ -487,7 +471,7 @@ public class NavigationTree extends JXTree { ObserveSwingDataSource mainDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); Set<ReferentialReference<ProgramDto>> programs = mainDataSource.getReferentialReferences(ProgramDto.class); - List<ReferentialReference<ProgramDto>> data = Lists.newArrayList(programs); + List<ReferentialReference<ProgramDto>> data = new ArrayList<>(programs); int newIndex = 0; if (CollectionUtils.isNotEmpty(data)) { sortPrograms(data); @@ -496,9 +480,9 @@ public class NavigationTree extends JXTree { NavigationTreeNodeSupport result; if (ProgramHelper.isProgramLongline(bean)) { - result = new ProgramLonglineNavigationTreeNode(bean); + result = new ProgramLonglineNavigationTreeNode(bean, Collections.emptyList()); } else { - result = new ProgramSeineNavigationTreeNode(bean); + result = new ProgramSeineNavigationTreeNode(bean, Collections.emptyList()); } insertNode(getRootNode(), result, newIndex); return result; @@ -520,22 +504,8 @@ public class NavigationTree extends JXTree { // refreshNode(result, false); } - public void removeTrip(ReferentialReference<ProgramDto> program, DataReference trip) { - - RootNavigationTreeNode rootNode = getRootNode(); - NavigationTreeNodeSupport programNode = getChild(rootNode, program.getId()); - Objects.requireNonNull(programNode, "Could not find program node with id: " + program); - NavigationTreeNodeSupport tripNode = getChild(programNode, trip.getId()); - Objects.requireNonNull(tripNode, "Could not find program node with id: " + trip); - removeNode(tripNode); - - if (programNode.isLeaf()) { - removeProgram(program.getId()); - } - } - public RootNavigationTreeNode getRootNode() { - return getNavigationTreeModel().getRoot(); + return getTreeModel().getRoot(); } /** @@ -548,16 +518,7 @@ public class NavigationTree extends JXTree { public void moveNode(NavigationTreeNodeSupport parentNode, NavigationTreeNodeSupport node, int position) { parentNode.remove(node); parentNode.insert(node, position); - getNavigationTreeModel().nodeStructureChanged(parentNode); + getTreeModel().nodeStructureChanged(parentNode); } - public NavigationTreeCellRenderer getNavigationCellRenderer() { - TreeCellRenderer render0 = getCellRenderer(); - if (render0 instanceof JXTree.DelegatingRenderer) { - JXTree.DelegatingRenderer render01 = (JXTree.DelegatingRenderer) render0; - return (NavigationTreeCellRenderer) render01.getDelegateRenderer(); - } else { - return (NavigationTreeCellRenderer) render0; - } - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java index ff4e2a5..5594fd2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java @@ -1,13 +1,11 @@ package fr.ird.observe.application.swing.ui.tree.navigation; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.Icon; -import javax.swing.JComponent; +import javax.swing.JLabel; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; import java.awt.Color; @@ -24,141 +22,19 @@ public class NavigationTreeCellRenderer extends DefaultTreeCellRenderer { /** Logger */ private static final Log log = LogFactory.getLog(NavigationTreeCellRenderer.class); - /** service de décoration */ - private transient DecoratorService decoratorService; - - public DecoratorService getDecoratorService() { - if (decoratorService == null) { - - // on récupère le service commun - decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); - } - return decoratorService; - } - - @Override - public Color getBackgroundSelectionColor() { - return null; - } - - @Override - public Color getBackgroundNonSelectionColor() { - // Fixes http://forge.codelutin.com/issues/830 for jdk 7 - return Color.WHITE; - } - - // protected void setDefaultIcons(Icon icon) { -// if (icon == null) { -// // the icon is not customized for this node -// setOpenIcon(getDefaultOpenIcon()); -// setClosedIcon(getDefaultClosedIcon()); -// setLeafIcon(getDefaultLeafIcon()); -// } else { -// // replace all possible icons for this node -// setOpenIcon(icon); -// setClosedIcon(icon); -// setLeafIcon(icon); -// } +// @Override +// public Color getBackgroundSelectionColor() { +// return null; // } - -// protected String computeNodeText(NavigationTreeNodeSupport node) { -// -// if (node instanceof StringNavigationTreeNodeSupport) { -// return t(((StringNavigationTreeNodeSupport) node).getData()); -// } -// -// Class dataType = node.getDataType(); -// -// if (node instanceof ReferenceNavigationTreeNodeSupport && node.getId() == null) { -// // nœud en création -// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType) + ".unsaved"); -// } -// -// if (node instanceof ClassNavigationTreeNode) { -// return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(dataType)); -// } -// -// if (node.isReferentielNode()) { -// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType)); -// } -// -// // noeud de donnée -// -// String id = node.getId(); -// -// if (id == null) { -// -// // noeud d'un objet en cours de création -// -// //FIXME -// return t(""); -// } -// -// -// if (node instanceof SetLonglineNavigationTreeNode) { -// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType)); -// } -// -// if (node instanceof SetSeineNavigationTreeNode) { -// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType)); -// } -// -// if (node instanceof ReferenceNavigationTreeNodeSupport && DataDto.class.isAssignableFrom(dataType)) { -// ReferenceNavigationTreeNodeSupport<?, ?> entityNodeSupport = (ReferenceNavigationTreeNodeSupport) node; -// -// AbstractReference<?> data = entityNodeSupport.getData(); -// Objects.requireNonNull(data, "L'entité doit être chargée dans le noeud: " + node); -// -// Decorator<?> decorator = getDecoratorService().getDataReferenceDecorator(dataType); -// -// String result = decorator.toString(data); -// if (node instanceof TripSeineNavigationTreeNode) { -// result += " (" + TripSeineHelper.getRouteCount(((TripSeineNavigationTreeNode) node).getData()) + ")"; -// } -// return result; -// } -// -// if (node instanceof ReferenceNavigationTreeNodeSupport) { -// ReferenceNavigationTreeNodeSupport<?, ?> entityNodeSupport = (ReferenceNavigationTreeNodeSupport) node; -// -// AbstractReference<?> data = entityNodeSupport.getData(); -// Objects.requireNonNull(data, "L'entité doit être chargée dans le noeud: " + node); -// -// Decorator<?> decorator = getDecoratorService().getReferentialReferenceDecorator(dataType); -// -// String result = decorator.toString(data); -// if (node instanceof ProgramSeineNavigationTreeNode || node instanceof ProgramLonglineNavigationTreeNode) { -// ReferentialReference<ProgramDto> nodeData = (ReferentialReference<ProgramDto>) node.getData(); -// result += " (" + ProgramHelper.getTripCount(nodeData) + ")"; -// } -// return result; -// } -// -// throw new IllegalStateException("Don't know how to render node: " + node); // +// @Override +// public Color getBackgroundNonSelectionColor() { +// // Fixes http://forge.codelutin.com/issues/830 for jdk 7 +// return Color.WHITE; // } - /** - * @param value the value which should be a node - * @return the cast {@link NavigationTreeNodeSupport}, or {@code null} if - * value is null. - */ - public static NavigationTreeNodeSupport getNode(Object value) { - NavigationTreeNodeSupport node = null; - if (value instanceof NavigationTreeNodeSupport) { - node = (NavigationTreeNodeSupport) value; - } - return node; - } - @Override - public Component getTreeCellRendererComponent(JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) { + public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { if (!(tree.getModel() instanceof NavigationTreeModel)) { Component rendererComponent; @@ -167,10 +43,9 @@ public class NavigationTreeCellRenderer extends DefaultTreeCellRenderer { } // get the icon to set for the node - NavigationTreeNodeSupport node = getNode(value); + NavigationTreeNodeSupport node = (NavigationTreeNodeSupport) value; Icon icon = node.getIcon(""); - setDefaultIcons(icon); if (!sel) { @@ -182,27 +57,13 @@ public class NavigationTreeCellRenderer extends DefaultTreeCellRenderer { } String text = node.getText(); - if (log.isTraceEnabled()) { log.trace("===" + text + " for node " + node.getDataType() + " - " + node.getId()); } - Component comp = super.getTreeCellRendererComponent(tree, text, sel, expanded, leaf, row, hasFocus); - ((JComponent) comp).setToolTipText(text); + JLabel comp = (JLabel) super.getTreeCellRendererComponent(tree, text, sel, expanded, leaf, row, hasFocus); + comp.setToolTipText(text); + comp.setIcon(icon); return comp; } - protected void setDefaultIcons(Icon icon) { - if (icon == null) { - // the icon is not customized for this node - setOpenIcon(getDefaultOpenIcon()); - setClosedIcon(getDefaultClosedIcon()); - setLeafIcon(getDefaultLeafIcon()); - } else { - // replace all possible icons for this node - setOpenIcon(icon); - setClosedIcon(icon); - setLeafIcon(icon); - } - } - } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jaxx new file mode 100644 index 0000000..7bf4717 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jaxx @@ -0,0 +1,45 @@ +<!-- + #%L + ObServe :: Application Swing + %% + Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + %% + 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% + --> +<JPanel layout='{new BorderLayout()}'> + + <JToolBar constraints='BorderLayout.WEST' layout="{new GridLayout(1,3)}"> + <JToggleButton id='showSeine' onActionPerformed="handler.tryToUpdateNavigationTree()"/> + <JToggleButton id='showLongline' onActionPerformed="handler.tryToUpdateNavigationTree()"/> + <JToggleButton id='showReferential' onActionPerformed="handler.tryToUpdateNavigationTree()"/> + </JToolBar> + + <!-- label --> + <String id='labelText' javaBean='null'/> + + <!-- tree --> + <NavigationTree id='tree' javaBean='new NavigationTree()'/> + + + <JLabel id="label" constraints='BorderLayout.CENTER'/> + + <JToolBar id='toolbar' constraints='BorderLayout.EAST'> + + <!-- les boutons pour grouper/déplier tout l'arbre --> + <JButton id='colapseAll' onActionPerformed='handler.collapseAll()'/> + <JButton id='expandAll' onActionPerformed='handler.expandAll()'/> + + </JToolBar> + +</JPanel> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jcss new file mode 100644 index 0000000..71920e5 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jcss @@ -0,0 +1,53 @@ +/* + * #%L + * ObServe :: Swing + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * 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% + */ + +#showSeine { + selected: {tree.getTreeModel().isLoadSeine()}; + text:"observe.enum.fr.ird.observe.services.dto.ObserveModelType.PS"; +} +#showLongline { + selected: {tree.getTreeModel().isLoadLongline()}; + text:"observe.enum.fr.ird.observe.services.dto.ObserveModelType.LL"; +} +#showReferential{ + selected: {tree.getTreeModel().isLoadReferential()}; + text:"observe.enum.fr.ird.observe.services.dto.ObserveModelType.REF"; +} + +#label { + text:{getLabelText()}; +} + +JButton { + focusable:false; + focusPainted:false; +} + +#colapseAll { + actionIcon:collapse; + toolTipText:"observe.tree.action.collapseAll.tip"; +} + +#expandAll { + actionIcon:expand; + toolTipText:"observe.tree.action.expandAll.tip"; +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeaderHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeaderHandler.java new file mode 100644 index 0000000..02c63c2 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeaderHandler.java @@ -0,0 +1,106 @@ +package fr.ird.observe.application.swing.ui.tree.navigation; + +/* + * #%L + * ObServe :: Application Swing + * %% + * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import jaxx.runtime.spi.UIHandler; + +/** + * @author Samuel Maisonneuve- maisonneuve@codelutin.com + */ +public class NavigationTreeHeaderHandler implements UIHandler<NavigationTreeHeader> { + + private NavigationTreeHeader ui; + + public NavigationTreeHeader getUi() { + return ui; + } + + private NavigationTree getTree() { + return getUi().getTree(); + } + + @Override + public void beforeInit(NavigationTreeHeader navigationTreeHeader) { + this.ui = navigationTreeHeader; + } + + @Override + public void afterInit(NavigationTreeHeader navigationTreeHeader) { + } + + public void tryToUpdateNavigationTree() { + + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); + + if (!canContinue) { + return; + } + + NavigationTreeNodeSupport<?> selectedNode = getTree().getSelectedNode(); + + boolean showSeine = ui.getShowSeine().isSelected(); + boolean showLongline = ui.getShowLongline().isSelected(); + boolean showReferential = ui.getShowReferential().isSelected(); + + NavigationTreeModel treeModel = getTree().getTreeModel(); + treeModel.setLoadSeine(showSeine); + treeModel.setLoadLongline(showLongline); + treeModel.setLoadReferential(showReferential); + + treeModel.populate(); + + //FIXME repositionner le nœud sélectionné + if (!treeModel.getRoot().isLeaf()) { + getTree().setSelectionRow(0); + } + } + + public void collapseAll() { +// // Let's unselect the nodes before collapsing them +// unselectAll(); + + NavigationTree tree = getTree(); + tree.collapseAll(); + } + + public void expandAll() { + NavigationTree tree = getTree(); + tree.expandAll(); + ; + } + +// public void unselectAll() { +// JTree tree = getTree(); +// TreeSelectionModel selectionModel = tree.getSelectionModel(); +// +// for (int i = 0, l = tree.getRowCount(); i < l; i++) { +// +// TreePath path = tree.getPathForRow(i); +// if (selectionModel.isPathSelected(path)) { +// tree.setSelectionPath(path); +// } +// } +// } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java index fc81607..c7a76ee 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java @@ -1,9 +1,30 @@ package fr.ird.observe.application.swing.ui.tree.navigation; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.RootNavigationTreeNode; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.RootNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.referential.ReferentialsNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ProgramHelper; +import fr.ird.observe.services.dto.referential.ReferentialHelper; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.data.NavigationRequest; +import fr.ird.observe.services.service.data.NavigationResult; +import fr.ird.observe.services.service.data.NavigationService; import javax.swing.tree.DefaultTreeModel; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import static org.nuiton.i18n.I18n.n; /** * Created on 14/11/16. @@ -16,12 +37,57 @@ public class NavigationTreeModel extends DefaultTreeModel { private boolean loadSeine = true; private boolean loadLongline = true; private boolean loadReferential = true; - private boolean useSelectionModel; public NavigationTreeModel() { super(new RootNavigationTreeNode()); } + public void populate() { + + NavigationService navigationService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newNavigationService(); + + NavigationRequest navigationRequest = toNavigationRequest(); + NavigationResult navigationResult = navigationService.getNavigation(navigationRequest); + + List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(navigationResult.getPrograms()); + NavigationTree.sortPrograms(programs); + + RootNavigationTreeNode root = new RootNavigationTreeNode(); + + Map<ReferentialReference<ProgramDto>, Collection<DataReference<TripLonglineDto>>> tripsLonglineByProgram = navigationResult.getTripsLonglineByProgram().asMap(); + Map<ReferentialReference<ProgramDto>, Collection<DataReference<TripSeineDto>>> tripsSeineByProgram = navigationResult.getTripsSeineByProgram().asMap(); + for (ReferentialReference<ProgramDto> program : programs) { + + if (ProgramHelper.isProgramLongline(program)) { + + Collection<DataReference<TripLonglineDto>> references = tripsLonglineByProgram.getOrDefault(program, Collections.emptyList()); + ProgramLonglineNavigationTreeNode programNode = new ProgramLonglineNavigationTreeNode(program, references); + root.add(programNode); + } else if (ProgramHelper.isProgramSeine(program)) { + + Collection<DataReference<TripSeineDto>> references = tripsSeineByProgram.getOrDefault(program, Collections.emptyList()); + ProgramSeineNavigationTreeNode programNode = new ProgramSeineNavigationTreeNode(program, references); + root.add(programNode); + } + + } + + if (isLoadReferential()) { + root.add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); + root.add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); + root.add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); + } + + setRoot(root); + } + + private NavigationRequest toNavigationRequest() { + NavigationRequest navigationRequest = new NavigationRequest(); + navigationRequest.setLoadLongline(isLoadLongline()); + navigationRequest.setLoadSeine(isLoadSeine()); + return navigationRequest; + } + @Override public RootNavigationTreeNode getRoot() { return (RootNavigationTreeNode) super.getRoot(); @@ -29,24 +95,14 @@ public class NavigationTreeModel extends DefaultTreeModel { public void setLoadSeine(boolean loadSeine) { this.loadSeine = loadSeine; - getRoot().populateChilds(this); - nodeStructureChanged(getRoot()); } public void setLoadLongline(boolean loadLongline) { this.loadLongline = loadLongline; - getRoot().populateChilds(this); - nodeStructureChanged(getRoot()); } public void setLoadReferential(boolean loadReferential) { this.loadReferential = loadReferential; - getRoot().populateChilds(this); - nodeStructureChanged(getRoot()); - } - - public void setUseSelectionModel(boolean useSelectionModel) { - this.useSelectionModel = useSelectionModel; } public boolean isLoadSeine() { @@ -61,10 +117,6 @@ public class NavigationTreeModel extends DefaultTreeModel { return loadReferential; } - public boolean isUseSelectionModel() { - return useSelectionModel; - } - public <N extends NavigationTreeNodeSupport> void reload(N node) { node.reload(); super.reload(node); @@ -77,7 +129,4 @@ public class NavigationTreeModel extends DefaultTreeModel { } } - public void openRoot() { - open(getRoot()); - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java index 3bb37c4..16b2761 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java @@ -28,7 +28,7 @@ public abstract class ReferenceNavigationTreeNodeSupport<D extends IdDto, O exte } public boolean isOpen() { - return ObserveSwingApplicationContext.get().getOpenDataManager().isOpen(getId()); + return getId() == null || ObserveSwingApplicationContext.get().getOpenDataManager().isOpen(getId()); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java index 09e76b6..523d7e1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java @@ -1,22 +1,12 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.content.ContentUI; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.referential.ReferentialsNavigationTreeNode; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramHelper; -import fr.ird.observe.services.dto.referential.ReferentialHelper; import fr.ird.observe.services.dto.referential.ReferentialReference; +import org.apache.commons.collections4.EnumerationUtils; -import java.util.ArrayList; -import java.util.List; - -import static org.nuiton.i18n.I18n.n; +import java.util.Iterator; /** * Created on 14/11/16. @@ -24,10 +14,11 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class RootNavigationTreeNode extends StringNavigationTreeNodeSupport { +public class RootNavigationTreeNode extends StringNavigationTreeNodeSupport implements Iterable<ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>>> { public RootNavigationTreeNode() { super("<ROOT>", true); + setLoaded(true); } @Override @@ -42,30 +33,10 @@ public class RootNavigationTreeNode extends StringNavigationTreeNodeSupport { @Override protected void populateChilds0(NavigationTreeModel treeModel) { - - removeAllChildren(); - - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); - List<ReferentialReference<ProgramDto>> data = new ArrayList<>(source.getReferentialReferences(ProgramDto.class)); - NavigationTree.sortPrograms(data); - - if (treeModel.isLoadLongline()) { - data.stream().filter(ProgramHelper::isProgramLongline).forEach(reference -> { - add(new ProgramLonglineNavigationTreeNode(reference)); - }); - } - if (treeModel.isLoadSeine()) { - data.stream().filter(ProgramHelper::isProgramSeine).forEach(reference -> { - add(new ProgramSeineNavigationTreeNode(reference)); - }); - } - - if (treeModel.isLoadReferential()) { - add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); - add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); - add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); - } - } + @Override + public Iterator<ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>>> iterator() { + return (Iterator) EnumerationUtils.toList(children()).stream().filter(c -> c instanceof ReferenceNavigationTreeNodeSupport).iterator(); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java index 57f9d6b..b109059 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java @@ -1,5 +1,6 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; +import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; @@ -8,6 +9,8 @@ import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.service.data.longline.ActivityLonglineService; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * @@ -26,11 +29,21 @@ public class ActivitiesLonglineNavigationTreeNode extends ClassNavigationTreeNod } @Override + public String getIconPath() { + return "navigation." + getData().getName(); + } + + @Override public Class<ActivityLonglinesUI> getContentClass() { return ActivityLonglinesUI.class; } @Override + public String getText() { + return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(getData())); + } + + @Override protected void populateChilds0(NavigationTreeModel treeModel) { removeAllChildren(); String id = getId(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java index 41e0f61..ab55e27 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java @@ -8,6 +8,8 @@ import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * @@ -31,6 +33,19 @@ public class ActivityLonglineNavigationTreeNode extends ReferenceNavigationTreeN public ActivityLonglineNavigationTreeNode(DataReference<ActivityLonglineDto> data) { super(data, true); + DataReference<SetLonglineDto> setLonglineRef = (DataReference) data.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); + if (setLonglineRef != null) { + add(new SetLonglineNavigationTreeNode(setLonglineRef)); + } + + String vesselActivityId = (String) data.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); + + if (ENCOUNTERS_ID.contains(vesselActivityId)) { + add(new EncounterLonglineNavigationTreeNode()); + } + if (SENSOR_USED_ID.contains(vesselActivityId)) { + add(new SensorUsedLonglineNavigationTreeNode()); + } } @Override @@ -39,26 +54,16 @@ public class ActivityLonglineNavigationTreeNode extends ReferenceNavigationTreeN } @Override + public String getText() { + return getId() == null ? t("observe.type.activityLongline.unsaved") : super.getText(); + } + + @Override public Class<ActivityLonglineUI> getContentClass() { return ActivityLonglineUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - DataReference<ActivityLonglineDto> data = getData(); - DataReference<SetLonglineDto> setLonglineRef = (DataReference) data.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); - if (setLonglineRef != null) { - add(new SetLonglineNavigationTreeNode(setLonglineRef)); - } - - String vesselActivityId = (String) data.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); - - if (ENCOUNTERS_ID.contains(vesselActivityId)) { - add(new EncounterLonglineNavigationTreeNode()); - } - if (SENSOR_USED_ID.contains(vesselActivityId)) { - add(new SensorUsedLonglineNavigationTreeNode()); - } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java index 34fb1a6..99bdffb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java @@ -2,6 +2,7 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; import fr.ird.observe.application.swing.ui.content.table.impl.longline.GearUseFeaturesLonglineUI; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; /** @@ -17,6 +18,11 @@ public class GearUseFeaturesLonglineNavigationTreeNode extends ClassNavigationTr } @Override + public String getIconPath() { + return "navigation." + ActivityLonglineDto.class.getName(); + } + + @Override public Class<GearUseFeaturesLonglineUI> getContentClass() { return GearUseFeaturesLonglineUI.class; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java index 1aba427..6402067 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java @@ -1,15 +1,14 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.service.data.longline.TripLonglineService; + +import java.util.Collection; /** * Created on 14/11/16. @@ -19,8 +18,12 @@ import fr.ird.observe.services.service.data.longline.TripLonglineService; */ public class ProgramLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>> { - public ProgramLonglineNavigationTreeNode(ReferentialReference<ProgramDto> data) { + public ProgramLonglineNavigationTreeNode(ReferentialReference<ProgramDto> data, Collection<DataReference<TripLonglineDto>> trips) { super(data, true); + for (DataReference<TripLonglineDto> trip : trips) { + add(new TripLonglineNavigationTreeNode(trip)); + } + setLoaded(true); } @Override @@ -29,19 +32,17 @@ public class ProgramLonglineNavigationTreeNode extends ReferenceNavigationTreeNo } @Override + public String getText() { + return super.getText() + " (" + getChildCount() + ")"; + } + + @Override public Class<TripLonglinesUI> getContentClass() { return TripLonglinesUI.class; } @Override protected void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); - DataReferenceSet<TripLonglineDto> referenceSet = tripLonglineService.getTripLonglineByProgram(getData().getId()); - for (DataReference<TripLonglineDto> reference : referenceSet.getReferences()) { - TripLonglineNavigationTreeNode childNode = new TripLonglineNavigationTreeNode(reference); - add(childNode); - } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java index 1b8e837..6e57774 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java @@ -5,6 +5,9 @@ import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineHelper; + +import static org.nuiton.i18n.I18n.t; /** * Created on 14/11/16. @@ -16,6 +19,8 @@ public class TripLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeS public TripLonglineNavigationTreeNode(DataReference<TripLonglineDto> data) { super(data, data.getId() != null); + add(new GearUseFeaturesLonglineNavigationTreeNode()); + add(new ActivitiesLonglineNavigationTreeNode()); } @Override @@ -24,16 +29,17 @@ public class TripLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeS } @Override + public String getText() { + return getId() == null ? t("observe.type.tripLongline.unsaved") : (super.getText() + " (" + TripLonglineHelper.getActivityCount(getData()) + ")"); + } + + @Override public Class<TripLonglineUI> getContentClass() { return TripLonglineUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - if (!treeModel.isUseSelectionModel()) { - add(new GearUseFeaturesLonglineNavigationTreeNode()); - add(new ActivitiesLonglineNavigationTreeNode()); - } + // rien à ajouter } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java index 1f111bb..a9bf26e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java @@ -3,22 +3,31 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.service.data.seine.ActivitySeineService; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class ActivitiesSeineNavigationTreeNode extends StringNavigationTreeNodeSupport { +public class ActivitiesSeineNavigationTreeNode extends ClassNavigationTreeNode<ActivitySeineDto> { public ActivitiesSeineNavigationTreeNode() { - super(ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class), true); + super(ActivitySeineDto.class, true); + } + + @Override + public String getIconPath() { + return "navigation." + getData().getName(); } @Override @@ -32,6 +41,11 @@ public class ActivitiesSeineNavigationTreeNode extends StringNavigationTreeNodeS } @Override + public String getText() { + return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(getData())); + } + + @Override public void reload() { } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java index 7a64926..8be338d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java @@ -10,6 +10,8 @@ import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.service.data.seine.FloatingObjectService; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * @@ -20,6 +22,16 @@ public class ActivitySeineNavigationTreeNode extends ReferenceNavigationTreeNode public ActivitySeineNavigationTreeNode(DataReference<ActivitySeineDto> data) { super(data, true); + DataReference<SetSeineDto> set = (DataReference<SetSeineDto>) data.getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); + if (set != null) { + add(new SetSeineNavigationTreeNode(set)); + } + + FloatingObjectService service = getMainDataSourceServicesProvider().newFloatingObjectService(); + DataReferenceSet<FloatingObjectDto> referenceSet = service.getFloatingObjectByActivitySeine(getId()); + for (DataReference<FloatingObjectDto> reference : referenceSet.getReferences()) { + add(new FloatingObjectSeineNavigationTreeNode(reference)); + } } @Override @@ -27,24 +39,16 @@ public class ActivitySeineNavigationTreeNode extends ReferenceNavigationTreeNode } @Override + public String getText() { + return getId() == null ? t("observe.type.activitySeine.unsaved") : super.getText(); + } + + @Override public Class<ActivitySeineUI> getContentClass() { return ActivitySeineUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - - DataReference<SetSeineDto> set = (DataReference<SetSeineDto>) getData().getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); - if (set != null) { - add(new SetSeineNavigationTreeNode(set)); - } - - FloatingObjectService service = getMainDataSourceServicesProvider().newFloatingObjectService(); - DataReferenceSet<FloatingObjectDto> referenceSet = service.getFloatingObjectByActivitySeine(getId()); - for (DataReference<FloatingObjectDto> reference : referenceSet.getReferences()) { - add(new FloatingObjectSeineNavigationTreeNode(reference)); - } - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java index 55561f6..0384895 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java @@ -2,6 +2,8 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; import fr.ird.observe.application.swing.ui.content.table.impl.seine.GearUseFeaturesSeineUI; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; /** @@ -17,6 +19,11 @@ public class GearUseFeaturesSeineNavigationTreeNode extends ClassNavigationTreeN } @Override + public String getIconPath() { + return "navigation." + ActivitySeineDto.class.getName(); + } + + @Override public Class<GearUseFeaturesSeineUI> getContentClass() { return GearUseFeaturesSeineUI.class; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java index 04a90d5..1a68200 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java @@ -1,15 +1,14 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.seine.TripSeineService; + +import java.util.Collection; /** * Created on 14/11/16. @@ -19,8 +18,12 @@ import fr.ird.observe.services.service.data.seine.TripSeineService; */ public class ProgramSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>> { - public ProgramSeineNavigationTreeNode(ReferentialReference<ProgramDto> data) { + public ProgramSeineNavigationTreeNode(ReferentialReference<ProgramDto> data, Collection<DataReference<TripSeineDto>> trips) { super(data, true); + for (DataReference<TripSeineDto> trip : trips) { + add(new TripSeineNavigationTreeNode(trip)); + } + setLoaded(true); } @Override @@ -29,20 +32,17 @@ public class ProgramSeineNavigationTreeNode extends ReferenceNavigationTreeNodeS } @Override + public String getText() { + return super.getText() + " (" + getChildCount() + ")"; + } + + @Override public Class<TripSeinesUI> getContentClass() { return TripSeinesUI.class; } @Override protected void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); - DataReferenceSet<TripSeineDto> referenceSet = tripSeineService.getTripSeineByProgram(getData().getId()); - for (DataReference<TripSeineDto> reference : referenceSet.getReferences()) { - TripSeineNavigationTreeNode childNode = new TripSeineNavigationTreeNode(reference); - add(childNode); - } - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java index 5345d1d..44a6ec2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java @@ -6,6 +6,8 @@ import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNaviga import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.seine.RouteDto; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * @@ -16,6 +18,7 @@ public class RouteSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSup public RouteSeineNavigationTreeNode(DataReference<RouteDto> data) { super(data, true); + add(new ActivitiesSeineNavigationTreeNode()); } @Override @@ -24,13 +27,16 @@ public class RouteSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSup } @Override + public String getText() { + return getId() == null ? t("observe.type.route.unsaved") : super.getText(); + } + + @Override public Class<RouteUI> getContentClass() { return RouteUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - add(new ActivitiesSeineNavigationTreeNode()); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java index 8588633..8e06b24 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java @@ -4,19 +4,25 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.service.data.seine.RouteService; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class RoutesSeineNavigationTreeNode extends StringNavigationTreeNodeSupport { +public class RoutesSeineNavigationTreeNode extends ClassNavigationTreeNode<RouteDto> { + + public RoutesSeineNavigationTreeNode() { + super(RouteDto.class, true); + } @Override public String getId() { @@ -28,8 +34,14 @@ public class RoutesSeineNavigationTreeNode extends StringNavigationTreeNodeSuppo return RoutesUI.class; } - public RoutesSeineNavigationTreeNode() { - super(ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class), true); + @Override + public String getIconPath() { + return "navigation." + getData().getName(); + } + + @Override + public String getText() { + return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(getData())); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java index 5433643..ea0659e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java @@ -5,6 +5,9 @@ import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineHelper; + +import static org.nuiton.i18n.I18n.t; /** * Created on 14/11/16. @@ -16,6 +19,8 @@ public class TripSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupp public TripSeineNavigationTreeNode(DataReference<TripSeineDto> data) { super(data, true); + add(new GearUseFeaturesSeineNavigationTreeNode()); + add(new RoutesSeineNavigationTreeNode()); } @Override @@ -25,16 +30,17 @@ public class TripSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupp } @Override + public String getText() { + return getId() == null ? t("observe.type.tripSeine.unsaved") : (super.getText() + " (" + TripSeineHelper.getRouteCount(getData()) + ")"); + } + + @Override public Class<TripSeineUI> getContentClass() { return TripSeineUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - if (!treeModel.isUseSelectionModel()) { - add(new GearUseFeaturesSeineNavigationTreeNode()); - add(new RoutesSeineNavigationTreeNode()); - } + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java index 19eea6a..bcbbbd3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java @@ -3,6 +3,7 @@ package fr.ird.observe.application.swing.ui.tree.selection; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.admin.export.TripEntry; import fr.ird.observe.application.swing.ui.tree.selection.nodes.ProgramSelectionTreeNode; @@ -12,21 +13,33 @@ import fr.ird.observe.application.swing.ui.tree.selection.nodes.RootSelectionTre import fr.ird.observe.application.swing.ui.tree.selection.nodes.SelectionTreeNodeSupport; import fr.ird.observe.application.swing.ui.tree.selection.nodes.TripSelectionTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ProgramHelper; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialHelper; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.data.NavigationRequest; +import fr.ird.observe.services.service.data.NavigationResult; +import fr.ird.observe.services.service.data.NavigationService; import org.jdesktop.swingx.treetable.DefaultTreeTableModel; import org.jdesktop.swingx.treetable.TreeTableNode; import javax.swing.tree.TreePath; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.Enumeration; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; +import static org.nuiton.i18n.I18n.n; + /** * Created on 14/11/16. * @@ -188,8 +201,50 @@ public class SelectionTreeModel extends DefaultTreeTableModel { } public void populate(ObserveSwingDataSource dataSource) { - RootSelectionTreeNode rootTreeNode = RootSelectionTreeNode.of(this, dataSource); - setRoot(rootTreeNode); + + NavigationService navigationService = dataSource.newNavigationService(); + + NavigationRequest navigationRequest = toNavigationRequest(); + NavigationResult navigationResult = navigationService.getNavigation(navigationRequest); + + List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(navigationResult.getPrograms()); + + ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, programs); + + boolean showEmptyTrips = isShowEmptyTrips(); + + RootSelectionTreeNode root = new RootSelectionTreeNode(); + + Map<ReferentialReference<ProgramDto>, Collection<DataReference<TripLonglineDto>>> tripsLonglineByProgram = navigationResult.getTripsLonglineByProgram().asMap(); + Map<ReferentialReference<ProgramDto>, Collection<DataReference<TripSeineDto>>> tripsSeineByProgram = navigationResult.getTripsSeineByProgram().asMap(); + for (ReferentialReference<ProgramDto> program : programs) { + + if (ProgramHelper.isProgramLongline(program)) { + + Collection<DataReference<TripLonglineDto>> references = tripsLonglineByProgram.getOrDefault(program, Collections.emptyList()); + if (showEmptyTrips || !references.isEmpty()) { + ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofLongline(program, references); + root.add(programNode); + } + } else if (ProgramHelper.isProgramSeine(program)) { + + Collection<DataReference<TripSeineDto>> references = tripsSeineByProgram.getOrDefault(program, Collections.emptyList()); + if (showEmptyTrips || !references.isEmpty()) { + ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofSeine(program, references); + root.add(programNode); + } + } + + } + + if (isLoadReferential()) { + root.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); + root.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); + root.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); + } + + setRoot(root); + } public ImmutableSet<Class<? extends ReferentialDto>> getSelectedReferentiel() { @@ -336,4 +391,11 @@ public class SelectionTreeModel extends DefaultTreeTableModel { return programNode.getSelected(); } + private NavigationRequest toNavigationRequest() { + NavigationRequest navigationRequest = new NavigationRequest(); + navigationRequest.setLoadLongline(isLoadLongline()); + navigationRequest.setLoadSeine(isLoadSeine()); + return navigationRequest; + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java index b469017..0e91577 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java @@ -10,6 +10,7 @@ import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; import org.apache.commons.collections4.EnumerationUtils; +import java.util.Collection; import java.util.Iterator; /** @@ -20,7 +21,7 @@ import java.util.Iterator; */ public class ProgramSelectionTreeNode extends ReferenceSelectionTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>> implements Iterable<TripSelectionTreeNodeSupport<?>> { - public static ProgramSelectionTreeNode ofSeine(ReferentialReference<ProgramDto> data, ImmutableSet<DataReference<TripSeineDto>> tripSeines) { + public static ProgramSelectionTreeNode ofSeine(ReferentialReference<ProgramDto> data, Collection<DataReference<TripSeineDto>> tripSeines) { ProgramSelectionTreeNode result = new ProgramSelectionTreeNode(data); for (DataReference<TripSeineDto> tripSeine : tripSeines) { result.add(new TripSeineSelectionTreeNode(tripSeine)); @@ -28,7 +29,7 @@ public class ProgramSelectionTreeNode extends ReferenceSelectionTreeNodeSupport< return result; } - public static ProgramSelectionTreeNode ofLongline(ReferentialReference<ProgramDto> data, ImmutableSet<DataReference<TripLonglineDto>> tripLonglines) { + public static ProgramSelectionTreeNode ofLongline(ReferentialReference<ProgramDto> data, Collection<DataReference<TripLonglineDto>> tripLonglines) { ProgramSelectionTreeNode result = new ProgramSelectionTreeNode(data); for (DataReference<TripLonglineDto> tripLongline : tripLonglines) { result.add(new TripLonglineSelectionTreeNode(tripLongline)); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java index 7d5d879..f2f2d0c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java @@ -1,24 +1,8 @@ package fr.ird.observe.application.swing.ui.tree.selection.nodes; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramHelper; -import fr.ird.observe.services.dto.referential.ReferentialHelper; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.longline.TripLonglineService; -import fr.ird.observe.services.service.data.seine.TripSeineService; import org.apache.commons.collections4.EnumerationUtils; -import java.util.ArrayList; import java.util.Iterator; -import java.util.List; - -import static org.nuiton.i18n.I18n.n; /** * Created on 18/11/16. @@ -28,44 +12,6 @@ import static org.nuiton.i18n.I18n.n; */ public class RootSelectionTreeNode extends SelectionTreeNodeSupport<Void> implements Iterable<ProgramSelectionTreeNode> { - public static RootSelectionTreeNode of(SelectionTreeModel treeModel, ObserveSwingDataSource dataSource) { - - RootSelectionTreeNode result = new RootSelectionTreeNode(); - - List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(dataSource.getReferentialReferences(ProgramDto.class)); - ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, programs); - - if (treeModel.isLoadLongline()) { - TripLonglineService tripLonglineService = dataSource.newTripLonglineService(); - programs.stream().filter(ProgramHelper::isProgramLongline).forEach(program -> { - DataReferenceSet<TripLonglineDto> trips = tripLonglineService.getTripLonglineByProgram(program.getId()); - if (treeModel.isShowEmptyTrips() || trips.sizeReference() > 0) { - ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofLongline(program, trips.getReferences()); - result.add(programNode); - } - }); - } - - if (treeModel.isLoadSeine()) { - TripSeineService tripSeineService = dataSource.newTripSeineService(); - programs.stream().filter(ProgramHelper::isProgramSeine).forEach(program -> { - DataReferenceSet<TripSeineDto> trips = tripSeineService.getTripSeineByProgram(program.getId()); - if (treeModel.isShowEmptyTrips() || trips.sizeReference() > 0) { - ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofSeine(program, trips.getReferences()); - result.add(programNode); - } - }); - } - - if (treeModel.isLoadReferential()) { - result.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); - result.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); - result.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); - } - - return result; - } - public RootSelectionTreeNode() { super(null, true); } -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 628c272fed4e830f1b1a0fe910662871a2b6f844 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:15:26 2016 +0100 refs #8429 continue les adaptations sur les arbres --- .../swing/ObserveSwingApplicationDataSourcesManager.java | 2 -- .../application/swing/db/ObserveSwingDataSource.java | 5 +++++ .../fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx | 4 ++-- .../fr/ird/observe/application/swing/ui/ObserveMainUI.jcss | 5 ----- .../observe/application/swing/ui/ObserveMainUIHandler.java | 6 +++++- .../swing/ui/actions/content/CancelCreateUIAction.java | 3 ++- .../swing/ui/actions/content/CloseAndCreateUIAction.java | 2 +- .../swing/ui/actions/content/MoveTripsUIAction.java | 4 ++-- .../swing/ui/actions/content/ResetEditUIAction.java | 3 ++- .../application/swing/ui/actions/shared/GoDownUIAction.java | 3 --- .../application/swing/ui/actions/shared/GoUpUIAction.java | 3 --- .../application/swing/ui/content/ContentUIHandler.java | 13 ++++++------- .../application/swing/ui/content/ObserveActionMap.java | 4 ++-- .../ui/content/impl/longline/SetLonglineUIHandler.java | 3 ++- .../ui/content/impl/seine/FloatingObjectUIHandler.java | 3 ++- .../swing/ui/content/impl/seine/SetSeineUIHandler.java | 3 ++- .../swing/ui/content/list/ContentListUIHandler.java | 6 +----- .../main/resources/i18n/application-swing_en_GB.properties | 1 + .../main/resources/i18n/application-swing_es_ES.properties | 1 + .../main/resources/i18n/application-swing_fr_FR.properties | 1 + 20 files changed, 37 insertions(+), 38 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java index ff923d3..b11d0fa 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java @@ -446,8 +446,6 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { dataContext.populateOpens(openIds); mainUI.getHandler().loadNavigationUI(mainUI); - mainUI.getNavigation().getNavigationTreeModel().openRoot(); - mainUI.setMode(ObserveUIMode.DB); mainUI.getStatus().setStatus(t("observe.message.db.loaded", source.getLabel())); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java index 482abbb..442d0fd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java @@ -569,6 +569,11 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements } @Override + public NavigationService newNavigationService() { + return newService(NavigationService.class); + } + + @Override public ReferentialService newReferentialService() { return newService(ReferentialService.class); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx index 72d31e4..faff734 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx @@ -45,7 +45,7 @@ fr.ird.observe.application.swing.ui.actions.ShowStorageInfoAction fr.ird.observe.application.swing.ui.content.ContentUIManager fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree - fr.ird.observe.application.swing.ui.util.tree.BeanTreeHeader + fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeHeader jaxx.runtime.swing.CardLayout2 jaxx.runtime.swing.CardLayout2Ext @@ -252,7 +252,7 @@ void $afterCompleteSetup() { <JXTitledPanel id='navigationView'> <JScrollPane id='navigationScrollPane' columnHeaderView='{navigationTreeHeader}'> <NavigationTree id="navigation"/> - <BeanTreeHeader id='navigationTreeHeader' tree='{navigation}'/> + <NavigationTreeHeader id='navigationTreeHeader' tree='{navigation}'/> </JScrollPane> </JXTitledPanel> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss index e13f2fa..ef1ee0e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss @@ -380,14 +380,9 @@ JSplitPane { } #navigation { - minimumSize: {UIHelper.newMinDimension()}; font-size:11; } -#navigationTreeHeader { - showSelectActions: false; -} - #messageView { title: "observe.view.message"; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java index 5f8c6d6..545ab02 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java @@ -33,6 +33,7 @@ import fr.ird.observe.application.swing.ui.content.ContentUIManager; import fr.ird.observe.application.swing.ui.content.ContentUIModel; import fr.ird.observe.application.swing.ui.tree.ObserveNavigationTreeShowPopupAction; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; @@ -551,11 +552,14 @@ public class ObserveMainUIHandler { NavigationTree tree = mainUI.getNavigation(); - tree.createModel(); + NavigationTreeModel treeModel = tree.getTreeModel(); + treeModel.populate(); // select initial node tree.selectInitialNode(); tree.setVisible(true); + + SwingUtilities.invokeLater(tree::revalidate); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java index 330b1e9..8147b0b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java @@ -55,7 +55,8 @@ public class CancelCreateUIAction extends AbstractContentUIAction { protected void actionPerformed(ContentUI<?, ?> ui) { ui.stopEdit(); NavigationTree tree = getMainUI().getNavigation(); - NavigationTreeNodeSupport parentNode = tree.removeNode(tree.getSelectedNode()); + NavigationTreeNodeSupport parentNode = tree.getSelectedNode().getParent(); + tree.removeNode(tree.getSelectedNode()); tree.selectNode(parentNode); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java index 8d544aa..da724ca 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java @@ -144,7 +144,7 @@ public class CloseAndCreateUIAction extends AbstractContentUIAction { String id = dataContext.getOpenActivityId(); - NavigationTreeNodeSupport node1 = node.findNodeById(tree.getNavigationTreeModel(), id); + NavigationTreeNodeSupport node1 = node.findNodeById(tree.getTreeModel(), id); TreePath activityPath = path.pathByAddingChild(node1); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java index 2a3ee12..3b8d7df 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java @@ -105,7 +105,7 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractConte GearType geartype = getGearType(ui); // racine - RootNavigationTreeNode rootNode = tree.getNavigationTreeModel().getRoot(); + RootNavigationTreeNode rootNode = tree.getTreeModel().getRoot(); //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>(); @@ -137,7 +137,7 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractConte ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree tree = getMainUI().getNavigation(); - RootNavigationTreeNode rootNode = tree.getNavigationTreeModel().getRoot(); + RootNavigationTreeNode rootNode = tree.getTreeModel().getRoot(); NavigationTreeNodeSupport newProgramNode = tree.getChild(rootNode, programId); for (int i = 0, s = positions.size(); i < s; i++) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java index 4ba3b74..6edda51 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java @@ -57,7 +57,8 @@ public class ResetEditUIAction extends AbstractContentUIAction { if (ui.getModel().isCreatingMode()) { ui.stopEdit(); NavigationTree tree = getMainUI().getNavigation(); - NavigationTreeNodeSupport parentNode = tree.removeNode(tree.getSelectedNode()); + NavigationTreeNodeSupport parentNode = tree.getSelectedNode().getParent(); + tree.removeNode(tree.getSelectedNode()); tree.selectNode(parentNode); } else { ui.resetEdit(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java index b15959f..a17ce17 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java @@ -24,7 +24,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import javax.swing.AbstractButton; @@ -85,8 +84,6 @@ public class GoDownUIAction extends AbstractUIAction { NavigationTree tree = getMainUI().getNavigation(); - NavigationTreeCellRenderer render = tree.getNavigationCellRenderer(); - NavigationTreeNodeSupport node; super.updateAction(ui, editor); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java index f23baed..d4b414a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java @@ -24,7 +24,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import javax.swing.AbstractButton; @@ -86,8 +85,6 @@ public class GoUpUIAction extends AbstractUIAction { NavigationTree treeHelper = getMainUI().getNavigation(); - NavigationTreeCellRenderer render = treeHelper.getNavigationCellRenderer(); - NavigationTreeNodeSupport node; JPopupMenu scopePopup = getMainUI().getScopeUpPopup(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java index 06eb161..10eae41 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java @@ -38,7 +38,6 @@ import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.util.SpringUtilities; import fr.ird.observe.application.swing.validation.ValidationContext; @@ -250,10 +249,10 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U model.addMessages(ui, fieldName, scope, message); } - public static <E extends IdDto, U extends ContentUI<E, U>> void removeAllMessages(U ui, NuitonValidatorScope scope, String fieldName) { - SwingValidatorMessageTableModel model = ui.getErrorTableModel(); - model.removeMessages(ui, fieldName, scope); - } +// public static <E extends IdDto, U extends ContentUI<E, U>> void removeAllMessages(U ui, NuitonValidatorScope scope, String fieldName) { +// SwingValidatorMessageTableModel model = ui.getErrorTableModel(); +// model.removeMessages(ui, fieldName, scope); +// } protected static <E extends IdDto, U extends ContentUI<E, U>> void removeAllMessages(U ui) { SwingValidatorMessageTableModel model = ui.getErrorTableModel(); @@ -381,7 +380,6 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U // suppression des messages de validation removeAllMessages(ui); NavigationTree tree = getTreeHelper(ui); - NavigationTreeCellRenderer render = tree.getNavigationCellRenderer(); NavigationTreeNodeSupport node = tree.getSelectedNode(); if (ContentReferenceUIHandler.class.isAssignableFrom(getClass())) { @@ -747,7 +745,8 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U NavigationTree treeHelper = getTreeHelper(ui); NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = node.getParent(); + treeHelper.removeNode(node); treeHelper.selectNode(parentNode); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java index 71556dd..aefcdff 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java @@ -107,8 +107,8 @@ public class ObserveActionMap extends ActionMap { private <A extends AbstractUIAction> A newAction(String key, Class<A> actionType) { try { - if (log.isInfoEnabled()) { - log.info("Create action: " + key + ", type: " + actionType.getName()); + if (log.isDebugEnabled()) { + log.debug("Create action: " + key + ", type: " + actionType.getName()); } return ConstructorUtils.invokeConstructor(actionType, ui); } catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java index 3ecf77c..07dc8b4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java @@ -363,7 +363,8 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto, SetLo getModel().setMode(ContentMode.UPDATE); // remove old node and recreate new node - NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = node.getParent(); + treeHelper.removeNode(node); DataReference<SetLonglineDto> beanRef = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformDataDtoToReference(getDecoratorService().getReferentialLocale(), bean); node = treeHelper.addSetLongline(parentNode, beanRef); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java index 5aea97e..f21b658 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java @@ -182,7 +182,8 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, getModel().setMode(ContentMode.UPDATE); // remove old node and recreate new node - NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = node.getParent(); + treeHelper.removeNode(node); DataReference<FloatingObjectDto> beanRef = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformDataDtoToReference(getDecoratorService().getReferentialLocale(), bean); node = treeHelper.addFloatingObject(parentNode, beanRef); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java index 8f9de9b..8eef9ba 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java @@ -262,7 +262,8 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto, SetSeineUI> getModel().setMode(ContentMode.UPDATE); // remove old node and recreate new node - NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = node.getParent(); + treeHelper.removeNode(node); DataReference<SetSeineDto> beanRef = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformDataDtoToReference(getDecoratorService().getReferentialLocale(), bean); node = treeHelper.addSetSeine(parentNode, beanRef); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java index 31a28c8..1a8af7a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java @@ -27,7 +27,6 @@ import fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.DataDto; @@ -233,14 +232,11 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U private final transient NavigationTree treeHelper; - private final NavigationTreeCellRenderer treeRenderer; - private final ThreadLocal<NavigationTreeNodeSupport> containerNode = new ThreadLocal<>(); EntityListCellRenderer(ListCellRenderer delegate, NavigationTree treeHelper) { this.delegate = delegate; this.treeHelper = treeHelper; - this.treeRenderer = treeHelper.getNavigationCellRenderer(); } public void init() { @@ -248,7 +244,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U } @Override - public Component getListCellRendererComponent(JList list, + public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, diff --git a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties index 60f9b8c..37d2acb 100644 --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -1419,6 +1419,7 @@ observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REF observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REFERENTIEL.description=Only referentials observe.enum.fr.ird.observe.services.dto.ObserveModelType.LL=Longline observe.enum.fr.ird.observe.services.dto.ObserveModelType.PS=Seine +observe.enum.fr.ird.observe.services.dto.ObserveModelType.REF=Referential observe.enum.fr.ird.observe.services.dto.constants.GearType.longline=Longline gear type observe.enum.fr.ird.observe.services.dto.constants.GearType.seine=Senne gear type observe.enum.fr.ird.observe.services.dto.constants.ReferenceStatus.disabled=Disabled diff --git a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties index 4f0439b..8cc8705 100644 --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -1419,6 +1419,7 @@ observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REF observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REFERENTIEL.description=Todos los referenciales observe.enum.fr.ird.observe.services.dto.ObserveModelType.LL=Palangre observe.enum.fr.ird.observe.services.dto.ObserveModelType.PS=Senne +observe.enum.fr.ird.observe.services.dto.ObserveModelType.REF=Referencial observe.enum.fr.ird.observe.services.dto.constants.GearType.longline=Palangre observe.enum.fr.ird.observe.services.dto.constants.GearType.seine=Senne observe.enum.fr.ird.observe.services.dto.constants.ReferenceStatus.disabled=Desactivado diff --git a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties index 83536fa..2768968 100644 --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -1419,6 +1419,7 @@ observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REF observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REFERENTIEL.description=Tous les référentiels observe.enum.fr.ird.observe.services.dto.ObserveModelType.LL=Palangre observe.enum.fr.ird.observe.services.dto.ObserveModelType.PS=Senne +observe.enum.fr.ird.observe.services.dto.ObserveModelType.REF=Référentiel observe.enum.fr.ird.observe.services.dto.constants.GearType.longline=Longline observe.enum.fr.ird.observe.services.dto.constants.GearType.seine=Senne observe.enum.fr.ird.observe.services.dto.constants.ReferenceStatus.disabled=Désactivé -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit b1782dbb4283ce9b18e8a3974e2581598856969a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 18:13:35 2016 +0100 meilleure remontée de données --- .../main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java | 4 ++-- .../src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java | 4 ++-- .../services/topia/service/data/seine/TripSeineServiceTopia.java | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java index b19940d..f95201c 100644 --- a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java @@ -32,7 +32,7 @@ public class TripLonglineImpl extends TripLonglineAbstract { private static final long serialVersionUID = 1L; - private int activityCount; + private Integer activityCount; @Override public String getObserverLabel() { @@ -51,7 +51,7 @@ public class TripLonglineImpl extends TripLonglineAbstract { @Override public int getActivityCount() { - return activityCount; + return activityCount == null ? sizeActivityLongline() : activityCount; } @Override diff --git a/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java b/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java index d261a6f..9a46055 100644 --- a/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java @@ -28,7 +28,7 @@ package fr.ird.observe.entities.seine; public class TripSeineImpl extends TripSeineAbstract { private static final long serialVersionUID = 1L; - private int routeCount; + private Integer routeCount; @Override public String getObserverLabel() { @@ -37,7 +37,7 @@ public class TripSeineImpl extends TripSeineAbstract { @Override public int getRouteCount() { - return routeCount; + return routeCount == null ? sizeRoute() : routeCount; } @Override diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java index 8ba2d61..e5c5791 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java @@ -77,7 +77,6 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe List<TripSeine> tripSeines = loadEntities(TripSeine.class); - tripSeines.forEach(t -> t.setRouteCount(t.sizeRoute())); return toDataReferenceSet(TripSeineDto.class, tripSeines); } -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 5682241e89918ba47c7a7fd665059d463946d4f3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 18:13:55 2016 +0100 gestion des nœuds de création --- .../ActivityLonglineNavigationTreeNode.java | 22 ++++++++++++---------- .../longline/TripLonglineNavigationTreeNode.java | 6 ++++-- .../seine/ActivitySeineNavigationTreeNode.java | 20 +++++++++++--------- .../nodes/seine/RouteSeineNavigationTreeNode.java | 4 +++- .../nodes/seine/TripSeineNavigationTreeNode.java | 6 ++++-- 5 files changed, 34 insertions(+), 24 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java index ab55e27..21d21d4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java @@ -33,18 +33,20 @@ public class ActivityLonglineNavigationTreeNode extends ReferenceNavigationTreeN public ActivityLonglineNavigationTreeNode(DataReference<ActivityLonglineDto> data) { super(data, true); - DataReference<SetLonglineDto> setLonglineRef = (DataReference) data.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); - if (setLonglineRef != null) { - add(new SetLonglineNavigationTreeNode(setLonglineRef)); - } + if (data.getId() != null) { + DataReference<SetLonglineDto> setLonglineRef = (DataReference) data.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); + if (setLonglineRef != null) { + add(new SetLonglineNavigationTreeNode(setLonglineRef)); + } - String vesselActivityId = (String) data.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); + String vesselActivityId = (String) data.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); - if (ENCOUNTERS_ID.contains(vesselActivityId)) { - add(new EncounterLonglineNavigationTreeNode()); - } - if (SENSOR_USED_ID.contains(vesselActivityId)) { - add(new SensorUsedLonglineNavigationTreeNode()); + if (ENCOUNTERS_ID.contains(vesselActivityId)) { + add(new EncounterLonglineNavigationTreeNode()); + } + if (SENSOR_USED_ID.contains(vesselActivityId)) { + add(new SensorUsedLonglineNavigationTreeNode()); + } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java index 6e57774..fb5a5c9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java @@ -19,8 +19,10 @@ public class TripLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeS public TripLonglineNavigationTreeNode(DataReference<TripLonglineDto> data) { super(data, data.getId() != null); - add(new GearUseFeaturesLonglineNavigationTreeNode()); - add(new ActivitiesLonglineNavigationTreeNode()); + if (data.getId() != null) { + add(new GearUseFeaturesLonglineNavigationTreeNode()); + add(new ActivitiesLonglineNavigationTreeNode()); + } } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java index 8be338d..f2671fe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java @@ -22,15 +22,17 @@ public class ActivitySeineNavigationTreeNode extends ReferenceNavigationTreeNode public ActivitySeineNavigationTreeNode(DataReference<ActivitySeineDto> data) { super(data, true); - DataReference<SetSeineDto> set = (DataReference<SetSeineDto>) data.getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); - if (set != null) { - add(new SetSeineNavigationTreeNode(set)); - } - - FloatingObjectService service = getMainDataSourceServicesProvider().newFloatingObjectService(); - DataReferenceSet<FloatingObjectDto> referenceSet = service.getFloatingObjectByActivitySeine(getId()); - for (DataReference<FloatingObjectDto> reference : referenceSet.getReferences()) { - add(new FloatingObjectSeineNavigationTreeNode(reference)); + if (data.getId() != null) { + DataReference<SetSeineDto> set = (DataReference<SetSeineDto>) data.getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); + if (set != null) { + add(new SetSeineNavigationTreeNode(set)); + } + + FloatingObjectService service = getMainDataSourceServicesProvider().newFloatingObjectService(); + DataReferenceSet<FloatingObjectDto> referenceSet = service.getFloatingObjectByActivitySeine(getId()); + for (DataReference<FloatingObjectDto> reference : referenceSet.getReferences()) { + add(new FloatingObjectSeineNavigationTreeNode(reference)); + } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java index 44a6ec2..339158d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java @@ -18,7 +18,9 @@ public class RouteSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSup public RouteSeineNavigationTreeNode(DataReference<RouteDto> data) { super(data, true); - add(new ActivitiesSeineNavigationTreeNode()); + if (data.getId() != null) { + add(new ActivitiesSeineNavigationTreeNode()); + } } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java index ea0659e..5b78e8a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java @@ -19,8 +19,10 @@ public class TripSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupp public TripSeineNavigationTreeNode(DataReference<TripSeineDto> data) { super(data, true); - add(new GearUseFeaturesSeineNavigationTreeNode()); - add(new RoutesSeineNavigationTreeNode()); + if (data.getId() != null) { + add(new GearUseFeaturesSeineNavigationTreeNode()); + add(new RoutesSeineNavigationTreeNode()); + } } @Override -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit e25e7aeec3d9ef0ea8e320a22695614f877207ee Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 23 09:17:47 2016 +0100 meilleure gestion de l'affichage des nœuds --- .../nodes/NavigationTreeNodeSupport.java | 37 +++++++--------------- .../EncounterLonglineNavigationTreeNode.java | 5 +++ .../GearUseFeaturesLonglineNavigationTreeNode.java | 5 +++ .../SensorUsedLonglineNavigationTreeNode.java | 5 +++ ...etailCompositionLonglineNavigationTreeNode.java | 5 +++ ...lobalCompositionLonglineNavigationTreeNode.java | 5 +++ .../longline/TdrLonglineNavigationTreeNode.java | 5 +++ .../referential/ReferentialNavigationTreeNode.java | 7 ++-- .../seine/ActivitiesSeineNavigationTreeNode.java | 2 -- ...cardedTargetCatchesSeineNavigationTreeNode.java | 5 +++ ...cardedTargetSamplesSeineNavigationTreeNode.java | 5 +++ .../GearUseFeaturesSeineNavigationTreeNode.java | 6 +++- .../KeptTargetCatchesSeineNavigationTreeNode.java | 6 ++++ .../KeptTargetSamplesSeineNavigationTreeNode.java | 6 ++-- .../NonTargetCatchesSeineNavigationTreeNode.java | 5 +++ .../NoneTargetSamplesSeineNavigationTreeNode.java | 6 ++++ .../SchoolEstimatesSeineNavigationTreeNode.java | 5 +++ 17 files changed, 86 insertions(+), 34 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java index 7cd4797..69bc632 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java @@ -67,23 +67,7 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider(); } - public static NavigationTreeNodeSupport findNode(NavigationTreeModel treeModel, NavigationTreeNodeSupport node, String... ids) { - NavigationTreeNodeSupport result = null; - for (String id : ids) { - - result = node.findNodeById(treeModel, id); - - if (result == null) { - - // un des noeud n'a pas ete trouve, on sort - break; - } - node = result; - } - return result; - } - - public NavigationTreeNodeSupport findNodeById(NavigationTreeModel treeModel, String id) { + public NavigationTreeNodeSupport getChild(NavigationTreeModel treeModel, String id) { if (id == null) { // id null ? donc rien a faire @@ -106,21 +90,22 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor // au final le noeud est une feuille, donc ne convient pas return null; } - - // on recherche dans les fils - Enumeration<NavigationTreeNodeSupport> enumeration = children(); - while (enumeration.hasMoreElements()) { - NavigationTreeNodeSupport node = enumeration.nextElement(); - NavigationTreeNodeSupport nodeById = node.findNodeById(treeModel, id); - if (nodeById != null) { - return nodeById; + Enumeration<NavigationTreeNodeSupport> children = children(); + while (children.hasMoreElements()) { + NavigationTreeNodeSupport node = children.nextElement(); + if (id.equals(node.getId())) { + return node; } } - // aucun des noeud fils ne convient return null; } + @Override + public boolean isLeaf() { + return isLoaded() && super.isLeaf(); + } + public boolean isOpen() { return false; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java index ce66bf0..86effeb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class EncounterLonglineNavigationTreeNode extends ClassNavigationTreeNode public Class<EncounterUI> getContentClass() { return EncounterUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java index 99bdffb..84924c3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java @@ -26,4 +26,9 @@ public class GearUseFeaturesLonglineNavigationTreeNode extends ClassNavigationTr public Class<GearUseFeaturesLonglineUI> getContentClass() { return GearUseFeaturesLonglineUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java index fcc02a8..e28d0c6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class SensorUsedLonglineNavigationTreeNode extends ClassNavigationTreeNod public Class<SensorUsedUI> getContentClass() { return SensorUsedUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java index 99d9378..c7a633c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class SetDetailCompositionLonglineNavigationTreeNode extends ClassNavigat public Class<LonglineDetailCompositionUI> getContentClass() { return LonglineDetailCompositionUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java index 4aacff3..4da8364 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class SetGlobalCompositionLonglineNavigationTreeNode extends ClassNavigat public Class<LonglineGlobalCompositionUI> getContentClass() { return LonglineGlobalCompositionUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java index c07f64f..3de0804 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class TdrLonglineNavigationTreeNode extends ClassNavigationTreeNode<TdrDt public Class<TdrUI> getContentClass() { return TdrUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java index 0af5ad2..9c37361 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java @@ -7,9 +7,6 @@ import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigation import fr.ird.observe.services.dto.referential.ReferentialDto; import org.apache.commons.lang3.StringUtils; -import javax.swing.Icon; -import javax.swing.UIManager; - import static org.nuiton.i18n.I18n.t; /** @@ -44,4 +41,8 @@ public class ReferentialNavigationTreeNode<D extends ReferentialDto> extends Cla return "navigation.sub.referentiel"; } + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java index a9bf26e..4b1e239 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java @@ -4,10 +4,8 @@ import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.service.data.seine.ActivitySeineService; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java index 19e7e1a..4b9dc34 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class DiscardedTargetCatchesSeineNavigationTreeNode extends ClassNavigati public Class<TargetDiscardCatchUI> getContentClass() { return TargetDiscardCatchUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java index 4df8e90..b6775ca 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class DiscardedTargetSamplesSeineNavigationTreeNode extends ClassNavigati public Class<TargetSampleRejeteUI> getContentClass() { return TargetSampleRejeteUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java index 0384895..fe432d7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java @@ -2,7 +2,6 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; import fr.ird.observe.application.swing.ui.content.table.impl.seine.GearUseFeaturesSeineUI; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; @@ -27,4 +26,9 @@ public class GearUseFeaturesSeineNavigationTreeNode extends ClassNavigationTreeN public Class<GearUseFeaturesSeineUI> getContentClass() { return GearUseFeaturesSeineUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java index c160a42..67fa3a9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java @@ -20,4 +20,10 @@ public class KeptTargetCatchesSeineNavigationTreeNode extends ClassNavigationTre public Class<TargetCatchUI> getContentClass() { return TargetCatchUI.class; } + + @Override + public boolean isLeaf() { + return true; + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java index 362af7c..6773579 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java @@ -4,8 +4,6 @@ import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetSample import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; import fr.ird.observe.services.dto.seine.KeptTargetSampleDto; -import javax.swing.Icon; - /** * Created on 14/11/16. * @@ -23,4 +21,8 @@ public class KeptTargetSamplesSeineNavigationTreeNode extends ClassNavigationTre return TargetSampleCaptureUI.class; } + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java index a379d43..3282983 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class NonTargetCatchesSeineNavigationTreeNode extends ClassNavigationTree public Class<NonTargetCatchUI> getContentClass() { return NonTargetCatchUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java index a410f49..979f7fe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java @@ -20,4 +20,10 @@ public class NoneTargetSamplesSeineNavigationTreeNode extends ClassNavigationTre public Class<NonTargetSampleUI> getContentClass() { return NonTargetSampleUI.class; } + + @Override + public boolean isLeaf() { + return true; + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java index becd51d..42309f3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class SchoolEstimatesSeineNavigationTreeNode extends ClassNavigationTreeN public Class<SchoolEstimateUI> getContentClass() { return SchoolEstimateUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 2d34b2d3a547d43f742c75c2991a073f889391b8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 23 09:18:14 2016 +0100 ajout API getChild pour remplacer l'API findNodeById --- .../swing/ui/actions/content/CloseAndCreateUIAction.java | 2 +- .../swing/ui/tree/navigation/NavigationTree.java | 4 ++-- .../swing/ui/tree/navigation/NavigationTreeModel.java | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java index da724ca..70b0e52 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java @@ -144,7 +144,7 @@ public class CloseAndCreateUIAction extends AbstractContentUIAction { String id = dataContext.getOpenActivityId(); - NavigationTreeNodeSupport node1 = node.findNodeById(tree.getTreeModel(), id); + NavigationTreeNodeSupport node1 = tree.getChild(node, id); TreePath activityPath = path.pathByAddingChild(node1); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java index 84e0c71..772c19e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java @@ -158,7 +158,7 @@ public class NavigationTree extends JXTree { log.debug("try to select node from ids " + Arrays.toString(path)); } RootNavigationTreeNode root = this.getTreeModel().getRoot(); - NavigationTreeNodeSupport node = NavigationTreeNodeSupport.findNode(getTreeModel(), root, path); + NavigationTreeNodeSupport node = getTreeModel().findNode(root, path); if (log.isDebugEnabled()) { log.debug("selected node [" + node + "]"); } @@ -184,7 +184,7 @@ public class NavigationTree extends JXTree { } public NavigationTreeNodeSupport getChild(NavigationTreeNodeSupport node, String id) { - return node.findNodeById(getTreeModel(), id); + return node.getChild(getTreeModel(), id); } public void removeNode(NavigationTreeNodeSupport node) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java index c7a76ee..6453287 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java @@ -42,6 +42,22 @@ public class NavigationTreeModel extends DefaultTreeModel { super(new RootNavigationTreeNode()); } + public NavigationTreeNodeSupport findNode(NavigationTreeNodeSupport node, String... ids) { + NavigationTreeNodeSupport result = null; + for (String id : ids) { + + result = node.getChild(this, id); + + if (result == null) { + + // un des noeud n'a pas ete trouve, on sort + break; + } + node = result; + } + return result; + } + public void populate() { NavigationService navigationService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newNavigationService(); -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit abd3d69ee3c260e40844306c9712207d3d4cad06 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 09:11:21 2016 +0100 refs #8429 meilleure gestion du focus dans les assistants de base + suppression code mort --- .../ui/actions/ImportStorageFromFileAction.java | 4 +- .../swing/ui/storage/StorageUIHandler.java | 88 +++------- .../swing/ui/storage/StorageUILauncher.java | 188 ++++----------------- .../swing/ui/storage/tabs/ConfigUI.jaxx | 93 ++-------- .../longline/CatchLonglineNavigationTreeNode.java | 5 + .../ui/tree/selection/SelectionTreeModel.java | 8 +- 6 files changed, 79 insertions(+), 307 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java index 6d3c1b1..d4d9c08 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java @@ -79,9 +79,7 @@ public class ImportStorageFromFileAction extends AbstractAction { model.setCreationMode(CreationMode.IMPORT_EXTERNAL_DUMP); if (model.isLocalStorageExist()) { // sauvegarde base locale possible - model.setSteps(StorageStep.CONFIG, - StorageStep.BACKUP, - StorageStep.CONFIRM); + model.setSteps(StorageStep.CONFIG, StorageStep.BACKUP, StorageStep.CONFIRM); // et requise par défaut model.setDoBackup(true); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java index 5ed82d9..cf3e1dd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java @@ -58,6 +58,7 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.swing.JComponent; import javax.swing.JTabbedPane; import javax.swing.SwingUtilities; import java.awt.Component; @@ -210,6 +211,30 @@ public class StorageUIHandler { // centrage sur la frame parent UIHelper.center(ui.getContextValue(Window.class, "parent"), ui); + SwingUtilities.invokeLater(() -> { + JComponent focusOwner; + switch (ui.getModel().getStep()) { + + case CHOOSE_DB_MODE: + focusOwner = ui.getCHOOSE_DB_MODE().getUseLocalMode(); + if (!focusOwner.isEnabled() || ui.getCHOOSE_DB_MODE().getUseRemoteMode().isSelected()) { + focusOwner = ui.getCHOOSE_DB_MODE().getUseRemoteMode(); + } + break; + case CONFIG: + focusOwner = ui.getCONFIG().getDumpFile(); + break; + case BACKUP: + focusOwner = ui.getBACKUP().getDirectoryText(); + break; + default: + focusOwner = null; + } + if (focusOwner != null) { + focusOwner.grabFocus(); + } + }); + // affichage ui ui.setVisible(true); } @@ -382,7 +407,7 @@ public class StorageUIHandler { // il faut juste supprimer physiquement le repertoire // de la base if (log.isErrorEnabled()) { - log.error(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); + log.error(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); } // UIHelper.handlingError(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); @@ -642,61 +667,6 @@ public class StorageUIHandler { } } -// /** -// * Effectue une sauvegarde d'un service de persitances vers le fichier -// * choisi. -// * -// * On peut spécifier les donnéees à exporter via le paramètre {@code -// * marees}. -// * -// * <b>Note:</b> Si ce paramètre vaut {@code null}, on export tout. -// * -// * @param dataSource la source de donnée qui encapsule la base locale -// * @param dst le fichier de sauvegarde -// * @param trips les marees a exporter (si {@code null} on exporte tout) -// */ -// public void backupLocalDatabase(ObserveSwingDataSource dataSource, -// File dst, -// Set<DataReference> trips) { -// -// SqlScriptProducerService dumpService = dataSource.newSqlScriptProducerService(); -// -// -// if (trips == null) { -// if (log.isInfoEnabled()) { -// log.info("will export all datas."); -// } -// backupLocalDatabase(dumpService, dst); -// return; -// } -// if (dst == null) { -// throw new IllegalArgumentException( -// "file where to backup can not be null"); -// } -// if (log.isInfoEnabled()) { -// log.info("will export " + trips.size() + " marees to " + dst); -// } -// if (log.isDebugEnabled()) { -// log.debug(trips); -// } -// -// // on doit dumper la base distante dans une base h2 et en faire -// // la sauvegarde -// -// ImmutableSet<String> tripIds = ImmutableSet.copyOf(trips.stream().map(DataReference.ID_FUNCTION).collect(Collectors.toSet())); -// -// AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().dataIdsToAdd(tripIds); -// byte[] dump = dumpService.produceAddSqlScript(request).getSqlCode(); -// -// try (FileOutputStream fileOutputStream = new FileOutputStream(dst)) { -// -// IOUtils.write(dump, fileOutputStream); -// -// } catch (IOException e) { -// UIHelper.handlingError(e); -// } -// } - public String computeReport(StorageUI ui, StorageStep step) { if (log.isDebugEnabled()) { log.debug("Build report from step " + step); @@ -712,11 +682,9 @@ public class StorageUIHandler { if (log.isDebugEnabled()) { log.debug("destroy ui " + ui.getName()); } - UIHelper.TabbedPaneIterator<Component> itr = - UIHelper.newTabbedPaneIterator(ui.getTabs()); + UIHelper.TabbedPaneIterator<Component> itr = UIHelper.newTabbedPaneIterator(ui.getTabs()); for (; itr.hasNext(); ) { - StorageTabUI tab = - (StorageTabUI) itr.next(); + StorageTabUI tab = (StorageTabUI) itr.next(); if (log.isDebugEnabled()) { log.debug("destroy ui " + tab.getName()); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java index 6bf33c8..948ceb0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java @@ -132,10 +132,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @see StorageUIHandler * @see StorageUI */ - public static void changeStorage(final JAXXContext rootContext, - final Window mainUI, - final Set<DbMode> modes, - final String title) { + public static void changeStorage(JAXXContext rootContext, Window mainUI, Set<DbMode> modes, String title) { new StorageUILauncher(rootContext, mainUI, title) { @@ -151,13 +148,11 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod log.info("will use incoming mode " + modes.stream().map(DbMode::name).collect(Collectors.joining(", "))); } - model.setExcludeSteps( - Arrays.asList(StorageStep.SELECT_DATA, - StorageStep.BACKUP, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.ROLES) - ); + model.setExcludeSteps(Arrays.asList(StorageStep.SELECT_DATA, + StorageStep.BACKUP, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.ROLES)); model.setCanCreateLocalService(modes.contains(DbMode.CREATE_LOCAL)); model.setCanUseLocalService(modes.contains(DbMode.USE_LOCAL)); model.setCanUseRemoteService(modes.contains(DbMode.USE_REMOTE)); @@ -185,8 +180,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod @Override protected void doAction(StorageUI ui) { super.doAction(ui); - StorageUIHandler handler = getStorageUIHandler(); - handler.doChangeStorage(ui.getModel()); + getStorageUIHandler().doChangeStorage(ui.getModel()); } }.start(); @@ -205,9 +199,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param model le modèle de source de données à utiliser * @see StorageUI */ - public static void obtainRemoteConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model) { + public static void obtainRemoteConnexion(JAXXContext context, Window mainUI, StorageUIModel model) { obtainConnexion(context, mainUI, model, t("observe.title.connect.remoteDB"), DbMode.USE_REMOTE); } @@ -224,9 +216,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param model le modèle de source de données à utiliser * @see StorageUI */ - public static void obtainServerConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model) { + public static void obtainServerConnexion(JAXXContext context, Window mainUI, StorageUIModel model) { obtainConnexion(context, mainUI, model, t("observe.title.connect.serverDB"), DbMode.USE_SERVER); } @@ -242,25 +232,17 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param mainUI la fenetre principale parent (peut etre null) * @param model le modèle de source de données à utiliser * @param title le titre de la fenêtre - * @param dbMode le type deconnexion (base distante ou serveur distant) + * @param dbMode le type deconnexion (base distante ou serveur distant) * @see StorageUI */ - public static void obtainConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model, - String title, - DbMode dbMode) { + public static void obtainConnexion(JAXXContext context, Window mainUI, StorageUIModel model, String title, DbMode dbMode) { if (mainUI == null) { mainUI = ObserveSwingApplicationContext.get().getMainUI(); } addStorageUIHandler(context); - StorageUILauncher launcher = new StorageUILauncher( - context, - mainUI, - model, - title) { + StorageUILauncher launcher = new StorageUILauncher(context, mainUI, model, title) { @Override protected void init(StorageUI ui) { @@ -272,13 +254,13 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod model.setCanUseServerService(true); model.setExcludeSteps(Arrays.asList( - StorageStep.CHOOSE_DB_MODE, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.SELECT_DATA, - StorageStep.ROLES, - StorageStep.BACKUP, - StorageStep.CONFIRM) + StorageStep.CHOOSE_DB_MODE, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.SELECT_DATA, + StorageStep.ROLES, + StorageStep.BACKUP, + StorageStep.CONFIRM) ); model.setSteps(StorageStep.CONFIG); model.updateUniverse(); @@ -295,12 +277,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod if (!(mainUI instanceof JAXXObject)) { mainUI = null; } - return super.createUI(context, - mainUI, - storageUIClass, - modelClass, - model - ); + return super.createUI(context, mainUI, storageUIClass, modelClass, model); } @Override @@ -317,103 +294,6 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod launcher.start(); } -// /** -// * Méthode pour lancer l'action de connexion à une base locale. -// * -// * @param context le context applicatif -// * @param mainUI la fenetre principale parent (peut etre null) -// * @param model le modèle de source de données à utiliser -// * @see StorageUI -// */ -// public static void obtainLocalConnexion(final JAXXContext context, -// Window mainUI, -// final StorageUIModel model) { -// -// if (mainUI == null) { -// mainUI = ObserveSwingApplicationContext.get().getMainUI(); -// } -// -// addStorageUIHandler(context); -// -// StorageUILauncher launcher = new StorageUILauncher( -// context, -// mainUI, -// model, -// t("observe.title.connect.localDB")) { -// -// @Override -// protected StorageUI createUI(JAXXContext context, -// Window mainUI, -// Class<StorageUI> storageUIClass, -// Class<StorageUIModel> modelClass, -// StorageUIModel model) throws Exception { -// if (!(mainUI instanceof JAXXObject)) { -// // sinon on a pas de context propagé... -// mainUI = null; -// } -// return super.createUI(context, mainUI, storageUIClass, modelClass, model); -// } -// -// @Override -// protected void init(StorageUI ui) { -// StorageUIModel model = ui.getModel(); -// -// int nbModes = 0; -// -// DbMode mode = null; -// if (model.isCanCreateLocalService()) { -// nbModes++; -// mode = DbMode.CREATE_LOCAL; -// } -// if (model.isCanUseLocalService()) { -// nbModes++; -// mode = DbMode.USE_LOCAL; -// } -// if (model.isCanUseRemoteService()) { -// nbModes++; -// mode = DbMode.USE_REMOTE; -// } -// if (model.isCanUseServerService()) { -// nbModes++; -// mode = DbMode.USE_SERVER; -// } -// -// if (nbModes == 1) { -// -// if (log.isDebugEnabled()) { -// log.debug("Only one mode available [" + mode + -// "], set it in model"); -// } -// -// // un seul mode possible, on le sélectionne -// model.setDbMode(mode); -// } -// -// // on supprime des étapes -// model.setExcludeSteps(Arrays.asList( -// StorageStep.BACKUP, -// StorageStep.CONFIG_REFERENTIEL, -// StorageStep.CONFIG_DATA, -// StorageStep.SELECT_DATA, -// StorageStep.CONFIRM)); -// -// model.updateUniverse(); -// } -// -// @Override -// protected void doAction(StorageUI ui) { -// super.doAction(ui); -// if (log.isDebugEnabled()) { -// log.debug("Apply new local connexion to " + model); -// } -// ui.getModel().copyTo(model); -// model.validate(); -// } -// }; -// -// launcher.start(); -// } - /** * Méthode pour lancer l'action de connexion à une base locale ou distante. * @@ -428,11 +308,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod mainUI = ObserveSwingApplicationContext.get().getMainUI(); } addStorageUIHandler(context); - StorageUILauncher launcher = new StorageUILauncher( - context, - mainUI, - model, - t("observe.title.connect.existingDB")) { + StorageUILauncher launcher = new StorageUILauncher(context, mainUI, model, t("observe.title.connect.existingDB")) { @Override protected void init(StorageUI ui) { @@ -441,12 +317,12 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod // exclusion des étapes non requises model.setExcludeSteps(Arrays.asList( - StorageStep.SELECT_DATA, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.ROLES, - StorageStep.BACKUP, - StorageStep.CONFIRM) + StorageStep.SELECT_DATA, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.ROLES, + StorageStep.BACKUP, + StorageStep.CONFIRM) ); model.setSteps(StorageStep.CONFIG); model.updateUniverse(); @@ -469,12 +345,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod if (!(mainUI instanceof JAXXObject)) { mainUI = null; } - return super.createUI(context, - mainUI, - storageUIClass, - modelClass, - model - ); + return super.createUI(context, mainUI, storageUIClass, modelClass, model); } @Override @@ -492,8 +363,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod } protected static void addStorageUIHandler(JAXXContext context) { - StorageUIHandler handler = - context.getContextValue(StorageUIHandler.class); + StorageUIHandler handler = context.getContextValue(StorageUIHandler.class); if (handler == null) { handler = new StorageUIHandler(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx index 5046859..39f9735 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx @@ -63,8 +63,7 @@ public void init() { <JPanel id='configContent'> <!-- configurer creation base locale a partir d'une sauvegarde --> - <Table id='IMPORT_EXTERNAL_DUMP' - constraints='"IMPORT_EXTERNAL_DUMP"'> + <Table id='IMPORT_EXTERNAL_DUMP' constraints='"IMPORT_EXTERNAL_DUMP"'> <row> <cell> <JLabel text='observe.storage.importExternalDump.config'/> @@ -76,36 +75,13 @@ public void init() { onKeyReleased='getModel().setDumpFile(new File(((JTextField)event.getSource()).getText()))'/> </cell> <cell anchor="east"> - <JButton id="fileChooserAction" - onActionPerformed="getHandler().chooseDumpFile(this)"/> + <JButton id="fileChooserAction" onActionPerformed="getHandler().chooseDumpFile(this)"/> </cell> </row> </Table> <!-- configurer creation base locale et import referentiel depuis base distante --> - <!--Table id='IMPORT_LOCAL_STORAGE' - constraints='"IMPORT_LOCAL_STORAGE"' - _description='n("observe.storage.importLocalStorage.description")'> - <row> - <cell> - <JLabel text='observe.storage.importLocalStorage.config'/> - </cell> - </row> - <row weighty='1'> - <cell weightx='1' fill="horizontal"> - <JTextField text='{model.getLocalStorageFile()+""}' - onKeyReleased='getModel().setLocalStorageFile(new File(((JTextField)event.getSource()).getText()))'/> - </cell> - <cell anchor="east"> - <JButton actionIcon='fileChooser' onActionPerformed="chooseLocalStorageFile()"/> - </cell> - </row> - </Table--> - - <!-- configurer creation base locale et import referentiel depuis base distante --> - <Table id='IMPORT_REMOTE_STORAGE' - fill="both" - constraints='"IMPORT_REMOTE_STORAGE"'> + <Table id='IMPORT_REMOTE_STORAGE' fill="both" constraints='"IMPORT_REMOTE_STORAGE"'> <row> <cell> <JLabel text='observe.storage.importRemoteStorage.config'/> @@ -120,9 +96,7 @@ public void init() { </Table> <!-- configurer creation base locale et import referentiel depuis un server distant --> - <Table id='IMPORT_SERVER_STORAGE' - fill="both" - constraints='"IMPORT_SERVER_STORAGE"'> + <Table id='IMPORT_SERVER_STORAGE' fill="both" constraints='"IMPORT_SERVER_STORAGE"'> <row> <cell> <JLabel text='observe.storage.importServerStorage.config'/> @@ -137,8 +111,7 @@ public void init() { </Table> <!-- configurer connexion a base distante --> - <Table id='USE_REMOTE' - constraints='"USE_REMOTE"' fill='both'> + <Table id='USE_REMOTE' constraints='"USE_REMOTE"' fill='both'> <row> <cell> <JLabel text='observe.storage.useRemoteStorage.config'/> @@ -146,15 +119,13 @@ public void init() { </row> <row> <cell weighty='1' weightx='1'> - <JPanel id='USE_REMOTE_content' - minimumSize='{new Dimension(20,300)}'/> + <JPanel id='USE_REMOTE_content' minimumSize='{new Dimension(20,300)}'/> </cell> </row> </Table> <!-- configurer connexion au server base distante --> - <Table id='USE_SERVER' - constraints='"USE_SERVER"' fill='both'> + <Table id='USE_SERVER' constraints='"USE_SERVER"' fill='both'> <row> <cell> <JLabel text='observe.storage.useServerStorage.config'/> @@ -162,16 +133,14 @@ public void init() { </row> <row> <cell weighty='1' weightx='1'> - <JPanel id='USE_SERVER_content' - minimumSize='{new Dimension(20,300)}'/> + <JPanel id='USE_SERVER_content' minimumSize='{new Dimension(20,300)}'/> </cell> </row> </Table> <JPanel constraints='"$$hideme$$"' visible='false'> <JPanel id='remoteConfig'> - <Table constraints='BorderLayout.CENTER' - fill="both"> + <Table constraints='BorderLayout.CENTER' fill="both"> <row> <cell anchor='west'> <JLabel text='observe.storage.remote.url'/> @@ -201,8 +170,7 @@ public void init() { </row> <row> <cell anchor='west'> - <JLabel id="serverDataBaseLabel" - text='observe.storage.server.dataBase'/> + <JLabel id="serverDataBaseLabel" text='observe.storage.server.dataBase'/> </cell> <cell weightx='1' fill="both" anchor='east'> <JTextField id="serverDataBase" @@ -215,41 +183,6 @@ public void init() { onActionPerformed='getModel().setUseSsl(((JCheckBox)event.getSource()).isSelected())'/> </cell> </row> - <!--row weighty='1'--> - <!--row> - <cell columns='2'> - <Table insets='0'> - <row> - <cell weightx='1' - fill="horizontal"> - <JTextField - id="remoteSslCertificatFile" - onKeyReleased='getModel().setSslCertificatFile(new File(((JTextField)event.getSource()).getText()))'/> - </cell> - <cell anchor="east"> - <JButton - id="remoteSslCertificatFileChooseaction" - onActionPerformed="getHandler().chooseSslCertificatFile(this)"/> - </cell> - </row> - </Table> - </cell> - </row--> - <!--row> - <cell columns='2'> - <Table insets='0'> - <row> - <cell anchor='west'> - <JLabel text='observe.storage.remote.ssl.password'/> - </cell> - <cell weightx='1' fill="both" anchor='east'> - <JPasswordField id="remoteSslCertificatPassword" - onKeyReleased='getModel().setSslCertificatPassword(((JPasswordField)event.getSource()).getPassword())'/> - </cell> - </row> - </Table> - </cell> - </row--> <!-- sauver dans la configuration --> <row> @@ -261,14 +194,12 @@ public void init() { <!-- tester la connexion --> <row> <cell columns='2'> - <JButton id="testRemoteAction" - onActionPerformed='getModel().testRemote()'/> + <JButton id="testRemoteAction" onActionPerformed='getModel().testRemote()'/> </cell> </row> </Table> <!-- résumé du test de connexion --> - <Table constraints='BorderLayout.SOUTH' fill='both' - insets='0'> + <Table constraints='BorderLayout.SOUTH' fill='both' insets='0'> <row> <cell weightx='1' weighty='1'> <JScrollPane id="connexionStatusPanel"> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java index a49ba42..6c0739c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class CatchLonglineNavigationTreeNode extends ClassNavigationTreeNode<Cat public Class<CatchLonglineUI> getContentClass() { return CatchLonglineUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java index bcbbbd3..41cec82 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java @@ -250,8 +250,8 @@ public class SelectionTreeModel extends DefaultTreeTableModel { public ImmutableSet<Class<? extends ReferentialDto>> getSelectedReferentiel() { ImmutableSet.Builder<Class<? extends ReferentialDto>> builder = ImmutableSet.builder(); for (ReferentialsSelectionTreeNode programNode : getRoot().getReferentialsNodes()) { - if (!programNode.isLeaf()) { - ImmutableList<Class<? extends ReferentialDto>> selected = programNode.getSelected(); + ImmutableList<Class<? extends ReferentialDto>> selected = programNode.getSelected(); + if (!selected.isEmpty()) { builder.addAll(selected); } } @@ -261,8 +261,8 @@ public class SelectionTreeModel extends DefaultTreeTableModel { public Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> getSelectedDataByProgram() { ImmutableMap.Builder<ReferentialReference<ProgramDto>, List<DataReference<?>>> result = ImmutableMap.builder(); for (ProgramSelectionTreeNode programNode : getRoot()) { - if (!programNode.isLeaf()) { - ImmutableList<DataReference<?>> trips = programNode.getSelected(); + ImmutableList<DataReference<?>> trips = programNode.getSelected(); + if (!trips.isEmpty()) { result.put(programNode.getData(), trips); } } -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 6804ee830bd419d64a2c416030cd8ed9319e5ed7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:20:11 2016 +0100 refs #8554 Ajout de logs sur le sql --- .../observe/application/swing/db/ObserveSwingDataSource.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java index 442d0fd..82182db 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java @@ -41,6 +41,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceType; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; @@ -58,17 +59,15 @@ import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseDestroyNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.LastUpdateDateService; -import fr.ird.observe.services.service.data.NavigationService; -import fr.ird.observe.services.service.referential.ObserveReferentialCache; import fr.ird.observe.services.service.PingService; -import fr.ird.observe.services.service.referential.ReferentialService; -import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; import fr.ird.observe.services.service.actions.report.ReportService; import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffService; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalService; import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeService; import fr.ird.observe.services.service.actions.validate.ValidateService; +import fr.ird.observe.services.service.data.NavigationService; +import fr.ird.observe.services.service.data.TripManagementService; import fr.ird.observe.services.service.data.longline.ActivityLongLineEncounterService; import fr.ird.observe.services.service.data.longline.ActivityLongLineSensorUsedService; import fr.ird.observe.services.service.data.longline.ActivityLonglineService; @@ -94,7 +93,9 @@ import fr.ird.observe.services.service.data.seine.TargetSampleService; import fr.ird.observe.services.service.data.seine.TransmittingBuoyOperationService; import fr.ird.observe.services.service.data.seine.TripSeineGearUseService; import fr.ird.observe.services.service.data.seine.TripSeineService; -import fr.ird.observe.services.service.data.TripManagementService; +import fr.ird.observe.services.service.referential.ObserveReferentialCache; +import fr.ird.observe.services.service.referential.ReferentialService; +import fr.ird.observe.services.service.sql.SqlScriptProducerService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractSerializableBean; -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit e67fb0956d32a522ea32aa91c96ee243c64ddaa1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:21:14 2016 +0100 refs #8429 fix referential access --- .../nodes/referential/ReferentialNavigationTreeNode.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java index 9c37361..0126402 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java @@ -23,7 +23,18 @@ public class ReferentialNavigationTreeNode<D extends ReferentialDto> extends Cla @Override public Class<? extends ContentUI<?, ?>> getContentClass() { - String className = String.format("fr.ird.observe.application.swing.ui.content.ref.impl.%sUI", StringUtils.removeEnd(getData().getSimpleName(), "Dto")); + String packageName = getData().getPackage().getName(); + String packagePrefix; + if (packageName.endsWith("longline")) { + packagePrefix = "longline."; + } else if (packageName.endsWith("seine")) { + packagePrefix = "seine."; + + } else { + packagePrefix = ""; + } + + String className = String.format("fr.ird.observe.application.swing.ui.content.ref.impl.%s%sUI", packagePrefix, StringUtils.removeEnd(getData().getSimpleName(), "Dto")); try { return (Class) Class.forName(className); } catch (ClassNotFoundException 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 905a69b8081b6d43f275b6a7b4b497409b8b57ad Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:21:42 2016 +0100 [iso] clean code --- .../services/topia/ObserveServiceContextTopia.java | 46 +++++++--------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java index d6b7c6b..1995529 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java @@ -28,21 +28,14 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceFactory; import fr.ird.observe.services.ObserveServiceInitializer; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConnectionTopia; import fr.ird.observe.services.dto.constants.ReferentialLocale; -import fr.ird.observe.services.topia.entity.EntitiesSetFactory; import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.attribute.FileAttribute; -import java.nio.file.attribute.PosixFilePermission; -import java.nio.file.attribute.PosixFilePermissions; import java.util.Date; import java.util.Locale; -import java.util.Set; /** * Contexte d'un service ToPIA. @@ -63,8 +56,6 @@ public class ObserveServiceContextTopia { protected ObserveTopiaApplicationContext topiaApplicationContext; - protected EntitiesSetFactory entitiesSetFactory; - public ObserveServiceContextTopia(ObserveServiceInitializer observeServiceInitializer, ObserveServiceFactory mainServiceFactory, ObserveServiceFactory serviceFactory) { @@ -109,13 +100,6 @@ public class ObserveServiceContextTopia { return new Date(); } - public EntitiesSetFactory getEntitiesSetFactory() { - if (entitiesSetFactory == null) { - entitiesSetFactory = new EntitiesSetFactory(observeServiceInitializer.getSpeciesListConfiguration()); - } - return entitiesSetFactory; - } - public <S extends ObserveService> S newService(Class<S> serviceType) { return serviceFactory.newService(observeServiceInitializer, serviceType); } @@ -142,19 +126,19 @@ public class ObserveServiceContextTopia { this.topiaPersistenceContext = topiaPersistenceContext; } - public void closeTopiaPersistenceContext() { - topiaPersistenceContext.close(); - topiaPersistenceContext = null; - } - - public File createTemporaryDirectory(String prefix) { - Set<PosixFilePermission> posixFilePermissions = PosixFilePermissions.fromString("rwxr-x---"); - FileAttribute<Set<PosixFilePermission>> fileAttribute = PosixFilePermissions.asFileAttribute(posixFilePermissions); - try { - return Files.createTempDirectory(getTemporaryDirectoryRoot().toPath(), prefix, fileAttribute).toFile(); - } catch (IOException e) { - throw new RuntimeException("Could not create temporary directory with preifx: " + prefix, e); - } - } +// public void closeTopiaPersistenceContext() { +// topiaPersistenceContext.close(); +// topiaPersistenceContext = null; +// } +// +// public File createTemporaryDirectory(String prefix) { +// Set<PosixFilePermission> posixFilePermissions = PosixFilePermissions.fromString("rwxr-x---"); +// FileAttribute<Set<PosixFilePermission>> fileAttribute = PosixFilePermissions.asFileAttribute(posixFilePermissions); +// try { +// return Files.createTempDirectory(getTemporaryDirectoryRoot().toPath(), prefix, fileAttribute).toFile(); +// } catch (IOException e) { +// throw new RuntimeException("Could not create temporary directory with preifx: " + prefix, 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 86666a581338524c1d4bf38cbc81acea1f4cb45b Merge: 82b701f 905a69b Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:44:26 2016 +0100 Retour sur develop même s'il reste 2, 3 choses à revoir Merge branch 'feature/8429' into develop .../swing/decoration/DecoratorService.java | 8 +- .../CoordinateLatitudeDtoFieldValidator.java | 4 + .../CoordinateLongitudeDtoFieldValidator.java | 4 + .../swing/ObserveSwingApplicationContext.java | 104 +- .../ObserveSwingApplicationDataSourcesManager.java | 12 +- .../swing/db/ObserveSwingDataSource.java | 21 +- .../application/swing/ui/BorderFocusListener.java | 50 + .../application/swing/ui/ObserveMainUI.jaxx | 39 +- .../application/swing/ui/ObserveMainUI.jcss | 16 +- .../application/swing/ui/ObserveMainUIHandler.java | 232 +++-- .../ui/actions/ImportStorageFromFileAction.java | 4 +- .../swing/ui/actions/ReloadStorageAction.java | 7 +- .../actions/content/AbstractContentUIAction.java | 32 + .../{shared => content}/CancelCreateUIAction.java | 35 +- .../ui/actions/content/CloseAndCreateUIAction.java | 154 +++ .../ui/actions/content/CloseOpenUIAction.java | 125 +++ .../ui/actions/content/CreateOpenUIAction.java | 29 + .../{shared => content}/DeleteDataUIAction.java | 27 +- .../DeleteReferenceUIAction.java | 37 +- .../actions/content/DeleteTableEntryUIAction.java | 29 + .../MoveActivityLonglinesUIAction.java | 103 +- .../MoveActivitySeinesUIAction.java | 108 +- .../{shared => content}/MoveRoutesUIAction.java | 99 +- .../MoveTripLonglinesUIAction.java | 24 +- .../MoveTripSeinesUIAction.java | 24 +- .../{shared => content}/MoveTripsUIAction.java | 103 +- .../ui/actions/content/NewTableEntryUIAction.java | 30 + .../swing/ui/actions/content/ReOpenUIAction.java | 90 ++ .../{shared => content}/ResetEditUIAction.java | 31 +- .../actions/content/ResetTableEntryUIAction.java | 40 + .../{shared => content}/SaveEditUIAction.java | 27 +- .../ui/actions/content/SaveTableEntryUIAction.java | 40 + .../ui/actions/global/AbstractGlobalUIAction.java | 18 + .../actions/global/ChangeFocusGlobalUIAction.java | 60 ++ .../actions/global/DeleteDataGlobalUIAction.java | 45 + .../actions/global/NewNextDataGlobalUIAction.java | 45 + .../global/OpenCloseDataGlobalUIAction.java | 76 ++ .../ui/actions/global/ResetDataGlobalUIAction.java | 38 + .../ui/actions/global/SaveDataGlobalUIAction.java | 38 + .../swing/ui/actions/shared/AbstractUIAction.java | 130 ++- .../ui/actions/shared/CloseAndCreateUIAction.java | 157 --- .../swing/ui/actions/shared/CloseOpenUIAction.java | 173 ---- .../swing/ui/actions/shared/GoDownUIAction.java | 54 +- .../swing/ui/actions/shared/GoUpUIAction.java | 36 +- .../swing/ui/actions/shared/ReOpenUIAction.java | 103 -- .../ui/actions/shared/SelectNodeUIAction.java | 9 +- .../ui/actions/shared/SelectOpenNodeUIAction.java | 20 +- .../swing/ui/admin/AdminTabUIHandler.java | 74 +- .../application/swing/ui/admin/AdminUIHandler.java | 31 + .../application/swing/ui/admin/AdminUIModel.java | 216 ++-- .../swing/ui/admin/config/ConfigUI.jaxx | 3 +- .../swing/ui/admin/config/ConfigUIHandler.java | 28 +- .../swing/ui/admin/config/SelectDataUI.jaxx | 40 +- .../swing/ui/admin/config/SelectDataUI.jcss | 19 +- .../ui/admin/consolidate/ConsolidateUIHandler.java | 44 +- .../swing/ui/admin/export/ExportModel.java | 65 +- .../swing/ui/admin/export/ExportUIHandler.java | 23 +- .../swing/ui/admin/report/ReportUIHandler.java | 26 +- .../admin/synchronize/data/DataSynchroModel.java | 40 +- .../data/DataSynchroSelectionTreeCellRenderer.java | 45 +- .../ui/admin/synchronize/data/DataSynchroUI.jaxx | 33 +- .../ui/admin/synchronize/data/DataSynchroUI.jcss | 22 - .../synchronize/data/DataSynchroUIHandler.java | 93 +- .../referential/ng/ReferentialSynchroUI.jaxx | 4 - .../swing/ui/admin/validate/ValidateUI.jaxx | 4 +- .../swing/ui/admin/validate/ValidateUIHandler.java | 82 +- .../application/swing/ui/content/Common.jcss | 4 + .../application/swing/ui/content/ContentUI.jaxx | 11 +- .../application/swing/ui/content/ContentUI.jcss | 2 + .../swing/ui/content/ContentUIBlockingLayerUI.java | 111 +++ .../swing/ui/content/ContentUIHandler.java | 182 ++-- .../swing/ui/content/ContentUIInitializer.java | 81 +- .../swing/ui/content/ContentUIManager.java | 284 +----- .../swing/ui/content/ContentUIModel.java | 4 +- .../swing/ui/content/ObserveActionMap.java | 120 +++ .../swing/ui/content/ObserveContentUI.java | 2 +- .../swing/ui/content/ObserveFocusManager.java | 1036 ++++++++++++++++++++ .../ui/content/impl/longline/BranchlineUI.jaxx | 34 +- .../content/impl/longline/BranchlineUIHandler.java | 12 +- .../impl/longline/LonglineDetailCompositionUI.jaxx | 16 +- .../LonglineDetailCompositionUIHandler.java | 26 +- .../impl/longline/LonglineGlobalCompositionUI.jaxx | 16 +- .../LonglineGlobalCompositionUIHandler.java | 20 +- .../ui/content/impl/longline/SetLonglineUI.jaxx | 30 +- .../impl/longline/SetLonglineUIHandler.java | 18 +- .../FloatingObjectTransmittingBuoyOperationUI.jaxx | 61 +- ...ngObjectTransmittingBuoyOperationUIHandler.java | 17 +- .../ui/content/impl/seine/FloatingObjectUI.jaxx | 32 +- .../impl/seine/FloatingObjectUIHandler.java | 24 +- .../swing/ui/content/impl/seine/SetSeineUI.jaxx | 16 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 32 +- .../swing/ui/content/list/ContentListUI.jaxx | 26 +- .../swing/ui/content/list/ContentListUI.jcss | 9 +- .../ui/content/list/ContentListUIHandler.java | 59 +- .../list/impl/longline/ActivityLonglinesUI.jaxx | 17 +- .../list/impl/longline/ActivityLonglinesUI.jcss | 7 +- .../impl/longline/ActivityLonglinesUIHandler.java | 11 +- .../content/list/impl/longline/CommonListUI.jcss | 4 + .../list/impl/longline/TripLonglinesUI.jaxx | 10 +- .../list/impl/longline/TripLonglinesUI.jcss | 8 +- .../list/impl/longline/TripLonglinesUIHandler.java | 13 +- .../content/list/impl/seine/ActivitySeinesUI.jaxx | 14 +- .../list/impl/seine/ActivitySeinesUIHandler.java | 11 +- .../ui/content/list/impl/seine/CommonListUI.jcss | 4 + .../swing/ui/content/list/impl/seine/RoutesUI.jaxx | 10 +- .../content/list/impl/seine/RoutesUIHandler.java | 8 +- .../ui/content/list/impl/seine/TripSeinesUI.jaxx | 10 +- .../list/impl/seine/TripSeinesUIHandler.java | 11 +- .../swing/ui/content/open/ContentOpenableUI.jaxx | 31 +- .../swing/ui/content/open/ContentOpenableUI.jcss | 13 +- .../ui/content/open/ContentOpenableUIHandler.java | 55 +- .../open/impl/longline/ActivityLonglineUI.jaxx | 18 +- .../impl/longline/ActivityLonglineUIHandler.java | 11 +- .../content/open/impl/longline/TripLonglineUI.jaxx | 49 +- .../open/impl/longline/TripLonglineUIHandler.java | 7 +- .../content/open/impl/seine/ActivitySeineUI.jaxx | 7 +- .../open/impl/seine/ActivitySeineUIHandler.java | 11 +- .../swing/ui/content/open/impl/seine/RouteUI.jaxx | 16 +- .../ui/content/open/impl/seine/RouteUIHandler.java | 69 +- .../ui/content/open/impl/seine/TripSeineUI.jaxx | 27 +- .../open/impl/seine/TripSeineUIHandler.java | 20 +- ...itySeineUI.jaxx => ContentI18nReferenceUI.jaxx} | 70 +- .../ui/content/ref/ContentI18nReferenceUI.jcss | 71 ++ .../swing/ui/content/ref/ContentReferenceUI.jaxx | 36 +- .../swing/ui/content/ref/ContentReferenceUI.jcss | 1 + .../ui/content/ref/ContentReferenceUIHandler.java | 40 +- .../swing/ui/content/ref/ReferenceHomeUI.jaxx | 7 +- .../ui/content/ref/ReferenceHomeUIHandler.java | 4 +- .../swing/ui/content/ref/ReferenceHomeUIModel.java | 2 +- .../ref/ReferentialContentUIInitializer.java | 13 +- .../swing/ui/content/ref/UniqueKeyTableModel.java | 2 +- .../swing/ui/content/ref/impl/CountryUI.jaxx | 97 +- .../swing/ui/content/ref/impl/CountryUIModel.java | 2 +- .../swing/ui/content/ref/impl/FpaZoneUI.jaxx | 95 +- .../swing/ui/content/ref/impl/FpaZoneUIModel.java | 2 +- .../content/ref/impl/GearCaracteristicTypeUI.jaxx | 95 +- .../ref/impl/GearCaracteristicTypeUIModel.java | 2 +- .../ui/content/ref/impl/GearCaracteristicUI.jaxx | 97 +- .../content/ref/impl/GearCaracteristicUIModel.java | 4 +- .../swing/ui/content/ref/impl/GearUI.jaxx | 25 +- .../swing/ui/content/ref/impl/GearUI.jcss | 4 - .../swing/ui/content/ref/impl/GearUIHandler.java | 9 +- .../swing/ui/content/ref/impl/GearUIModel.java | 2 +- .../swing/ui/content/ref/impl/HarbourUI.jaxx | 27 +- .../swing/ui/content/ref/impl/HarbourUIModel.java | 22 +- .../ui/content/ref/impl/I18nReferenceEntity.jcss | 92 -- .../content/ref/impl/LengthLengthParameterUI.jaxx | 7 +- .../ref/impl/LengthLengthParameterUIHandler.java | 7 +- .../content/ref/impl/LengthWeightParameterUI.jaxx | 7 +- .../ref/impl/LengthWeightParameterUIHandler.java | 9 +- .../ref/impl/LengthWeightParameterUIModel.java | 3 +- .../ref/impl/NeedCommentReferenceEntity.jcss | 25 - .../swing/ui/content/ref/impl/OceanUI.jaxx | 96 +- .../swing/ui/content/ref/impl/OceanUIModel.java | 2 +- .../swing/ui/content/ref/impl/OrganismUI.jaxx | 98 +- .../swing/ui/content/ref/impl/OrganismUIModel.java | 2 +- .../swing/ui/content/ref/impl/PersonUI.jaxx | 23 +- .../swing/ui/content/ref/impl/PersonUIModel.java | 14 +- .../swing/ui/content/ref/impl/ProgramUI.jaxx | 41 +- .../swing/ui/content/ref/impl/ProgramUI.jcss | 4 - .../ui/content/ref/impl/ProgramUIHandler.java | 9 +- .../swing/ui/content/ref/impl/ProgramUIModel.java | 2 +- .../swing/ui/content/ref/impl/ReferenceEntity.jcss | 3 + .../swing/ui/content/ref/impl/SexUI.jaxx | 95 +- .../swing/ui/content/ref/impl/SexUIModel.java | 2 +- .../swing/ui/content/ref/impl/ShipOwnerUI.jaxx | 24 +- .../ui/content/ref/impl/SizeMeasureTypeUI.jaxx | 92 +- .../content/ref/impl/SizeMeasureTypeUIModel.java | 2 +- .../swing/ui/content/ref/impl/SpeciesGroupUI.jaxx | 97 +- .../ui/content/ref/impl/SpeciesGroupUIModel.java | 2 +- .../swing/ui/content/ref/impl/SpeciesListUI.jaxx | 29 +- .../swing/ui/content/ref/impl/SpeciesListUI.jcss | 4 - .../ui/content/ref/impl/SpeciesListUIHandler.java | 9 +- .../ui/content/ref/impl/SpeciesListUIModel.java | 2 +- .../swing/ui/content/ref/impl/SpeciesUI.jaxx | 19 +- .../swing/ui/content/ref/impl/SpeciesUI.jcss | 4 - .../ui/content/ref/impl/SpeciesUIHandler.java | 9 +- .../swing/ui/content/ref/impl/SpeciesUIModel.java | 22 +- .../ui/content/ref/impl/VesselSizeCategoryUI.jaxx | 30 +- .../ref/impl/VesselSizeCategoryUIModel.java | 2 +- .../swing/ui/content/ref/impl/VesselTypeUI.jaxx | 28 +- .../ui/content/ref/impl/VesselTypeUIModel.java | 2 +- .../swing/ui/content/ref/impl/VesselUI.jaxx | 38 +- .../swing/ui/content/ref/impl/VesselUI.jcss | 4 - .../swing/ui/content/ref/impl/VesselUIHandler.java | 9 +- .../ui/content/ref/impl/WeightMeasureTypeUI.jaxx | 93 +- .../content/ref/impl/WeightMeasureTypeUIModel.java | 2 +- .../ref/impl/longline/BaitHaulingStatusUI.jaxx | 95 +- .../impl/longline/BaitHaulingStatusUIModel.java | 2 +- .../ref/impl/longline/BaitSettingStatusUI.jaxx | 97 +- .../impl/longline/BaitSettingStatusUIModel.java | 2 +- .../ui/content/ref/impl/longline/BaitTypeUI.jaxx | 94 +- .../content/ref/impl/longline/BaitTypeUIModel.java | 2 +- .../ref/impl/longline/CatchFateLonglineUI.jaxx | 95 +- .../impl/longline/CatchFateLonglineUIModel.java | 2 +- .../content/ref/impl/longline/EncounterTypeUI.jaxx | 95 +- .../ref/impl/longline/EncounterTypeUIModel.java | 2 +- .../ui/content/ref/impl/longline/HealthnessUI.jaxx | 94 +- .../ref/impl/longline/HealthnessUIModel.java | 2 +- .../content/ref/impl/longline/HookPositionUI.jaxx | 95 +- .../ref/impl/longline/HookPositionUIModel.java | 2 +- .../ui/content/ref/impl/longline/HookSizeUI.jaxx | 94 +- .../content/ref/impl/longline/HookSizeUIModel.java | 2 +- .../ui/content/ref/impl/longline/HookTypeUI.jaxx | 96 +- .../content/ref/impl/longline/HookTypeUIModel.java | 2 +- .../impl/longline/ItemHorizontalPositionUI.jaxx | 95 +- .../longline/ItemHorizontalPositionUIModel.java | 2 +- .../ref/impl/longline/ItemVerticalPositionUI.jaxx | 95 +- .../impl/longline/ItemVerticalPositionUIModel.java | 2 +- .../ref/impl/longline/LightsticksColorUI.jaxx | 95 +- .../ref/impl/longline/LightsticksColorUIModel.java | 2 +- .../ref/impl/longline/LightsticksTypeUI.jaxx | 95 +- .../ref/impl/longline/LightsticksTypeUIModel.java | 2 +- .../ui/content/ref/impl/longline/LineTypeUI.jaxx | 94 +- .../content/ref/impl/longline/LineTypeUIModel.java | 2 +- .../ref/impl/longline/MaturityStatusUI.jaxx | 98 +- .../ref/impl/longline/MaturityStatusUIModel.java | 2 +- .../ref/impl/longline/MitigationTypeUI.jaxx | 95 +- .../ref/impl/longline/MitigationTypeUIModel.java | 2 +- .../content/ref/impl/longline/SensorBrandUI.jaxx | 24 +- .../ref/impl/longline/SensorBrandUIModel.java | 2 +- .../ref/impl/longline/SensorDataFormatUI.jaxx | 95 +- .../ref/impl/longline/SensorDataFormatUIModel.java | 2 +- .../ui/content/ref/impl/longline/SensorTypeUI.jaxx | 94 +- .../ref/impl/longline/SensorTypeUIModel.java | 2 +- .../content/ref/impl/longline/SettingShapeUI.jaxx | 95 +- .../ref/impl/longline/SettingShapeUIModel.java | 2 +- .../ref/impl/longline/StomacFullnessUI.jaxx | 95 +- .../ref/impl/longline/StomacFullnessUIModel.java | 2 +- .../ui/content/ref/impl/longline/TripTypeUI.jaxx | 94 +- .../content/ref/impl/longline/TripTypeUIModel.java | 2 +- .../impl/longline/VesselActivityLonglineUI.jaxx | 95 +- .../longline/VesselActivityLonglineUIModel.java | 2 +- .../ui/content/ref/impl/seine/DetectionModeUI.jaxx | 95 +- .../ref/impl/seine/DetectionModeUIModel.java | 2 +- .../ui/content/ref/impl/seine/ObjectFateUI.jaxx | 93 +- .../content/ref/impl/seine/ObjectFateUIModel.java | 2 +- .../content/ref/impl/seine/ObjectOperationUI.jaxx | 96 +- .../ref/impl/seine/ObjectOperationUIModel.java | 2 +- .../ui/content/ref/impl/seine/ObjectTypeUI.jaxx | 93 +- .../content/ref/impl/seine/ObjectTypeUIModel.java | 2 +- .../content/ref/impl/seine/ObservedSystemUI.jaxx | 97 +- .../ref/impl/seine/ObservedSystemUIModel.java | 2 +- .../content/ref/impl/seine/ReasonForDiscardUI.jaxx | 96 +- .../ref/impl/seine/ReasonForDiscardUIModel.java | 2 +- .../ref/impl/seine/ReasonForNoFishingUI.jaxx | 99 +- .../ref/impl/seine/ReasonForNoFishingUIModel.java | 2 +- .../content/ref/impl/seine/ReasonForNullSetUI.jaxx | 94 +- .../ref/impl/seine/ReasonForNullSetUIModel.java | 2 +- .../ui/content/ref/impl/seine/SpeciesFateUI.jaxx | 78 +- .../ui/content/ref/impl/seine/SpeciesStatusUI.jaxx | 94 +- .../ref/impl/seine/SpeciesStatusUIModel.java | 2 +- .../ref/impl/seine/SurroundingActivityUI.jaxx | 94 +- .../ref/impl/seine/SurroundingActivityUIModel.java | 2 +- .../impl/seine/TransmittingBuoyOperationUI.jaxx | 96 +- .../seine/TransmittingBuoyOperationUIModel.java | 2 +- .../ref/impl/seine/TransmittingBuoyTypeUI.jaxx | 93 +- .../impl/seine/TransmittingBuoyTypeUIModel.java | 2 +- .../ref/impl/seine/VesselActivitySeineUI.jaxx | 80 +- .../ref/impl/seine/VesselActivitySeineUIModel.java | 3 +- .../content/ref/impl/seine/WeightCategoryUI.jaxx | 94 +- .../ref/impl/seine/WeightCategoryUIModel.java | 2 +- .../swing/ui/content/ref/impl/seine/WindUI.jaxx | 98 +- .../ui/content/ref/impl/seine/WindUIModel.java | 2 +- .../swing/ui/content/table/CommonTable.jcss | 4 + .../swing/ui/content/table/ContentTableModel.java | 7 +- .../swing/ui/content/table/ContentTableUI.jaxx | 33 +- .../swing/ui/content/table/ContentTableUI.jcss | 31 +- .../ui/content/table/ContentTableUIHandler.java | 138 +-- .../content/table/ContentTableUIInitializer.java | 11 +- .../ui/content/table/ContentTableUIModel.java | 6 +- .../ui/content/table/ObserveContentTableUI.java | 10 +- .../table/impl/longline/BaitsCompositionUI.jaxx | 19 +- .../impl/longline/BaitsCompositionUIHandler.java | 10 +- .../impl/longline/BaitsCompositionUIModel.java | 20 +- .../impl/longline/BranchlinesCompositionUI.jaxx | 19 +- .../longline/BranchlinesCompositionUIHandler.java | 10 +- .../longline/BranchlinesCompositionUIModel.java | 20 +- .../impl/longline/CatchLonglineTableModel.java | 3 +- .../table/impl/longline/CatchLonglineUI.jaxx | 59 +- .../impl/longline/CatchLonglineUIHandler.java | 32 +- .../table/impl/longline/CatchLonglineUIModel.java | 58 +- .../content/table/impl/longline/EncounterUI.jaxx | 14 +- .../table/impl/longline/EncounterUIHandler.java | 13 +- .../table/impl/longline/EncounterUIModel.java | 12 +- .../impl/longline/FloatlinesCompositionUI.jaxx | 16 +- .../longline/FloatlinesCompositionUIHandler.java | 10 +- .../longline/FloatlinesCompositionUIModel.java | 17 +- .../GearUseFeaturesLonglineTableModel.java | 8 +- .../impl/longline/GearUseFeaturesLonglineUI.jaxx | 25 +- .../longline/GearUseFeaturesLonglineUIHandler.java | 9 +- .../longline/GearUseFeaturesLonglineUIModel.java | 10 +- .../table/impl/longline/HooksCompositionUI.jaxx | 20 +- .../impl/longline/HooksCompositionUIHandler.java | 8 +- .../impl/longline/HooksCompositionUIModel.java | 19 +- .../content/table/impl/longline/SensorUsedUI.jaxx | 18 +- .../table/impl/longline/SensorUsedUIHandler.java | 16 +- .../table/impl/longline/SensorUsedUIModel.java | 23 +- .../ui/content/table/impl/longline/TdrUI.jaxx | 27 +- .../content/table/impl/longline/TdrUIHandler.java | 13 +- .../ui/content/table/impl/longline/TdrUIModel.java | 5 +- .../table/impl/seine/AbstractSampleUIHandler.java | 6 +- .../impl/seine/GearUseFeaturesSeineTableModel.java | 8 +- .../table/impl/seine/GearUseFeaturesSeineUI.jaxx | 25 +- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 9 +- .../impl/seine/GearUseFeaturesSeineUIModel.java | 24 +- .../content/table/impl/seine/NonTargetCatchUI.jaxx | 45 +- .../table/impl/seine/NonTargetCatchUIHandler.java | 7 +- .../table/impl/seine/NonTargetCatchUIModel.java | 12 +- .../table/impl/seine/NonTargetSampleUI.jaxx | 15 +- .../table/impl/seine/NonTargetSampleUIHandler.java | 7 +- .../table/impl/seine/NonTargetSampleUIModel.java | 23 +- .../table/impl/seine/ObjectObservedSpeciesUI.jaxx | 31 +- .../impl/seine/ObjectObservedSpeciesUIHandler.java | 13 +- .../impl/seine/ObjectObservedSpeciesUIModel.java | 13 +- .../table/impl/seine/ObjectSchoolEstimateUI.jaxx | 31 +- .../impl/seine/ObjectSchoolEstimateUIHandler.java | 13 +- .../impl/seine/ObjectSchoolEstimateUIModel.java | 13 +- .../content/table/impl/seine/SchoolEstimateUI.jaxx | 24 +- .../table/impl/seine/SchoolEstimateUIHandler.java | 15 +- .../table/impl/seine/SchoolEstimateUIModel.java | 19 +- .../ui/content/table/impl/seine/TargetCatchUI.jaxx | 27 +- .../table/impl/seine/TargetCatchUIHandler.java | 13 +- .../table/impl/seine/TargetCatchUIModel.java | 27 +- .../table/impl/seine/TargetDiscardCatchUI.jaxx | 33 +- .../impl/seine/TargetDiscardCatchUIHandler.java | 7 +- .../impl/seine/TargetDiscardCatchUIModel.java | 27 +- .../table/impl/seine/TargetSampleCaptureUI.jaxx | 7 +- .../table/impl/seine/TargetSampleRejeteUI.jaxx | 7 +- .../content/table/impl/seine/TargetSampleUI.jaxx | 17 +- .../table/impl/seine/TargetSampleUIHandler.java | 10 +- .../table/impl/seine/TargetSampleUIModel.java | 4 +- .../swing/ui/storage/ObstunaAdminAction.java | 53 +- .../swing/ui/storage/StorageBackupUILauncher.java | 30 +- .../swing/ui/storage/StorageUIHandler.java | 192 ++-- .../swing/ui/storage/StorageUILauncher.java | 192 +--- .../swing/ui/storage/StorageUIModel.java | 105 +- .../swing/ui/storage/tabs/ChooseDbModeUI.jcss | 2 +- .../swing/ui/storage/tabs/ConfigUI.jaxx | 93 +- .../swing/ui/storage/tabs/DataSelectionModel.java | 619 ------------ .../swing/ui/storage/tabs/SelectDataUI.jaxx | 24 +- .../swing/ui/storage/tabs/SelectDataUI.jcss | 6 - .../swing/ui/storage/tabs/StorageTabUIHandler.java | 99 +- .../ui/tree/DataSelectionTreeSelectionModel.java | 709 -------------- .../ui/tree/NavigationTreeSelectionModel.java | 118 --- .../swing/ui/tree/ObserveDataProvider.java | 83 -- .../tree/ObserveNavigationTreeShowPopupAction.java | 54 +- .../swing/ui/tree/ObserveTreeBridge.java | 142 --- .../swing/ui/tree/ObserveTreeHelper.java | 633 ------------ .../swing/ui/tree/ObserveTreeNodeSupport.java | 39 + .../actions/ChangeActivityRouteActionListener.java | 25 +- .../actions/ChangeActivityTripActionListener.java | 25 +- .../actions/ChangeRouteTripActionListener.java | 25 +- .../actions/ChangeTripProgramActionListener.java | 23 +- .../ui/tree/actions/NodeChangeActionListener.java | 36 +- .../loadors/AbstractDataReferenceChildLoador.java | 39 - .../ui/tree/loadors/AbstractNodeChildLoador.java | 95 -- .../loadors/ActivityLonglineNodeChildLoador.java | 109 -- .../loadors/ActivityLonglinesNodeChildLoador.java | 64 -- .../tree/loadors/ActivitySeineNodeChildLoador.java | 97 -- .../loadors/ActivitySeinesNodeChildLoador.java | 66 -- .../loadors/FloatingObjectNodeChildLoador.java | 60 -- .../loadors/ProgramLonglineNodeChildLoador.java | 126 --- .../tree/loadors/ProgramSeineNodeChildLoador.java | 119 --- .../ui/tree/loadors/ReferenceNodeChildLoador.java | 80 -- .../swing/ui/tree/loadors/RootNodeChildLoador.java | 148 --- .../ui/tree/loadors/RoutesNodeChildLoador.java | 70 -- .../tree/loadors/SetLonglineNodeChildLoador.java | 67 -- .../ui/tree/loadors/SetSeineNodeChildLoador.java | 76 -- .../MoveActivityLonglineNodeMenuPopulator.java | 29 +- .../menu/MoveActivitySeineNodeMenuPopulator.java | 29 +- .../swing/ui/tree/menu/MoveNodeMenuPopulator.java | 18 +- .../ui/tree/menu/MoveRouteNodeMenuPopulator.java | 29 +- .../ui/tree/menu/MoveTripNodeMenuPopulator.java | 41 +- .../swing/ui/tree/navigation/NavigationTree.java | 524 ++++++++++ .../navigation/NavigationTreeCellRenderer.java | 69 ++ .../ui/tree/navigation/NavigationTreeHeader.jaxx | 45 + .../ui/tree/navigation/NavigationTreeHeader.jcss | 53 + .../navigation/NavigationTreeHeaderHandler.java | 106 ++ .../ui/tree/navigation/NavigationTreeModel.java | 148 +++ .../navigation/nodes/ClassNavigationTreeNode.java | 57 ++ .../nodes/NavigationTreeNodeSupport.java | 117 +++ .../nodes/ReferenceNavigationTreeNodeSupport.java | 45 + .../navigation/nodes/RootNavigationTreeNode.java | 42 + .../nodes/StringNavigationTreeNodeSupport.java | 52 + .../ActivitiesLonglineNavigationTreeNode.java | 57 ++ .../ActivityLonglineNavigationTreeNode.java | 71 ++ .../longline/CatchLonglineNavigationTreeNode.java | 28 + .../EncounterLonglineNavigationTreeNode.java | 28 + .../GearUseFeaturesLonglineNavigationTreeNode.java | 34 + .../ProgramLonglineNavigationTreeNode.java | 48 + .../SensorUsedLonglineNavigationTreeNode.java | 28 + ...etailCompositionLonglineNavigationTreeNode.java | 28 + ...lobalCompositionLonglineNavigationTreeNode.java | 28 + .../longline/SetLonglineNavigationTreeNode.java | 38 + .../longline/TdrLonglineNavigationTreeNode.java | 28 + .../longline/TripLonglineNavigationTreeNode.java | 47 + .../referential/ReferentialNavigationTreeNode.java | 59 ++ .../ReferentialsNavigationTreeNode.java | 51 + .../seine/ActivitiesSeineNavigationTreeNode.java | 62 ++ .../seine/ActivitySeineNavigationTreeNode.java | 56 ++ ...cardedTargetCatchesSeineNavigationTreeNode.java | 28 + ...cardedTargetSamplesSeineNavigationTreeNode.java | 28 + .../FloatingObjectSeineNavigationTreeNode.java | 35 + .../GearUseFeaturesSeineNavigationTreeNode.java | 34 + .../KeptTargetCatchesSeineNavigationTreeNode.java | 29 + .../KeptTargetSamplesSeineNavigationTreeNode.java | 28 + .../NonTargetCatchesSeineNavigationTreeNode.java | 28 + .../NoneTargetSamplesSeineNavigationTreeNode.java | 29 + .../seine/ProgramSeineNavigationTreeNode.java | 48 + .../nodes/seine/RouteSeineNavigationTreeNode.java | 44 + .../nodes/seine/RoutesSeineNavigationTreeNode.java | 62 ++ .../SchoolEstimatesSeineNavigationTreeNode.java | 28 + .../nodes/seine/SetSeineNavigationTreeNode.java | 41 + .../nodes/seine/TripSeineNavigationTreeNode.java | 48 + .../ui/tree/node/AbstrctReferenceNodeSupport.java | 116 --- .../swing/ui/tree/node/ActivityLonglineNode.java | 52 - .../swing/ui/tree/node/ActivitySeineNode.java | 52 - .../ui/tree/node/DataReferenceNodeSupport.java | 98 -- .../ui/tree/node/FloatingObjectSeineNode.java | 52 - .../swing/ui/tree/node/ObserveNode.java | 119 --- .../swing/ui/tree/node/ProgramLonglineNode.java | 71 -- .../swing/ui/tree/node/ProgramSeineNode.java | 69 -- .../tree/node/ReferentialReferenceNodeSupport.java | 85 -- .../swing/ui/tree/node/RouteSeineNode.java | 49 - .../swing/ui/tree/node/SetLonglineNode.java | 52 - .../swing/ui/tree/node/SetSeineNode.java | 52 - .../swing/ui/tree/node/TripLonglineNode.java | 50 - .../swing/ui/tree/node/TripSeineNode.java | 62 -- .../renderer/AbstractObserveTreeCellRenderer.java | 434 -------- .../renderer/DataSelectionTreeCellRenderer.java | 140 --- .../tree/renderer/NavigationTreeCellRenderer.java | 101 -- .../swing/ui/tree/selection/SelectionTree.java | 164 ++++ .../tree/selection/SelectionTreeCellRenderer.java | 39 + .../ui/tree/selection/SelectionTreeHeader.jaxx | 43 + .../selection/SelectionTreeHeader.jcss} | 42 +- .../tree/selection/SelectionTreeHeaderHandler.java | 96 ++ .../ui/tree/selection/SelectionTreeModel.java | 401 ++++++++ .../selection/nodes/ProgramSelectionTreeNode.java | 86 ++ .../nodes/ReferenceSelectionTreeNodeSupport.java | 52 + .../nodes/ReferentialSelectionTreeNode.java | 51 + .../nodes/ReferentialsSelectionTreeNode.java | 86 ++ .../selection/nodes/RootSelectionTreeNode.java | 61 ++ .../selection/nodes/SelectionTreeNodeSupport.java | 68 ++ .../nodes/TripLonglineSelectionTreeNode.java | 44 + .../nodes/TripSeineSelectionTreeNode.java | 45 + .../nodes/TripSelectionTreeNodeSupport.java | 27 + .../swing/ui/util/DecoratedNodeEntity.java | 6 +- .../ftl/dataSourceConnectionReport_en.ftl | 10 +- .../ftl/dataSourceConnectionReport_es.ftl | 10 +- .../ftl/dataSourceConnectionReport_fr.ftl | 10 +- .../i18n/application-swing_en_GB.properties | 3 + .../i18n/application-swing_es_ES.properties | 3 + .../i18n/application-swing_fr_FR.properties | 3 + .../v1/data/NavigationServiceController.java | 24 + application-web/src/main/resources/mapping | 1 + .../observe/ObserveTopiaApplicationContext.java | 25 +- .../fr/ird/observe/ObserveTopiaConfiguration.java | 12 +- .../observe/ObserveTopiaConfigurationFactory.java | 17 +- .../observe/ObserveTopiaPersistenceContext.java | 18 +- .../java/fr/ird/observe/RunScriptTopiaSqlWork.java | 11 +- .../fr/ird/observe/RunScriptsTopiaSqlWork.java | 6 +- .../entities/longline/TripLonglineImpl.java | 11 + .../entities/longline/TripLonglineTopiaDao.java | 7 +- .../observe/entities/referentiel/ProgramImpl.java | 16 +- .../entities/referentiel/ProgramTopiaDao.java | 121 --- .../ird/observe/entities/seine/TripSeineImpl.java | 4 +- entities/src/main/xmi/observe-common.zargo | Bin 45678 -> 45811 bytes entities/src/main/xmi/observe-longline.zargo | Bin 93824 -> 93999 bytes ...ObserveDataSourceConfigurationTopiaSupport.java | 11 + .../dto/reference/DataReferenceSetDefinitions.java | 1 + .../ReferentialReferenceSetDefinitions.java | 3 +- .../services/dto/longline/TripLonglineHelper.java | 14 + .../services/dto/referential/ProgramHelper.java | 6 +- .../seine/VesselActivitySeineHelper.java | 26 +- .../services/dto/seine/ActivitySeineDto.java | 25 +- .../services/dto/seine/TripSeineHelper.java | 13 + .../src/main/xmi/observe-services-dto-common.zargo | Bin 48945 -> 49022 bytes .../main/xmi/observe-services-dto-longline.zargo | Bin 67946 -> 68017 bytes .../topia/binder/BinderEngineInitializer.java | 230 ++--- .../{ => longline}/ActivityLonglineBinder.java | 3 +- .../ActivityLonglineEncouterDtoBinder.java | 3 +- .../ActivityLonglineSensorUsedDtoBinder.java | 3 +- .../ActivityLonglineStubDtoBinder.java | 3 +- .../{ => longline}/BaitsCompositionBinder.java | 3 +- .../binder/data/{ => longline}/BasketBinder.java | 3 +- .../data/{ => longline}/BranchlineBinder.java | 3 +- .../BranchlinesCompositionBinder.java | 3 +- .../data/{ => longline}/CatchLonglineBinder.java | 3 +- .../data/{ => longline}/EncounterBinder.java | 3 +- .../FloatlinesCompositionBinder.java | 3 +- .../GearUseFeaturesLonglineBinder.java | 3 +- .../GearUseFeaturesMeasurementLonglineBinder.java | 3 +- .../{ => longline}/HooksCompositionBinder.java | 3 +- .../binder/data/{ => longline}/SectionBinder.java | 3 +- .../data/{ => longline}/SensorUsedBinder.java | 3 +- .../data/{ => longline}/SetLonglineBinder.java | 3 +- .../{ => longline}/SetLonglineCatchDtoBinder.java | 3 +- .../SetLonglineDetailCompositionDtoBinder.java | 3 +- .../SetLonglineGlobalCompositionDtoBinder.java | 3 +- .../{ => longline}/SetLonglineStubDtoBinder.java | 3 +- .../{ => longline}/SetLonglineTdrDtoBinder.java | 3 +- .../data/{ => longline}/SizeMeasureBinder.java | 3 +- .../binder/data/{ => longline}/TdrBinder.java | 3 +- .../TripLonglineActivityDtoBinder.java | 3 +- .../data/{ => longline}/TripLonglineBinder.java | 7 +- .../TripLonglineGearUseDtoBinder.java | 3 +- .../data/{ => longline}/WeightMeasureBinder.java | 3 +- .../data/{ => seine}/ActivitySeineBinder.java | 3 +- .../{ => seine}/ActivitySeineStubDtoBinder.java | 3 +- .../data/{ => seine}/FloatingObjectBinder.java | 3 +- .../FloatingObjectObservedSpeciesDtoBinder.java | 3 +- .../FloatingObjectSchoolEstimateDtoBinder.java | 3 +- .../FloatingObjectTransmittingBuoyDtoBinder.java | 3 +- .../GearUseFeaturesMeasurementSeineBinder.java | 3 +- .../{ => seine}/GearUseFeaturesSeineBinder.java | 3 +- .../data/{ => seine}/NonTargetCatchBinder.java | 3 +- .../data/{ => seine}/NonTargetLengthBinder.java | 3 +- .../data/{ => seine}/NonTargetSampleBinder.java | 3 +- .../{ => seine}/ObjectObservedSpeciesBinder.java | 3 +- .../{ => seine}/ObjectSchoolEstimateBinder.java | 3 +- .../topia/binder/data/{ => seine}/RouteBinder.java | 3 +- .../data/{ => seine}/RouteStubDtoBinder.java | 3 +- .../data/{ => seine}/SchoolEstimateBinder.java | 3 +- .../binder/data/{ => seine}/SetSeineBinder.java | 3 +- .../SetSeineNonTargetCatchDtoBinder.java | 3 +- .../SetSeineSchoolEstimateDtoBinder.java | 3 +- .../{ => seine}/SetSeineTargetCatchDtoBinder.java | 3 +- .../binder/data/{ => seine}/TargetCatchBinder.java | 3 +- .../data/{ => seine}/TargetLengthBinder.java | 3 +- .../data/{ => seine}/TargetSampleBinder.java | 3 +- .../data/{ => seine}/TransmittingBuoyBinder.java | 3 +- .../binder/data/{ => seine}/TripSeineBinder.java | 3 +- .../{ => seine}/TripSeineGearUseDtoBinder.java | 3 +- .../referential/{ => common}/CountryBinder.java | 3 +- .../referential/{ => common}/FpaZoneBinder.java | 3 +- .../referential/{ => common}/GearBinder.java | 3 +- .../{ => common}/GearCaracteristicBinder.java | 3 +- .../{ => common}/GearCaracteristicTypeBinder.java | 3 +- .../referential/{ => common}/HarbourBinder.java | 3 +- .../{ => common}/LengthLengthParameterBinder.java | 3 +- .../{ => common}/LengthWeightParameterBinder.java | 3 +- .../referential/{ => common}/OceanBinder.java | 3 +- .../referential/{ => common}/OrganismBinder.java | 3 +- .../referential/{ => common}/PersonBinder.java | 3 +- .../referential/{ => common}/ProgramBinder.java | 12 +- .../binder/referential/{ => common}/SexBinder.java | 3 +- .../referential/{ => common}/ShipOwnerBinder.java | 3 +- .../{ => common}/SizeMeasureTypeBinder.java | 3 +- .../referential/{ => common}/SpeciesBinder.java | 3 +- .../{ => common}/SpeciesGroupBinder.java | 3 +- .../{ => common}/SpeciesListBinder.java | 3 +- .../referential/{ => common}/VesselBinder.java | 3 +- .../{ => common}/VesselSizeCategoryBinder.java | 3 +- .../referential/{ => common}/VesselTypeBinder.java | 3 +- .../{ => common}/WeightMeasureTypeBinder.java | 3 +- .../{ => longline}/BaitHaulingStatusBinder.java | 3 +- .../{ => longline}/BaitSettingStatusBinder.java | 3 +- .../referential/{ => longline}/BaitTypeBinder.java | 3 +- .../{ => longline}/CatchFateLonglineBinder.java | 3 +- .../{ => longline}/EncounterTypeBinder.java | 3 +- .../{ => longline}/HealthnessBinder.java | 3 +- .../{ => longline}/HookPositionBinder.java | 3 +- .../referential/{ => longline}/HookSizeBinder.java | 3 +- .../referential/{ => longline}/HookTypeBinder.java | 3 +- .../ItemHorizontalPositionBinder.java | 3 +- .../{ => longline}/ItemVerticalPositionBinder.java | 3 +- .../{ => longline}/LightsticksColorBinder.java | 3 +- .../{ => longline}/LightsticksTypeBinder.java | 3 +- .../referential/{ => longline}/LineTypeBinder.java | 3 +- .../{ => longline}/MaturityStatusBinder.java | 3 +- .../{ => longline}/MitigationTypeBinder.java | 3 +- .../{ => longline}/SensorBrandBinder.java | 3 +- .../{ => longline}/SensorDataFormatBinder.java | 3 +- .../{ => longline}/SensorTypeBinder.java | 3 +- .../{ => longline}/SettingShapeBinder.java | 3 +- .../{ => longline}/StomacFullnessBinder.java | 3 +- .../referential/{ => longline}/TripTypeBinder.java | 3 +- .../VesselActivityLonglineBinder.java | 3 +- .../{ => seine}/DetectionModeBinder.java | 3 +- .../referential/{ => seine}/ObjectFateBinder.java | 3 +- .../{ => seine}/ObjectOperationBinder.java | 3 +- .../referential/{ => seine}/ObjectTypeBinder.java | 3 +- .../{ => seine}/ObservedSystemBinder.java | 3 +- .../{ => seine}/ReasonForDiscardBinder.java | 3 +- .../{ => seine}/ReasonForNoFishingBinder.java | 3 +- .../{ => seine}/ReasonForNullSetBinder.java | 3 +- .../referential/{ => seine}/SpeciesFateBinder.java | 3 +- .../{ => seine}/SpeciesStatusBinder.java | 3 +- .../{ => seine}/SurroundingActivityBinder.java | 3 +- .../TransmittingBuoyOperationBinder.java | 3 +- .../{ => seine}/TransmittingBuoyTypeBinder.java | 3 +- .../{ => seine}/VesselActivitySeineBinder.java | 3 +- .../{ => seine}/WeightCategoryBinder.java | 3 +- .../binder/referential/{ => seine}/WindBinder.java | 3 +- .../services/topia/ObserveServiceContextTopia.java | 46 +- .../services/topia/ObserveServiceFactoryTopia.java | 3 - .../ObserveTopiaApplicationContextFactory.java | 15 +- .../topia/service/DataSourceServiceTopia.java | 2 + .../service/data/ImportTripScriptTopiaSqlWork.java | 14 +- .../topia/service/data/NavigationServiceTopia.java | 79 ++ .../service/data/TripManagementServiceTopia.java | 9 +- .../service/data/seine/TripSeineServiceTopia.java | 1 - .../service/sql/SqlScriptProducerServiceTopia.java | 9 +- .../observe/services/ObserveServicesProvider.java | 3 + .../services/service/data/NavigationRequest.java | 30 + .../services/service/data/NavigationResult.java | 40 + .../services/service/data/NavigationService.java | 15 + .../topia/service/sql/batch/SqlRequests.java | 108 +- .../sql/batch/TopiaSqlBatchServiceImpl.java | 8 +- .../sql/batch/actions/AbstractSchemaAction.java | 4 +- .../sql/batch/actions/AbstractSqlAction.java | 15 +- .../sql/batch/actions/AbstractSqlRequest.java | 7 - .../sql/batch/actions/AbstractTablesAction.java | 47 +- .../sql/batch/actions/CreateSchemaAction.java | 14 +- .../sql/batch/actions/DeleteTablesAction.java | 10 +- .../sql/batch/actions/DropSchemaAction.java | 15 +- .../sql/batch/actions/ReplicateTablesAction.java | 6 +- .../sql/batch/actions/UpdateTablesAction.java | 10 +- .../sql/batch/tables/TopiaSqlTablesFactory.java | 12 +- 620 files changed, 10368 insertions(+), 14384 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 5f2ce4405c78c5941aa6136007b8afb8473f82c7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:40:16 2016 +0100 clean code --- .../swing/db/ObserveSwingDataSource.java.orig | 717 +++++++++++++++++++++ .../services/topia/ObserveServiceContextTopia.java | 15 - ...a.java => ObserveServiceContextTopia.java.orig} | 3 + 3 files changed, 720 insertions(+), 15 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java.orig b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java.orig new file mode 100644 index 0000000..be50300 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java.orig @@ -0,0 +1,717 @@ +package fr.ird.observe.application.swing.db; + +/*- + * #%L + * ObServe :: Application Swing + * %% + * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.SetMultimap; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceEvent; +import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceListener; +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.ObserveServiceInitializer; +import fr.ird.observe.services.ObserveServicesProvider; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationAndConnection; +import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.configuration.ObserveDataSourceInformation; +import fr.ird.observe.services.configuration.ObserveDataSourceType; +import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; +import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; +import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; +import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; +import fr.ird.observe.services.dto.ObserveDbUserDto; +import fr.ird.observe.services.dto.ObserveSpeciesListConfiguration; +import fr.ird.observe.services.dto.ReferenceMap; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; +import fr.ird.observe.services.runner.ObserveServiceMainFactory; +import fr.ird.observe.services.service.BabModelVersionException; +import fr.ird.observe.services.service.DataSourceService; +import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; +import fr.ird.observe.services.service.DatabaseDestroyNotAuthorizedException; +import fr.ird.observe.services.service.DatabaseNotFoundException; +import fr.ird.observe.services.service.LastUpdateDateService; +import fr.ird.observe.services.service.PingService; +import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; +import fr.ird.observe.services.service.actions.report.ReportService; +import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffService; +import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalService; +import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeService; +import fr.ird.observe.services.service.actions.validate.ValidateService; +<<<<<<< 86666a581338524c1d4bf38cbc81acea1f4cb45b +import fr.ird.observe.services.service.data.NavigationService; +======= +>>>>>>> clean code +import fr.ird.observe.services.service.data.TripManagementService; +import fr.ird.observe.services.service.data.longline.ActivityLongLineEncounterService; +import fr.ird.observe.services.service.data.longline.ActivityLongLineSensorUsedService; +import fr.ird.observe.services.service.data.longline.ActivityLonglineService; +import fr.ird.observe.services.service.data.longline.BranchlineService; +import fr.ird.observe.services.service.data.longline.SetLonglineCatchService; +import fr.ird.observe.services.service.data.longline.SetLonglineDetailCompositionService; +import fr.ird.observe.services.service.data.longline.SetLonglineGlobalCompositionService; +import fr.ird.observe.services.service.data.longline.SetLonglineService; +import fr.ird.observe.services.service.data.longline.TdrService; +import fr.ird.observe.services.service.data.longline.TripLonglineGearUseService; +import fr.ird.observe.services.service.data.longline.TripLonglineService; +import fr.ird.observe.services.service.data.seine.ActivitySeineService; +import fr.ird.observe.services.service.data.seine.FloatingObjectService; +import fr.ird.observe.services.service.data.seine.NonTargetCatchService; +import fr.ird.observe.services.service.data.seine.NonTargetSampleService; +import fr.ird.observe.services.service.data.seine.ObjectObservedSpeciesService; +import fr.ird.observe.services.service.data.seine.ObjectSchoolEstimateService; +import fr.ird.observe.services.service.data.seine.RouteService; +import fr.ird.observe.services.service.data.seine.SchoolEstimateService; +import fr.ird.observe.services.service.data.seine.SetSeineService; +import fr.ird.observe.services.service.data.seine.TargetCatchService; +import fr.ird.observe.services.service.data.seine.TargetSampleService; +import fr.ird.observe.services.service.data.seine.TransmittingBuoyOperationService; +import fr.ird.observe.services.service.data.seine.TripSeineGearUseService; +import fr.ird.observe.services.service.data.seine.TripSeineService; +import fr.ird.observe.services.service.referential.ObserveReferentialCache; +import fr.ird.observe.services.service.referential.ReferentialService; +import fr.ird.observe.services.service.sql.SqlScriptProducerService; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.beans.AbstractSerializableBean; +import org.nuiton.version.Version; + +import javax.swing.JOptionPane; +import javax.swing.event.EventListenerList; +import java.io.Closeable; +import java.io.File; +import java.util.Locale; +import java.util.Set; +import java.util.stream.Collectors; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ObserveSwingDataSource extends AbstractSerializableBean implements Closeable, ObserveServicesProvider { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(ObserveSwingDataSource.class); + + /** le conteneur de listeners */ + protected final EventListenerList listenerList; + + protected final ObserveDataSourceConfiguration configuration; + + protected final ObserveReferentialCache referentialCache; + + protected ObserveDataSourceConnection connection; + + // indique que la connexion a expiré mais que la source n'est pas complétement fermer + private boolean expired; + + public ObserveSwingDataSource(ObserveDataSourceConfiguration configuration) { + this.configuration = configuration; + this.listenerList = new EventListenerList(); + this.referentialCache = new ObserveReferentialCache(); + this.expired = false; + } + + public ObserveDataSourceConfiguration getConfiguration() { + return configuration; + } + + public ObserveDataSourceConnection getConnection() { + return connection; + } + + public String getLabel() { + return configuration.getLabel(); + } + + public boolean isSqlDataSource() { + return ObserveDataSourceType.SQL == configuration.getType(); + } + + public boolean canWriteData() { + return connection != null && connection.canWriteData(); + } + + public Version getVersion() { + Version result = null; + if (connection != null) { + result = connection.getVersion(); + } + return result; + } + + public boolean canReadReferential() { + return connection != null && connection.canReadReferential(); + } + + public boolean canReadData() { + return connection != null && connection.canReadData(); + } + + public boolean canWriteReferential() { + return connection != null && connection.canWriteReferential(); + } + + public ObserveDataSourceInformation getInformation() { + return new ObserveDataSourceInformation( + canReadReferential(), + canWriteReferential(), + canReadData(), + canWriteData(), + getVersion(), + getVersion(), + ImmutableList.of()); + } + + public void open() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException { + + checkIsNotAlreadyOpen(); + + fireNewMessage(t("observe.storage.message.opening", getLabel())); + fireOpening(); + + + DataSourceService dataSourceService = newDataSourceService(); + + connection = dataSourceService.open(configuration); + + fireNewMessage(t("observe.storage.message.opened", getLabel())); + fireOpened(); + } + + public void create(DataSourceCreateConfigurationDto createDto) + throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, + DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException, BabModelVersionException { + + checkIsNotAlreadyOpen(); + + fireNewMessage(t("observe.storage.message.creating", getLabel())); + fireOpening(); + + DataSourceService dataSourceService = newDataSourceService(); + + connection = dataSourceService.create(configuration, createDto); + + fireNewMessage(t("observe.storage.message.created", getLabel())); + fireOpened(); + } + + @Override + public void close() { + + checkIsOpen(); + + fireNewMessage(t("observe.storage.message.closing", getLabel())); + fireClosing(); + + referentialCache.close(); + + try { + // si la connection a expirée la source a deja été fermer pas le serveur + if (!expired) { + DataSourceService dataSourceService = newDataSourceService(); + + dataSourceService.close(); + } + } finally { + connection = null; + expired = false; + + fireNewMessage(t("observe.storage.message.closed", getLabel())); + fireClosed(); + } + + } + + public void destroy() throws DatabaseDestroyNotAuthorizedException { + + checkIsOpen(); + + fireNewMessage(t("observe.storage.message.destroying", getLabel())); + fireClosing(); + + referentialCache.close(); + + DataSourceService dataSourceService = newDataSourceService(); + + dataSourceService.destroy(); + + connection = null; + + fireNewMessage(t("observe.storage.message.destroyed", getLabel())); + fireClosed(); + + } + + public Set<ObserveDbUserDto> getUsers() { + + checkIsNotOpen(); + + DataSourceService dataSourceService = newDataSourceService(); + + return dataSourceService.getUsers(getConfiguration()); + } + + + public void applySecurity(Set<ObserveDbUserDto> users) { + + checkIsNotOpen(); + + DataSourceService dataSourceService = newDataSourceService(); + + dataSourceService.applySecurity(getConfiguration(), users); + } + + public void migrateData(ObserveDataSourceInformation dataSourceInformation, Version targetVersion) { + + checkIsNotOpen(); + + Version dbVersion = dataSourceInformation.getVersion(); + if (!dataSourceInformation.getMigrations().isEmpty()) { + + if (dbVersion.before(dataSourceInformation.getMinnimumVersion())) { + + JOptionPane.showMessageDialog( + null, + t("observe.storage.migrate.not.possible.before.version.3.0.message", targetVersion, dbVersion), + t("observe.storage.migrate.not.possible.before.version.3.0.title", targetVersion), + JOptionPane.WARNING_MESSAGE); + + } else { + + int answer = JOptionPane.showConfirmDialog( + null, + t("observe.storage.migrate.askUser.message", dbVersion, targetVersion, dataSourceInformation.getMigrations()), + t("observe.storage.migrate.askUser.title", targetVersion), + JOptionPane.YES_NO_OPTION, + JOptionPane.WARNING_MESSAGE); + + if (answer == JOptionPane.YES_OPTION) { + + DataSourceService dataSourceService = newDataSourceService(); + + + if (log.isInfoEnabled()) { + log.info("Migrate data source " + getLabel() + " in " + dbVersion + " to " + targetVersion); + } + + dataSourceService.migrateData(getConfiguration()); + } + } + } + + } + + public ImmutableMap<Class<?>, ReferentialReferenceSet<?>> updateReferentialReferenceSetsCache(String referentialReferenceSetsRequestName) { + + ReferentialService referentialService = newReferentialService(); + return referentialCache.loadReferenceSets(referentialService, referentialReferenceSetsRequestName); + + } + + protected <D extends ReferentialDto> ReferentialReferenceSet<D> getReferentialReferenceSet(Class<D> type) { + + checkIsOpen(); + + ReferentialService referentialService = newReferentialService(); + return referentialCache.getReferentialReferenceSet(referentialService, type); + } + + public <D extends ReferentialDto> Set<ReferentialReference<D>> getReferentialReferences(Class<D> type) { + + ReferentialReferenceSet<D> referentialReferenceSet = getReferentialReferenceSet(type); + return referentialReferenceSet.getReferences(); + + } + + public <D extends ReferentialDto> ReferentialReference<D> getReferentialReference(Class<D> type, String id) { + + ReferentialReferenceSet<D> referentialReferenceSet = getReferentialReferenceSet(type); + return referentialReferenceSet.getReferenceById(id); + + } + + public boolean isOpen() { + return connection != null; + } + + @Override + public SetLonglineService newSetLonglineService() { + return newService(SetLonglineService.class); + } + + public ObserveDataSourceInformation checkCanConnect() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { + + checkIsNotAlreadyOpen(); + + DataSourceService dataSourceService = newDataSourceService(); + + return dataSourceService.checkCanConnect(configuration); + + } + + public boolean isLocal() { + return configuration instanceof ObserveDataSourceConfigurationTopiaH2; + } + + public boolean isRemote() { + return configuration instanceof ObserveDataSourceConfigurationTopiaPG; + } + + public boolean isServer() { + return configuration instanceof ObserveDataSourceConfigurationRest; + } + + public void addObserveSwingDataSourceListener(ObserveSwingDataSourceListener listener) { + listenerList.add(ObserveSwingDataSourceListener.class, listener); + } + + public ObserveSwingDataSourceListener[] getObserveSwingDataSourceListener() { + return listenerList.getListeners(ObserveSwingDataSourceListener.class); + } + + public void removeObserveSwingDataSourceListener(ObserveSwingDataSourceListener listener) { + if (log.isInfoEnabled()) { + log.info("removing listener " + listener); + } + listenerList.remove(ObserveSwingDataSourceListener.class, listener); + } + + public void removeObserveSwingDataSourceListeners() { + // remove all listeners + for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { + removeObserveSwingDataSourceListener(listener); + } + } + + public void fireNewMessage(String message) { + fireNewMessage(message, ObserveSwingDataSourceEvent.MessageLevel.INFO); + } + + public void fireNewMessage(String message, ObserveSwingDataSourceEvent.MessageLevel level) { + ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this, message, level); + for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { + listener.onNewMessage(evt); + } + } + + public boolean isExpired() { + return expired; + } + + public void expired() { + this.expired = true; + } + + protected ObserveServiceInitializer getObserveServiceInitializer() { + + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); + + ObserveSwingApplicationConfig config = context.getConfig(); + + Locale locale = config.getLocale(); + + File tmpDirectory = config.getTmpDirectory(); + + ReferentialLocale referentialLocale = ReferentialLocale.valueOf(locale); + + ObserveDataSourceConfigurationAndConnection configurationAndConnection = new ObserveDataSourceConfigurationAndConnection(configuration, connection); + + ObserveSpeciesListConfiguration speciesListConfiguration = new ObserveSpeciesListConfiguration(); + speciesListConfiguration.setSpeciesListLonglineCatchId(config.getSpeciesListLonglineCatchId()); + speciesListConfiguration.setSpeciesListLonglineDepredatorId(config.getSpeciesListLonglineDepredatorId()); + speciesListConfiguration.setSpeciesListLonglineEncounterId(config.getSpeciesListLonglineEncounterId()); + speciesListConfiguration.setSpeciesListSeineNonTargetCatchId(config.getSpeciesListSeineNonTargetCatchId()); + speciesListConfiguration.setSpeciesListSeineObjectObservedSpeciesId(config.getSpeciesListSeineObjectObservedSpeciesId()); + speciesListConfiguration.setSpeciesListSeineObjectSchoolEstimateId(config.getSpeciesListSeineObjectSchoolEstimateId()); + speciesListConfiguration.setSpeciesListSeineSchoolEstimateId(config.getSpeciesListSeineSchoolEstimateId()); + speciesListConfiguration.setSpeciesListSeineTargetCatchId(config.getSpeciesListSeineTargetCatchId()); + boolean showSql = config.isShowSql(); + if (showSql && configurationAndConnection.getConfiguration() instanceof ObserveDataSourceConfigurationTopiaSupport) { + ObserveDataSourceConfigurationTopiaSupport configuration = (ObserveDataSourceConfigurationTopiaSupport) configurationAndConnection.getConfiguration(); + configuration.setTraceSql(true); + } + return ObserveServiceInitializer.create( + locale, + referentialLocale, + tmpDirectory, + speciesListConfiguration, + configurationAndConnection); + } + + protected void fireOpening() { + ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this); + for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { + listener.onOpening(evt); + } + } + + protected void fireOpened() { + ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this); + for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { + listener.onOpened(evt); + } + } + + protected void fireClosing() { + ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this); + for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { + listener.onClosing(evt); + } + } + + protected void fireClosed() { + ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this); + for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { + listener.onClosed(evt); + } + } + + protected void checkIsOpen() { + Preconditions.checkState(isOpen(), "Connection is not open"); + } + + protected void checkIsNotAlreadyOpen() { + Preconditions.checkState(!isOpen(), "Connection is already open"); + } + + protected void checkIsNotOpen() { + Preconditions.checkState(!isOpen(), "Connection is open"); + } + + private <S extends ObserveService> S newService(Class<S> serviceType) { + + ObserveServiceInitializer observeServiceInitializer = getObserveServiceInitializer(); + + ObserveServiceMainFactory serviceFactory = ObserveSwingApplicationContext.get().getMainServiceFactory(); + return serviceFactory.newService(observeServiceInitializer, serviceType); + } + + @Override + public LastUpdateDateService newLastUpdateDateService() { + return newService(LastUpdateDateService.class); + } + + @Override + public SqlScriptProducerService newSqlScriptProducerService() { + return newService(SqlScriptProducerService.class); + } + + @Override + public ValidateService newValidateService() { + return newService(ValidateService.class); + } + + @Override + public ReportService newReportService() { + return newService(ReportService.class); + } + + @Override + public PingService newPingService() { + return newService(PingService.class); + } + + @Override + public TripManagementService newTripManagementService() { + return newService(TripManagementService.class); + } + + @Override + public ConsolidateDataService newConsolidateDataService() { + return newService(ConsolidateDataService.class); + } + + @Override + public UnidirectionalReferentialSynchronizeLocalService newUnidirectionalReferentialSynchronizeLocalService() { + return newService(UnidirectionalReferentialSynchronizeLocalService.class); + } + + @Override + public ReferentialSynchronizeService newReferentialSynchronizeService() { + return newService(ReferentialSynchronizeService.class); + } + + @Override + public ReferentialSynchronizeDiffService newReferentialSynchronizeDiffService() { + return newService(ReferentialSynchronizeDiffService.class); + } + + @Override + public DataSourceService newDataSourceService() { + return newService(DataSourceService.class); + } + + @Override + public NavigationService newNavigationService() { + return newService(NavigationService.class); + } + + @Override + public ReferentialService newReferentialService() { + return newService(ReferentialService.class); + } + + @Override + public TripSeineService newTripSeineService() { + return newService(TripSeineService.class); + } + + @Override + public RouteService newRouteService() { + return newService(RouteService.class); + } + + @Override + public FloatingObjectService newFloatingObjectService() { + return newService(FloatingObjectService.class); + } + + @Override + public ActivitySeineService newActivitySeineService() { + return newService(ActivitySeineService.class); + } + + @Override + public SetSeineService newSetSeineService() { + return newService(SetSeineService.class); + } + + @Override + public TripLonglineService newTripLonglineService() { + return newService(TripLonglineService.class); + } + + @Override + public ActivityLonglineService newActivityLonglineService() { + return newService(ActivityLonglineService.class); + } + + @Override + public SetLonglineGlobalCompositionService newSetLonglineGlobalCompositionService() { + return newService(SetLonglineGlobalCompositionService.class); + } + + @Override + public SetLonglineDetailCompositionService newSetLonglineDetailCompositionService() { + return newService(SetLonglineDetailCompositionService.class); + } + + @Override + public TransmittingBuoyOperationService newTransmittingBuoyOperationService() { + return newService(TransmittingBuoyOperationService.class); + } + + @Override + public BranchlineService newBranchlineService() { + return newService(BranchlineService.class); + } + + @Override + public SetLonglineCatchService newSetLonglineCatchService() { + return newService(SetLonglineCatchService.class); + } + + @Override + public ActivityLongLineEncounterService newActivityLongLineEncounterService() { + return newService(ActivityLongLineEncounterService.class); + } + + @Override + public TripLonglineGearUseService newTripLonglineGearUseService() { + return newService(TripLonglineGearUseService.class); + } + + @Override + public ActivityLongLineSensorUsedService newActivityLongLineSensorUsedService() { + return newService(ActivityLongLineSensorUsedService.class); + } + + @Override + public TdrService newTdrService() { + return newService(TdrService.class); + } + + @Override + public TripSeineGearUseService newTripSeineGearUseService() { + return newService(TripSeineGearUseService.class); + } + + @Override + public NonTargetCatchService newNonTargetCatchService() { + return newService(NonTargetCatchService.class); + } + + @Override + public NonTargetSampleService newNonTargetSampleService() { + return newService(NonTargetSampleService.class); + } + + @Override + public ObjectObservedSpeciesService newObjectObservedSpeciesService() { + return newService(ObjectObservedSpeciesService.class); + } + + @Override + public ObjectSchoolEstimateService newObjectSchoolEstimateService() { + return newService(ObjectSchoolEstimateService.class); + } + + @Override + public SchoolEstimateService newSchoolEstimateService() { + return newService(SchoolEstimateService.class); + } + + @Override + public TargetCatchService newTargetCatchService() { + return newService(TargetCatchService.class); + } + + @Override + public TargetSampleService newTargetSampleService() { + return newService(TargetSampleService.class); + } + + public ReferenceMap getReferentialMap(SetMultimap<Class<? extends ReferentialDto>, String> referentialIds) { + ReferenceMap result = new ReferenceMap(); + for (Class<? extends ReferentialDto> dtoType : referentialIds.keySet()) { + Set<String> ids = referentialIds.get(dtoType); + Set<? extends ReferentialReference<? extends ReferentialDto>> references = + getReferentialReferenceSet(dtoType).getReferences().stream() + .filter(r -> ids.contains(r.getId())) + .collect(Collectors.toSet()); + result.put(dtoType, references); + } + return result; + } +} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java index 1995529..2515f1b 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java @@ -126,19 +126,4 @@ public class ObserveServiceContextTopia { this.topiaPersistenceContext = topiaPersistenceContext; } -// public void closeTopiaPersistenceContext() { -// topiaPersistenceContext.close(); -// topiaPersistenceContext = null; -// } -// -// public File createTemporaryDirectory(String prefix) { -// Set<PosixFilePermission> posixFilePermissions = PosixFilePermissions.fromString("rwxr-x---"); -// FileAttribute<Set<PosixFilePermission>> fileAttribute = PosixFilePermissions.asFileAttribute(posixFilePermissions); -// try { -// return Files.createTempDirectory(getTemporaryDirectoryRoot().toPath(), prefix, fileAttribute).toFile(); -// } catch (IOException e) { -// throw new RuntimeException("Could not create temporary directory with preifx: " + prefix, e); -// } -// } - } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java.orig similarity index 98% copy from services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java copy to services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java.orig index 1995529..6fa5e73 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java.orig @@ -126,6 +126,7 @@ public class ObserveServiceContextTopia { this.topiaPersistenceContext = topiaPersistenceContext; } +<<<<<<< 86666a581338524c1d4bf38cbc81acea1f4cb45b // public void closeTopiaPersistenceContext() { // topiaPersistenceContext.close(); // topiaPersistenceContext = null; @@ -141,4 +142,6 @@ public class ObserveServiceContextTopia { // } // } +======= +>>>>>>> clean code } -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit be439f17d21f3cc4ba9f97e9bff8ed1bf671c55f Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 17:42:17 2016 +0100 refs #8554 optimisation des chargements des branchlines --- .../swing/db/ObserveSwingDataSource.java.orig | 717 --------------------- .../DataSourceMigrationForVersion_5_1.java | 1 + ...V5_1_19_ano_8554_brancheline_add_section-H2.sql | 3 + ...V5_1_19_ano_8554_brancheline_add_section-PG.sql | 3 + .../observe/ObserveTopiaApplicationContext.java | 27 +- entities/src/main/xmi/observe-longline.zargo | Bin 93999 -> 95950 bytes entities/src/main/xmi/observe.ini | 1 + .../topia/ObserveServiceContextTopia.java.orig | 147 ----- .../data/longline/BranchlineServiceTopia.java | 1 + .../SetLonglineDetailCompositionServiceTopia.java | 23 +- .../service/sql/batch/tables/TopiaSqlTables.java | 25 +- 11 files changed, 69 insertions(+), 879 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java.orig b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java.orig deleted file mode 100644 index be50300..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java.orig +++ /dev/null @@ -1,717 +0,0 @@ -package fr.ird.observe.application.swing.db; - -/*- - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.SetMultimap; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; -import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceEvent; -import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceListener; -import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.ObserveServiceInitializer; -import fr.ird.observe.services.ObserveServicesProvider; -import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; -import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationAndConnection; -import fr.ird.observe.services.configuration.ObserveDataSourceConnection; -import fr.ird.observe.services.configuration.ObserveDataSourceInformation; -import fr.ird.observe.services.configuration.ObserveDataSourceType; -import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; -import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; -import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; -import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; -import fr.ird.observe.services.dto.ObserveDbUserDto; -import fr.ird.observe.services.dto.ObserveSpeciesListConfiguration; -import fr.ird.observe.services.dto.ReferenceMap; -import fr.ird.observe.services.dto.constants.ReferentialLocale; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; -import fr.ird.observe.services.runner.ObserveServiceMainFactory; -import fr.ird.observe.services.service.BabModelVersionException; -import fr.ird.observe.services.service.DataSourceService; -import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; -import fr.ird.observe.services.service.DatabaseDestroyNotAuthorizedException; -import fr.ird.observe.services.service.DatabaseNotFoundException; -import fr.ird.observe.services.service.LastUpdateDateService; -import fr.ird.observe.services.service.PingService; -import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; -import fr.ird.observe.services.service.actions.report.ReportService; -import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffService; -import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalService; -import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeService; -import fr.ird.observe.services.service.actions.validate.ValidateService; -<<<<<<< 86666a581338524c1d4bf38cbc81acea1f4cb45b -import fr.ird.observe.services.service.data.NavigationService; -======= ->>>>>>> clean code -import fr.ird.observe.services.service.data.TripManagementService; -import fr.ird.observe.services.service.data.longline.ActivityLongLineEncounterService; -import fr.ird.observe.services.service.data.longline.ActivityLongLineSensorUsedService; -import fr.ird.observe.services.service.data.longline.ActivityLonglineService; -import fr.ird.observe.services.service.data.longline.BranchlineService; -import fr.ird.observe.services.service.data.longline.SetLonglineCatchService; -import fr.ird.observe.services.service.data.longline.SetLonglineDetailCompositionService; -import fr.ird.observe.services.service.data.longline.SetLonglineGlobalCompositionService; -import fr.ird.observe.services.service.data.longline.SetLonglineService; -import fr.ird.observe.services.service.data.longline.TdrService; -import fr.ird.observe.services.service.data.longline.TripLonglineGearUseService; -import fr.ird.observe.services.service.data.longline.TripLonglineService; -import fr.ird.observe.services.service.data.seine.ActivitySeineService; -import fr.ird.observe.services.service.data.seine.FloatingObjectService; -import fr.ird.observe.services.service.data.seine.NonTargetCatchService; -import fr.ird.observe.services.service.data.seine.NonTargetSampleService; -import fr.ird.observe.services.service.data.seine.ObjectObservedSpeciesService; -import fr.ird.observe.services.service.data.seine.ObjectSchoolEstimateService; -import fr.ird.observe.services.service.data.seine.RouteService; -import fr.ird.observe.services.service.data.seine.SchoolEstimateService; -import fr.ird.observe.services.service.data.seine.SetSeineService; -import fr.ird.observe.services.service.data.seine.TargetCatchService; -import fr.ird.observe.services.service.data.seine.TargetSampleService; -import fr.ird.observe.services.service.data.seine.TransmittingBuoyOperationService; -import fr.ird.observe.services.service.data.seine.TripSeineGearUseService; -import fr.ird.observe.services.service.data.seine.TripSeineService; -import fr.ird.observe.services.service.referential.ObserveReferentialCache; -import fr.ird.observe.services.service.referential.ReferentialService; -import fr.ird.observe.services.service.sql.SqlScriptProducerService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.jdesktop.beans.AbstractSerializableBean; -import org.nuiton.version.Version; - -import javax.swing.JOptionPane; -import javax.swing.event.EventListenerList; -import java.io.Closeable; -import java.io.File; -import java.util.Locale; -import java.util.Set; -import java.util.stream.Collectors; - -import static org.nuiton.i18n.I18n.t; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class ObserveSwingDataSource extends AbstractSerializableBean implements Closeable, ObserveServicesProvider { - - private static final long serialVersionUID = 1L; - - private static final Log log = LogFactory.getLog(ObserveSwingDataSource.class); - - /** le conteneur de listeners */ - protected final EventListenerList listenerList; - - protected final ObserveDataSourceConfiguration configuration; - - protected final ObserveReferentialCache referentialCache; - - protected ObserveDataSourceConnection connection; - - // indique que la connexion a expiré mais que la source n'est pas complétement fermer - private boolean expired; - - public ObserveSwingDataSource(ObserveDataSourceConfiguration configuration) { - this.configuration = configuration; - this.listenerList = new EventListenerList(); - this.referentialCache = new ObserveReferentialCache(); - this.expired = false; - } - - public ObserveDataSourceConfiguration getConfiguration() { - return configuration; - } - - public ObserveDataSourceConnection getConnection() { - return connection; - } - - public String getLabel() { - return configuration.getLabel(); - } - - public boolean isSqlDataSource() { - return ObserveDataSourceType.SQL == configuration.getType(); - } - - public boolean canWriteData() { - return connection != null && connection.canWriteData(); - } - - public Version getVersion() { - Version result = null; - if (connection != null) { - result = connection.getVersion(); - } - return result; - } - - public boolean canReadReferential() { - return connection != null && connection.canReadReferential(); - } - - public boolean canReadData() { - return connection != null && connection.canReadData(); - } - - public boolean canWriteReferential() { - return connection != null && connection.canWriteReferential(); - } - - public ObserveDataSourceInformation getInformation() { - return new ObserveDataSourceInformation( - canReadReferential(), - canWriteReferential(), - canReadData(), - canWriteData(), - getVersion(), - getVersion(), - ImmutableList.of()); - } - - public void open() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException { - - checkIsNotAlreadyOpen(); - - fireNewMessage(t("observe.storage.message.opening", getLabel())); - fireOpening(); - - - DataSourceService dataSourceService = newDataSourceService(); - - connection = dataSourceService.open(configuration); - - fireNewMessage(t("observe.storage.message.opened", getLabel())); - fireOpened(); - } - - public void create(DataSourceCreateConfigurationDto createDto) - throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, - DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException, BabModelVersionException { - - checkIsNotAlreadyOpen(); - - fireNewMessage(t("observe.storage.message.creating", getLabel())); - fireOpening(); - - DataSourceService dataSourceService = newDataSourceService(); - - connection = dataSourceService.create(configuration, createDto); - - fireNewMessage(t("observe.storage.message.created", getLabel())); - fireOpened(); - } - - @Override - public void close() { - - checkIsOpen(); - - fireNewMessage(t("observe.storage.message.closing", getLabel())); - fireClosing(); - - referentialCache.close(); - - try { - // si la connection a expirée la source a deja été fermer pas le serveur - if (!expired) { - DataSourceService dataSourceService = newDataSourceService(); - - dataSourceService.close(); - } - } finally { - connection = null; - expired = false; - - fireNewMessage(t("observe.storage.message.closed", getLabel())); - fireClosed(); - } - - } - - public void destroy() throws DatabaseDestroyNotAuthorizedException { - - checkIsOpen(); - - fireNewMessage(t("observe.storage.message.destroying", getLabel())); - fireClosing(); - - referentialCache.close(); - - DataSourceService dataSourceService = newDataSourceService(); - - dataSourceService.destroy(); - - connection = null; - - fireNewMessage(t("observe.storage.message.destroyed", getLabel())); - fireClosed(); - - } - - public Set<ObserveDbUserDto> getUsers() { - - checkIsNotOpen(); - - DataSourceService dataSourceService = newDataSourceService(); - - return dataSourceService.getUsers(getConfiguration()); - } - - - public void applySecurity(Set<ObserveDbUserDto> users) { - - checkIsNotOpen(); - - DataSourceService dataSourceService = newDataSourceService(); - - dataSourceService.applySecurity(getConfiguration(), users); - } - - public void migrateData(ObserveDataSourceInformation dataSourceInformation, Version targetVersion) { - - checkIsNotOpen(); - - Version dbVersion = dataSourceInformation.getVersion(); - if (!dataSourceInformation.getMigrations().isEmpty()) { - - if (dbVersion.before(dataSourceInformation.getMinnimumVersion())) { - - JOptionPane.showMessageDialog( - null, - t("observe.storage.migrate.not.possible.before.version.3.0.message", targetVersion, dbVersion), - t("observe.storage.migrate.not.possible.before.version.3.0.title", targetVersion), - JOptionPane.WARNING_MESSAGE); - - } else { - - int answer = JOptionPane.showConfirmDialog( - null, - t("observe.storage.migrate.askUser.message", dbVersion, targetVersion, dataSourceInformation.getMigrations()), - t("observe.storage.migrate.askUser.title", targetVersion), - JOptionPane.YES_NO_OPTION, - JOptionPane.WARNING_MESSAGE); - - if (answer == JOptionPane.YES_OPTION) { - - DataSourceService dataSourceService = newDataSourceService(); - - - if (log.isInfoEnabled()) { - log.info("Migrate data source " + getLabel() + " in " + dbVersion + " to " + targetVersion); - } - - dataSourceService.migrateData(getConfiguration()); - } - } - } - - } - - public ImmutableMap<Class<?>, ReferentialReferenceSet<?>> updateReferentialReferenceSetsCache(String referentialReferenceSetsRequestName) { - - ReferentialService referentialService = newReferentialService(); - return referentialCache.loadReferenceSets(referentialService, referentialReferenceSetsRequestName); - - } - - protected <D extends ReferentialDto> ReferentialReferenceSet<D> getReferentialReferenceSet(Class<D> type) { - - checkIsOpen(); - - ReferentialService referentialService = newReferentialService(); - return referentialCache.getReferentialReferenceSet(referentialService, type); - } - - public <D extends ReferentialDto> Set<ReferentialReference<D>> getReferentialReferences(Class<D> type) { - - ReferentialReferenceSet<D> referentialReferenceSet = getReferentialReferenceSet(type); - return referentialReferenceSet.getReferences(); - - } - - public <D extends ReferentialDto> ReferentialReference<D> getReferentialReference(Class<D> type, String id) { - - ReferentialReferenceSet<D> referentialReferenceSet = getReferentialReferenceSet(type); - return referentialReferenceSet.getReferenceById(id); - - } - - public boolean isOpen() { - return connection != null; - } - - @Override - public SetLonglineService newSetLonglineService() { - return newService(SetLonglineService.class); - } - - public ObserveDataSourceInformation checkCanConnect() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - - checkIsNotAlreadyOpen(); - - DataSourceService dataSourceService = newDataSourceService(); - - return dataSourceService.checkCanConnect(configuration); - - } - - public boolean isLocal() { - return configuration instanceof ObserveDataSourceConfigurationTopiaH2; - } - - public boolean isRemote() { - return configuration instanceof ObserveDataSourceConfigurationTopiaPG; - } - - public boolean isServer() { - return configuration instanceof ObserveDataSourceConfigurationRest; - } - - public void addObserveSwingDataSourceListener(ObserveSwingDataSourceListener listener) { - listenerList.add(ObserveSwingDataSourceListener.class, listener); - } - - public ObserveSwingDataSourceListener[] getObserveSwingDataSourceListener() { - return listenerList.getListeners(ObserveSwingDataSourceListener.class); - } - - public void removeObserveSwingDataSourceListener(ObserveSwingDataSourceListener listener) { - if (log.isInfoEnabled()) { - log.info("removing listener " + listener); - } - listenerList.remove(ObserveSwingDataSourceListener.class, listener); - } - - public void removeObserveSwingDataSourceListeners() { - // remove all listeners - for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { - removeObserveSwingDataSourceListener(listener); - } - } - - public void fireNewMessage(String message) { - fireNewMessage(message, ObserveSwingDataSourceEvent.MessageLevel.INFO); - } - - public void fireNewMessage(String message, ObserveSwingDataSourceEvent.MessageLevel level) { - ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this, message, level); - for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { - listener.onNewMessage(evt); - } - } - - public boolean isExpired() { - return expired; - } - - public void expired() { - this.expired = true; - } - - protected ObserveServiceInitializer getObserveServiceInitializer() { - - ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); - - ObserveSwingApplicationConfig config = context.getConfig(); - - Locale locale = config.getLocale(); - - File tmpDirectory = config.getTmpDirectory(); - - ReferentialLocale referentialLocale = ReferentialLocale.valueOf(locale); - - ObserveDataSourceConfigurationAndConnection configurationAndConnection = new ObserveDataSourceConfigurationAndConnection(configuration, connection); - - ObserveSpeciesListConfiguration speciesListConfiguration = new ObserveSpeciesListConfiguration(); - speciesListConfiguration.setSpeciesListLonglineCatchId(config.getSpeciesListLonglineCatchId()); - speciesListConfiguration.setSpeciesListLonglineDepredatorId(config.getSpeciesListLonglineDepredatorId()); - speciesListConfiguration.setSpeciesListLonglineEncounterId(config.getSpeciesListLonglineEncounterId()); - speciesListConfiguration.setSpeciesListSeineNonTargetCatchId(config.getSpeciesListSeineNonTargetCatchId()); - speciesListConfiguration.setSpeciesListSeineObjectObservedSpeciesId(config.getSpeciesListSeineObjectObservedSpeciesId()); - speciesListConfiguration.setSpeciesListSeineObjectSchoolEstimateId(config.getSpeciesListSeineObjectSchoolEstimateId()); - speciesListConfiguration.setSpeciesListSeineSchoolEstimateId(config.getSpeciesListSeineSchoolEstimateId()); - speciesListConfiguration.setSpeciesListSeineTargetCatchId(config.getSpeciesListSeineTargetCatchId()); - boolean showSql = config.isShowSql(); - if (showSql && configurationAndConnection.getConfiguration() instanceof ObserveDataSourceConfigurationTopiaSupport) { - ObserveDataSourceConfigurationTopiaSupport configuration = (ObserveDataSourceConfigurationTopiaSupport) configurationAndConnection.getConfiguration(); - configuration.setTraceSql(true); - } - return ObserveServiceInitializer.create( - locale, - referentialLocale, - tmpDirectory, - speciesListConfiguration, - configurationAndConnection); - } - - protected void fireOpening() { - ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this); - for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { - listener.onOpening(evt); - } - } - - protected void fireOpened() { - ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this); - for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { - listener.onOpened(evt); - } - } - - protected void fireClosing() { - ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this); - for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { - listener.onClosing(evt); - } - } - - protected void fireClosed() { - ObserveSwingDataSourceEvent evt = new ObserveSwingDataSourceEvent(this); - for (ObserveSwingDataSourceListener listener : getObserveSwingDataSourceListener()) { - listener.onClosed(evt); - } - } - - protected void checkIsOpen() { - Preconditions.checkState(isOpen(), "Connection is not open"); - } - - protected void checkIsNotAlreadyOpen() { - Preconditions.checkState(!isOpen(), "Connection is already open"); - } - - protected void checkIsNotOpen() { - Preconditions.checkState(!isOpen(), "Connection is open"); - } - - private <S extends ObserveService> S newService(Class<S> serviceType) { - - ObserveServiceInitializer observeServiceInitializer = getObserveServiceInitializer(); - - ObserveServiceMainFactory serviceFactory = ObserveSwingApplicationContext.get().getMainServiceFactory(); - return serviceFactory.newService(observeServiceInitializer, serviceType); - } - - @Override - public LastUpdateDateService newLastUpdateDateService() { - return newService(LastUpdateDateService.class); - } - - @Override - public SqlScriptProducerService newSqlScriptProducerService() { - return newService(SqlScriptProducerService.class); - } - - @Override - public ValidateService newValidateService() { - return newService(ValidateService.class); - } - - @Override - public ReportService newReportService() { - return newService(ReportService.class); - } - - @Override - public PingService newPingService() { - return newService(PingService.class); - } - - @Override - public TripManagementService newTripManagementService() { - return newService(TripManagementService.class); - } - - @Override - public ConsolidateDataService newConsolidateDataService() { - return newService(ConsolidateDataService.class); - } - - @Override - public UnidirectionalReferentialSynchronizeLocalService newUnidirectionalReferentialSynchronizeLocalService() { - return newService(UnidirectionalReferentialSynchronizeLocalService.class); - } - - @Override - public ReferentialSynchronizeService newReferentialSynchronizeService() { - return newService(ReferentialSynchronizeService.class); - } - - @Override - public ReferentialSynchronizeDiffService newReferentialSynchronizeDiffService() { - return newService(ReferentialSynchronizeDiffService.class); - } - - @Override - public DataSourceService newDataSourceService() { - return newService(DataSourceService.class); - } - - @Override - public NavigationService newNavigationService() { - return newService(NavigationService.class); - } - - @Override - public ReferentialService newReferentialService() { - return newService(ReferentialService.class); - } - - @Override - public TripSeineService newTripSeineService() { - return newService(TripSeineService.class); - } - - @Override - public RouteService newRouteService() { - return newService(RouteService.class); - } - - @Override - public FloatingObjectService newFloatingObjectService() { - return newService(FloatingObjectService.class); - } - - @Override - public ActivitySeineService newActivitySeineService() { - return newService(ActivitySeineService.class); - } - - @Override - public SetSeineService newSetSeineService() { - return newService(SetSeineService.class); - } - - @Override - public TripLonglineService newTripLonglineService() { - return newService(TripLonglineService.class); - } - - @Override - public ActivityLonglineService newActivityLonglineService() { - return newService(ActivityLonglineService.class); - } - - @Override - public SetLonglineGlobalCompositionService newSetLonglineGlobalCompositionService() { - return newService(SetLonglineGlobalCompositionService.class); - } - - @Override - public SetLonglineDetailCompositionService newSetLonglineDetailCompositionService() { - return newService(SetLonglineDetailCompositionService.class); - } - - @Override - public TransmittingBuoyOperationService newTransmittingBuoyOperationService() { - return newService(TransmittingBuoyOperationService.class); - } - - @Override - public BranchlineService newBranchlineService() { - return newService(BranchlineService.class); - } - - @Override - public SetLonglineCatchService newSetLonglineCatchService() { - return newService(SetLonglineCatchService.class); - } - - @Override - public ActivityLongLineEncounterService newActivityLongLineEncounterService() { - return newService(ActivityLongLineEncounterService.class); - } - - @Override - public TripLonglineGearUseService newTripLonglineGearUseService() { - return newService(TripLonglineGearUseService.class); - } - - @Override - public ActivityLongLineSensorUsedService newActivityLongLineSensorUsedService() { - return newService(ActivityLongLineSensorUsedService.class); - } - - @Override - public TdrService newTdrService() { - return newService(TdrService.class); - } - - @Override - public TripSeineGearUseService newTripSeineGearUseService() { - return newService(TripSeineGearUseService.class); - } - - @Override - public NonTargetCatchService newNonTargetCatchService() { - return newService(NonTargetCatchService.class); - } - - @Override - public NonTargetSampleService newNonTargetSampleService() { - return newService(NonTargetSampleService.class); - } - - @Override - public ObjectObservedSpeciesService newObjectObservedSpeciesService() { - return newService(ObjectObservedSpeciesService.class); - } - - @Override - public ObjectSchoolEstimateService newObjectSchoolEstimateService() { - return newService(ObjectSchoolEstimateService.class); - } - - @Override - public SchoolEstimateService newSchoolEstimateService() { - return newService(SchoolEstimateService.class); - } - - @Override - public TargetCatchService newTargetCatchService() { - return newService(TargetCatchService.class); - } - - @Override - public TargetSampleService newTargetSampleService() { - return newService(TargetSampleService.class); - } - - public ReferenceMap getReferentialMap(SetMultimap<Class<? extends ReferentialDto>, String> referentialIds) { - ReferenceMap result = new ReferenceMap(); - for (Class<? extends ReferentialDto> dtoType : referentialIds.keySet()) { - Set<String> ids = referentialIds.get(dtoType); - Set<? extends ReferentialReference<? extends ReferentialDto>> references = - getReferentialReferenceSet(dtoType).getReferences().stream() - .filter(r -> ids.contains(r.getId())) - .collect(Collectors.toSet()); - result.put(dtoType, references); - } - return result; - } -} diff --git a/entities-migration/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_5_1.java b/entities-migration/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_5_1.java index f11f4b9..333d4e2 100644 --- a/entities-migration/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_5_1.java +++ b/entities-migration/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_5_1.java @@ -87,6 +87,7 @@ public class DataSourceMigrationForVersion_5_1 extends AbstractObserveMigrationC addScript("16", "evol_8377_speciesFate_add_discard", queries); addScript("17", "evol_8376_vesselActivitySeine_add_allowFad", queries); addScript("18", "evol_8404_lengthLengthParameter", queries); + addScript("19", "ano_8554_brancheline_add_section", queries); } private void evol8391(TopiaSqlSupport topiaSqlSupport, List<String> queries) { diff --git a/entities-migration/src/main/resources/db/migration/5.1/V5_1_19_ano_8554_brancheline_add_section-H2.sql b/entities-migration/src/main/resources/db/migration/5.1/V5_1_19_ano_8554_brancheline_add_section-H2.sql new file mode 100644 index 0000000..85da596 --- /dev/null +++ b/entities-migration/src/main/resources/db/migration/5.1/V5_1_19_ano_8554_brancheline_add_section-H2.sql @@ -0,0 +1,3 @@ +ALTER TABLE observe_longline.branchline ADD COLUMN set VARCHAR(255); +ALTER TABLE observe_longline.branchline ADD CONSTRAINT FK_BRANCHLINE_SET FOREIGN KEY(set) REFERENCES observe_longline.set(topiaid); +UPDATE observe_longline.branchline main SET set = (SELECT s.topiaid FROM observe_longline.set s INNER JOIN observe_longline.section section ON section.set = s.topiaid INNER JOIN observe_longline.basket basket ON basket.section = section.topiaid INNER JOIN observe_longline.branchline branchline ON branchline.basket = basket.topiaid WHERE branchline.topiaid = main.topiaid); diff --git a/entities-migration/src/main/resources/db/migration/5.1/V5_1_19_ano_8554_brancheline_add_section-PG.sql b/entities-migration/src/main/resources/db/migration/5.1/V5_1_19_ano_8554_brancheline_add_section-PG.sql new file mode 100644 index 0000000..6a43c1d --- /dev/null +++ b/entities-migration/src/main/resources/db/migration/5.1/V5_1_19_ano_8554_brancheline_add_section-PG.sql @@ -0,0 +1,3 @@ +ALTER TABLE observe_longline.branchline ADD COLUMN set character varying(255); +ALTER TABLE observe_longline.branchline ADD CONSTRAINT FK_BRANCHLINE_SET FOREIGN KEY(set) REFERENCES observe_longline.set(topiaid); +UPDATE observe_longline.branchline main SET set = (SELECT s.topiaid FROM observe_longline.set s INNER JOIN observe_longline.section section ON section.set = s.topiaid INNER JOIN observe_longline.basket basket ON basket.section = section.topiaid INNER JOIN observe_longline.branchline branchline ON branchline.basket = basket.topiaid WHERE branchline.topiaid = main.topiaid); diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java index 2efe028..4fe9930 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java @@ -41,6 +41,7 @@ import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; import org.nuiton.topia.persistence.support.TopiaMetadataModelSupport; import org.nuiton.topia.service.sql.batch.TopiaSqlBatchService; +import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTable; import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTables; import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTablesFactory; import org.nuiton.util.StringUtil; @@ -258,9 +259,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat if (tripSeineTables == null) { log.info("Loading tripSeineTables."); - tripSeineTables = topiaSqlTablesFactory.newReplicateEntityTables( - new TripReplicateTablesPredicate(), - ObserveEntityEnum.TripSeine); + tripSeineTables = topiaSqlTablesFactory.newReplicateEntityTables(new TripReplicateTablesPredicate(), ObserveEntityEnum.TripSeine); } return tripSeineTables; @@ -296,9 +295,25 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat if (tripLonglineTables == null) { log.info("Loading tripLonglineTables."); - tripLonglineTables = topiaSqlTablesFactory.newReplicateEntityTables( - new TripReplicateTablesPredicate(), - ObserveEntityEnum.TripLongline); + tripLonglineTables = topiaSqlTablesFactory.newReplicateEntityTables(new TripReplicateTablesPredicate(), ObserveEntityEnum.TripLongline); + + TopiaSqlTable table = tripLonglineTables.getTable("observe_longline.branchline"); + + table = new TopiaSqlTable( + table.getMetadataEntity(), + table.getAssociationMetadataEntity(), + table.getSchemaName(), + table.getTableName(), + table.getFromClause(), + table.getWhereClauseAlias(), + ImmutableSet.of(" INNER JOIN observe_longline.set set ON set.topiaId = activity.set", + " INNER JOIN observe_longline.branchline branchline ON branchline.set = set.topiaId"), + null + ); + + tripLonglineTables.replaceTable("observe_longline.branchline", table); + + } return tripLonglineTables; diff --git a/entities/src/main/xmi/observe-longline.zargo b/entities/src/main/xmi/observe-longline.zargo index 57dd558..6aa2afa 100644 Binary files a/entities/src/main/xmi/observe-longline.zargo and b/entities/src/main/xmi/observe-longline.zargo differ diff --git a/entities/src/main/xmi/observe.ini b/entities/src/main/xmi/observe.ini index 51d0247..da8daf1 100644 --- a/entities/src/main/xmi/observe.ini +++ b/entities/src/main/xmi/observe.ini @@ -54,6 +54,7 @@ branchlineLength.sqlType = numeric catchLongline.dbName = catch hookSize.sqlType = numeric settingIdentifier.notNull = true +setLongline.dbName = set snapWeight.sqlType = numeric swivelWeight.sqlType = numeric tracelineLength.sqlType = numeric diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java.orig b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java.orig deleted file mode 100644 index 6fa5e73..0000000 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java.orig +++ /dev/null @@ -1,147 +0,0 @@ -package fr.ird.observe.services.topia; - -/* - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.ObserveTopiaApplicationContext; -import fr.ird.observe.ObserveTopiaPersistenceContext; -import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.ObserveServiceFactory; -import fr.ird.observe.services.ObserveServiceInitializer; -import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; -import fr.ird.observe.services.configuration.ObserveDataSourceConnection; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConnectionTopia; -import fr.ird.observe.services.dto.constants.ReferentialLocale; - -import java.io.File; -import java.util.Date; -import java.util.Locale; - -/** - * Contexte d'un service ToPIA. - * - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveServiceContextTopia { - - protected final ObserveServiceInitializer observeServiceInitializer; - - protected final ObserveServiceFactory mainServiceFactory; - - protected final ObserveServiceFactory serviceFactory; - - protected ObserveTopiaPersistenceContext topiaPersistenceContext; - - protected ObserveTopiaApplicationContext topiaApplicationContext; - - public ObserveServiceContextTopia(ObserveServiceInitializer observeServiceInitializer, - ObserveServiceFactory mainServiceFactory, - ObserveServiceFactory serviceFactory) { - this.observeServiceInitializer = observeServiceInitializer; - this.mainServiceFactory = mainServiceFactory; - this.serviceFactory = serviceFactory; - } - - public ObserveTopiaApplicationContext getTopiaApplicationContext() { - return topiaApplicationContext; - } - - public void setTopiaApplicationContext(ObserveTopiaApplicationContext topiaApplicationContext) { - this.topiaApplicationContext = topiaApplicationContext; - } - - public Locale getApplicationLocale() { - return observeServiceInitializer.getApplicationLocale(); - } - - public ReferentialLocale getReferentialLocale() { - return observeServiceInitializer.getReferentialLocale(); - } - - public File getTemporaryDirectoryRoot() { - return observeServiceInitializer.getTemporaryDirectoryRoot(); - } - - public boolean withDataSourceConnection() { - return observeServiceInitializer.withDataSourceConnection(); - } - - public ObserveDataSourceConnectionTopia getDataSourceConnection() { - return (ObserveDataSourceConnectionTopia) observeServiceInitializer.getDataSourceConnection(); - } - - public ObserveDataSourceConfigurationTopiaSupport getDataSourceConfiguration() { - return (ObserveDataSourceConfigurationTopiaSupport) observeServiceInitializer.getDataSourceConfiguration(); - } - - public Date now() { - return new Date(); - } - - public <S extends ObserveService> S newService(Class<S> serviceType) { - return serviceFactory.newService(observeServiceInitializer, serviceType); - } - - public <S extends ObserveService> S newService(ObserveDataSourceConnection dataSourceConnection, Class<S> serviceType) { - ObserveServiceInitializer newObserveServiceInitializer = ObserveServiceInitializer.create(observeServiceInitializer); - newObserveServiceInitializer.setDataSourceConnection(dataSourceConnection); - newObserveServiceInitializer.setDataSourceConfiguration(null); - return mainServiceFactory.newService(newObserveServiceInitializer, serviceType); - } - - public <S extends ObserveService> S newService(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { - ObserveServiceInitializer newObserveServiceInitializer = ObserveServiceInitializer.create(observeServiceInitializer); - newObserveServiceInitializer.setDataSourceConnection(null); - newObserveServiceInitializer.setDataSourceConfiguration(dataSourceConfiguration); - return mainServiceFactory.newService(newObserveServiceInitializer, serviceType); - } - - public ObserveTopiaPersistenceContext getTopiaPersistenceContext() { - return topiaPersistenceContext; - } - - public void setTopiaPersistenceContext(ObserveTopiaPersistenceContext topiaPersistenceContext) { - this.topiaPersistenceContext = topiaPersistenceContext; - } - -<<<<<<< 86666a581338524c1d4bf38cbc81acea1f4cb45b -// public void closeTopiaPersistenceContext() { -// topiaPersistenceContext.close(); -// topiaPersistenceContext = null; -// } -// -// public File createTemporaryDirectory(String prefix) { -// Set<PosixFilePermission> posixFilePermissions = PosixFilePermissions.fromString("rwxr-x---"); -// FileAttribute<Set<PosixFilePermission>> fileAttribute = PosixFilePermissions.asFileAttribute(posixFilePermissions); -// try { -// return Files.createTempDirectory(getTemporaryDirectoryRoot().toPath(), prefix, fileAttribute).toFile(); -// } catch (IOException e) { -// throw new RuntimeException("Could not create temporary directory with preifx: " + prefix, e); -// } -// } - -======= ->>>>>>> clean code -} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/BranchlineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/BranchlineServiceTopia.java index bad2ec5..6305519 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/BranchlineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/BranchlineServiceTopia.java @@ -58,6 +58,7 @@ public class BranchlineServiceTopia extends ObserveServiceTopia implements Branc checkLastUpdateDate(setLongline, dto); Branchline entity = loadOrCreateEntityFromDataDto(dto); + entity.setSetLongline(setLongline); copyDataDtoToEntity(dto, entity); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/SetLonglineDetailCompositionServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/SetLonglineDetailCompositionServiceTopia.java index b9a6f6f..84ba0fd 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/SetLonglineDetailCompositionServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/SetLonglineDetailCompositionServiceTopia.java @@ -26,8 +26,6 @@ import fr.ird.observe.entities.longline.Basket; import fr.ird.observe.entities.longline.Branchline; import fr.ird.observe.entities.longline.Section; import fr.ird.observe.entities.longline.SetLongline; -import fr.ird.observe.services.service.data.longline.SetLonglineDetailCompositionService; -import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; @@ -35,6 +33,8 @@ import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; import fr.ird.observe.services.dto.reference.request.ReferenceSetRequestDefinitions; import fr.ird.observe.services.dto.result.SaveResultDto; +import fr.ird.observe.services.service.data.longline.SetLonglineDetailCompositionService; +import fr.ird.observe.services.topia.ObserveServiceTopia; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -118,13 +118,22 @@ public class SetLonglineDetailCompositionServiceTopia extends ObserveServiceTopi checkLastUpdateDate(entity, dto); copyDataDtoToEntity(dto, entity); - SaveResultDto result = saveEntity(entity); - - for (Section section : entity.getSection()) { - section.setSetLongline(entity); + if (entity.isSectionNotEmpty()) { + for (Section section : entity.getSection()) { + section.setSetLongline(entity); + if (section.isBasketNotEmpty()) { + for (Basket basket : section.getBasket()) { + if (basket.isBranchlineNotEmpty()) { + for (Branchline branchline : basket.getBranchline()) { + branchline.setSetLongline(entity); + } + } + } + } + } } - return result; + return saveEntity(entity); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTables.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTables.java index 44b6f73..7837867 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTables.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTables.java @@ -54,8 +54,8 @@ public class TopiaSqlTables implements Iterable<TopiaSqlTable> { /** Logger. */ private static final Log log = LogFactory.getLog(TopiaSqlTables.class); - protected final ImmutableMap<String, TopiaSqlTable> tablesByFullyTableName; - protected final ImmutableSet<TopiaSqlTable> orderedTables; + protected ImmutableMap<String, TopiaSqlTable> tablesByFullyTableName; + protected ImmutableSet<TopiaSqlTable> orderedTables; public TopiaSqlTables(ImmutableMap<String, TopiaSqlTable> tablesByFullyTableName, ImmutableSet<TopiaSqlTable> orderedTables) { @@ -93,6 +93,27 @@ public class TopiaSqlTables implements Iterable<TopiaSqlTable> { return new TopiaSqlTables(tablesByFullyTableName, reverseSet); } + public void replaceTable(String tableName, TopiaSqlTable table) { + ImmutableMap.Builder<String, TopiaSqlTable> tablesByFullyTableName2 = ImmutableMap.builder(); + ImmutableSet.Builder<TopiaSqlTable> orderedTables2 = ImmutableSet.builder(); + for (Map.Entry<String, TopiaSqlTable> entry : tablesByFullyTableName.entrySet()) { + String name = entry.getKey(); + TopiaSqlTable topiaSqlTable = entry.getValue(); + if (tableName.equals(name)) { + topiaSqlTable = table; + } + tablesByFullyTableName2.put(name, topiaSqlTable); + } + for (TopiaSqlTable orderedTable : orderedTables) { + if (tableName.equals(orderedTable.getFullyTableName())) { + orderedTable = table; + } + orderedTables2.add(orderedTable); + } + tablesByFullyTableName =tablesByFullyTableName2.build(); + orderedTables =orderedTables2.build(); + } + /** * Created on 02/01/16. * -- 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 develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 41ae7f5e026aab67ded99ee7c3281bd770c85f8e Merge: 86666a5 be439f1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 17:42:39 2016 +0100 La sauvegarde de marées central->local plante au-delà d'une dizaine de marées Fixes #8554 Merge branch 'feature/8554_export' into develop .../DataSourceMigrationForVersion_5_1.java | 1 + ...V5_1_19_ano_8554_brancheline_add_section-H2.sql | 3 +++ ...V5_1_19_ano_8554_brancheline_add_section-PG.sql | 3 +++ .../observe/ObserveTopiaApplicationContext.java | 27 ++++++++++++++++----- entities/src/main/xmi/observe-longline.zargo | Bin 93999 -> 95950 bytes entities/src/main/xmi/observe.ini | 1 + .../services/topia/ObserveServiceContextTopia.java | 15 ------------ .../data/longline/BranchlineServiceTopia.java | 1 + .../SetLonglineDetailCompositionServiceTopia.java | 23 ++++++++++++------ .../service/sql/batch/tables/TopiaSqlTables.java | 25 +++++++++++++++++-- 10 files changed, 69 insertions(+), 30 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm