branch develop updated (4baf239 -> 7b0afb8)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from 4baf239 [jgitflow-maven-plugin]Updating develop poms back to pre merge state new 569c1fb fix site configuration new f2b1378 refs #6921: Mauvais libéllé lors de la création d'une base distante new dc617b2 refs #6919 (possibilité d'avoir la source en cours de création) new c24bd6b refs #6920: Ne pas supprimer le schméma public new 83cadbe refs #6922 topia 2.9.5 corrige le problème new e6c1bde refs #6923 Ajout de dbHost et dbPort dans le script new 9f25408 refs #6913 modification du fichier des rapports new d619408 refs #6914 ajouts de méthodes de récupération des entitiés pour la décoration de l'arbre et des listes new 1e65cb0 refs #6914 ajout d'un decorateur pour TripLongline et suppression de celui Trip new 6460fbd refs #6914 Ajout dans le modèle de sélection de l'arbre d'un cache d'entités utilisées pour le construire new 894d747 refs #6914 Ajout d'un cache d'entité chargée dans les noeuds de l'arbre de navigation + ne pas accéder à la datasource depuis le renderer new 08bde7b refs #6914 utilisation des listes simplfiées aussi dans les écrans de liste new 3c6245c refs #6914 suppression d'un chargeur de noeud par association (trop couteux) new 7e2a04d refs 6934 ajout d'une migration 4.0-RC2 new bd6b92f ne pas faire de migration lors des tests new 92410cf fix site configuration new a036248 refs #6921: Mauvais libéllé lors de la création d'une base distante new 9c79c44 fixes #6921: Mauvais libéllé lors de la création d'une base distante Merge branch 'feature/6921' into develop new 54c2925 refs #6919 (possibilité d'avoir la source en cours de création) new bc47e51 fixes #6919: Problème de création de base distante (avec recopie de données) Merge branch 'feature/6919' into develop new 5c79e02 refs #6920: Ne pas supprimer le schméma public new 900b718 fixes #6920: Problème de création d'une nouvelle base (suppression schéma public) Merge branch 'feature/6920' into develop new 57e9f55 refs #6922 topia 2.9.5 corrige le problème new bb72058 fixes #6922: Problème de création d'une nouvelle base (table tms_version non créée) Merge branch 'feature/6922' into develop new 8705801 refs #6923 Ajout de dbHost et dbPort dans le script new be1457d fixes #6923: Amélioration du script apply-extra.sh Merge branch 'feature/6923' into develop new f3c07de refs #6913 modification du fichier des rapports new 43448a9 fixes #6913: Inclure ce fichier observe-report.properties dans la 4.0 RC2 Merge branch 'feature/6913' into develop new e6018f0 refs #6914 ajouts de méthodes de récupération des entitiés pour la décoration de l'arbre et des listes new cbfc737 refs #6914 ajout d'un decorateur pour TripLongline et suppression de celui Trip new 93826a7 refs #6914 Ajout dans le modèle de sélection de l'arbre d'un cache d'entités utilisées pour le construire new 4289e1e refs #6914 Ajout d'un cache d'entité chargée dans les noeuds de l'arbre de navigation + ne pas accéder à la datasource depuis le renderer new 0fd01fa refs #6914 utilisation des listes simplfiées aussi dans les écrans de liste new 1be23f3 refs #6914 suppression d'un chargeur de noeud par association (trop couteux) new 7b0afb8 fixes #6914: Amélioration des temps d'ouverture de l'arbre de navigation Merge branch 'feature/6914' into develop The 35 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 7b0afb861c1199c9cce15e717f04d9168c6bcba4 Merge: bd6b92f 1be23f3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 10 17:05:20 2015 +0200 fixes #6914: Amélioration des temps d'ouverture de l'arbre de navigation Merge branch 'feature/6914' into develop commit bd6b92f34f0403d25082c55aa56884f05d5803ed Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 10 16:44:31 2015 +0200 ne pas faire de migration lors des tests commit 7e2a04dc1772ca8d049d1ed705d507f6704fa1d7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 10 16:43:27 2015 +0200 refs 6934 ajout d'une migration 4.0-RC2 commit 3c6245cce5faa894ac9c3b48d43b81578d3ddde7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:53:43 2015 +0200 refs #6914 suppression d'un chargeur de noeud par association (trop couteux) commit 08bde7b11fa03cded69be98eaffdf2bb2f8a557e Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:49:23 2015 +0200 refs #6914 utilisation des listes simplfiées aussi dans les écrans de liste commit 894d74784d54164c7393bfa16d1c7a8cfc8a11fb Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:35:51 2015 +0200 refs #6914 Ajout d'un cache d'entité chargée dans les noeuds de l'arbre de navigation + ne pas accéder à la datasource depuis le renderer commit 6460fbd4581445d92b74c197796154ad84234f21 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:34:25 2015 +0200 refs #6914 Ajout dans le modèle de sélection de l'arbre d'un cache d'entités utilisées pour le construire commit 1e65cb0af8b8a2af793759e6f257b5455e16540e Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:33:25 2015 +0200 refs #6914 ajout d'un decorateur pour TripLongline et suppression de celui Trip commit d619408c8fa9eafa3c5dd5310b55e396fb42067b Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:32:54 2015 +0200 refs #6914 ajouts de méthodes de récupération des entitiés pour la décoration de l'arbre et des listes commit 9f2540842305fa52a7c4ece06ccab8cb293584e5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 18:20:29 2015 +0200 refs #6913 modification du fichier des rapports commit e6c1bdeff653c9f5f98ac19f677c99c0dbc3c6ed Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 12:09:03 2015 +0200 refs #6923 Ajout de dbHost et dbPort dans le script commit 83cadbe8e83532e530b758a778f045d8ad6bdc6b Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 12:05:23 2015 +0200 refs #6922 topia 2.9.5 corrige le problème commit c24bd6b5dd4eefba85caa3c4aabd22b9a822f06c Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:36:25 2015 +0200 refs #6920: Ne pas supprimer le schméma public commit dc617b2234937a1143f90307608acb5bd178d868 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:24:31 2015 +0200 refs #6919 (possibilité d'avoir la source en cours de création) commit f2b13783904211153afd6ba1e5fdb22c54fce721 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:22:28 2015 +0200 refs #6921: Mauvais libéllé lors de la création d'une base distante commit 569c1fbe62793076283c67feb4d1cbc8c42d60ae Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 8 12:36:00 2015 +0200 fix site configuration commit 1be23f39c789e650810040aa1953b11ce24b2d94 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:53:43 2015 +0200 refs #6914 suppression d'un chargeur de noeud par association (trop couteux) commit 0fd01fa99bf4cee298038659c695988873016e5f Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:49:23 2015 +0200 refs #6914 utilisation des listes simplfiées aussi dans les écrans de liste commit 4289e1ee14ae368b65ef271a08e8bff2ce91d3db Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:35:51 2015 +0200 refs #6914 Ajout d'un cache d'entité chargée dans les noeuds de l'arbre de navigation + ne pas accéder à la datasource depuis le renderer commit 93826a74b4e97a3d7ef137ee11bf3731582829d0 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:34:25 2015 +0200 refs #6914 Ajout dans le modèle de sélection de l'arbre d'un cache d'entités utilisées pour le construire commit cbfc737df02e9b50c0969e2e7f92172c586e6728 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:33:25 2015 +0200 refs #6914 ajout d'un decorateur pour TripLongline et suppression de celui Trip commit e6018f0169184bf73f2b234398f3ca4b52cfaa47 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:32:54 2015 +0200 refs #6914 ajouts de méthodes de récupération des entitiés pour la décoration de l'arbre et des listes commit 43448a920451611e3a313eb877127f83c1c1ca1c Merge: be1457d f3c07de Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 18:20:36 2015 +0200 fixes #6913: Inclure ce fichier observe-report.properties dans la 4.0 RC2 Merge branch 'feature/6913' into develop commit f3c07de61cd8bfd320a42fc914c3702fe91883ff Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 18:20:29 2015 +0200 refs #6913 modification du fichier des rapports commit be1457d6fa1e5d567508b11905a2a8390ef19d03 Merge: bb72058 8705801 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 12:09:08 2015 +0200 fixes #6923: Amélioration du script apply-extra.sh Merge branch 'feature/6923' into develop commit 8705801f7368ed28b71aec3961c423a9928eb1b3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 12:09:03 2015 +0200 refs #6923 Ajout de dbHost et dbPort dans le script commit bb7205838d271c0a78002ebff67c4496b87b5310 Merge: 900b718 57e9f55 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 12:05:32 2015 +0200 fixes #6922: Problème de création d'une nouvelle base (table tms_version non créée) Merge branch 'feature/6922' into develop commit 57e9f55315a1eef08789bcfad4107fcaaa83ba84 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 12:05:23 2015 +0200 refs #6922 topia 2.9.5 corrige le problème commit 900b71842561f9e5f08deb4f2578dcb9613b7dae Merge: bc47e51 5c79e02 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:36:35 2015 +0200 fixes #6920: Problème de création d'une nouvelle base (suppression schéma public) Merge branch 'feature/6920' into develop commit 5c79e025955e73e30ae746360725f20d6feba59e Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:36:25 2015 +0200 refs #6920: Ne pas supprimer le schméma public commit bc47e5137ffd11a93439991291f8a11907f9697e Merge: 9c79c44 54c2925 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:25:04 2015 +0200 fixes #6919: Problème de création de base distante (avec recopie de données) Merge branch 'feature/6919' into develop commit 54c2925b2805ddb2ca1823bf28d3bc4419d622b6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:24:31 2015 +0200 refs #6919 (possibilité d'avoir la source en cours de création) commit 9c79c4407aa9f7fb1eedb01bbd3fc12acb1624da Merge: 92410cf a036248 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:22:37 2015 +0200 fixes #6921: Mauvais libéllé lors de la création d'une base distante Merge branch 'feature/6921' into develop commit a036248f1ec327b7e12541f737824da847c703a1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:22:28 2015 +0200 refs #6921: Mauvais libéllé lors de la création d'une base distante commit 92410cfb6c8f57ca8f67ce59e95c65efa496f29a Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 8 12:36:00 2015 +0200 fix site configuration Summary of changes: .../src/main/filters/observe-reports.properties | 20 +- .../src/main/java/fr/ird/observe/DataService.java | 397 ++++++++++++++++----- .../main/java/fr/ird/observe/DecoratorService.java | 6 +- .../java/fr/ird/observe/db/ReplicationService.java | 17 +- .../ird/observe/db/model/DataSelectionModel.java | 30 +- .../java/fr/ird/observe/db/util/PGInstall.java | 8 +- ...ipDecorator.java => TripLonglineDecorator.java} | 21 +- .../replication/H2LonglineReplicateDataTest.java | 2 +- .../ird/observe/entities/constants/GearType.java | 11 + .../entities/constants/ReferenceLocale.java | 34 ++ .../entities/longline/ActivityLonglineDAOImpl.java | 118 ++++++ .../entities/longline/TripLonglineDAOImpl.java | 133 ++++++- .../migration/AbstractDataSourceMigration.java | 3 +- .../DataSourceMigrationForVersion_4_0_RC2.java | 89 +++++ .../entities/referentiel/ProgramDAOImpl.java | 101 ++++++ .../entities/referentiel/ReferenceEntities.java | 1 + .../entities/seine/ActivitySeineDAOImpl.java | 119 ++++++ .../entities/seine/FloatingObjectDAOImpl.java | 102 ++++++ .../ird/observe/entities/seine/RouteDAOImpl.java | 93 +++++ .../observe/entities/seine/TripSeineDAOImpl.java | 131 ++++++- .../db/4.0-RC2/clean-program-gear-type-H2.sql | 6 + .../db/4.0-RC2/clean-program-gear-type-PG.sql | 5 + .../src/main/xmi/observe-common.properties | 2 +- .../src/main/xmi/observe-longline.properties | 2 +- .../src/main/xmi/observe-seine.properties | 2 +- .../assembly/dist/obstuna-admin/apply-extra.sh | 14 +- .../ird/observe/ui/content/ContentUIHandler.java | 5 +- .../impl/longline/SetLonglineUIHandler.java | 3 +- .../impl/seine/FloatingObjectUIHandler.java | 3 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 3 +- .../impl/longline/ActivityLonglinesUIHandler.java | 16 +- .../list/impl/longline/TripLonglinesUIHandler.java | 10 +- .../list/impl/seine/ActivitySeinesUIHandler.java | 16 +- .../content/list/impl/seine/RoutesUIHandler.java | 12 +- .../list/impl/seine/TripSeinesUIHandler.java | 10 +- .../ui/content/open/ContentOpenableUIHandler.java | 28 +- .../ui/content/open/impl/seine/RouteUIHandler.java | 3 +- .../ird/observe/ui/storage/tabs/ConfigDataUI.css | 4 +- .../ui/tree/AbstractObserveTreeCellRenderer.java | 41 +-- .../ird/observe/ui/tree/ActivityLonglineNode.java | 28 ++ .../fr/ird/observe/ui/tree/ActivitySeineNode.java | 28 ++ .../fr/ird/observe/ui/tree/EntityNodeSupport.java | 146 ++++++++ .../observe/ui/tree/FloatingObjectSeineNode.java | 28 ++ .../ird/observe/ui/tree/ObserveDataProvider.java | 11 + .../java/fr/ird/observe/ui/tree/ObserveNode.java | 66 +--- .../fr/ird/observe/ui/tree/ObserveTreeHelper.java | 75 ++-- .../ird/observe/ui/tree/ProgramLonglineNode.java | 29 ++ .../fr/ird/observe/ui/tree/ProgramSeineNode.java | 28 ++ .../fr/ird/observe/ui/tree/RouteSeineNode.java | 27 ++ .../fr/ird/observe/ui/tree/SetLonglineNode.java | 28 ++ .../java/fr/ird/observe/ui/tree/SetSeineNode.java | 28 ++ .../fr/ird/observe/ui/tree/TripLonglineNode.java | 27 ++ .../java/fr/ird/observe/ui/tree/TripSeineNode.java | 27 ++ .../actions/ChangeTripProgramActionListener.java | 6 +- .../AbstractAssociationNodeChildLoador.java | 68 ---- .../loadors/ActivityLonglineNodeChildLoador.java | 22 +- .../loadors/ActivityLonglinesNodeChildLoador.java | 26 +- .../tree/loadors/ActivitySeineNodeChildLoador.java | 49 +-- .../loadors/ActivitySeinesNodeChildLoador.java | 27 +- .../loadors/FloatingObjectNodeChildLoador.java | 4 +- .../loadors/ProgramLonglineNodeChildLoador.java | 12 +- .../tree/loadors/ProgramSeineNodeChildLoador.java | 14 +- .../ui/tree/loadors/RootNodeChildLoador.java | 25 +- .../ui/tree/loadors/RoutesNodeChildLoador.java | 24 +- .../tree/loadors/SetLonglineNodeChildLoador.java | 4 +- .../ui/tree/loadors/SetSeineNodeChildLoador.java | 1 + .../resources/i18n/observe-swing_en_GB.properties | 2 + .../resources/i18n/observe-swing_es_ES.properties | 2 + .../resources/i18n/observe-swing_fr_FR.properties | 2 + pom.xml | 39 +- src/site/site_fr.xml | 6 +- 71 files changed, 2020 insertions(+), 510 deletions(-) rename observe-business/src/main/java/fr/ird/observe/decorator/{TripDecorator.java => TripLonglineDecorator.java} (67%) create mode 100644 observe-entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineDAOImpl.java create mode 100644 observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_RC2.java create mode 100644 observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramDAOImpl.java create mode 100644 observe-entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineDAOImpl.java create mode 100644 observe-entities/src/main/java/fr/ird/observe/entities/seine/FloatingObjectDAOImpl.java create mode 100644 observe-entities/src/main/java/fr/ird/observe/entities/seine/RouteDAOImpl.java create mode 100644 observe-entities/src/main/resources/db/4.0-RC2/clean-program-gear-type-H2.sql create mode 100644 observe-entities/src/main/resources/db/4.0-RC2/clean-program-gear-type-PG.sql mode change 100644 => 100755 observe-swing/src/main/assembly/dist/obstuna-admin/apply-extra.sh create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java delete mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractAssociationNodeChildLoador.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 92410cfb6c8f57ca8f67ce59e95c65efa496f29a Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 8 12:36:00 2015 +0200 fix site configuration --- pom.xml | 37 +++++++++---------------------------- src/site/site_fr.xml | 6 ++++-- 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/pom.xml b/pom.xml index 3829898..eb6a90f 100644 --- a/pom.xml +++ b/pom.xml @@ -130,6 +130,9 @@ <i18n.bundles>fr_FR,en_GB,es_ES</i18n.bundles> <i18n.silent>true</i18n.silent> + <!-- Site configuration --> + <locales>fr</locales> + </properties> <repositories> @@ -609,8 +612,8 @@ <fileset dir="${basedir}/doc/modelisation"> <include name="**/*.pdf" /> </fileset> - <fileset dir="${basedir}/observe-business/src/main/xmi"> - <include name="observe.zargo" /> + <fileset dir="${basedir}/observe-entities/src/main/xmi"> + <include name="**/*.zargo" /> </fileset> </copy> </tasks> @@ -643,7 +646,7 @@ <configuration> <tasks> <copy todir="${project.reporting.outputDirectory}" verbose="${maven.verbose}" failonerror="false" overwrite="false"> - <fileset dir="observe-business/src/main/resources"> + <fileset dir="observe-validation/src/main/resources"> <include name="validators.xml" /> </fileset> </copy> @@ -669,35 +672,13 @@ </activation> <reporting> - <plugins> - - <plugin> - <artifactId>maven-project-info-reports-plugin</artifactId> - <version>${projectInfoReportsPluginVersion}</version> - <reportSets> - <reportSet> - <reports> - <report>project-team</report> - <report>mailing-list</report> - <report>cim</report> - <report>issue-tracking</report> - <report>license</report> - <report>scm</report> - <report>dependencies</report> - <report>dependency-convergence</report> - <report>plugin-management</report> - <report>plugins</report> - <report>dependency-management</report> - <report>summary</report> - </reports> - </reportSet> - </reportSets> - </plugin> + <plugins> <plugin> <groupId>org.nuiton</groupId> <artifactId>nuiton-maven-report-plugin</artifactId> - <version>3.0-rc-1</version> + <version>3.0</version> + <inherited>false</inherited> <reportSets> <reportSet> <reports> diff --git a/src/site/site_fr.xml b/src/site/site_fr.xml index b25f690..6d77c94 100644 --- a/src/site/site_fr.xml +++ b/src/site/site_fr.xml @@ -75,11 +75,13 @@ <item name="Administration Obstuna" href="install-serverPG.html"/> <item name="Téléchargement" href="https://forge.codelutin.com/projects/observe/files"/> <item name="Historique des versions" href="./changes-report.html"/> - <item name="Configuration" href="./application-config-report.html"/> + <item name="Configuration" href="./config-report.html"/> </menu> <menu name="Modélisation"> - <item name="Fichier argoUML" href="model/observe.zargo"/> + <item name="Fichier argoUML (commun)" href="model/observe-common.zargo"/> + <item name="Fichier argoUML (Seine)" href="model/observe-seine.zargo"/> + <item name="Fichier argoUML (Palangre)" href="model/observe-longline.zargo"/> <item name="Modèle physique" href="model/observe_mpd.pdf"/> </menu> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 43448a920451611e3a313eb877127f83c1c1ca1c Merge: be1457d f3c07de Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 18:20:36 2015 +0200 fixes #6913: Inclure ce fichier observe-report.properties dans la 4.0 RC2 Merge branch 'feature/6913' into develop .../src/main/filters/observe-reports.properties | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit e6018f0169184bf73f2b234398f3ca4b52cfaa47 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:32:54 2015 +0200 refs #6914 ajouts de méthodes de récupération des entitiés pour la décoration de l'arbre et des listes --- .../src/main/java/fr/ird/observe/DataService.java | 397 ++++++++++++++++----- .../ird/observe/entities/constants/GearType.java | 11 + .../entities/constants/ReferenceLocale.java | 34 ++ .../entities/longline/ActivityLonglineDAOImpl.java | 118 ++++++ .../entities/longline/TripLonglineDAOImpl.java | 133 ++++++- .../entities/referentiel/ProgramDAOImpl.java | 101 ++++++ .../entities/referentiel/ReferenceEntities.java | 1 + .../entities/seine/ActivitySeineDAOImpl.java | 119 ++++++ .../entities/seine/FloatingObjectDAOImpl.java | 102 ++++++ .../ird/observe/entities/seine/RouteDAOImpl.java | 93 +++++ .../observe/entities/seine/TripSeineDAOImpl.java | 131 ++++++- 11 files changed, 1130 insertions(+), 110 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/DataService.java b/observe-business/src/main/java/fr/ird/observe/DataService.java index b86d44c..c810802 100644 --- a/observe-business/src/main/java/fr/ird/observe/DataService.java +++ b/observe-business/src/main/java/fr/ird/observe/DataService.java @@ -37,7 +37,9 @@ import fr.ird.observe.entities.OpenableEntities; import fr.ird.observe.entities.OpenableEntity; import fr.ird.observe.entities.Trip; import fr.ird.observe.entities.constants.GearType; +import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.longline.ActivityLongline; +import fr.ird.observe.entities.longline.ActivityLonglineDAO; import fr.ird.observe.entities.longline.ActivityLonglines; import fr.ird.observe.entities.longline.Basket; import fr.ird.observe.entities.longline.Branchline; @@ -56,7 +58,6 @@ import fr.ird.observe.entities.referentiel.LengthWeightParemeterHelper; import fr.ird.observe.entities.referentiel.Ocean; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.ProgramDAO; -import fr.ird.observe.entities.referentiel.Programs; import fr.ird.observe.entities.referentiel.ReferenceEntities; import fr.ird.observe.entities.referentiel.Sex; import fr.ird.observe.entities.referentiel.Species; @@ -64,7 +65,10 @@ import fr.ird.observe.entities.referentiel.SpeciesList; import fr.ird.observe.entities.referentiel.SpeciesListDAO; import fr.ird.observe.entities.referentiel.longline.SensorType; import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.entities.seine.ActivitySeineDAO; import fr.ird.observe.entities.seine.ActivitySeines; +import fr.ird.observe.entities.seine.FloatingObject; +import fr.ird.observe.entities.seine.FloatingObjectDAO; import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeineImpl; import fr.ird.observe.entities.seine.GearUseFeaturesSeine; @@ -72,6 +76,7 @@ import fr.ird.observe.entities.seine.NonTargetCatch; import fr.ird.observe.entities.seine.NonTargetLength; import fr.ird.observe.entities.seine.NonTargetSample; import fr.ird.observe.entities.seine.Route; +import fr.ird.observe.entities.seine.RouteDAO; import fr.ird.observe.entities.seine.Routes; import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.entities.seine.TargetCatch; @@ -109,7 +114,6 @@ import java.util.Collections; import java.util.Date; import java.util.EnumSet; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -129,8 +133,6 @@ public class DataService { String BEAN = "bean"; - String PROPERTY_ENABLED = "enabled"; - protected DecoratorService decoratorService; protected DataContext dataContext; @@ -483,10 +485,57 @@ public class DataService { } } + public List<Program> getAllProgramStub(DataSource source) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return Collections.emptyList(); + } + + String txName = "getAllProgramStub"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + ProgramDAO dao = (ProgramDAO) source.getDAO(tx, Program.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<Program> result = dao.findAllStub(referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } - public List<TripSeine> getTripSeineByProgram(DataSource source, - String programId, - boolean decorateTrip) throws DataSourceException { + public Program getProgramStub(DataSource source, String programId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return null; + } + + String txName = "getProgramStub"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + ProgramDAO dao = (ProgramDAO) source.getDAO(tx, Program.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + Program result = dao.findStubByTopiaId(programId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + public List<TripSeine> getTripSeineStubByProgram(DataSource source, String programId) throws DataSourceException { if (!source.canReadData()) { if (log.isDebugEnabled()) { log.debug("Can not read data!"); @@ -494,23 +543,140 @@ public class DataService { return Collections.emptyList(); } - String txName = "getTripByProgram"; + String txName = "getTripSeineStubByProgram"; TopiaContext tx = beginTransaction(source, txName); - DecoratorService decoratorService = getDecoratorService(); - Decorator<TripSeine> decorator = null; - if (decorateTrip) { - decorator = decoratorService.getDecoratorByType(TripSeine.class); + + try { + + TripSeineDAO dao = (TripSeineDAO) source.getDAO(tx, TripSeine.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<TripSeine> result = dao.findAllStubByProgramId(programId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + public TripSeine getTripSeineStub(DataSource source, String tripId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return null; } + String txName = "getTripSeineStub"; + TopiaContext tx = beginTransaction(source, txName); + try { + TripSeineDAO dao = (TripSeineDAO) source.getDAO(tx, TripSeine.class); - List<TripSeine> result = dao.findAllByProgramId(programId); - if (decorateTrip && CollectionUtils.isNotEmpty(result)) { - for (TripSeine maree : result) { - decorator.toString(maree); - } + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + TripSeine result = dao.findStubByTopiaId(tripId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + + public List<Route> getRouteStubByTrip(DataSource source, String tripSeineId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return Collections.emptyList(); + } + + String txName = "getRouteStubByTrip"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + RouteDAO dao = (RouteDAO) source.getDAO(tx, Route.class); + List<Route> result = dao.findAllStubByTripId(tripSeineId); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + public Route getRouteStub(DataSource source, String routeId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return null; + } + + String txName = "getRouteStub"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + RouteDAO dao = (RouteDAO) source.getDAO(tx, Route.class); + Route result = dao.findStubByTopiaId(routeId); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + public List<ActivitySeine> getActivitySeineStubByRoute(DataSource source, String routeId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return Collections.emptyList(); + } + + String txName = "getActivitySeineStubByRoute"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + ActivitySeineDAO dao = (ActivitySeineDAO) source.getDAO(tx, ActivitySeine.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<ActivitySeine> result = dao.findAllStubByRouteId(routeId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + public ActivitySeine getActivitySeineStub(DataSource source, String activityId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); } + return null; + } + + String txName = "getActivitySeineStub"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + ActivitySeineDAO dao = (ActivitySeineDAO) source.getDAO(tx, ActivitySeine.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + ActivitySeine result = dao.findStubByTopiaId(activityId, referentielLocale); return result; + } catch (Exception e) { throw new DataSourceException(e, txName); } finally { @@ -518,10 +684,57 @@ public class DataService { } } + public List<FloatingObject> getFloatinObjectStubByActivitySeine(DataSource source, String activitySeineId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return Collections.emptyList(); + } + + String txName = "getFloatinObjectStubByActivitySeine"; + TopiaContext tx = beginTransaction(source, txName); - public List<TripLongline> getTripLonglineByProgram(DataSource source, - String programId, - boolean decorateTrip) throws DataSourceException { + try { + + FloatingObjectDAO dao = (FloatingObjectDAO) source.getDAO(tx, FloatingObject.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<FloatingObject> result = dao.findAllStubByActivityId(activitySeineId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + public FloatingObject getFloatinObjectStub(DataSource source, String floatingObjectId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return null; + } + + String txName = "getFloatinObjectStub"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + FloatingObjectDAO dao = (FloatingObjectDAO) source.getDAO(tx, FloatingObject.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + FloatingObject result = dao.findStubByTopiaId(floatingObjectId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + public List<TripLongline> getTripLonglineStubByProgram(DataSource source, String programId) throws DataSourceException { if (!source.canReadData()) { if (log.isDebugEnabled()) { log.debug("Can not read data!"); @@ -529,23 +742,68 @@ public class DataService { return Collections.emptyList(); } - String txName = "getTripByProgram"; + String txName = "getTripLonglineStubByProgram"; TopiaContext tx = beginTransaction(source, txName); - DecoratorService decoratorService = getDecoratorService(); - Decorator<TripLongline> decorator = null; - if (decorateTrip) { - decorator = decoratorService.getDecoratorByType(TripLongline.class); + + try { + + TripLonglineDAO dao = (TripLonglineDAO) source.getDAO(tx, TripLongline.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<TripLongline> result = dao.findAllStubByProgramId(programId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + + } + + public TripLongline getTripLonglineStub(DataSource source, String tripId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return null; } + String txName = "getTripLonglineStub"; + TopiaContext tx = beginTransaction(source, txName); + try { + TripLonglineDAO dao = (TripLonglineDAO) source.getDAO(tx, TripLongline.class); - List<TripLongline> result = dao.findAllByProgramId(programId); - if (decorateTrip && CollectionUtils.isNotEmpty(result)) { - for (TripLongline maree : result) { - decorator.toString(maree); - } + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + TripLongline result = dao.findStubByTopiaId(tripId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + + } + + public List<ActivityLongline> getActivityLonglineStubByTrip(DataSource source, String tripId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); } + return Collections.emptyList(); + } + + String txName = "getActivityLonglineStubByTrip"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + ActivityLonglineDAO dao = (ActivityLonglineDAO) source.getDAO(tx, ActivityLongline.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<ActivityLongline> result = dao.findAllStubByTripId(tripId, referentielLocale); return result; + } catch (Exception e) { throw new DataSourceException(e, txName); } finally { @@ -553,6 +811,30 @@ public class DataService { } } + public ActivityLongline getActivityLonglineStub(DataSource source, String activityId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return null; + } + + String txName = "getActivityLonglineStub"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + ActivityLonglineDAO dao = (ActivityLonglineDAO) source.getDAO(tx, ActivityLongline.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + ActivityLongline result = dao.findStubByTopiaId(activityId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } public Ocean getTripOcean(DataSource source, String tripId) throws DataSourceException { @@ -1185,61 +1467,6 @@ public class DataService { } } - - public List<Program> getClosedPrograms(DataSource source) throws DataSourceException { - List<Program> programs = getList(source, Program.class); - Iterator<Program> it = programs.iterator(); - while (it.hasNext()) { - //FIXME Do it also for Longline program - Program program = it.next(); - - - if (Programs.isProgramLongline(program)) { - List<TripLongline> mareeForProgram = - getTripLonglineByProgram(source, program.getTopiaId(), false); - - boolean add = true; - - if (mareeForProgram.isEmpty()) { - add = false; - } - for (TripLongline maree : mareeForProgram) { - if (maree.isOpen()) { - // pas fermer - add = false; - break; - } - } - - if (!add) { - it.remove(); - } - continue; - } - - if (Programs.isProgramSeine(program)) { - List<TripSeine> mareeForProgram = - getTripSeineByProgram(source, program.getTopiaId(), false); - boolean add = true; - if (mareeForProgram.isEmpty()) { - add = false; - } - for (TripSeine maree : mareeForProgram) { - if (maree.isOpen()) { - // pas fermer - add = false; - break; - } - } - if (!add) { - it.remove(); - } - } - - } - return programs; - } - public List<Program> getPossibleProgramsForTrip(DataSource source, String tripId) throws DataSourceException { final GearType gearType; diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/constants/GearType.java b/observe-entities/src/main/java/fr/ird/observe/entities/constants/GearType.java index be373df..26f07f9 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/constants/GearType.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/constants/GearType.java @@ -53,4 +53,15 @@ public enum GearType { public String toString() { return t(i18nKey); } + + public static GearType fromOrdinal(int ordinal) { + + GearType result = null; + for (GearType gearType : values()) { + if (ordinal == gearType.ordinal()) { + result = gearType; + } + } + return result; + } } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java b/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java index e5a8b8b..b3f053f 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java @@ -84,9 +84,43 @@ public enum ReferenceLocale { "could not find referentiel locale from locale " + locale); } + public String getColumnName() { + return "label"+(ordinal() + 1); + } @Override public String toString() { return "<Locale: " + locale + ", index: " + name() + ">"; } + + public <E extends I18nReferenceEntity> void setLabel(String label, E i18nEntity) { + + switch (ordinal()+1) { + case 1: + i18nEntity.setLabel1(label); + break; + case 2: + i18nEntity.setLabel2(label); + break; + case 3: + i18nEntity.setLabel3(label); + break; + case 4: + i18nEntity.setLabel4(label); + break; + case 5: + i18nEntity.setLabel5(label); + break; + case 6: + i18nEntity.setLabel6(label); + break; + case 7: + i18nEntity.setLabel7(label); + break; + case 8: + i18nEntity.setLabel8(label); + break; + } + + } } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineDAOImpl.java new file mode 100644 index 0000000..af76d68 --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineDAOImpl.java @@ -0,0 +1,118 @@ +package fr.ird.observe.entities.longline; + +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.longline.VesselActivityLongline; +import fr.ird.observe.entities.referentiel.longline.VesselActivityLonglineImpl; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.framework.TopiaSQLQuery; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +public class ActivityLonglineDAOImpl<E extends ActivityLongline> extends ActivityLonglineDAOAbstract<E> { + + public List<E> findAllStubByTripId(String tripId, ReferenceLocale referenceLocale) throws TopiaException { + + List<E> result = StubSqlQuery.findAll(context, tripId, referenceLocale); + return result; + + } + + public E findStubByTopiaId(String activityId, ReferenceLocale referenceLocale) throws TopiaException { + + E result = StubSqlQuery.find(context, activityId, referenceLocale); + return result; + + } + + private static class StubSqlQuery<E extends ActivityLongline> extends TopiaSQLQuery<E> { + + private final String sql; + + private final String id; + + private final ReferenceLocale referenceLocale; + + public static <E extends ActivityLongline> List<E> findAll(TopiaContextImplementor context, String tripId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " a.topiaId," + + " a.timestamp," + + " a.open," + + " a.set," + + " va." + referenceLocale.getColumnName() + + " FROM observe_longline.activity a, observe_longline.vesselactivity va" + + " WHERE " + + " a.trip = ?" + + " AND a.vesselactivity = va.topiaid" + + " ORDER BY a.timestamp"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, tripId, referenceLocale); + return request.findMultipleResult(context); + + } + + public static <E extends ActivityLongline> E find(TopiaContextImplementor context, String activityId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " a.topiaId," + + " a.timestamp," + + " a.open," + + " a.set," + + " va." + referenceLocale.getColumnName() + + " FROM observe_longline.activity a, observe_longline.vesselactivity va" + + " WHERE " + + " a.topiaId = ?" + + " AND a.vesselactivity = va.topiaid" + + " ORDER BY a.timestamp"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, activityId, referenceLocale); + return request.findSingleResult(context); + + } + + StubSqlQuery(String sql, String id, ReferenceLocale referenceLocale) { + this.sql = sql; + this.id = id; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, id); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E activity = (E) new ActivityLonglineImpl(); + activity.setTopiaId(set.getString(1)); + activity.setTimeStamp(set.getTimestamp(2)); + activity.setOpen(set.getBoolean(3)); + + String setId = set.getString(4); + if (setId != null) { + + SetLonglineImpl setLongline = new SetLonglineImpl(); + setLongline.setTopiaId(setId); + activity.setSetLongline(setLongline); + + } + VesselActivityLongline vesselActivity = new VesselActivityLonglineImpl(); + String label = set.getString(5); + referenceLocale.setLabel(label, vesselActivity); + activity.setVesselActivityLongline(vesselActivity); + + return activity; + + } + + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java index 1fe43dd..525361b 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java @@ -22,27 +22,26 @@ package fr.ird.observe.entities.longline; * #L% */ -import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.Person; +import fr.ird.observe.entities.referentiel.PersonImpl; +import fr.ird.observe.entities.referentiel.Vessel; +import fr.ird.observe.entities.referentiel.VesselImpl; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.framework.TopiaSQLQuery; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.List; public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAOAbstract<E> { - - public List<E> findAllByProgramId(String programId) throws TopiaException { - TopiaQuery query = createQuery(); - query.addOrder(TripSeine.PROPERTY_END_DATE); - query.addEquals(TripSeine.PROPERTY_PROGRAM + "." + TopiaEntity.TOPIA_ID, programId); - List<E> result = findAllByQuery(query); - return result; - } - public int findPositionByProgramId(String programId, String tripId) throws TopiaException { int result = 0; - List<E> list = findAllByProgramId(programId); + List<E> list = findAllStubByProgramId(programId, ReferenceLocale.FR); for (E e : list) { if (tripId.equals(e.getTopiaId())) { return result; @@ -54,4 +53,110 @@ public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAO return -1; } -} //TripLonglineDAOImpl<E extends TripLongline> + public List<E> findAllStubByProgramId(String programId, ReferenceLocale referenceLocale) throws TopiaException { + + List<E> result = StubSqlQuery.findAll(context, programId, referenceLocale); + return result; + + } + + public E findStubByTopiaId(String tripId, ReferenceLocale referenceLocale) throws TopiaException { + + E result = StubSqlQuery.find(context, tripId, referenceLocale); + return result; + + } + + private static class StubSqlQuery<E extends TripLongline> extends TopiaSQLQuery<E> { + + private final String sql; + + private final String id; + + private final ReferenceLocale referenceLocale; + + StubSqlQuery(String sql, String id, ReferenceLocale referenceLocale) { + this.sql = sql; + this.id = id; + this.referenceLocale = referenceLocale; + } + + public static <E extends TripLongline> List<E> findAll(TopiaContextImplementor context, String programId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " t.topiaId," + + " t.startDate," + + " t.endDate," + + " t.open," + + " p.lastName," + + " p.firstName," + + " v." + referenceLocale.getColumnName() + + " FROM observe_longline.trip t, observe_common.person p, observe_common.vessel v" + + " WHERE " + + " t.program = ?" + + " AND t.observer = p.topiaId" + + " AND t.vessel = v.topiaId" + + " ORDER BY t.endDate"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, programId, referenceLocale); + return request.findMultipleResult(context); + + } + + public static <E extends TripLongline> E find(TopiaContextImplementor context, String tripId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " t.topiaId," + + " t.startDate," + + " t.endDate," + + " t.open," + + " p.lastName," + + " p.firstName," + + " v." + referenceLocale.getColumnName() + + " FROM observe_longline.trip t, observe_common.person p, observe_common.vessel v" + + " WHERE " + + " t.topiaId = ?" + + " AND t.observer = p.topiaId" + + " AND t.vessel = v.topiaId" + + " ORDER BY t.endDate"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, tripId, referenceLocale); + return request.findSingleResult(context); + + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, id); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E trip = (E) new TripLonglineImpl(); + trip.setTopiaId(set.getString(1)); + trip.setStartDate(set.getTimestamp(2)); + trip.setEndDate(set.getTimestamp(3)); + trip.setOpen(set.getBoolean(4)); + + String observerFirstName = set.getString(5); + String observerLastName = set.getString(6); + Person observer = new PersonImpl(); + observer.setFirstName(observerFirstName); + observer.setLastName(observerLastName); + trip.setObserver(observer); + + Vessel vessel = new VesselImpl(); + String label = set.getString(7); + referenceLocale.setLabel(label, vessel); + trip.setVessel(vessel); + + return trip; + + } + + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramDAOImpl.java new file mode 100644 index 0000000..7638768 --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramDAOImpl.java @@ -0,0 +1,101 @@ +package fr.ird.observe.entities.referentiel; + +import fr.ird.observe.entities.constants.GearType; +import fr.ird.observe.entities.constants.ReferenceLocale; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.framework.TopiaSQLQuery; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +public class ProgramDAOImpl<E extends Program> extends ProgramDAOAbstract<E> { + + public List<E> findAllStub(ReferenceLocale referenceLocale) throws TopiaException { + List<E> result = StubSqlQuery.findAll(context, referenceLocale); + return result; + + } + + public Program findStubByTopiaId(String programId, ReferenceLocale referentielLocale) throws TopiaException { + return StubSqlQuery.find(context, programId, referentielLocale); + } + + + private static class StubSqlQuery<E extends Program> extends TopiaSQLQuery<E> { + + private final String sql; + + private final String id; + + private final ReferenceLocale referenceLocale; + + static <E extends Program> List<E> findAll(TopiaContextImplementor context, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " p.topiaId," + + " p.gearType," + + " p." + referenceLocale.getColumnName() + + " FROM observe_common.program p" + + " ORDER BY p." + referenceLocale.getColumnName(); + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, null, referenceLocale); + return request.findMultipleResult(context); + + } + + static <E extends Program> E find(TopiaContextImplementor context, String tripId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " p.topiaId," + + " p.gearType," + + " p." + referenceLocale.getColumnName() + + " FROM observe_common.program p" + + " WHERE " + + " p.topiaId = ?" + + " ORDER BY p." + referenceLocale.getColumnName(); + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, tripId, referenceLocale); + return request.findSingleResult(context); + + } + + StubSqlQuery(String sql, String id, ReferenceLocale referenceLocale) { + this.sql = sql; + this.id = id; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + PreparedStatement preparedStatement = connection.prepareStatement(sql); + if (id != null) { + preparedStatement.setString(1, id); + } + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E program = (E) new ProgramImpl(); + program.setTopiaId(set.getString(1)); + + int gearTypeOrdinal = set.getInt(2); + GearType gearType = GearType.fromOrdinal(gearTypeOrdinal); + program.setGearType(gearType); + + String label = set.getString(3); + referenceLocale.setLabel(label, program); + + return program; + + } + + } + + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java index 2f225bf..35ff744 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java @@ -118,4 +118,5 @@ public class ReferenceEntities { <E extends TopiaEntity> void walk(Class<E> beanClass) throws Exception; } + } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineDAOImpl.java new file mode 100644 index 0000000..b82bfe7 --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineDAOImpl.java @@ -0,0 +1,119 @@ +package fr.ird.observe.entities.seine; + +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; +import fr.ird.observe.entities.referentiel.seine.VesselActivitySeineImpl; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.framework.TopiaSQLQuery; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +public class ActivitySeineDAOImpl<E extends ActivitySeine> extends ActivitySeineDAOAbstract<E> { + + public List<E> findAllStubByRouteId(String routeId, ReferenceLocale referenceLocale) throws TopiaException { + + List<E> result = StubSqlQuery.findAll(context, routeId, referenceLocale); + return result; + + } + + public E findStubByTopiaId(String activityId, ReferenceLocale referenceLocale) throws TopiaException { + + E result = StubSqlQuery.find(context, activityId, referenceLocale); + return result; + + } + + private static class StubSqlQuery<E extends ActivitySeine> extends TopiaSQLQuery<E> { + + private final String sql; + + private final String id; + + private final ReferenceLocale referenceLocale; + + static <E extends ActivitySeine> List<E> findAll(TopiaContextImplementor context, String routeId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " a.topiaId," + + " a.time," + + " a.open," + + " a.set," + + " va." + referenceLocale.getColumnName() + + " FROM observe_seine.activity a, observe_seine.vesselactivity va" + + " WHERE " + + " a.route = ?" + + " AND a.vesselactivity = va.topiaid" + + " ORDER BY a.time"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, routeId, referenceLocale); + return request.findMultipleResult(context); + + } + + static <E extends ActivitySeine> E find(TopiaContextImplementor context, String activityId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " a.topiaId," + + " a.time," + + " a.open," + + " a.set," + + " va." + referenceLocale.getColumnName() + + " FROM observe_seine.activity a, observe_seine.vesselactivity va" + + " WHERE " + + " a.topiaId = ?" + + " AND a.vesselactivity = va.topiaid" + + " ORDER BY a.time"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, activityId, referenceLocale); + return request.findSingleResult(context); + + } + + StubSqlQuery(String sql, String id, ReferenceLocale referenceLocale) { + this.sql = sql; + this.id = id; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, id); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E activity = (E) new ActivitySeineImpl(); + activity.setTopiaId(set.getString(1)); + activity.setTime(set.getTime(2)); + activity.setOpen(set.getBoolean(3)); + + String setId = set.getString(4); + if (setId != null) { + + SetSeine setSeine = new SetSeineImpl(); + setSeine.setTopiaId(setId); + activity.setSetSeine(setSeine); + + } + + VesselActivitySeine vesselActivity = new VesselActivitySeineImpl(); + String label = set.getString(5); + referenceLocale.setLabel(label, vesselActivity); + activity.setVesselActivitySeine(vesselActivity); + + return activity; + + } + + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/seine/FloatingObjectDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/seine/FloatingObjectDAOImpl.java new file mode 100644 index 0000000..07a1c20 --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/seine/FloatingObjectDAOImpl.java @@ -0,0 +1,102 @@ +package fr.ird.observe.entities.seine; + +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.seine.ObjectType; +import fr.ird.observe.entities.referentiel.seine.ObjectTypeImpl; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.framework.TopiaSQLQuery; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +public class FloatingObjectDAOImpl<E extends FloatingObject> extends FloatingObjectDAOAbstract<E> { + + public List<E> findAllStubByActivityId(String activityId, ReferenceLocale referenceLocale) throws TopiaException { + + List<E> result = StubSqlQuery.findAll(context, activityId, referenceLocale); + return result; + + } + + public E findStubByTopiaId(String floatingObjectId, ReferenceLocale referenceLocale) throws TopiaException { + + E result = StubSqlQuery.find(context, floatingObjectId, referenceLocale); + return result; + + } + + private static class StubSqlQuery<E extends FloatingObject> extends TopiaSQLQuery<E> { + + private final String sql; + + private final String id; + + private final ReferenceLocale referenceLocale; + + static <E extends FloatingObject> List<E> findAll(TopiaContextImplementor context, String activityId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " fo.topiaId," + + " ot." + referenceLocale.getColumnName() + + " FROM observe_seine.floatingobject fo, observe_seine.objecttype ot" + + " WHERE " + + " fo.activity = ?" + + " AND fo.objecttype = ot.topiaid" + + " ORDER BY ot." + referenceLocale.getColumnName(); + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, activityId, referenceLocale); + return request.findMultipleResult(context); + + } + + static <E extends FloatingObject> E find(TopiaContextImplementor context, String floatingObjectId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " fo.topiaId," + + " ot." + referenceLocale.getColumnName() + + " FROM observe_seine.floatingobject fo, observe_seine.objecttype ot" + + " WHERE " + + " fo.topiaId = ?" + + " AND fo.objecttype = ot.topiaid" + + " ORDER BY ot." + referenceLocale.getColumnName(); + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, floatingObjectId, referenceLocale); + return request.findSingleResult(context); + + } + + StubSqlQuery(String sql, String id, ReferenceLocale referenceLocale) { + this.sql = sql; + this.id = id; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, id); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E floatingObject = (E) new FloatingObjectImpl(); + floatingObject.setTopiaId(set.getString(1)); + + String objectTypeLabel = set.getString(2); + ObjectType objectType = new ObjectTypeImpl(); + referenceLocale.setLabel(objectTypeLabel, objectType); + floatingObject.setObjectType(objectType); + + return floatingObject; + + } + + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/seine/RouteDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/seine/RouteDAOImpl.java new file mode 100644 index 0000000..acbcf9d --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/seine/RouteDAOImpl.java @@ -0,0 +1,93 @@ +package fr.ird.observe.entities.seine; + +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.framework.TopiaSQLQuery; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +public class RouteDAOImpl<E extends Route> extends RouteDAOAbstract<E> { + + public List<E> findAllStubByTripId(String tripSeineId) throws TopiaException { + + List<E> result = StubSqlQuery.findAll(context, tripSeineId); + return result; + + } + + public E findStubByTopiaId(String routeId) throws TopiaException { + + E result = StubSqlQuery.find(context, routeId); + return result; + + } + + + private static class StubSqlQuery<E extends Route> extends TopiaSQLQuery<E> { + + private final String sql; + + private final String id; + + static <E extends Route> List<E> findAll(TopiaContextImplementor context, String tripSeineId) throws TopiaException { + + String sql = "SELECT" + + " r.topiaId," + + " r.date," + + " r.open" + + " FROM observe_seine.route r" + + " WHERE " + + " r.trip = ?" + + " ORDER BY r.date"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, tripSeineId); + return request.findMultipleResult(context); + + } + + static <E extends Route> E find(TopiaContextImplementor context, String routeId) throws TopiaException { + + String sql = "SELECT" + + " r.topiaId," + + " r.date," + + " r.open" + + " FROM observe_seine.route r" + + " WHERE " + + " r.topiaId = ?" + + " ORDER BY r.date"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, routeId); + return request.findSingleResult(context); + + } + + StubSqlQuery(String sql, String id) { + this.id = id; + this.sql = sql; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, id); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E trip = (E) new RouteImpl(); + trip.setTopiaId(set.getString(1)); + trip.setDate(set.getDate(2)); + trip.setOpen(set.getBoolean(3)); + + return trip; + + } + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java index 6d83733..08a63a9 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java @@ -21,10 +21,19 @@ */ package fr.ird.observe.entities.seine; +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.Person; +import fr.ird.observe.entities.referentiel.PersonImpl; +import fr.ird.observe.entities.referentiel.Vessel; +import fr.ird.observe.entities.referentiel.VesselImpl; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.framework.TopiaSQLQuery; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.List; /** @@ -35,17 +44,9 @@ import java.util.List; */ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract<E> { - public List<E> findAllByProgramId(String programId) throws TopiaException { - TopiaQuery query = createQuery(); - query.addOrder(TripSeine.PROPERTY_END_DATE); - query.addEquals(TripSeine.PROPERTY_PROGRAM + "." + TopiaEntity.TOPIA_ID, programId); - List<E> result = findAllByQuery(query); - return result; - } - public int findPositionByProgramId(String programId, String tripId) throws TopiaException { int result = 0; - List<E> list = findAllByProgramId(programId); + List<E> list = findAllStubByProgramId(programId, ReferenceLocale.FR); for (E e : list) { if (tripId.equals(e.getTopiaId())) { return result; @@ -56,4 +57,112 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< // not found return -1; } + + public List<E> findAllStubByProgramId(String programId, ReferenceLocale referenceLocale) throws TopiaException { + + List<E> result = StubSqlQuery.findAll(context, programId, referenceLocale); + return result; + + } + + public E findStubByTopiaId(String tripId, ReferenceLocale referenceLocale) throws TopiaException { + + E result = StubSqlQuery.find(context, tripId, referenceLocale); + return result; + + } + + private static class StubSqlQuery<E extends TripSeine> extends TopiaSQLQuery<E> { + + private final String sql; + + private final String id; + + private final ReferenceLocale referenceLocale; + + static <E extends TripSeine> List<E> findAll(TopiaContextImplementor context, String programId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " t.topiaId," + + " t.startDate," + + " t.endDate," + + " t.open," + + " p.lastName," + + " p.firstName," + + " v." + referenceLocale.getColumnName() + + " FROM observe_seine.trip t, observe_common.person p, observe_common.vessel v" + + " WHERE " + + " t.program = ?" + + " AND t.observer = p.topiaId" + + " AND t.vessel = v.topiaId" + + " ORDER BY t.endDate"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, programId, referenceLocale); + return request.findMultipleResult(context); + + } + + static <E extends TripSeine> E find(TopiaContextImplementor context, String tripId, ReferenceLocale referenceLocale) throws TopiaException { + + String sql = "SELECT" + + " t.topiaId," + + " t.startDate," + + " t.endDate," + + " t.open," + + " p.lastName," + + " p.firstName," + + " v." + referenceLocale.getColumnName() + + " FROM observe_seine.trip t, observe_common.person p, observe_common.vessel v" + + " WHERE " + + " t.topiaId = ?" + + " AND t.observer = p.topiaId" + + " AND t.vessel = v.topiaId" + + " ORDER BY t.endDate"; + + StubSqlQuery<E> request = new StubSqlQuery<E>(sql, tripId, referenceLocale); + return request.findSingleResult(context); + + } + + StubSqlQuery(String sql, String id, ReferenceLocale referenceLocale) { + this.sql = sql; + this.id = id; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, id); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E trip = (E) new TripSeineImpl(); + + trip.setTopiaId(set.getString(1)); + trip.setStartDate(set.getDate(2)); + trip.setEndDate(set.getDate(3)); + trip.setOpen(set.getBoolean(4)); + + String observerFirstName = set.getString(5); + String observerLastName = set.getString(6); + Person observer = new PersonImpl(); + observer.setFirstName(observerFirstName); + observer.setLastName(observerLastName); + trip.setObserver(observer); + + Vessel vessel = new VesselImpl(); + String label = set.getString(7); + referenceLocale.setLabel(label, vessel); + trip.setVessel(vessel); + + return trip; + + } + + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit cbfc737df02e9b50c0969e2e7f92172c586e6728 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:33:25 2015 +0200 refs #6914 ajout d'un decorateur pour TripLongline et suppression de celui Trip --- .../main/java/fr/ird/observe/DecoratorService.java | 6 +++--- ...ripDecorator.java => TripLonglineDecorator.java} | 21 ++++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/DecoratorService.java b/observe-business/src/main/java/fr/ird/observe/DecoratorService.java index 92c16e7..3d67720 100644 --- a/observe-business/src/main/java/fr/ird/observe/DecoratorService.java +++ b/observe-business/src/main/java/fr/ird/observe/DecoratorService.java @@ -27,7 +27,7 @@ import fr.ird.observe.decorator.NonTargetLengthDecorator; import fr.ird.observe.decorator.ObjectObservedSpeciesDecorator; import fr.ird.observe.decorator.ReferenceDecorator; import fr.ird.observe.decorator.SpeciesDecorator; -import fr.ird.observe.decorator.TripDecorator; +import fr.ird.observe.decorator.TripLonglineDecorator; import fr.ird.observe.decorator.TripSeineDecorator; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.longline.ActivityLongline; @@ -512,8 +512,8 @@ public class DecoratorService extends DecoratorProvider { // TripSeine decorator registerDecorator(new TripSeineDecorator(libelle)); - // Trip decorator (register it after the Seine one otherwise the TripSeine one won't be accepted) - registerDecorator(new TripDecorator(libelle)); + // TripLongline decorator + registerDecorator(new TripLonglineDecorator(libelle)); String oldCode = l(locale, "observe.common.oldCode3L"); // Species decorator diff --git a/observe-business/src/main/java/fr/ird/observe/decorator/TripDecorator.java b/observe-business/src/main/java/fr/ird/observe/decorator/TripLonglineDecorator.java similarity index 67% rename from observe-business/src/main/java/fr/ird/observe/decorator/TripDecorator.java rename to observe-business/src/main/java/fr/ird/observe/decorator/TripLonglineDecorator.java index e202db7..9a5e7ea 100644 --- a/observe-business/src/main/java/fr/ird/observe/decorator/TripDecorator.java +++ b/observe-business/src/main/java/fr/ird/observe/decorator/TripLonglineDecorator.java @@ -1,14 +1,12 @@ -package fr.ird.observe.decorator; - /* * #%L * ObServe :: Business * %% - * Copyright (C) 2008 - 2014 IRD, Codelutin, Tony Chemit + * Copyright (C) 2008 - 2011 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 + * 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, @@ -16,26 +14,27 @@ package fr.ird.observe.decorator; * 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 + * 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% */ +package fr.ird.observe.decorator; -import fr.ird.observe.entities.Trip; +import fr.ird.observe.entities.longline.TripLongline; /** - * Created on 8/28/14. + * Decorator of {@link TripLongline}. * * @author Tony Chemit - chemit@codelutin.com - * @since 3.7 + * @since 4.0 */ -public class TripDecorator extends ObserveDecorator<Trip> { +public class TripLonglineDecorator extends ObserveDecorator<TripLongline> { private static final long serialVersionUID = 1L; - public TripDecorator(String libelle) throws IllegalArgumentException, NullPointerException { - super(Trip.class, + public TripLonglineDecorator(String libelle) throws IllegalArgumentException, NullPointerException { + super(TripLongline.class, "${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel/" + libelle + "}$s##${observerLabel}$s" ); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 93826a74b4e97a3d7ef137ee11bf3731582829d0 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:34:25 2015 +0200 refs #6914 Ajout dans le modèle de sélection de l'arbre d'un cache d'entités utilisées pour le construire --- .../ird/observe/db/model/DataSelectionModel.java | 30 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java b/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java index bfe0353..ee4a093 100644 --- a/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java +++ b/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java @@ -34,6 +34,7 @@ import fr.ird.observe.entities.seine.TripSeine; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.util.TopiaEntityHelper; import java.beans.PropertyChangeListener; @@ -47,6 +48,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; /** * Un modèle pour représenter la sélection de données. @@ -64,16 +66,16 @@ public class DataSelectionModel implements Serializable { Map<String, List<String>> datas = new HashMap<String, List<String>>(); - List<Program> programs = service.getList(source, Program.class); + List<Program> programs = service.getAllProgramStub(source); for (Program program : programs) { if (Programs.isProgramSeine(program)) { - List<TripSeine> trips = service.getTripSeineByProgram(source, program.getTopiaId(), false); + List<TripSeine> trips = service.getTripSeineStubByProgram(source, program.getTopiaId()); populate(model, program, trips, datas); } if (Programs.isProgramLongline(program)) { - List<TripLongline> trips = service.getTripLonglineByProgram(source, program.getTopiaId(), false); + List<TripLongline> trips = service.getTripLonglineStubByProgram(source, program.getTopiaId()); populate(model, program, trips, datas); } @@ -87,6 +89,8 @@ public class DataSelectionModel implements Serializable { List<T> trips, Map<String, List<String>> datas) { + model.cacheEntity(program); + if (!trips.isEmpty()) { List<String> tripIds = new ArrayList<String>(); @@ -94,6 +98,7 @@ public class DataSelectionModel implements Serializable { // ajout de toutes les marées ouvertes ou non for (T trip : trips) { + model.cacheEntity(trip); tripIds.add(trip.getTopiaId()); } @@ -102,6 +107,7 @@ public class DataSelectionModel implements Serializable { // ajout de toutes les marées non ouvertes for (T trip : trips) { if (!trip.isOpen()) { + model.cacheEntity(trip); tripIds.add(trip.getTopiaId()); } } @@ -150,6 +156,15 @@ public class DataSelectionModel implements Serializable { /** la liste des programs utilisables (qui ont des marees) */ protected transient Map<String, List<String>> datas; + /** + * Le cache des entités chargées pour construire le modèle de sélection. + * + * Ces entités pourront ensuite être injectées dans les noeuds sans avoir à les recharger. + * + * @since 4.0 + */ + protected final Map<String, ? super TopiaEntity> entityCache; + /** la liste des marees selectionnee */ protected transient Set<String> selectedData; @@ -178,6 +193,7 @@ public class DataSelectionModel implements Serializable { referentiel = new HashSet<Class<?>>(list); selectedReferentiel = new HashSet<Class<?>>(); nbReferentiels = referentiel.size(); + entityCache = new TreeMap<String, TopiaEntity>(); } public boolean isUseReferentiel() { @@ -206,6 +222,14 @@ public class DataSelectionModel implements Serializable { return true; } + protected void cacheEntity(TopiaEntity entity) { + entityCache.put(entity.getTopiaId(), entity); + } + + public TopiaEntity getEntityCache(String id) { + return (TopiaEntity) entityCache.get(id); + } + public boolean isReferentielEmpty() { return selectedReferentiel.isEmpty(); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 4289e1ee14ae368b65ef271a08e8bff2ce91d3db Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:35:51 2015 +0200 refs #6914 Ajout d'un cache d'entité chargée dans les noeuds de l'arbre de navigation + ne pas accéder à la datasource depuis le renderer --- .../ird/observe/ui/content/ContentUIHandler.java | 5 +- .../impl/longline/SetLonglineUIHandler.java | 3 +- .../impl/seine/FloatingObjectUIHandler.java | 3 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 3 +- .../ui/content/open/ContentOpenableUIHandler.java | 28 ++-- .../ui/content/open/impl/seine/RouteUIHandler.java | 3 +- .../ui/tree/AbstractObserveTreeCellRenderer.java | 41 +++--- .../ird/observe/ui/tree/ActivityLonglineNode.java | 28 ++++ .../fr/ird/observe/ui/tree/ActivitySeineNode.java | 28 ++++ .../fr/ird/observe/ui/tree/EntityNodeSupport.java | 146 +++++++++++++++++++++ .../observe/ui/tree/FloatingObjectSeineNode.java | 28 ++++ .../ird/observe/ui/tree/ObserveDataProvider.java | 11 ++ .../java/fr/ird/observe/ui/tree/ObserveNode.java | 66 +--------- .../fr/ird/observe/ui/tree/ObserveTreeHelper.java | 75 ++++++++--- .../ird/observe/ui/tree/ProgramLonglineNode.java | 29 ++++ .../fr/ird/observe/ui/tree/ProgramSeineNode.java | 28 ++++ .../fr/ird/observe/ui/tree/RouteSeineNode.java | 27 ++++ .../fr/ird/observe/ui/tree/SetLonglineNode.java | 28 ++++ .../java/fr/ird/observe/ui/tree/SetSeineNode.java | 28 ++++ .../fr/ird/observe/ui/tree/TripLonglineNode.java | 27 ++++ .../java/fr/ird/observe/ui/tree/TripSeineNode.java | 27 ++++ .../actions/ChangeTripProgramActionListener.java | 6 +- .../loadors/ActivityLonglineNodeChildLoador.java | 22 ++-- .../loadors/ActivityLonglinesNodeChildLoador.java | 26 ++-- .../tree/loadors/ActivitySeineNodeChildLoador.java | 49 +++---- .../loadors/ActivitySeinesNodeChildLoador.java | 27 ++-- .../loadors/FloatingObjectNodeChildLoador.java | 4 +- .../loadors/ProgramLonglineNodeChildLoador.java | 12 +- .../tree/loadors/ProgramSeineNodeChildLoador.java | 14 +- .../ui/tree/loadors/RootNodeChildLoador.java | 25 ++-- .../ui/tree/loadors/RoutesNodeChildLoador.java | 24 ++-- .../tree/loadors/SetLonglineNodeChildLoador.java | 4 +- .../ui/tree/loadors/SetSeineNodeChildLoador.java | 1 + 33 files changed, 632 insertions(+), 244 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index 6f5f3e3..7a5c374 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -488,11 +488,12 @@ public abstract class ContentUIHandler<E extends TopiaEntity> { // on ne peut redemarrer une edition que si la donnee // est exactement une entites (pas possible sur une liste) ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode node = treeHelper.getSelectedNode(); +// ObserveNode node = treeHelper.getSelectedNode(); removeAllMessages(ui); - treeHelper.refreshNode(node, true); +// treeHelper.refreshNode(node, true); + treeHelper.reloadSelectedNode(false, true); model.setMode(ContentMode.UPDATE); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java index 7d828b5..1baa2bb 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java @@ -404,7 +404,8 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { } else { // select ancestor node - treeHelper.refreshNode(node, false); +// treeHelper.refreshNode(node, false); + treeHelper.reloadSelectedNode(false, false); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java index b35dc16..6787aa7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java @@ -219,7 +219,8 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { } else { // select ancestor node - treeHelper.refreshNode(node, false); +// treeHelper.refreshNode(node, false); + treeHelper.reloadSelectedNode(false, false); } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java index ffcc579..5a71b4f 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java @@ -355,7 +355,8 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { treeHelper.selectNode(node); } else { // select ancestor node - treeHelper.refreshNode(node, false); +// treeHelper.refreshNode(node, false); + treeHelper.reloadSelectedNode(false, false); } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java index d141b06..3755f64 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java @@ -28,7 +28,6 @@ import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.OpenableEntity; import fr.ird.observe.entities.Trip; -import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import fr.ird.observe.ui.tree.ObserveNode; @@ -108,8 +107,9 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE // on repaint le parent (le program devient alors ouvert) ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode node = treeHelper.getSelectedNode(); - treeHelper.refreshNode(node.getParent(), true); + treeHelper.reloadSelectedNode(true, true); +// ObserveNode node = treeHelper.getSelectedNode(); +// treeHelper.refreshNode(node.getParent(), true); // on chage l'état 'canReopen' du model ui.getModel().setCanReopen(false); @@ -162,12 +162,13 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE getEntityLabel(bean.getClass()), t(closeMessage)); ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode selectedNode = treeHelper.getSelectedNode(); - if (bean instanceof TripSeine) { - // le program peut change d'etat open - selectedNode = selectedNode.getParent(); - } - treeHelper.refreshNode(selectedNode, true); +// ObserveNode selectedNode = treeHelper.getSelectedNode(); +// if (bean instanceof Trip) { +// // le program peut change d'etat open +// selectedNode = selectedNode.getParent(); +// } +// treeHelper.refreshNode(selectedNode, true); + treeHelper.reloadSelectedNode(bean instanceof Trip, true); updateActions(); } @@ -227,7 +228,9 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE } // on repaint le noeud et ses enfants - treeHelper.refreshNode(node, true); +// treeHelper.refreshNode(node, true); + treeHelper.reloadSelectedNode(false, true); + // treeHelper.refreshNode(node, false); } } @@ -241,8 +244,7 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE // fermeture de la donnée try { - boolean b; - b = doCloseData(); + boolean b = doCloseData(); if (!b) { // la fermeture a ete abandonnee @@ -264,6 +266,8 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + treeHelper.reloadSelectedNode(false, true); + ObserveNode parentNode = treeHelper.getSelectedNode().getParent(); if (log.isDebugEnabled()) { log.debug("PARENT NODE = " + parentNode); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java index 77949c4..a2d8cd4 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java @@ -521,7 +521,8 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { if (log.isInfoEnabled()) { log.info("Refresh trip node : " + tripNode); } - treeHelper.refreshNode(tripNode, false); + treeHelper.reloadNode(tripNode, false); +// treeHelper.refreshNode(tripNode, false); } protected void updateDateFin(TripSeine parentBean) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java index 0b151ef..d7e16d7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.tree; +import com.google.common.base.Preconditions; import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveContext; import fr.ird.observe.db.DataContext; @@ -43,6 +44,7 @@ import jaxx.runtime.swing.nav.tree.AbstractNavTreeCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; +import org.nuiton.topia.persistence.TopiaEntity; import javax.swing.Icon; import javax.swing.UIManager; @@ -243,14 +245,8 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel protected String computeNodeText(ObserveNode node) { - if (log.isDebugEnabled()) { - log.debug("for node : " + node.getId()); - } - - String text; - if (node.isStringNode()) { - text = t(node.getId()); + String text = t(node.getId()); return text; } @@ -258,7 +254,7 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel if (node.isReferentielNode()) { - text = t(DecoratorService.getEntityLabel(ObserveTreeHelper.TREE_NODE_PREFIX, beanType)); + String text = t(DecoratorService.getEntityLabel(ObserveTreeHelper.TREE_NODE_PREFIX, beanType)); return text; } @@ -270,40 +266,33 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel // noeud d'un objet en cours de création - text = t(node.getContext()); + String text = t(node.getContext()); return text; } // noeud de donnée connue en base - Decorator<?> decorator = - getDecoratorService().getDecoratorByType(beanType); - if (getDataProvider() == null) { // data provider non utilisable - text = "No data provider opened to render " + id; + String text = "No data provider opened to render " + id; return text; } - DataSource source = getDataProvider().getDataSource(); + if (node instanceof EntityNodeSupport) { + EntityNodeSupport entityNodeSupport = (EntityNodeSupport) node; - if (source == null || !source.isOpen()) { + TopiaEntity entity = entityNodeSupport.getEntity(); + + Preconditions.checkNotNull(entity, "L'entité doit être chargée dans le noeud: " + node); + + Decorator<?> decorator = getDecoratorService().getDecoratorByType(beanType); + String text = decorator.toString(entity); - // source non utilisable - text = "No source opened to render " + id; return text; } - try { - text = source.decorateEntity(null, id, decorator); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not decorate entity " + id, e); - } - text = node.getId(); - } + throw new IllegalStateException("Don't know how to render node: " + node); - return text; } public Color getNavigationTextColor(ObserveNode node) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java new file mode 100644 index 0000000..29f8e47 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.longline.ActivityLongline; +import fr.ird.observe.ui.tree.loadors.ActivityLonglineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class ActivityLonglineNode extends EntityNodeSupport<ActivityLongline> { + + private static final long serialVersionUID = 1L; + + public ActivityLonglineNode(ActivityLongline entity) { + super(ActivityLongline.class, entity, ObserveTreeHelper.getChildLoador(ActivityLonglineNodeChildLoador.class)); + } + + @Override + protected ActivityLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { + return dataService.getActivityLonglineStub(source, id); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java new file mode 100644 index 0000000..e95efe2 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.ui.tree.loadors.ActivitySeineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class ActivitySeineNode extends EntityNodeSupport<ActivitySeine> { + + private static final long serialVersionUID = 1L; + + public ActivitySeineNode(ActivitySeine entity) { + super(ActivitySeine.class, entity, ObserveTreeHelper.getChildLoador(ActivitySeineNodeChildLoador.class)); + } + + @Override + protected ActivitySeine getEntity(DataService dataService, DataSource source) throws DataSourceException { + return dataService.getActivitySeineStub(source, id); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java new file mode 100644 index 0000000..c3e9453 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java @@ -0,0 +1,146 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.ObserveContext; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.OpenableEntity; +import fr.ird.observe.ui.tree.loadors.AbstractNodeChildLoador; +import jaxx.runtime.swing.nav.NavBridge; +import jaxx.runtime.swing.nav.NavDataProvider; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.TopiaEntity; + +import javax.swing.tree.DefaultTreeModel; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public abstract class EntityNodeSupport<E extends TopiaEntity> extends ObserveNode { + + /** Logger. */ + private static final Log log = LogFactory.getLog(EntityNodeSupport.class); + + private static final long serialVersionUID = 1L; + + /** + * Pour cacher l'entité attachée au noeud. + * Elle pourra être directement injectée pour éviter de la recharger (lors de la création d'un modèle initiale). + * + * @since 4.0 + */ + protected transient E entity; + + protected transient DataService dataService; + + private boolean reloadEntity; + + protected abstract E getEntity(DataService dataService, DataSource source) throws DataSourceException; + + protected EntityNodeSupport(Class<E> internalClass, E entity) { + this(internalClass, entity, null); + } + + protected EntityNodeSupport(Class<E> type, E entity, AbstractNodeChildLoador<?> childLoador) { + this(type, entity, null, childLoador); + } + + protected EntityNodeSupport(Class<E> type, E entity, String context, AbstractNodeChildLoador<?> childLoador) { + super(type, entity.getTopiaId(), context, childLoador, false); + setEntity(entity); + } + + @Override + public void populateNode(NavBridge<DefaultTreeModel, ObserveNode> bridge, + NavDataProvider provider, + boolean populateChilds) { + + + try { + super.populateNode(bridge, provider, populateChilds); + } finally { + reloadEntity = false; + } + + if (provider != null && id != null) { + + if (entity == null) { + + loadEntity((ObserveDataProvider) provider); + + } + + if (OpenableEntity.class.isAssignableFrom(entity.getClass())) { + open = ((OpenableEntity) entity).isOpen(); + + if (log.isDebugEnabled()) { + log.debug("Set open: " + open + " for entity: " + id); + } + + } + + } + + } + + @Override + public void setDirty(boolean dirty) { + super.setDirty(dirty); + + if (dirty && reloadEntity) { + entity = null; + } + + } + + public E getEntity() { + return entity; + } + + public void setEntity(E entity) { + this.entity = entity; + } + + + protected void loadEntity(ObserveDataProvider oProvider) { + + if (oProvider.getSelectionModel() != null) { + + if (log.isDebugEnabled()) { + log.debug("try to get entity from selectionModel " + internalClass + " : " + id); + } + entity = (E) oProvider.getSelectionModel().getEntityCache(id); + } + + if (entity == null) { + + if (log.isInfoEnabled()) { + log.info("will load entity " + internalClass.getSimpleName() + " : " + id); + } + + try { + entity = getEntity(getDataService(), oProvider.getDataSource()); + } catch (DataSourceException e) { + throw new RuntimeException(e); + } + + } + + } + + private DataService getDataService() { + if (dataService == null) { + dataService = ObserveContext.get().getDataService(); + } + return dataService; + } + + public void setReloadEntity(boolean reloadEntity) { + this.reloadEntity = reloadEntity; + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java new file mode 100644 index 0000000..9279992 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.FloatingObject; +import fr.ird.observe.ui.tree.loadors.FloatingObjectNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class FloatingObjectSeineNode extends EntityNodeSupport<FloatingObject> { + + private static final long serialVersionUID = 1L; + + public FloatingObjectSeineNode(FloatingObject entity) { + super(FloatingObject.class, entity, ObserveTreeHelper.getChildLoador(FloatingObjectNodeChildLoador.class)); + } + + @Override + protected FloatingObject getEntity(DataService dataService, DataSource source) throws DataSourceException { + return dataService.getFloatinObjectStub(source, id); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java index 1527f37..0df4adf 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java @@ -46,6 +46,8 @@ public class ObserveDataProvider implements NavDataProvider { protected DataSelectionModel selectionModel; + private boolean creating; + public ObserveDataProvider(DataSource dataSource) { this.dataSource = dataSource; } @@ -80,4 +82,13 @@ public class ObserveDataProvider implements NavDataProvider { } return dataService; } + + public boolean isCreating() { + return creating; + } + + public void setCreating(boolean creating) { + this.creating = creating; + } + } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java index 5f08908..538a095 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java @@ -21,21 +21,12 @@ */ package fr.ird.observe.ui.tree; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.entities.OpenableEntity; import fr.ird.observe.entities.Trip; -import jaxx.runtime.swing.nav.NavBridge; -import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeNode; import jaxx.runtime.swing.nav.tree.NavTreeNodeChildLoador; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; - -import javax.swing.tree.DefaultTreeModel; /** * Le modèle d'une noeud. @@ -62,8 +53,6 @@ public class ObserveNode extends NavTreeNode<ObserveNode> { */ protected Boolean open; - protected transient DataService dataService; - public ObserveNode(String id, boolean referentiel) { this(String.class, id, null, null, referentiel); } @@ -94,7 +83,6 @@ public class ObserveNode extends NavTreeNode<ObserveNode> { } } - public boolean isDataNode() { return !referentiel; } @@ -108,59 +96,7 @@ public class ObserveNode extends NavTreeNode<ObserveNode> { } public boolean isTripNode() { - return isDataNode() && Trip.class.isAssignableFrom(internalClass); - } - - @Override - public void populateNode(NavBridge<DefaultTreeModel, ObserveNode> bridge, - NavDataProvider provider, - boolean populateChilds) { - - super.populateNode(bridge, provider, populateChilds); - - ObserveDataProvider oProvider = (ObserveDataProvider) provider; - - if (isStringNode()) { - return; - } - - if (isReferentielNode()) { - return; - } - - if (id == null) { - - // on est sur un noeud de création - return; - } - - try { - - if (TopiaEntity.class.isAssignableFrom(internalClass)) { - - if (log.isDebugEnabled()) { - log.debug("will load entity " + internalClass + " : " + id); - } - DataSource source = oProvider.getDataSource(); - TopiaEntity e = getDataService().loadEntity(source, id, true); - - if (OpenableEntity.class.isAssignableFrom(e.getClass())) { - open = ((OpenableEntity) e).isOpen(); - } - return; - } - } catch (DataSourceException e) { - throw new RuntimeException(e); - } - - throw new IllegalStateException("Can not populate node [" + internalClass + ":" + id + "]"); - } - - protected DataService getDataService() { - if (dataService == null) { - dataService = ObserveContext.get().getDataService(); - } - return dataService; + return isDataNode() && Trip.class.isAssignableFrom(internalClass); } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java index 0c7b126..f334560 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java @@ -162,17 +162,23 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { setDataSource(source); - ObserveNode node = new ObserveNode( - String.class, - "Root node", - null, - new RootNodeChildLoador(true, true), - false - ); - DefaultTreeModel model = createModel(node); - node.populateChilds(getBridge(), getDataProvider()); -// loadAllNodes(node, getDataProvider()); - return model; + ObserveDataProvider provider = getDataProvider(); + provider.setCreating(true); + + try { + + RootNodeChildLoador loador = new RootNodeChildLoador(true, true); + ObserveNode node = new ObserveNode(String.class, "Root node", null, loador, false); + + DefaultTreeModel model = createModel(node); + node.populateChilds(getBridge(), provider); + return model; + + } finally { + + provider.setCreating(false); + + } } public DefaultTreeModel createModel(JAXXContext context, @@ -186,16 +192,26 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { log.debug("create tree model " + this); } - ObserveDataProvider dataProvider = getDataProvider(); + ObserveDataProvider provider = getDataProvider(); + provider.setSelectionModel(dataModel); + provider.setCreating(true); - RootNodeChildLoador loador = getChildLoador(RootNodeChildLoador.class); - loador.setAddData(dataModel.isUseData()); - loador.setAddReferentiel(dataModel.isUseReferentiel()); - dataProvider.setSelectionModel(dataModel); - ObserveNode node = new ObserveNode(String.class, "Root node", loador, false); - DefaultTreeModel model = createModel(node); - loadAllNodes(node, getDataProvider()); - return model; + try { + + RootNodeChildLoador loador = getChildLoador(RootNodeChildLoador.class); + loador.setAddData(dataModel.isUseData()); + loador.setAddReferentiel(dataModel.isUseReferentiel()); + ObserveNode node = new ObserveNode(String.class, "Root node", loador, false); + + DefaultTreeModel model = createModel(node); + loadAllNodes(node, provider); + return model; + + } finally { + + provider.setCreating(false); + + } } @@ -500,9 +516,26 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { ObserveNode rootNode = getRootNode(); ObserveNode result = rootNode.getChild(bean.getTopiaId(), getBridge(), dataProvider); Preconditions.checkNotNull(result, "Could not find program node with id: " + bean.getTopiaId()); - refreshNode(result, false); + reloadNode(result, false); +// refreshNode(result, false); } + public void reloadSelectedNode(boolean refreshFromParent, boolean refreshChilds) { + ObserveNode node = getSelectedNode(); + ((EntityNodeSupport) node).setReloadEntity(true); + + if (refreshFromParent) { + node = node.getParent(); + } + refreshNode(node, refreshChilds); + } + + public void reloadNode(ObserveNode node, boolean refreshChilds) { + ((EntityNodeSupport) node).setReloadEntity(true); + refreshNode(node, refreshChilds); + } + + void setDataSource(DataSource source) { NavDataProvider provider = null; if (source != null) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java new file mode 100644 index 0000000..b403e3d --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java @@ -0,0 +1,29 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.referentiel.Program; +import fr.ird.observe.ui.tree.loadors.ProgramLonglineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class ProgramLonglineNode extends EntityNodeSupport<Program> { + + private static final long serialVersionUID = 1L; + + public ProgramLonglineNode(Program entity) { + super(Program.class, entity, entity.getGearType().name(), ObserveTreeHelper.getChildLoador(ProgramLonglineNodeChildLoador.class)); + setEntity(entity); + } + + @Override + protected Program getEntity(DataService dataService, DataSource source) throws DataSourceException { + return dataService.getProgramStub(source, id); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java new file mode 100644 index 0000000..845f017 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.referentiel.Program; +import fr.ird.observe.ui.tree.loadors.ProgramSeineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class ProgramSeineNode extends EntityNodeSupport<Program> { + + private static final long serialVersionUID = 1L; + + public ProgramSeineNode(Program entity) { + super(Program.class, entity, entity.getGearType().name(), ObserveTreeHelper.getChildLoador(ProgramSeineNodeChildLoador.class)); + } + + @Override + protected Program getEntity(DataService dataService, DataSource source) throws DataSourceException { + return dataService.getProgramStub(source, id); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java new file mode 100644 index 0000000..f528307 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java @@ -0,0 +1,27 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.Route; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class RouteSeineNode extends EntityNodeSupport<Route> { + + private static final long serialVersionUID = 1L; + + public RouteSeineNode(Route entity) { + super(Route.class, entity); + } + + @Override + protected Route getEntity(DataService dataService, DataSource source) throws DataSourceException { + return dataService.getRouteStub(source, id); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java new file mode 100644 index 0000000..af917d4 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.ui.tree.loadors.SetLonglineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class SetLonglineNode extends EntityNodeSupport<SetLongline> { + + private static final long serialVersionUID = 1L; + + public SetLonglineNode(SetLongline entity) { + super(SetLongline.class, entity, ObserveTreeHelper.getChildLoador(SetLonglineNodeChildLoador.class)); + } + + @Override + protected SetLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (SetLongline) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java new file mode 100644 index 0000000..2b97b33 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.ui.tree.loadors.SetSeineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class SetSeineNode extends EntityNodeSupport<SetSeine> { + + private static final long serialVersionUID = 1L; + + public SetSeineNode(SetSeine entity) { + super(SetSeine.class, entity, ObserveTreeHelper.getChildLoador(SetSeineNodeChildLoador.class)); + } + + @Override + protected SetSeine getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (SetSeine) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java new file mode 100644 index 0000000..c6ca912 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java @@ -0,0 +1,27 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.longline.TripLongline; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class TripLonglineNode extends EntityNodeSupport<TripLongline> { + + private static final long serialVersionUID = 1L; + + public TripLonglineNode(TripLongline entity) { + super(TripLongline.class, entity); + } + + @Override + protected TripLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { + return dataService.getTripLonglineStub(source, id); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java new file mode 100644 index 0000000..ce415f9 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java @@ -0,0 +1,27 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.TripSeine; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class TripSeineNode extends EntityNodeSupport<TripSeine> { + + private static final long serialVersionUID = 1L; + + public TripSeineNode(TripSeine entity) { + super(TripSeine.class, entity); + } + + @Override + protected TripSeine getEntity(DataService dataService, DataSource source) throws DataSourceException { + return dataService.getTripSeineStub(source, id); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java index 2a786d6..766e3d3 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java @@ -102,8 +102,10 @@ public class ChangeTripProgramActionListener implements ActionListener { treeHelper.insertNode(newProgramNode, tripNode, position); newTripNode = tripNode; } - treeHelper.refreshNode(oldProgramNode, true); - treeHelper.refreshNode(newProgramNode, true); + treeHelper.reloadNode(oldProgramNode, true); + treeHelper.reloadNode(newProgramNode, true); +// treeHelper.refreshNode(oldProgramNode, true); +// treeHelper.refreshNode(newProgramNode, true); treeHelper.selectNode(newTripNode); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java index 9029597..c29fd4f 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java @@ -22,13 +22,13 @@ package fr.ird.observe.ui.tree.loadors; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.ui.tree.ActivityLonglineNode; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.SetLonglineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; @@ -68,13 +68,8 @@ public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Str } { - DataSource source = getDataSource(dataProvider); - DataService service = getDataService(); - ActivityLongline activity = (ActivityLongline) service.loadEntity( - source, - containerNode.getId(), - false); + ActivityLongline activity = ((ActivityLonglineNode) parentNode).getEntity(); SetLongline setLongline = activity.getSetLongline(); if (setLongline != null) { @@ -82,6 +77,7 @@ public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Str // si set present, ajout d'un noeud ObserveNode child = createSetNode(setLongline); parentNode.add(child); + } } @@ -99,6 +95,7 @@ public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Str result.add(ActivityLongline.PROPERTY_ENCOUNTER); result.add(ActivityLongline.PROPERTY_SENSOR_USED); return result; + } @Override @@ -113,12 +110,9 @@ public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Str if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode child = new ObserveNode( - SetLongline.class, - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(SetLonglineNodeChildLoador.class), - false - ); + + ObserveNode child = new SetLonglineNode(data); return child; + } } \ No newline at end of file diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java index 006849a..f58994d 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java @@ -22,11 +22,11 @@ package fr.ird.observe.ui.tree.loadors; * #L% */ +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.longline.ActivityLongline; -import fr.ird.observe.entities.longline.ActivityLonglines; -import fr.ird.observe.entities.longline.TripLongline; +import fr.ird.observe.ui.tree.ActivityLonglineNode; +import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; -import fr.ird.observe.ui.tree.ObserveTreeHelper; import jaxx.runtime.swing.nav.NavDataProvider; import java.util.List; @@ -37,21 +37,21 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class ActivityLonglinesNodeChildLoador extends AbstractAssociationNodeChildLoador<ActivityLongline> { +public class ActivityLonglinesNodeChildLoador extends AbstractNodeChildLoador<ActivityLongline> { private static final long serialVersionUID = 1L; public ActivityLonglinesNodeChildLoador() { - super(ActivityLongline.class, TripLongline.PROPERTY_ACTIVITY_LONGLINE); + super(ActivityLongline.class); } @Override public List<ActivityLongline> getData(Class<?> parentClass, - String parentId, - NavDataProvider dataProvider) throws Exception { + String parentId, + NavDataProvider dataProvider) throws Exception { - List<ActivityLongline> data = super.getData(parentClass, parentId, dataProvider); - ActivityLonglines.sort(data); + DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); + List<ActivityLongline> data = getDataService().getActivityLonglineStubByTrip(dataSource, parentId); return data; } @@ -62,12 +62,8 @@ public class ActivityLonglinesNodeChildLoador extends AbstractAssociationNodeChi throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - ActivityLongline.class, - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(ActivityLonglineNodeChildLoador.class), - false - ); + ObserveNode result = new ActivityLonglineNode(data); return result; + } } \ No newline at end of file diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java index 7c17abc..6b69659 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java @@ -21,16 +21,21 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.DataService; import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.FloatingObject; import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.ui.tree.ActivitySeineNode; +import fr.ird.observe.ui.tree.FloatingObjectSeineNode; +import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.SetSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; +import java.util.List; + import static org.nuiton.i18n.I18n.n; /** @@ -39,7 +44,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLoador<FloatingObject> { +public class ActivitySeineNodeChildLoador extends AbstractNodeChildLoador<FloatingObject> { private static final long serialVersionUID = 1L; @@ -48,7 +53,7 @@ public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLo } public ActivitySeineNodeChildLoador() { - super(FloatingObject.class, ActivitySeine.PROPERTY_FLOATING_OBJECT); + super(FloatingObject.class); } @Override @@ -68,13 +73,7 @@ public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLo parentNode.add(child); - DataSource source = getDataSource(dataProvider); - DataService service = getDataService(); - - ActivitySeine activitySeine = (ActivitySeine) service.loadEntity( - source, - containerNode.getId(), - false); + ActivitySeine activitySeine = ((ActivitySeineNode) parentNode).getEntity(); SetSeine set = activitySeine.getSetSeine(); if (set != null) { @@ -92,13 +91,10 @@ public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLo if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode child = new ObserveNode( - SetSeine.class, - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(SetSeineNodeChildLoador.class), - false - ); + + SetSeineNode child = new SetSeineNode(data); return child; + } @Override @@ -106,12 +102,21 @@ public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLo if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - getBeanType(), - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(FloatingObjectNodeChildLoador.class), - false - ); + + FloatingObjectSeineNode result = new FloatingObjectSeineNode(data); return result; + } + + @Override + public List<FloatingObject> getData(Class<?> parentClass, + String parentId, + NavDataProvider dataProvider) throws Exception { + + DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); + List<FloatingObject> data = getDataService().getFloatinObjectStubByActivitySeine(dataSource, parentId); + return data; + + } + } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java index bf40915..e4891d8 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java @@ -21,11 +21,11 @@ */ package fr.ird.observe.ui.tree.loadors; +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.ActivitySeine; -import fr.ird.observe.entities.seine.ActivitySeines; -import fr.ird.observe.entities.seine.Route; +import fr.ird.observe.ui.tree.ActivitySeineNode; +import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; -import fr.ird.observe.ui.tree.ObserveTreeHelper; import jaxx.runtime.swing.nav.NavDataProvider; import java.util.List; @@ -36,22 +36,23 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ActivitySeinesNodeChildLoador extends AbstractAssociationNodeChildLoador<ActivitySeine> { +public class ActivitySeinesNodeChildLoador extends AbstractNodeChildLoador<ActivitySeine> { private static final long serialVersionUID = 1L; public ActivitySeinesNodeChildLoador() { - super(ActivitySeine.class, Route.PROPERTY_ACTIVITY_SEINE); + super(ActivitySeine.class); } @Override public List<ActivitySeine> getData(Class<?> parentClass, - String parentId, - NavDataProvider dataProvider) throws Exception { + String parentId, + NavDataProvider dataProvider) throws Exception { - List<ActivitySeine> data = super.getData(parentClass, parentId, dataProvider); - ActivitySeines.sort(data); + DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); + List<ActivitySeine> data = getDataService().getActivitySeineStubByRoute(dataSource, parentId); return data; + } @Override @@ -60,12 +61,8 @@ public class ActivitySeinesNodeChildLoador extends AbstractAssociationNodeChildL throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - ActivitySeine.class, - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(ActivitySeineNodeChildLoador.class), - false - ); + ActivitySeineNode result = new ActivitySeineNode(data); return result; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/FloatingObjectNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/FloatingObjectNodeChildLoador.java index 754c001..0b23ea8 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/FloatingObjectNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/FloatingObjectNodeChildLoador.java @@ -46,7 +46,7 @@ public class FloatingObjectNodeChildLoador extends AbstractNodeChildLoador<Strin super(String.class); } - static { + static { n("observe.tree.objectOperation"); n("observe.tree.objectSchoolEstimate"); n("observe.tree.objectObservedSpecies"); @@ -62,6 +62,7 @@ public class FloatingObjectNodeChildLoador extends AbstractNodeChildLoador<Strin result.add(FloatingObject.PROPERTY_OBJECT_SCHOOL_ESTIMATE); result.add(FloatingObject.PROPERTY_OBJECT_OBSERVED_SPECIES); return result; + } @Override @@ -69,6 +70,7 @@ public class FloatingObjectNodeChildLoador extends AbstractNodeChildLoador<Strin ObserveNode result = ObserveTreeHelper.createStringNode(data); return result; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java index b76637a..a887b05 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java @@ -28,6 +28,7 @@ import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.TripLonglineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; import org.apache.commons.collections.CollectionUtils; @@ -90,13 +91,13 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Trip List<String> tripIds = selectionModel.getDatas().get(parentId); if (!CollectionUtils.isEmpty(tripIds)) { for (String tripId : tripIds) { - result.add((TripLongline) service.loadEntity(dataSource, tripId, true)); + result.add((TripLongline) selectionModel.getEntityCache(tripId)); } } } else { - result = service.getTripLonglineByProgram(dataSource, parentId, false); + result = service.getTripLonglineStubByProgram(dataSource, parentId); } @@ -111,12 +112,7 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Trip throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - TripLongline.class, - data.getTopiaId(), - null, - false - ); + ObserveNode result = new TripLonglineNode(data); if (addActivities) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java index 4a23ead..5409fdd 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java @@ -27,6 +27,7 @@ import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.TripSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; import org.apache.commons.collections.CollectionUtils; @@ -87,14 +88,16 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSei List<String> tripIds = selectionModel.getDatas().get(parentId); if (!CollectionUtils.isEmpty(tripIds)) { for (String tripId : tripIds) { - result.add((TripSeine) service.loadEntity(dataSource, tripId, true)); + result.add((TripSeine) selectionModel.getEntityCache(tripId)); } } } else { - result = service.getTripSeineByProgram(dataSource, parentId, false); + result = service.getTripSeineStubByProgram(dataSource, parentId); + } return result; + } @Override @@ -104,12 +107,7 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSei throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - getBeanType(), - data.getTopiaId(), - null, - false - ); + ObserveNode result = new TripSeineNode(data); if (addChilds) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java index bcf28d7..7c8ec84 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java @@ -26,9 +26,10 @@ import fr.ird.observe.db.DataSource; import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.entities.constants.GearType; import fr.ird.observe.entities.referentiel.Program; -import fr.ird.observe.entities.referentiel.Programs; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.ProgramLonglineNode; +import fr.ird.observe.ui.tree.ProgramSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; import java.util.ArrayList; @@ -84,18 +85,20 @@ public class RootNodeChildLoador extends AbstractNodeChildLoador<Program> { if (selectionModel != null) { data = new ArrayList<Program>(); for (String programId : selectionModel.getDatas().keySet()) { - data.add((Program) service.loadEntity(dataSource, programId, true)); + data.add((Program) selectionModel.getEntityCache(programId)); } } else { - data = service.loadDecoratedEntities(dataSource, getBeanType()); + data = service.getAllProgramStub(dataSource); } - // on trie les programs pour toujours avoir le même ordre dans l'arbre - Programs.sort(data); } else { + data = Collections.emptyList(); + } + return data; + } @Override @@ -145,20 +148,12 @@ public class RootNodeChildLoador extends AbstractNodeChildLoador<Program> { case seine: - result = new ObserveNode(getBeanType(), - data.getTopiaId(), - gearType.name(), - ObserveTreeHelper.getChildLoador(ProgramSeineNodeChildLoador.class), - false); + result = new ProgramSeineNode(data); break; case longline: - result = new ObserveNode(getBeanType(), - data.getTopiaId(), - gearType.name(), - ObserveTreeHelper.getChildLoador(ProgramLonglineNodeChildLoador.class), - false); + result = new ProgramLonglineNode(data); break; default: diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java index b96e7af..3b1125d 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java @@ -21,11 +21,12 @@ */ package fr.ird.observe.ui.tree.loadors; +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.Route; -import fr.ird.observe.entities.seine.Routes; -import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.RouteSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; import java.util.List; @@ -38,15 +39,16 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class RoutesNodeChildLoador extends AbstractAssociationNodeChildLoador<Route> { +public class RoutesNodeChildLoador extends AbstractNodeChildLoador<Route> { private static final long serialVersionUID = 1L; static { n("observe.tree.activitySeine"); } + public RoutesNodeChildLoador() { - super(Route.class, TripSeine.PROPERTY_ROUTE); + super(Route.class); } @Override @@ -54,9 +56,10 @@ public class RoutesNodeChildLoador extends AbstractAssociationNodeChildLoador<Ro String parentId, NavDataProvider dataProvider) throws Exception { - List<Route> data = super.getData(parentClass, parentId, dataProvider); - Routes.sort(data); + DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); + List<Route> data = getDataService().getRouteStubByTrip(dataSource, parentId); return data; + } @Override @@ -66,16 +69,13 @@ public class RoutesNodeChildLoador extends AbstractAssociationNodeChildLoador<Ro throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - getBeanType(), - data.getTopiaId(), - null, - false - ); + ObserveNode result = new RouteSeineNode(data); // Creation d'un node activites ObserveNode child = ObserveTreeHelper.createStringNode(Route.PROPERTY_ACTIVITY_SEINE, ActivitySeinesNodeChildLoador.class); result.add(child); return result; + } + } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetLonglineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetLonglineNodeChildLoador.java index a671699..698f66e 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetLonglineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetLonglineNodeChildLoador.java @@ -43,7 +43,7 @@ public class SetLonglineNodeChildLoador extends AbstractNodeChildLoador<String> private static final long serialVersionUID = 1L; - static { + static { n("observe.tree.longlineGlobalComposition"); n("observe.tree.longlineDetailComposition"); n("observe.tree.catchLongline"); @@ -66,8 +66,8 @@ public class SetLonglineNodeChildLoador extends AbstractNodeChildLoador<String> result.add(SetLongline.PROPERTY_TDR); return result; - } + } @Override public ObserveNode createNode(String data, NavDataProvider dataProvider) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetSeineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetSeineNodeChildLoador.java index 3fc38e5..2085dc1 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetSeineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/SetSeineNodeChildLoador.java @@ -70,6 +70,7 @@ public class SetSeineNodeChildLoador extends AbstractNodeChildLoador<String> { result.add(SetSeine.PROPERTY_NON_TARGET_CATCH); result.add(SetSeine.PROPERTY_NON_TARGET_SAMPLE); return result; + } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 0fd01fa99bf4cee298038659c695988873016e5f Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:49:23 2015 +0200 refs #6914 utilisation des listes simplfiées aussi dans les écrans de liste --- .../list/impl/longline/ActivityLonglinesUIHandler.java | 16 +++++++++++++--- .../list/impl/longline/TripLonglinesUIHandler.java | 10 ++++------ .../content/list/impl/seine/ActivitySeinesUIHandler.java | 16 +++++++++++++--- .../ui/content/list/impl/seine/RoutesUIHandler.java | 12 ++++++++++-- .../ui/content/list/impl/seine/TripSeinesUIHandler.java | 10 ++++------ 5 files changed, 44 insertions(+), 20 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java index 8e9dcf9..9112209 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java @@ -22,7 +22,10 @@ package fr.ird.observe.ui.content.list.impl.longline; * #L% */ +import fr.ird.observe.DataService; import fr.ird.observe.db.DataContext; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.entities.longline.TripLongline; @@ -106,12 +109,19 @@ public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglin } @Override - protected List<ActivityLongline> getChilds(TripLongline bean) { - List<ActivityLongline> list = bean.getActivityLongline(); + protected List<ActivityLongline> getChilds(TripLongline bean) throws DataSourceException { + + DataSource source = getDataSource(); + DataService dataService = getDataService(); + + List<ActivityLongline> list = dataService.getActivityLonglineStubByTrip(source, bean.getTopiaId()); + if (log.isDebugEnabled()) { - log.debug("Will use " + (list == null ? 0 : list.size()) + " activities."); + log.debug("Will use " + list.size() + " activities."); } + return list; + } } \ No newline at end of file diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java index bf213cb..7cbc914 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -34,7 +34,6 @@ import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import java.util.Collections; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -94,19 +93,18 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<Program, TripLo @Override protected List<TripLongline> getChilds(Program bean) throws DataSourceException { + DataSource source = getDataSource(); DataService dataService = getDataService(); - List<TripLongline> list = - dataService.getTripLonglineByProgram(source, bean.getTopiaId(), true); + List<TripLongline> list = dataService.getTripLonglineStubByProgram(source, bean.getTopiaId()); - if (list == null) { - list = Collections.emptyList(); - } if (log.isDebugEnabled()) { log.debug("Will use " + list.size() + " trips."); } + return list; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java index d769864..2a1aab7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java @@ -21,7 +21,10 @@ */ package fr.ird.observe.ui.content.list.impl.seine; +import fr.ird.observe.DataService; import fr.ird.observe.db.DataContext; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.Route; @@ -104,12 +107,19 @@ public class ActivitySeinesUIHandler extends ContentListUIHandler<Route, Activit } @Override - protected List<ActivitySeine> getChilds(Route bean) { - List<ActivitySeine> list = bean.getActivitySeine(); + protected List<ActivitySeine> getChilds(Route bean) throws DataSourceException { + + DataSource source = getDataSource(); + DataService dataService = getDataService(); + + List<ActivitySeine> list = dataService.getActivitySeineStubByRoute(source, bean.getTopiaId()); + if (log.isDebugEnabled()) { - log.debug("Will use " + (list == null ? 0 : list.size()) + " activities."); + log.debug("Will use " + list.size() + " activities."); } + return list; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java index 92231db..3a33ceb 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java @@ -21,7 +21,9 @@ */ package fr.ird.observe.ui.content.list.impl.seine; +import fr.ird.observe.DataService; import fr.ird.observe.db.DataContext; +import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.seine.Route; @@ -103,11 +105,17 @@ public class RoutesUIHandler extends ContentListUIHandler<TripSeine, Route> { @Override protected List<Route> getChilds(TripSeine bean) throws DataSourceException { - List<Route> list = bean.getRoute(); + + DataSource source = getDataSource(); + DataService dataService = getDataService(); + + List<Route> list = dataService.getRouteStubByTrip(source, bean.getTopiaId()); if (log.isDebugEnabled()) { - log.debug("Will use " + (list == null ? 0 : list.size()) + " routes."); + log.debug("Will use " + list.size() + " routes."); } + return list; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java index 76f4bc5..7eb1ee1 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -33,7 +33,6 @@ import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import java.util.Collections; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -91,18 +90,17 @@ public class TripSeinesUIHandler extends ContentListUIHandler<Program, TripSeine @Override protected List<TripSeine> getChilds(Program bean) throws DataSourceException { + DataSource source = getDataSource(); DataService dataService = getDataService(); - List<TripSeine> list = - dataService.getTripSeineByProgram(source, bean.getTopiaId(), true); + List<TripSeine> list = dataService.getTripSeineStubByProgram(source, bean.getTopiaId()); - if (list == null) { - list = Collections.emptyList(); - } if (log.isDebugEnabled()) { log.debug("Will use " + list.size() + " trips."); } + return list; + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 1be23f39c789e650810040aa1953b11ce24b2d94 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:53:43 2015 +0200 refs #6914 suppression d'un chargeur de noeud par association (trop couteux) --- .../AbstractAssociationNodeChildLoador.java | 68 ---------------------- 1 file changed, 68 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractAssociationNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractAssociationNodeChildLoador.java deleted file mode 100644 index cc3c07f..0000000 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractAssociationNodeChildLoador.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * #%L - * ObServe :: Swing - * %% - * Copyright (C) 2008 - 2010 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% - */ -package fr.ird.observe.ui.tree.loadors; - -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import jaxx.runtime.swing.nav.NavDataProvider; -import org.nuiton.topia.persistence.TopiaEntity; - -import java.util.List; - -/** - * Le chargeur des noeuds de marees. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public abstract class AbstractAssociationNodeChildLoador<O extends TopiaEntity> extends AbstractNodeChildLoador<O> { - - private static final long serialVersionUID = 1L; - - protected final String associationName; - - public AbstractAssociationNodeChildLoador(Class<O> internalClass, - String associationName) { - super(internalClass); - this.associationName = associationName; - } - - public String getAssociationName() { - return associationName; - } - - @Override - public List<O> getData(Class<?> parentClass, - String parentId, - NavDataProvider dataProvider) throws Exception { - - DataSource source = getDataSource(dataProvider); - DataService service = getDataService(); - - List<O> result = service.loadEntityAssociation(source, - getBeanType(), - getAssociationName(), - parentId); - return result; - } - -} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 569c1fbe62793076283c67feb4d1cbc8c42d60ae Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 8 12:36:00 2015 +0200 fix site configuration --- pom.xml | 37 +++++++++---------------------------- src/site/site_fr.xml | 6 ++++-- 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/pom.xml b/pom.xml index 3829898..eb6a90f 100644 --- a/pom.xml +++ b/pom.xml @@ -130,6 +130,9 @@ <i18n.bundles>fr_FR,en_GB,es_ES</i18n.bundles> <i18n.silent>true</i18n.silent> + <!-- Site configuration --> + <locales>fr</locales> + </properties> <repositories> @@ -609,8 +612,8 @@ <fileset dir="${basedir}/doc/modelisation"> <include name="**/*.pdf" /> </fileset> - <fileset dir="${basedir}/observe-business/src/main/xmi"> - <include name="observe.zargo" /> + <fileset dir="${basedir}/observe-entities/src/main/xmi"> + <include name="**/*.zargo" /> </fileset> </copy> </tasks> @@ -643,7 +646,7 @@ <configuration> <tasks> <copy todir="${project.reporting.outputDirectory}" verbose="${maven.verbose}" failonerror="false" overwrite="false"> - <fileset dir="observe-business/src/main/resources"> + <fileset dir="observe-validation/src/main/resources"> <include name="validators.xml" /> </fileset> </copy> @@ -669,35 +672,13 @@ </activation> <reporting> - <plugins> - - <plugin> - <artifactId>maven-project-info-reports-plugin</artifactId> - <version>${projectInfoReportsPluginVersion}</version> - <reportSets> - <reportSet> - <reports> - <report>project-team</report> - <report>mailing-list</report> - <report>cim</report> - <report>issue-tracking</report> - <report>license</report> - <report>scm</report> - <report>dependencies</report> - <report>dependency-convergence</report> - <report>plugin-management</report> - <report>plugins</report> - <report>dependency-management</report> - <report>summary</report> - </reports> - </reportSet> - </reportSets> - </plugin> + <plugins> <plugin> <groupId>org.nuiton</groupId> <artifactId>nuiton-maven-report-plugin</artifactId> - <version>3.0-rc-1</version> + <version>3.0</version> + <inherited>false</inherited> <reportSets> <reportSet> <reports> diff --git a/src/site/site_fr.xml b/src/site/site_fr.xml index b25f690..6d77c94 100644 --- a/src/site/site_fr.xml +++ b/src/site/site_fr.xml @@ -75,11 +75,13 @@ <item name="Administration Obstuna" href="install-serverPG.html"/> <item name="Téléchargement" href="https://forge.codelutin.com/projects/observe/files"/> <item name="Historique des versions" href="./changes-report.html"/> - <item name="Configuration" href="./application-config-report.html"/> + <item name="Configuration" href="./config-report.html"/> </menu> <menu name="Modélisation"> - <item name="Fichier argoUML" href="model/observe.zargo"/> + <item name="Fichier argoUML (commun)" href="model/observe-common.zargo"/> + <item name="Fichier argoUML (Seine)" href="model/observe-seine.zargo"/> + <item name="Fichier argoUML (Palangre)" href="model/observe-longline.zargo"/> <item name="Modèle physique" href="model/observe_mpd.pdf"/> </menu> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit f2b13783904211153afd6ba1e5fdb22c54fce721 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:22:28 2015 +0200 refs #6921: Mauvais libéllé lors de la création d'une base distante --- .../src/main/java/fr/ird/observe/ui/storage/tabs/ConfigDataUI.css | 4 ++-- observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties | 2 ++ observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties | 2 ++ observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigDataUI.css b/observe-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigDataUI.css index 3255b68..cfa946c 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigDataUI.css +++ b/observe-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigDataUI.css @@ -42,13 +42,13 @@ #importDataFromBackup { value:{CreationMode.IMPORT_EXTERNAL_DUMP}; - text:{CreationMode.IMPORT_EXTERNAL_DUMP.getLabel()}; + text:"observe.synchro.import.data.fromBackup"; selected:{model.getDataImportMode() == CreationMode.IMPORT_EXTERNAL_DUMP}; } #importDataFromRemote { value:{CreationMode.IMPORT_REMOTE_STORAGE}; - text:{CreationMode.IMPORT_REMOTE_STORAGE.getLabel()}; + text:"observe.synchro.import.data.fromRemoteStorage"; selected:{model.getDataImportMode() == CreationMode.IMPORT_REMOTE_STORAGE}; } diff --git a/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties b/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties index 9e6ca24..b8481be 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties @@ -1654,6 +1654,8 @@ observe.synchro.config.validate= observe.synchro.config.validation.report= observe.synchro.configuration= observe.synchro.continue.with.no.save.report= +observe.synchro.import.data.fromBackup= +observe.synchro.import.data.fromRemoteStorage= observe.synchro.importGPS.invalidIntervals.list= observe.synchro.message.all.obsolete.entities.fixed= observe.synchro.message.need.save.for.synchro.operation= diff --git a/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties b/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties index b990dfe..5798666 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties @@ -1654,6 +1654,8 @@ observe.synchro.config.validate=Configuración de la validación observe.synchro.config.validation.report=Informe de validación observe.synchro.configuration=Configuración de las operaciones observe.synchro.continue.with.no.save.report=Continuar sin guardar el informe +observe.synchro.import.data.fromBackup= +observe.synchro.import.data.fromRemoteStorage= observe.synchro.importGPS.invalidIntervals.list=Lista de los intervalos de puntos gps no usables observe.synchro.message.all.obsolete.entities.fixed=No hay mas referencias a los objetos obsoletos. observe.synchro.message.need.save.for.synchro.operation=La operación de sincronización de referenciales ha generado cambios diff --git a/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties b/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties index 900636e..5f540dc 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties @@ -1652,6 +1652,8 @@ observe.synchro.config.validate=Configuration de la validation observe.synchro.config.validation.report=Rapport de validation observe.synchro.configuration=Configuration des opérations observe.synchro.continue.with.no.save.report=Continuer sans sauver de rapport +observe.synchro.import.data.fromBackup=Importer les données depuis une sauvegarde de base locale (*.sql.gz) +observe.synchro.import.data.fromRemoteStorage=Importer les données depuis une base distante observe.synchro.importGPS.invalidIntervals.list=Liste des intervalles de points gps non utilisables observe.synchro.message.all.obsolete.entities.fixed=Il n'y a plus de références sur des objets obsolètes. observe.synchro.message.need.save.for.synchro.operation=L'opération de synchronisation du référentiel a engendrée des modifications. -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit dc617b2234937a1143f90307608acb5bd178d868 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:24:31 2015 +0200 refs #6919 (possibilité d'avoir la source en cours de création) --- .../main/java/fr/ird/observe/db/ReplicationService.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/db/ReplicationService.java b/observe-business/src/main/java/fr/ird/observe/db/ReplicationService.java index 0468030..da02d00 100644 --- a/observe-business/src/main/java/fr/ird/observe/db/ReplicationService.java +++ b/observe-business/src/main/java/fr/ird/observe/db/ReplicationService.java @@ -29,7 +29,6 @@ import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.Trip; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.longline.TripLonglines; -import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.entities.seine.TripSeineDAO; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.tuple.Pair; @@ -40,7 +39,6 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.framework.TopiaSQLQuery; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityHelper; import org.nuiton.topia.replication.TopiaReplicationService; import org.nuiton.topia.replication.model.ReplicationModel; import org.nuiton.util.StringUtil; @@ -141,6 +139,8 @@ public class ReplicationService { throw new NullPointerException("dstService can not be null"); } srcService.checkState(DataSourceState.OPEN); + // le service peut-être en cours d'ouverture + dstService.checkState(DataSourceState.INIT, DataSourceState.OPEN); // recuperation des marees a repliquer @@ -151,15 +151,18 @@ public class ReplicationService { srcCtxt = srcService.beginTransaction("replicateData"); TripSeineDAO srcTripDAO = ObserveDAOHelper.getTripSeineDAO(srcCtxt); - List<TripSeine> srcTripSeines = srcTripDAO.findAll(); + List<String> allIds = srcTripDAO.findAllIds(); + +// List<TripSeine> srcTripSeines = srcTripDAO.findAll(); - if (CollectionUtils.isEmpty(srcTripSeines)) { + if (CollectionUtils.isEmpty(allIds)) { // aucune donnee a repliquer srcService.fireNewMessage( t("observe.storage.message.replicate.data.no.data")); return; } - topiaIds = TopiaEntityHelper.getTopiaIdArray(srcTripSeines); +// topiaIds = TopiaEntityHelper.getTopiaIdArray(srcTripSeines); + topiaIds= allIds.toArray(new String[allIds.size()]); } catch (TopiaException e) { throw new DataSourceException(e, "replicateData"); @@ -199,7 +202,9 @@ public class ReplicationService { } srcService.checkState(DataSourceState.OPEN); - dstService.checkState(DataSourceState.OPEN); + // le service peut-être en cours d'ouverture + dstService.checkState(DataSourceState.INIT, DataSourceState.OPEN); + if (srcService.equals(dstService)) { throw new IllegalArgumentException( "can not replcate to the same service..."); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit c24bd6b5dd4eefba85caa3c4aabd22b9a822f06c Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 10:36:25 2015 +0200 refs #6920: Ne pas supprimer le schméma public --- .../src/main/java/fr/ird/observe/db/util/PGInstall.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/db/util/PGInstall.java b/observe-business/src/main/java/fr/ird/observe/db/util/PGInstall.java index 2a39632..d57a514 100644 --- a/observe-business/src/main/java/fr/ird/observe/db/util/PGInstall.java +++ b/observe-business/src/main/java/fr/ird/observe/db/util/PGInstall.java @@ -81,7 +81,9 @@ public abstract class PGInstall { protected static final Set<String> EXTRA_TABLES = Sets.newHashSet(TMSVersionDAO.TABLE_NAME, TMSVersionDAO.LEGACY_TABLE_NAME); - public static final Set<String> SCHEMAS = Sets.newHashSet("public", + protected static final String SCHEMA_PUBLIC = "public"; + + protected static final Set<String> SCHEMAS = Sets.newHashSet(SCHEMA_PUBLIC, "OBSERVE_COMMON", "OBSERVE_SEINE", "OBSERVE_LONGLINE"); @@ -223,7 +225,9 @@ public abstract class PGInstall { for (String schema : SCHEMAS) { - builder.append(String.format(DROP_SCHEMA_PATTERN, schema)); + if (!SCHEMA_PUBLIC.equals(schema)) { + builder.append(String.format(DROP_SCHEMA_PATTERN, schema)); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 83cadbe8e83532e530b758a778f045d8ad6bdc6b Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 12:05:23 2015 +0200 refs #6922 topia 2.9.5 corrige le problème --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eb6a90f..00f97cd 100644 --- a/pom.xml +++ b/pom.xml @@ -111,7 +111,7 @@ <eugenePluginVersion>2.14</eugenePluginVersion> - <topiaVersion>2.9.4</topiaVersion> + <topiaVersion>2.9.5</topiaVersion> <jaxxVersion>2.23</jaxxVersion> <nuitonI18nVersion>3.3</nuitonI18nVersion> <nuitonValidatorVersion>3.0</nuitonValidatorVersion> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit e6c1bdeff653c9f5f98ac19f677c99c0dbc3c6ed Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 12:09:03 2015 +0200 refs #6923 Ajout de dbHost et dbPort dans le script --- .../src/main/assembly/dist/obstuna-admin/apply-extra.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/observe-swing/src/main/assembly/dist/obstuna-admin/apply-extra.sh b/observe-swing/src/main/assembly/dist/obstuna-admin/apply-extra.sh old mode 100644 new mode 100755 index 31ca06a..558a083 --- a/observe-swing/src/main/assembly/dist/obstuna-admin/apply-extra.sh +++ b/observe-swing/src/main/assembly/dist/obstuna-admin/apply-extra.sh @@ -32,6 +32,18 @@ if [ "$dbName" == "" ] ; then dbName=obstuna fi +echo -n "Machine de la base à utiliser ? [localhost] " +read dbHost +if [ "$dbHost" == "" ] ; then + dbHost=localhost +fi + +echo -n "Port de la base à utiliser ? [5432] " +read dbPort +if [ "$dbPort" == "" ] ; then + dbPort=5432 +fi + echo -n "Nom de l'utilisateur administrateur de la base ? [admin] " read dbUser if [ "$dbUser" == "" ] ; then @@ -43,6 +55,6 @@ for script in $(ls extra/*.sql); do read i if [ "$i" == "O" -o "$i" == "o" -o "$i" == "" ] ; then echo "Execution du script $script" - cat $script | psql -d $dbName -U $dbUser -h localhost + cat $script | psql -d $dbName -U $dbUser -h $dbHost -p $dbPort fi done \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 9f2540842305fa52a7c4ece06ccab8cb293584e5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 18:20:29 2015 +0200 refs #6913 modification du fichier des rapports --- .../src/main/filters/observe-reports.properties | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/observe-business/src/main/filters/observe-reports.properties b/observe-business/src/main/filters/observe-reports.properties index 1d3b498..e313a53 100644 --- a/observe-business/src/main/filters/observe-reports.properties +++ b/observe-business/src/main/filters/observe-reports.properties @@ -80,7 +80,7 @@ report.dailySetAndCatch.request.1=0,0|row|\ report.dcpUsage.name=Utilisation des DCP report.dcpUsage.description=Tableau r\u00e9capitulatif du nombre de DCP visit\u00e9s selon l\u2019action effectu\u00e9e (visites avec et sans p\u00eache, mis \u00e0 l\u2019eau, r\u00e9cuperation), et tortues observ\u00e9es -report.dcpUsage.columns=Type de DCP (Tableau 8),Nombre visit\u00e9s,Nombre p\u00each\u00e9s,Nombre mis \u00e0 l\u2019eau,R\u00e9cup\u00e9r\u00e9 sans p\u00eache,Nombre de tortues associ\u00e9es +report.dcpUsage.columns=Type de DCP (Tableau 8),Nombre visit\u00e9s,Nombre p\u00each\u00e9s,Nombre mis \u00e0 l\u2019eau seuls,Nombre renforc\u00e9s par radeau balis\u00e9,R\u00e9cup\u00e9r\u00e9 sans p\u00eache,Nombre de tortues associ\u00e9es report.dcpUsage.repeatVariable.typeObjetId=java.lang.String|Select to.id From ObjectTypeImpl to Where to In (Select to From ObjectTypeImpl to, TripSeineImpl m, RouteImpl r, ActivitySeineImpl a, FloatingObjectImpl dcp \ Where \ m.id = :tripId \ @@ -142,10 +142,22 @@ report.dcpUsage.request.5=4,0|row|\ and a in elements(r.activitySeine) \ and dcp in elements(a.floatingObject) \ and dcp.objectType.id = :typeObjetId \ - and dcp.objectOperation.code = 4 + and ( dcp.objectFate.code = 8 and dcp.objectOperation.code != 1 ) report.dcpUsage.request.5.repeat=typeObjetId|column -report.dcpUsage.request.6=5,0|row| \ +report.dcpUsage.request.6=5,0|row|\ + Select Count(dcp) \ + From TripSeineImpl m, RouteImpl r, ActivitySeineImpl a, FloatingObjectImpl dcp \ + Where \ + m.id = :tripId \ + and r in elements(m.route) \ + and a in elements(r.activitySeine) \ + and dcp in elements(a.floatingObject) \ + and dcp.objectType.id = :typeObjetId \ + and dcp.objectOperation.code = 4 +report.dcpUsage.request.6.repeat=typeObjetId|column + +report.dcpUsage.request.7=6,0|row| \ Select Sum(efo.count) \ From TripSeineImpl m, RouteImpl r, ActivitySeineImpl a, FloatingObjectImpl dcp, ObjectObservedSpeciesImpl efo \ Where \ @@ -160,7 +172,7 @@ report.dcpUsage.request.6=5,0|row| \ Where ef2.speciesGroup = gef2 \ and gef2.id = 'fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461' \ ) -report.dcpUsage.request.6.repeat=typeObjetId|column +report.dcpUsage.request.7.repeat=typeObjetId|column ################################################################################ ## Nombre des cal\u00e9es selon le type d'association -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit d619408c8fa9eafa3c5dd5310b55e396fb42067b Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:32:54 2015 +0200 refs #6914 ajouts de méthodes de récupération des entitiés pour la décoration de l'arbre et des listes --- .../src/main/java/fr/ird/observe/DataService.java | 203 ++++++++++++--------- .../entities/constants/ReferenceLocale.java | 34 ++++ .../entities/longline/ActivityLonglineDAOImpl.java | 83 +++++++++ .../entities/longline/TripLonglineDAOImpl.java | 93 ++++++++-- .../entities/referentiel/ReferenceEntities.java | 1 + .../entities/seine/ActivitySeineDAOImpl.java | 84 +++++++++ .../entities/seine/FloatingObjectDAOImpl.java | 70 +++++++ .../ird/observe/entities/seine/RouteDAOImpl.java | 60 ++++++ .../observe/entities/seine/TripSeineDAOImpl.java | 91 +++++++-- 9 files changed, 606 insertions(+), 113 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/DataService.java b/observe-business/src/main/java/fr/ird/observe/DataService.java index b86d44c..54b5f2c 100644 --- a/observe-business/src/main/java/fr/ird/observe/DataService.java +++ b/observe-business/src/main/java/fr/ird/observe/DataService.java @@ -37,7 +37,9 @@ import fr.ird.observe.entities.OpenableEntities; import fr.ird.observe.entities.OpenableEntity; import fr.ird.observe.entities.Trip; import fr.ird.observe.entities.constants.GearType; +import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.longline.ActivityLongline; +import fr.ird.observe.entities.longline.ActivityLonglineDAO; import fr.ird.observe.entities.longline.ActivityLonglines; import fr.ird.observe.entities.longline.Basket; import fr.ird.observe.entities.longline.Branchline; @@ -56,7 +58,6 @@ import fr.ird.observe.entities.referentiel.LengthWeightParemeterHelper; import fr.ird.observe.entities.referentiel.Ocean; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.ProgramDAO; -import fr.ird.observe.entities.referentiel.Programs; import fr.ird.observe.entities.referentiel.ReferenceEntities; import fr.ird.observe.entities.referentiel.Sex; import fr.ird.observe.entities.referentiel.Species; @@ -64,7 +65,10 @@ import fr.ird.observe.entities.referentiel.SpeciesList; import fr.ird.observe.entities.referentiel.SpeciesListDAO; import fr.ird.observe.entities.referentiel.longline.SensorType; import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.entities.seine.ActivitySeineDAO; import fr.ird.observe.entities.seine.ActivitySeines; +import fr.ird.observe.entities.seine.FloatingObject; +import fr.ird.observe.entities.seine.FloatingObjectDAO; import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeineImpl; import fr.ird.observe.entities.seine.GearUseFeaturesSeine; @@ -72,6 +76,7 @@ import fr.ird.observe.entities.seine.NonTargetCatch; import fr.ird.observe.entities.seine.NonTargetLength; import fr.ird.observe.entities.seine.NonTargetSample; import fr.ird.observe.entities.seine.Route; +import fr.ird.observe.entities.seine.RouteDAO; import fr.ird.observe.entities.seine.Routes; import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.entities.seine.TargetCatch; @@ -109,7 +114,6 @@ import java.util.Collections; import java.util.Date; import java.util.EnumSet; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -129,8 +133,6 @@ public class DataService { String BEAN = "bean"; - String PROPERTY_ENABLED = "enabled"; - protected DecoratorService decoratorService; protected DataContext dataContext; @@ -483,10 +485,7 @@ public class DataService { } } - - public List<TripSeine> getTripSeineByProgram(DataSource source, - String programId, - boolean decorateTrip) throws DataSourceException { + public List<TripSeine> getTripSeineStubByProgram(DataSource source, String programId) throws DataSourceException { if (!source.canReadData()) { if (log.isDebugEnabled()) { log.debug("Can not read data!"); @@ -494,23 +493,41 @@ public class DataService { return Collections.emptyList(); } - String txName = "getTripByProgram"; + String txName = "getTripSeineStubByProgram"; TopiaContext tx = beginTransaction(source, txName); - DecoratorService decoratorService = getDecoratorService(); - Decorator<TripSeine> decorator = null; - if (decorateTrip) { - decorator = decoratorService.getDecoratorByType(TripSeine.class); - } try { + TripSeineDAO dao = (TripSeineDAO) source.getDAO(tx, TripSeine.class); - List<TripSeine> result = dao.findAllByProgramId(programId); - if (decorateTrip && CollectionUtils.isNotEmpty(result)) { - for (TripSeine maree : result) { - decorator.toString(maree); - } + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<TripSeine> result = dao.findAllStubByProgramId(programId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + + public List<Route> getRouteStubByTrip(DataSource source, String tripSeineId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); } + return Collections.emptyList(); + } + + String txName = "getRouteStubByTrip"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + RouteDAO dao = (RouteDAO) source.getDAO(tx, Route.class); + List<Route> result = dao.findAllStubByTripId(tripSeineId); return result; + } catch (Exception e) { throw new DataSourceException(e, txName); } finally { @@ -518,10 +535,32 @@ public class DataService { } } + public List<ActivitySeine> getActivitySeineStubByRoute(DataSource source, String routeId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return Collections.emptyList(); + } + + String txName = "getActivitySeineStubByRoute"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + ActivitySeineDAO dao = (ActivitySeineDAO) source.getDAO(tx, ActivitySeine.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<ActivitySeine> result = dao.findAllStubByRouteId(routeId, referentielLocale); + return result; - public List<TripLongline> getTripLonglineByProgram(DataSource source, - String programId, - boolean decorateTrip) throws DataSourceException { + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + public List<FloatingObject> getFloatinObjectStubByActivitySeine(DataSource source, String activitySeineId) throws DataSourceException { if (!source.canReadData()) { if (log.isDebugEnabled()) { log.debug("Can not read data!"); @@ -529,30 +568,73 @@ public class DataService { return Collections.emptyList(); } - String txName = "getTripByProgram"; + String txName = "getActivitySeineStubByRoute"; TopiaContext tx = beginTransaction(source, txName); - DecoratorService decoratorService = getDecoratorService(); - Decorator<TripLongline> decorator = null; - if (decorateTrip) { - decorator = decoratorService.getDecoratorByType(TripLongline.class); + + try { + + FloatingObjectDAO dao = (FloatingObjectDAO) source.getDAO(tx, FloatingObject.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<FloatingObject> result = dao.findAllStubByActivityId(activitySeineId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); } + } + + public List<TripLongline> getTripLonglineStubByProgram(DataSource source, String programId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return Collections.emptyList(); + } + + String txName = "getTripLonglineStubByProgram"; + TopiaContext tx = beginTransaction(source, txName); try { + TripLonglineDAO dao = (TripLonglineDAO) source.getDAO(tx, TripLongline.class); - List<TripLongline> result = dao.findAllByProgramId(programId); - if (decorateTrip && CollectionUtils.isNotEmpty(result)) { - for (TripLongline maree : result) { - decorator.toString(maree); - } - } + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<TripLongline> result = dao.findAllStubByProgramId(programId, referentielLocale); return result; + } catch (Exception e) { throw new DataSourceException(e, txName); } finally { closeTransaction(source, tx, txName); } + } + public List<ActivityLongline> getActivityLonglineStubByTrip(DataSource source, String tripId) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return Collections.emptyList(); + } + + String txName = "getActivityLonglineStubByTrip"; + TopiaContext tx = beginTransaction(source, txName); + + try { + + ActivityLonglineDAO dao = (ActivityLonglineDAO) source.getDAO(tx, ActivityLongline.class); + ReferenceLocale referentielLocale = getDecoratorService().getReferentielLocale(); + List<ActivityLongline> result = dao.findAllStubByTripId(tripId, referentielLocale); + return result; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } public Ocean getTripOcean(DataSource source, String tripId) throws DataSourceException { @@ -1185,61 +1267,6 @@ public class DataService { } } - - public List<Program> getClosedPrograms(DataSource source) throws DataSourceException { - List<Program> programs = getList(source, Program.class); - Iterator<Program> it = programs.iterator(); - while (it.hasNext()) { - //FIXME Do it also for Longline program - Program program = it.next(); - - - if (Programs.isProgramLongline(program)) { - List<TripLongline> mareeForProgram = - getTripLonglineByProgram(source, program.getTopiaId(), false); - - boolean add = true; - - if (mareeForProgram.isEmpty()) { - add = false; - } - for (TripLongline maree : mareeForProgram) { - if (maree.isOpen()) { - // pas fermer - add = false; - break; - } - } - - if (!add) { - it.remove(); - } - continue; - } - - if (Programs.isProgramSeine(program)) { - List<TripSeine> mareeForProgram = - getTripSeineByProgram(source, program.getTopiaId(), false); - boolean add = true; - if (mareeForProgram.isEmpty()) { - add = false; - } - for (TripSeine maree : mareeForProgram) { - if (maree.isOpen()) { - // pas fermer - add = false; - break; - } - } - if (!add) { - it.remove(); - } - } - - } - return programs; - } - public List<Program> getPossibleProgramsForTrip(DataSource source, String tripId) throws DataSourceException { final GearType gearType; diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java b/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java index e5a8b8b..b3f053f 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java @@ -84,9 +84,43 @@ public enum ReferenceLocale { "could not find referentiel locale from locale " + locale); } + public String getColumnName() { + return "label"+(ordinal() + 1); + } @Override public String toString() { return "<Locale: " + locale + ", index: " + name() + ">"; } + + public <E extends I18nReferenceEntity> void setLabel(String label, E i18nEntity) { + + switch (ordinal()+1) { + case 1: + i18nEntity.setLabel1(label); + break; + case 2: + i18nEntity.setLabel2(label); + break; + case 3: + i18nEntity.setLabel3(label); + break; + case 4: + i18nEntity.setLabel4(label); + break; + case 5: + i18nEntity.setLabel5(label); + break; + case 6: + i18nEntity.setLabel6(label); + break; + case 7: + i18nEntity.setLabel7(label); + break; + case 8: + i18nEntity.setLabel8(label); + break; + } + + } } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineDAOImpl.java new file mode 100644 index 0000000..a9d3d1f --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/longline/ActivityLonglineDAOImpl.java @@ -0,0 +1,83 @@ +package fr.ird.observe.entities.longline; + +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.longline.VesselActivityLongline; +import fr.ird.observe.entities.referentiel.longline.VesselActivityLonglineImpl; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaSQLQuery; + +import javax.annotation.Generated; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Generated(value = "org.nuiton.topia.generator.EntityDAOTransformer", date = "Wed Apr 08 12:37:54 CEST 2015") +public class ActivityLonglineDAOImpl<E extends ActivityLongline> extends ActivityLonglineDAOAbstract<E> { + + public List<E> findAllStubByTripId(String tripId, ReferenceLocale referenceLocale) throws TopiaException { + + ActivityStubSqlQuery<E> query = new ActivityStubSqlQuery<E>(tripId, referenceLocale); + List<E> result = query.findMultipleResult(context); + return result; + + } + + private static class ActivityStubSqlQuery<E extends ActivityLongline> extends TopiaSQLQuery<E> { + + private final String tripId; + + private final ReferenceLocale referenceLocale; + + ActivityStubSqlQuery(String tripId, ReferenceLocale referenceLocale) { + this.tripId = tripId; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + String sql = "SELECT" + + " a.topiaId," + + " a.timestamp," + + " a.open," + + " a.set," + + " va." + referenceLocale.getColumnName() + + " FROM observe_longline.activity a, observe_longline.vesselactivity va" + + " WHERE " + + " a.trip = ?" + + " AND a.vesselactivity = va.topiaid" + + " ORDER BY a.timestamp"; + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, tripId); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E activity = (E) new ActivityLonglineImpl(); + activity.setTopiaId(set.getString(1)); + activity.setTimeStamp(set.getTimestamp(2)); + activity.setOpen(set.getBoolean(3)); + + String setId = set.getString(4); + if (setId != null) { + + SetLonglineImpl setLongline = new SetLonglineImpl(); + setLongline.setTopiaId(setId); + activity.setSetLongline(setLongline); + + } + VesselActivityLongline vesselActivity = new VesselActivityLonglineImpl(); + String label = set.getString(5); + referenceLocale.setLabel(label, vesselActivity); + activity.setVesselActivityLongline(vesselActivity); + + + return activity; + } + + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java index 1fe43dd..2863689 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java @@ -22,27 +22,25 @@ package fr.ird.observe.entities.longline; * #L% */ -import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.Person; +import fr.ird.observe.entities.referentiel.PersonImpl; +import fr.ird.observe.entities.referentiel.Vessel; +import fr.ird.observe.entities.referentiel.VesselImpl; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.framework.TopiaSQLQuery; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.List; public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAOAbstract<E> { - - public List<E> findAllByProgramId(String programId) throws TopiaException { - TopiaQuery query = createQuery(); - query.addOrder(TripSeine.PROPERTY_END_DATE); - query.addEquals(TripSeine.PROPERTY_PROGRAM + "." + TopiaEntity.TOPIA_ID, programId); - List<E> result = findAllByQuery(query); - return result; - } - public int findPositionByProgramId(String programId, String tripId) throws TopiaException { int result = 0; - List<E> list = findAllByProgramId(programId); + List<E> list = findAllStubByProgramId(programId, ReferenceLocale.FR); for (E e : list) { if (tripId.equals(e.getTopiaId())) { return result; @@ -54,4 +52,71 @@ public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAO return -1; } -} //TripLonglineDAOImpl<E extends TripLongline> + public List<E> findAllStubByProgramId(String programId, ReferenceLocale referenceLocale) throws TopiaException { + + TripStubSqlQuery<E> query = new TripStubSqlQuery<E>(programId, referenceLocale); + List<E> result = query.findMultipleResult(context); + return result; + + } + + private static class TripStubSqlQuery<E extends TripLongline> extends TopiaSQLQuery<E> { + + private final String programId; + + private final ReferenceLocale referenceLocale; + + TripStubSqlQuery(String programId, ReferenceLocale referenceLocale) { + this.programId = programId; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + String sql = "SELECT" + + " t.topiaId," + + " t.startDate," + + " t.endDate," + + " t.open," + + " p.lastName," + + " p.firstName," + + " v." + referenceLocale.getColumnName() + + " FROM observe_longline.trip t, observe_common.person p, observe_common.vessel v" + + " WHERE " + + " t.program = ?" + + " AND t.observer = p.topiaId" + + " AND t.vessel = v.topiaId" + + " ORDER BY t.endDate"; + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, programId); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E trip = (E) new TripLonglineImpl(); + trip.setTopiaId(set.getString(1)); + trip.setStartDate(set.getTimestamp(2)); + trip.setEndDate(set.getTimestamp(3)); + trip.setOpen(set.getBoolean(4)); + + String observerFirstName = set.getString(5); + String observerLastName = set.getString(6); + Person observer = new PersonImpl(); + observer.setFirstName(observerFirstName); + observer.setLastName(observerLastName); + trip.setObserver(observer); + + Vessel vessel = new VesselImpl(); + String label = set.getString(7); + referenceLocale.setLabel(label, vessel); + trip.setVessel(vessel); + + return trip; + + } + + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java index 2f225bf..35ff744 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java @@ -118,4 +118,5 @@ public class ReferenceEntities { <E extends TopiaEntity> void walk(Class<E> beanClass) throws Exception; } + } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineDAOImpl.java new file mode 100644 index 0000000..a95c8c5 --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/seine/ActivitySeineDAOImpl.java @@ -0,0 +1,84 @@ +package fr.ird.observe.entities.seine; + +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; +import fr.ird.observe.entities.referentiel.seine.VesselActivitySeineImpl; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaSQLQuery; + +import javax.annotation.Generated; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Generated(value = "org.nuiton.topia.generator.EntityDAOTransformer", date = "Wed Apr 08 12:37:54 CEST 2015") +public class ActivitySeineDAOImpl<E extends ActivitySeine> extends ActivitySeineDAOAbstract<E> { + + public List<E> findAllStubByRouteId(String routeId, ReferenceLocale referenceLocale) throws TopiaException { + + ActivityStubSqlQuery<E> query = new ActivityStubSqlQuery<E>(routeId, referenceLocale); + List<E> result = query.findMultipleResult(context); + return result; + + } + + private static class ActivityStubSqlQuery<E extends ActivitySeine> extends TopiaSQLQuery<E> { + + private final String routeId; + + private final ReferenceLocale referenceLocale; + + ActivityStubSqlQuery(String routeId, ReferenceLocale referenceLocale) { + this.routeId = routeId; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + String sql = "SELECT" + + " a.topiaId," + + " a.time," + + " a.open," + + " a.set," + + " va." + referenceLocale.getColumnName() + + " FROM observe_seine.activity a, observe_seine.vesselactivity va" + + " WHERE " + + " a.route = ?" + + " AND a.vesselactivity = va.topiaid" + + " ORDER BY a.time"; + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, routeId); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E activity = (E) new ActivitySeineImpl(); + activity.setTopiaId(set.getString(1)); + activity.setTime(set.getTime(2)); + activity.setOpen(set.getBoolean(3)); + + String setId = set.getString(4); + if (setId != null) { + + SetSeine setSeine = new SetSeineImpl(); + setSeine.setTopiaId(setId); + activity.setSetSeine(setSeine); + + } + + VesselActivitySeine vesselActivity = new VesselActivitySeineImpl(); + String label = set.getString(5); + referenceLocale.setLabel(label, vesselActivity); + activity.setVesselActivitySeine(vesselActivity); + + return activity; + + } + + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/seine/FloatingObjectDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/seine/FloatingObjectDAOImpl.java new file mode 100644 index 0000000..d1e2a65 --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/seine/FloatingObjectDAOImpl.java @@ -0,0 +1,70 @@ +package fr.ird.observe.entities.seine; + +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.seine.ObjectType; +import fr.ird.observe.entities.referentiel.seine.ObjectTypeImpl; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaSQLQuery; + +import javax.annotation.Generated; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Generated(value = "org.nuiton.topia.generator.EntityDAOTransformer", date = "Wed Apr 08 12:37:53 CEST 2015") +public class FloatingObjectDAOImpl<E extends FloatingObject> extends FloatingObjectDAOAbstract<E> { + + public List<E> findAllStubByActivityId(String activityId, ReferenceLocale referenceLocale) throws TopiaException { + + FloatingObjectStubSqlQuery<E> query = new FloatingObjectStubSqlQuery<E>(activityId, referenceLocale); + List<E> result = query.findMultipleResult(context); + return result; + + } + + private static class FloatingObjectStubSqlQuery<E extends FloatingObject> extends TopiaSQLQuery<E> { + + private final String activityId; + + private final ReferenceLocale referenceLocale; + + FloatingObjectStubSqlQuery(String activityId, ReferenceLocale referenceLocale) { + this.activityId = activityId; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + String sql = "SELECT" + + " fo.topiaId," + + " ot." + referenceLocale.getColumnName() + + " FROM observe_seine.floatingobject fo, observe_seine.objecttype ot" + + " WHERE " + + " fo.activity = ?" + + " AND fo.objecttype = ot.topiaid" + + " ORDER BY ot." + referenceLocale.getColumnName(); + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, activityId); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E floatingObject = (E) new FloatingObjectImpl(); + floatingObject.setTopiaId(set.getString(1)); + + String objectTypeLabel = set.getString(2); + ObjectType objectType = new ObjectTypeImpl(); + referenceLocale.setLabel(objectTypeLabel, objectType); + floatingObject.setObjectType(objectType); + + return floatingObject; + + } + + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/seine/RouteDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/seine/RouteDAOImpl.java new file mode 100644 index 0000000..e865381 --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/seine/RouteDAOImpl.java @@ -0,0 +1,60 @@ +package fr.ird.observe.entities.seine; + +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaSQLQuery; + +import javax.annotation.Generated; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Generated(value = "org.nuiton.topia.generator.EntityDAOTransformer", date = "Wed Apr 08 12:37:54 CEST 2015") +public class RouteDAOImpl<E extends Route> extends RouteDAOAbstract<E> { + + public List<E> findAllStubByTripId(String tripSeineId) throws TopiaException { + + RouteStubSqlQuery<E> query = new RouteStubSqlQuery<E>(tripSeineId); + List<E> result = query.findMultipleResult(context); + return result; + + } + + private static class RouteStubSqlQuery<E extends Route> extends TopiaSQLQuery<E> { + + private final String tripId; + + RouteStubSqlQuery(String tripId) { + this.tripId = tripId; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + String sql = "SELECT" + + " r.topiaId," + + " r.date," + + " r.open" + + " FROM observe_seine.route r" + + " WHERE " + + " r.trip = ?" + + " ORDER BY r.date"; + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, tripId); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E trip = (E) new RouteImpl(); + trip.setTopiaId(set.getString(1)); + trip.setDate(set.getDate(2)); + trip.setOpen(set.getBoolean(3)); + + return trip; + + } + } + +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java index 6d83733..ef0f540 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java @@ -21,10 +21,18 @@ */ package fr.ird.observe.entities.seine; +import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.referentiel.Person; +import fr.ird.observe.entities.referentiel.PersonImpl; +import fr.ird.observe.entities.referentiel.Vessel; +import fr.ird.observe.entities.referentiel.VesselImpl; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.framework.TopiaSQLQuery; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.List; /** @@ -35,17 +43,9 @@ import java.util.List; */ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract<E> { - public List<E> findAllByProgramId(String programId) throws TopiaException { - TopiaQuery query = createQuery(); - query.addOrder(TripSeine.PROPERTY_END_DATE); - query.addEquals(TripSeine.PROPERTY_PROGRAM + "." + TopiaEntity.TOPIA_ID, programId); - List<E> result = findAllByQuery(query); - return result; - } - public int findPositionByProgramId(String programId, String tripId) throws TopiaException { int result = 0; - List<E> list = findAllByProgramId(programId); + List<E> list = findAllStubByProgramId(programId, ReferenceLocale.FR); for (E e : list) { if (tripId.equals(e.getTopiaId())) { return result; @@ -56,4 +56,73 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< // not found return -1; } + + public List<E> findAllStubByProgramId(String programId, ReferenceLocale referenceLocale) throws TopiaException { + + TripStubSqlQuery<E> query = new TripStubSqlQuery<E>(programId, referenceLocale); + List<E> result = query.findMultipleResult(context); + return result; + + } + + private static class TripStubSqlQuery<E extends TripSeine> extends TopiaSQLQuery<E> { + + private final String programId; + + private final ReferenceLocale referenceLocale; + + TripStubSqlQuery(String programId, ReferenceLocale referenceLocale) { + this.programId = programId; + this.referenceLocale = referenceLocale; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + String sql = "SELECT" + + " t.topiaId," + + " t.startDate," + + " t.endDate," + + " t.open," + + " p.lastName," + + " p.firstName," + + " v." + referenceLocale.getColumnName() + + " FROM observe_seine.trip t, observe_common.person p, observe_common.vessel v" + + " WHERE " + + " t.program = ?" + + " AND t.observer = p.topiaId" + + " AND t.vessel = v.topiaId" + + " ORDER BY t.endDate"; + PreparedStatement preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, programId); + return preparedStatement; + } + + @Override + protected E prepareResult(ResultSet set) throws SQLException { + + E trip = (E) new TripSeineImpl(); + + trip.setTopiaId(set.getString(1)); + trip.setStartDate(set.getDate(2)); + trip.setEndDate(set.getDate(3)); + trip.setOpen(set.getBoolean(4)); + + String observerFirstName = set.getString(5); + String observerLastName = set.getString(6); + Person observer = new PersonImpl(); + observer.setFirstName(observerFirstName); + observer.setLastName(observerLastName); + trip.setObserver(observer); + + Vessel vessel = new VesselImpl(); + String label = set.getString(7); + referenceLocale.setLabel(label, vessel); + trip.setVessel(vessel); + + return trip; + + } + + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 1e65cb0af8b8a2af793759e6f257b5455e16540e Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:33:25 2015 +0200 refs #6914 ajout d'un decorateur pour TripLongline et suppression de celui Trip --- .../main/java/fr/ird/observe/DecoratorService.java | 6 +++--- ...ripDecorator.java => TripLonglineDecorator.java} | 21 ++++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/DecoratorService.java b/observe-business/src/main/java/fr/ird/observe/DecoratorService.java index 92c16e7..3d67720 100644 --- a/observe-business/src/main/java/fr/ird/observe/DecoratorService.java +++ b/observe-business/src/main/java/fr/ird/observe/DecoratorService.java @@ -27,7 +27,7 @@ import fr.ird.observe.decorator.NonTargetLengthDecorator; import fr.ird.observe.decorator.ObjectObservedSpeciesDecorator; import fr.ird.observe.decorator.ReferenceDecorator; import fr.ird.observe.decorator.SpeciesDecorator; -import fr.ird.observe.decorator.TripDecorator; +import fr.ird.observe.decorator.TripLonglineDecorator; import fr.ird.observe.decorator.TripSeineDecorator; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.longline.ActivityLongline; @@ -512,8 +512,8 @@ public class DecoratorService extends DecoratorProvider { // TripSeine decorator registerDecorator(new TripSeineDecorator(libelle)); - // Trip decorator (register it after the Seine one otherwise the TripSeine one won't be accepted) - registerDecorator(new TripDecorator(libelle)); + // TripLongline decorator + registerDecorator(new TripLonglineDecorator(libelle)); String oldCode = l(locale, "observe.common.oldCode3L"); // Species decorator diff --git a/observe-business/src/main/java/fr/ird/observe/decorator/TripDecorator.java b/observe-business/src/main/java/fr/ird/observe/decorator/TripLonglineDecorator.java similarity index 67% rename from observe-business/src/main/java/fr/ird/observe/decorator/TripDecorator.java rename to observe-business/src/main/java/fr/ird/observe/decorator/TripLonglineDecorator.java index e202db7..9a5e7ea 100644 --- a/observe-business/src/main/java/fr/ird/observe/decorator/TripDecorator.java +++ b/observe-business/src/main/java/fr/ird/observe/decorator/TripLonglineDecorator.java @@ -1,14 +1,12 @@ -package fr.ird.observe.decorator; - /* * #%L * ObServe :: Business * %% - * Copyright (C) 2008 - 2014 IRD, Codelutin, Tony Chemit + * Copyright (C) 2008 - 2011 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 + * 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, @@ -16,26 +14,27 @@ package fr.ird.observe.decorator; * 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 + * 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% */ +package fr.ird.observe.decorator; -import fr.ird.observe.entities.Trip; +import fr.ird.observe.entities.longline.TripLongline; /** - * Created on 8/28/14. + * Decorator of {@link TripLongline}. * * @author Tony Chemit - chemit@codelutin.com - * @since 3.7 + * @since 4.0 */ -public class TripDecorator extends ObserveDecorator<Trip> { +public class TripLonglineDecorator extends ObserveDecorator<TripLongline> { private static final long serialVersionUID = 1L; - public TripDecorator(String libelle) throws IllegalArgumentException, NullPointerException { - super(Trip.class, + public TripLonglineDecorator(String libelle) throws IllegalArgumentException, NullPointerException { + super(TripLongline.class, "${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel/" + libelle + "}$s##${observerLabel}$s" ); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 6460fbd4581445d92b74c197796154ad84234f21 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:34:25 2015 +0200 refs #6914 Ajout dans le modèle de sélection de l'arbre d'un cache d'entités utilisées pour le construire --- .../ird/observe/db/model/DataSelectionModel.java | 29 ++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java b/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java index bfe0353..14cf366 100644 --- a/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java +++ b/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java @@ -34,6 +34,7 @@ import fr.ird.observe.entities.seine.TripSeine; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.util.TopiaEntityHelper; import java.beans.PropertyChangeListener; @@ -47,6 +48,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; /** * Un modèle pour représenter la sélection de données. @@ -68,12 +70,13 @@ public class DataSelectionModel implements Serializable { for (Program program : programs) { if (Programs.isProgramSeine(program)) { - List<TripSeine> trips = service.getTripSeineByProgram(source, program.getTopiaId(), false); +// List<TripSeine> trips = service.getTripSeineByProgram(source, program.getTopiaId(), false); + List<TripSeine> trips = service.getTripSeineStubByProgram(source, program.getTopiaId()); populate(model, program, trips, datas); } if (Programs.isProgramLongline(program)) { - List<TripLongline> trips = service.getTripLonglineByProgram(source, program.getTopiaId(), false); + List<TripLongline> trips = service.getTripLonglineStubByProgram(source, program.getTopiaId()); populate(model, program, trips, datas); } @@ -87,6 +90,8 @@ public class DataSelectionModel implements Serializable { List<T> trips, Map<String, List<String>> datas) { + model.cacheEntity(program); + if (!trips.isEmpty()) { List<String> tripIds = new ArrayList<String>(); @@ -94,6 +99,7 @@ public class DataSelectionModel implements Serializable { // ajout de toutes les marées ouvertes ou non for (T trip : trips) { + model.cacheEntity(trip); tripIds.add(trip.getTopiaId()); } @@ -102,6 +108,7 @@ public class DataSelectionModel implements Serializable { // ajout de toutes les marées non ouvertes for (T trip : trips) { if (!trip.isOpen()) { + model.cacheEntity(trip); tripIds.add(trip.getTopiaId()); } } @@ -150,6 +157,15 @@ public class DataSelectionModel implements Serializable { /** la liste des programs utilisables (qui ont des marees) */ protected transient Map<String, List<String>> datas; + /** + * Le cache des entités chargées pour construire le modèle de sélection. + * + * Ces entités pourront ensuite être injectées dans les noeuds sans avoir à les recharger. + * + * @since 4.0 + */ + protected final Map<String, ? super TopiaEntity> entityCache; + /** la liste des marees selectionnee */ protected transient Set<String> selectedData; @@ -178,6 +194,7 @@ public class DataSelectionModel implements Serializable { referentiel = new HashSet<Class<?>>(list); selectedReferentiel = new HashSet<Class<?>>(); nbReferentiels = referentiel.size(); + entityCache = new TreeMap<String, TopiaEntity>(); } public boolean isUseReferentiel() { @@ -206,6 +223,14 @@ public class DataSelectionModel implements Serializable { return true; } + protected void cacheEntity(TopiaEntity entity) { + entityCache.put(entity.getTopiaId(), entity); + } + + public TopiaEntity getEntityCache(String id) { + return (TopiaEntity) entityCache.get(id); + } + public boolean isReferentielEmpty() { return selectedReferentiel.isEmpty(); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 894d74784d54164c7393bfa16d1c7a8cfc8a11fb Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:35:51 2015 +0200 refs #6914 Ajout d'un cache d'entité chargée dans les noeuds de l'arbre de navigation + ne pas accéder à la datasource depuis le renderer --- .../ird/observe/ui/content/ContentUIHandler.java | 5 +- .../impl/longline/SetLonglineUIHandler.java | 3 +- .../impl/seine/FloatingObjectUIHandler.java | 3 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 3 +- .../ui/content/open/ContentOpenableUIHandler.java | 28 ++-- .../ui/content/open/impl/seine/RouteUIHandler.java | 3 +- .../ui/tree/AbstractObserveTreeCellRenderer.java | 41 +++--- .../ird/observe/ui/tree/ActivityLonglineNode.java | 28 ++++ .../fr/ird/observe/ui/tree/ActivitySeineNode.java | 28 ++++ .../fr/ird/observe/ui/tree/EntityNodeSupport.java | 146 +++++++++++++++++++++ .../observe/ui/tree/FloatingObjectSeineNode.java | 28 ++++ .../ird/observe/ui/tree/ObserveDataProvider.java | 11 ++ .../java/fr/ird/observe/ui/tree/ObserveNode.java | 66 +--------- .../fr/ird/observe/ui/tree/ObserveTreeHelper.java | 75 ++++++++--- .../ird/observe/ui/tree/ProgramLonglineNode.java | 29 ++++ .../fr/ird/observe/ui/tree/ProgramSeineNode.java | 28 ++++ .../fr/ird/observe/ui/tree/RouteSeineNode.java | 27 ++++ .../fr/ird/observe/ui/tree/SetLonglineNode.java | 28 ++++ .../java/fr/ird/observe/ui/tree/SetSeineNode.java | 28 ++++ .../fr/ird/observe/ui/tree/TripLonglineNode.java | 27 ++++ .../java/fr/ird/observe/ui/tree/TripSeineNode.java | 27 ++++ .../actions/ChangeTripProgramActionListener.java | 6 +- .../loadors/ActivityLonglineNodeChildLoador.java | 20 +-- .../loadors/ActivityLonglinesNodeChildLoador.java | 26 ++-- .../tree/loadors/ActivitySeineNodeChildLoador.java | 49 +++---- .../loadors/ActivitySeinesNodeChildLoador.java | 28 ++-- .../loadors/ProgramLonglineNodeChildLoador.java | 13 +- .../tree/loadors/ProgramSeineNodeChildLoador.java | 13 +- .../ui/tree/loadors/RootNodeChildLoador.java | 16 +-- .../ui/tree/loadors/RoutesNodeChildLoador.java | 23 ++-- 30 files changed, 619 insertions(+), 237 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index 6f5f3e3..7a5c374 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -488,11 +488,12 @@ public abstract class ContentUIHandler<E extends TopiaEntity> { // on ne peut redemarrer une edition que si la donnee // est exactement une entites (pas possible sur une liste) ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode node = treeHelper.getSelectedNode(); +// ObserveNode node = treeHelper.getSelectedNode(); removeAllMessages(ui); - treeHelper.refreshNode(node, true); +// treeHelper.refreshNode(node, true); + treeHelper.reloadSelectedNode(false, true); model.setMode(ContentMode.UPDATE); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java index 7d828b5..1baa2bb 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/SetLonglineUIHandler.java @@ -404,7 +404,8 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLongline> { } else { // select ancestor node - treeHelper.refreshNode(node, false); +// treeHelper.refreshNode(node, false); + treeHelper.reloadSelectedNode(false, false); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java index b35dc16..6787aa7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java @@ -219,7 +219,8 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { } else { // select ancestor node - treeHelper.refreshNode(node, false); +// treeHelper.refreshNode(node, false); + treeHelper.reloadSelectedNode(false, false); } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java index ffcc579..5a71b4f 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java @@ -355,7 +355,8 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeine> { treeHelper.selectNode(node); } else { // select ancestor node - treeHelper.refreshNode(node, false); +// treeHelper.refreshNode(node, false); + treeHelper.reloadSelectedNode(false, false); } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java index d141b06..3755f64 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java @@ -28,7 +28,6 @@ import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.OpenableEntity; import fr.ird.observe.entities.Trip; -import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import fr.ird.observe.ui.tree.ObserveNode; @@ -108,8 +107,9 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE // on repaint le parent (le program devient alors ouvert) ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode node = treeHelper.getSelectedNode(); - treeHelper.refreshNode(node.getParent(), true); + treeHelper.reloadSelectedNode(true, true); +// ObserveNode node = treeHelper.getSelectedNode(); +// treeHelper.refreshNode(node.getParent(), true); // on chage l'état 'canReopen' du model ui.getModel().setCanReopen(false); @@ -162,12 +162,13 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE getEntityLabel(bean.getClass()), t(closeMessage)); ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode selectedNode = treeHelper.getSelectedNode(); - if (bean instanceof TripSeine) { - // le program peut change d'etat open - selectedNode = selectedNode.getParent(); - } - treeHelper.refreshNode(selectedNode, true); +// ObserveNode selectedNode = treeHelper.getSelectedNode(); +// if (bean instanceof Trip) { +// // le program peut change d'etat open +// selectedNode = selectedNode.getParent(); +// } +// treeHelper.refreshNode(selectedNode, true); + treeHelper.reloadSelectedNode(bean instanceof Trip, true); updateActions(); } @@ -227,7 +228,9 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE } // on repaint le noeud et ses enfants - treeHelper.refreshNode(node, true); +// treeHelper.refreshNode(node, true); + treeHelper.reloadSelectedNode(false, true); + // treeHelper.refreshNode(node, false); } } @@ -241,8 +244,7 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE // fermeture de la donnée try { - boolean b; - b = doCloseData(); + boolean b = doCloseData(); if (!b) { // la fermeture a ete abandonnee @@ -264,6 +266,8 @@ public abstract class ContentOpenableUIHandler<E extends TopiaEntity & OpenableE ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + treeHelper.reloadSelectedNode(false, true); + ObserveNode parentNode = treeHelper.getSelectedNode().getParent(); if (log.isDebugEnabled()) { log.debug("PARENT NODE = " + parentNode); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java index 77949c4..a2d8cd4 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java @@ -521,7 +521,8 @@ public class RouteUIHandler extends ContentOpenableUIHandler<Route> { if (log.isInfoEnabled()) { log.info("Refresh trip node : " + tripNode); } - treeHelper.refreshNode(tripNode, false); + treeHelper.reloadNode(tripNode, false); +// treeHelper.refreshNode(tripNode, false); } protected void updateDateFin(TripSeine parentBean) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java index 0b151ef..d7e16d7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.tree; +import com.google.common.base.Preconditions; import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveContext; import fr.ird.observe.db.DataContext; @@ -43,6 +44,7 @@ import jaxx.runtime.swing.nav.tree.AbstractNavTreeCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; +import org.nuiton.topia.persistence.TopiaEntity; import javax.swing.Icon; import javax.swing.UIManager; @@ -243,14 +245,8 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel protected String computeNodeText(ObserveNode node) { - if (log.isDebugEnabled()) { - log.debug("for node : " + node.getId()); - } - - String text; - if (node.isStringNode()) { - text = t(node.getId()); + String text = t(node.getId()); return text; } @@ -258,7 +254,7 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel if (node.isReferentielNode()) { - text = t(DecoratorService.getEntityLabel(ObserveTreeHelper.TREE_NODE_PREFIX, beanType)); + String text = t(DecoratorService.getEntityLabel(ObserveTreeHelper.TREE_NODE_PREFIX, beanType)); return text; } @@ -270,40 +266,33 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel // noeud d'un objet en cours de création - text = t(node.getContext()); + String text = t(node.getContext()); return text; } // noeud de donnée connue en base - Decorator<?> decorator = - getDecoratorService().getDecoratorByType(beanType); - if (getDataProvider() == null) { // data provider non utilisable - text = "No data provider opened to render " + id; + String text = "No data provider opened to render " + id; return text; } - DataSource source = getDataProvider().getDataSource(); + if (node instanceof EntityNodeSupport) { + EntityNodeSupport entityNodeSupport = (EntityNodeSupport) node; - if (source == null || !source.isOpen()) { + TopiaEntity entity = entityNodeSupport.getEntity(); + + Preconditions.checkNotNull(entity, "L'entité doit être chargée dans le noeud: " + node); + + Decorator<?> decorator = getDecoratorService().getDecoratorByType(beanType); + String text = decorator.toString(entity); - // source non utilisable - text = "No source opened to render " + id; return text; } - try { - text = source.decorateEntity(null, id, decorator); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not decorate entity " + id, e); - } - text = node.getId(); - } + throw new IllegalStateException("Don't know how to render node: " + node); - return text; } public Color getNavigationTextColor(ObserveNode node) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java new file mode 100644 index 0000000..6255437 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivityLonglineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.longline.ActivityLongline; +import fr.ird.observe.ui.tree.loadors.ActivityLonglineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class ActivityLonglineNode extends EntityNodeSupport<ActivityLongline> { + + private static final long serialVersionUID = 1L; + + public ActivityLonglineNode(ActivityLongline entity) { + super(ActivityLongline.class, entity, ObserveTreeHelper.getChildLoador(ActivityLonglineNodeChildLoador.class)); + } + + @Override + protected ActivityLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (ActivityLongline) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java new file mode 100644 index 0000000..89759cc --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ActivitySeineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.ui.tree.loadors.ActivitySeineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class ActivitySeineNode extends EntityNodeSupport<ActivitySeine> { + + private static final long serialVersionUID = 1L; + + public ActivitySeineNode(ActivitySeine entity) { + super(ActivitySeine.class, entity, ObserveTreeHelper.getChildLoador(ActivitySeineNodeChildLoador.class)); + } + + @Override + protected ActivitySeine getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (ActivitySeine) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java new file mode 100644 index 0000000..c3e9453 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/EntityNodeSupport.java @@ -0,0 +1,146 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.ObserveContext; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.OpenableEntity; +import fr.ird.observe.ui.tree.loadors.AbstractNodeChildLoador; +import jaxx.runtime.swing.nav.NavBridge; +import jaxx.runtime.swing.nav.NavDataProvider; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.TopiaEntity; + +import javax.swing.tree.DefaultTreeModel; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public abstract class EntityNodeSupport<E extends TopiaEntity> extends ObserveNode { + + /** Logger. */ + private static final Log log = LogFactory.getLog(EntityNodeSupport.class); + + private static final long serialVersionUID = 1L; + + /** + * Pour cacher l'entité attachée au noeud. + * Elle pourra être directement injectée pour éviter de la recharger (lors de la création d'un modèle initiale). + * + * @since 4.0 + */ + protected transient E entity; + + protected transient DataService dataService; + + private boolean reloadEntity; + + protected abstract E getEntity(DataService dataService, DataSource source) throws DataSourceException; + + protected EntityNodeSupport(Class<E> internalClass, E entity) { + this(internalClass, entity, null); + } + + protected EntityNodeSupport(Class<E> type, E entity, AbstractNodeChildLoador<?> childLoador) { + this(type, entity, null, childLoador); + } + + protected EntityNodeSupport(Class<E> type, E entity, String context, AbstractNodeChildLoador<?> childLoador) { + super(type, entity.getTopiaId(), context, childLoador, false); + setEntity(entity); + } + + @Override + public void populateNode(NavBridge<DefaultTreeModel, ObserveNode> bridge, + NavDataProvider provider, + boolean populateChilds) { + + + try { + super.populateNode(bridge, provider, populateChilds); + } finally { + reloadEntity = false; + } + + if (provider != null && id != null) { + + if (entity == null) { + + loadEntity((ObserveDataProvider) provider); + + } + + if (OpenableEntity.class.isAssignableFrom(entity.getClass())) { + open = ((OpenableEntity) entity).isOpen(); + + if (log.isDebugEnabled()) { + log.debug("Set open: " + open + " for entity: " + id); + } + + } + + } + + } + + @Override + public void setDirty(boolean dirty) { + super.setDirty(dirty); + + if (dirty && reloadEntity) { + entity = null; + } + + } + + public E getEntity() { + return entity; + } + + public void setEntity(E entity) { + this.entity = entity; + } + + + protected void loadEntity(ObserveDataProvider oProvider) { + + if (oProvider.getSelectionModel() != null) { + + if (log.isDebugEnabled()) { + log.debug("try to get entity from selectionModel " + internalClass + " : " + id); + } + entity = (E) oProvider.getSelectionModel().getEntityCache(id); + } + + if (entity == null) { + + if (log.isInfoEnabled()) { + log.info("will load entity " + internalClass.getSimpleName() + " : " + id); + } + + try { + entity = getEntity(getDataService(), oProvider.getDataSource()); + } catch (DataSourceException e) { + throw new RuntimeException(e); + } + + } + + } + + private DataService getDataService() { + if (dataService == null) { + dataService = ObserveContext.get().getDataService(); + } + return dataService; + } + + public void setReloadEntity(boolean reloadEntity) { + this.reloadEntity = reloadEntity; + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java new file mode 100644 index 0000000..222cff0 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/FloatingObjectSeineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.FloatingObject; +import fr.ird.observe.ui.tree.loadors.FloatingObjectNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class FloatingObjectSeineNode extends EntityNodeSupport<FloatingObject> { + + private static final long serialVersionUID = 1L; + + public FloatingObjectSeineNode(FloatingObject entity) { + super(FloatingObject.class, entity, ObserveTreeHelper.getChildLoador(FloatingObjectNodeChildLoador.class)); + } + + @Override + protected FloatingObject getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (FloatingObject) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java index 1527f37..0df4adf 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java @@ -46,6 +46,8 @@ public class ObserveDataProvider implements NavDataProvider { protected DataSelectionModel selectionModel; + private boolean creating; + public ObserveDataProvider(DataSource dataSource) { this.dataSource = dataSource; } @@ -80,4 +82,13 @@ public class ObserveDataProvider implements NavDataProvider { } return dataService; } + + public boolean isCreating() { + return creating; + } + + public void setCreating(boolean creating) { + this.creating = creating; + } + } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java index 5f08908..538a095 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java @@ -21,21 +21,12 @@ */ package fr.ird.observe.ui.tree; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.entities.OpenableEntity; import fr.ird.observe.entities.Trip; -import jaxx.runtime.swing.nav.NavBridge; -import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeNode; import jaxx.runtime.swing.nav.tree.NavTreeNodeChildLoador; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaEntity; - -import javax.swing.tree.DefaultTreeModel; /** * Le modèle d'une noeud. @@ -62,8 +53,6 @@ public class ObserveNode extends NavTreeNode<ObserveNode> { */ protected Boolean open; - protected transient DataService dataService; - public ObserveNode(String id, boolean referentiel) { this(String.class, id, null, null, referentiel); } @@ -94,7 +83,6 @@ public class ObserveNode extends NavTreeNode<ObserveNode> { } } - public boolean isDataNode() { return !referentiel; } @@ -108,59 +96,7 @@ public class ObserveNode extends NavTreeNode<ObserveNode> { } public boolean isTripNode() { - return isDataNode() && Trip.class.isAssignableFrom(internalClass); - } - - @Override - public void populateNode(NavBridge<DefaultTreeModel, ObserveNode> bridge, - NavDataProvider provider, - boolean populateChilds) { - - super.populateNode(bridge, provider, populateChilds); - - ObserveDataProvider oProvider = (ObserveDataProvider) provider; - - if (isStringNode()) { - return; - } - - if (isReferentielNode()) { - return; - } - - if (id == null) { - - // on est sur un noeud de création - return; - } - - try { - - if (TopiaEntity.class.isAssignableFrom(internalClass)) { - - if (log.isDebugEnabled()) { - log.debug("will load entity " + internalClass + " : " + id); - } - DataSource source = oProvider.getDataSource(); - TopiaEntity e = getDataService().loadEntity(source, id, true); - - if (OpenableEntity.class.isAssignableFrom(e.getClass())) { - open = ((OpenableEntity) e).isOpen(); - } - return; - } - } catch (DataSourceException e) { - throw new RuntimeException(e); - } - - throw new IllegalStateException("Can not populate node [" + internalClass + ":" + id + "]"); - } - - protected DataService getDataService() { - if (dataService == null) { - dataService = ObserveContext.get().getDataService(); - } - return dataService; + return isDataNode() && Trip.class.isAssignableFrom(internalClass); } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java index 0c7b126..f334560 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java @@ -162,17 +162,23 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { setDataSource(source); - ObserveNode node = new ObserveNode( - String.class, - "Root node", - null, - new RootNodeChildLoador(true, true), - false - ); - DefaultTreeModel model = createModel(node); - node.populateChilds(getBridge(), getDataProvider()); -// loadAllNodes(node, getDataProvider()); - return model; + ObserveDataProvider provider = getDataProvider(); + provider.setCreating(true); + + try { + + RootNodeChildLoador loador = new RootNodeChildLoador(true, true); + ObserveNode node = new ObserveNode(String.class, "Root node", null, loador, false); + + DefaultTreeModel model = createModel(node); + node.populateChilds(getBridge(), provider); + return model; + + } finally { + + provider.setCreating(false); + + } } public DefaultTreeModel createModel(JAXXContext context, @@ -186,16 +192,26 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { log.debug("create tree model " + this); } - ObserveDataProvider dataProvider = getDataProvider(); + ObserveDataProvider provider = getDataProvider(); + provider.setSelectionModel(dataModel); + provider.setCreating(true); - RootNodeChildLoador loador = getChildLoador(RootNodeChildLoador.class); - loador.setAddData(dataModel.isUseData()); - loador.setAddReferentiel(dataModel.isUseReferentiel()); - dataProvider.setSelectionModel(dataModel); - ObserveNode node = new ObserveNode(String.class, "Root node", loador, false); - DefaultTreeModel model = createModel(node); - loadAllNodes(node, getDataProvider()); - return model; + try { + + RootNodeChildLoador loador = getChildLoador(RootNodeChildLoador.class); + loador.setAddData(dataModel.isUseData()); + loador.setAddReferentiel(dataModel.isUseReferentiel()); + ObserveNode node = new ObserveNode(String.class, "Root node", loador, false); + + DefaultTreeModel model = createModel(node); + loadAllNodes(node, provider); + return model; + + } finally { + + provider.setCreating(false); + + } } @@ -500,9 +516,26 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { ObserveNode rootNode = getRootNode(); ObserveNode result = rootNode.getChild(bean.getTopiaId(), getBridge(), dataProvider); Preconditions.checkNotNull(result, "Could not find program node with id: " + bean.getTopiaId()); - refreshNode(result, false); + reloadNode(result, false); +// refreshNode(result, false); } + public void reloadSelectedNode(boolean refreshFromParent, boolean refreshChilds) { + ObserveNode node = getSelectedNode(); + ((EntityNodeSupport) node).setReloadEntity(true); + + if (refreshFromParent) { + node = node.getParent(); + } + refreshNode(node, refreshChilds); + } + + public void reloadNode(ObserveNode node, boolean refreshChilds) { + ((EntityNodeSupport) node).setReloadEntity(true); + refreshNode(node, refreshChilds); + } + + void setDataSource(DataSource source) { NavDataProvider provider = null; if (source != null) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java new file mode 100644 index 0000000..764f195 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramLonglineNode.java @@ -0,0 +1,29 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.referentiel.Program; +import fr.ird.observe.ui.tree.loadors.ProgramLonglineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class ProgramLonglineNode extends EntityNodeSupport<Program> { + + private static final long serialVersionUID = 1L; + + public ProgramLonglineNode(Program entity) { + super(Program.class, entity, entity.getGearType().name(), ObserveTreeHelper.getChildLoador(ProgramLonglineNodeChildLoador.class)); + setEntity(entity); + } + + @Override + protected Program getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (Program) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java new file mode 100644 index 0000000..28cbe29 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/ProgramSeineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.referentiel.Program; +import fr.ird.observe.ui.tree.loadors.ProgramSeineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class ProgramSeineNode extends EntityNodeSupport<Program> { + + private static final long serialVersionUID = 1L; + + public ProgramSeineNode(Program entity) { + super(Program.class, entity, entity.getGearType().name(), ObserveTreeHelper.getChildLoador(ProgramSeineNodeChildLoador.class)); + } + + @Override + protected Program getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (Program) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java new file mode 100644 index 0000000..25271b7 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/RouteSeineNode.java @@ -0,0 +1,27 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.Route; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class RouteSeineNode extends EntityNodeSupport<Route> { + + private static final long serialVersionUID = 1L; + + public RouteSeineNode(Route entity) { + super(Route.class, entity); + } + + @Override + protected Route getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (Route) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java new file mode 100644 index 0000000..af917d4 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetLonglineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.ui.tree.loadors.SetLonglineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class SetLonglineNode extends EntityNodeSupport<SetLongline> { + + private static final long serialVersionUID = 1L; + + public SetLonglineNode(SetLongline entity) { + super(SetLongline.class, entity, ObserveTreeHelper.getChildLoador(SetLonglineNodeChildLoador.class)); + } + + @Override + protected SetLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (SetLongline) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java new file mode 100644 index 0000000..2b97b33 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/SetSeineNode.java @@ -0,0 +1,28 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.ui.tree.loadors.SetSeineNodeChildLoador; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class SetSeineNode extends EntityNodeSupport<SetSeine> { + + private static final long serialVersionUID = 1L; + + public SetSeineNode(SetSeine entity) { + super(SetSeine.class, entity, ObserveTreeHelper.getChildLoador(SetSeineNodeChildLoador.class)); + } + + @Override + protected SetSeine getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (SetSeine) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java new file mode 100644 index 0000000..7a293f4 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java @@ -0,0 +1,27 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.longline.TripLongline; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class TripLonglineNode extends EntityNodeSupport<TripLongline> { + + private static final long serialVersionUID = 1L; + + public TripLonglineNode(TripLongline entity) { + super(TripLongline.class, entity); + } + + @Override + protected TripLongline getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (TripLongline) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java new file mode 100644 index 0000000..5d62616 --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/TripSeineNode.java @@ -0,0 +1,27 @@ +package fr.ird.observe.ui.tree; + +import fr.ird.observe.DataService; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; +import fr.ird.observe.entities.seine.TripSeine; + +/** + * Created on 4/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class TripSeineNode extends EntityNodeSupport<TripSeine> { + + private static final long serialVersionUID = 1L; + + public TripSeineNode(TripSeine entity) { + super(TripSeine.class, entity); + } + + @Override + protected TripSeine getEntity(DataService dataService, DataSource source) throws DataSourceException { + return (TripSeine) dataService.loadEntity(source, id, true); + } + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java index 2a786d6..766e3d3 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java @@ -102,8 +102,10 @@ public class ChangeTripProgramActionListener implements ActionListener { treeHelper.insertNode(newProgramNode, tripNode, position); newTripNode = tripNode; } - treeHelper.refreshNode(oldProgramNode, true); - treeHelper.refreshNode(newProgramNode, true); + treeHelper.reloadNode(oldProgramNode, true); + treeHelper.reloadNode(newProgramNode, true); +// treeHelper.refreshNode(oldProgramNode, true); +// treeHelper.refreshNode(newProgramNode, true); treeHelper.selectNode(newTripNode); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java index 9029597..e337d03 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglineNodeChildLoador.java @@ -22,13 +22,13 @@ package fr.ird.observe.ui.tree.loadors; * #L% */ -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.ui.tree.ActivityLonglineNode; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.SetLonglineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; @@ -68,13 +68,8 @@ public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Str } { - DataSource source = getDataSource(dataProvider); - DataService service = getDataService(); - ActivityLongline activity = (ActivityLongline) service.loadEntity( - source, - containerNode.getId(), - false); + ActivityLongline activity = ((ActivityLonglineNode) parentNode).getEntity(); SetLongline setLongline = activity.getSetLongline(); if (setLongline != null) { @@ -113,12 +108,9 @@ public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Str if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode child = new ObserveNode( - SetLongline.class, - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(SetLonglineNodeChildLoador.class), - false - ); + + ObserveNode child = new SetLonglineNode(data); return child; + } } \ No newline at end of file diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java index 006849a..f58994d 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java @@ -22,11 +22,11 @@ package fr.ird.observe.ui.tree.loadors; * #L% */ +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.longline.ActivityLongline; -import fr.ird.observe.entities.longline.ActivityLonglines; -import fr.ird.observe.entities.longline.TripLongline; +import fr.ird.observe.ui.tree.ActivityLonglineNode; +import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; -import fr.ird.observe.ui.tree.ObserveTreeHelper; import jaxx.runtime.swing.nav.NavDataProvider; import java.util.List; @@ -37,21 +37,21 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class ActivityLonglinesNodeChildLoador extends AbstractAssociationNodeChildLoador<ActivityLongline> { +public class ActivityLonglinesNodeChildLoador extends AbstractNodeChildLoador<ActivityLongline> { private static final long serialVersionUID = 1L; public ActivityLonglinesNodeChildLoador() { - super(ActivityLongline.class, TripLongline.PROPERTY_ACTIVITY_LONGLINE); + super(ActivityLongline.class); } @Override public List<ActivityLongline> getData(Class<?> parentClass, - String parentId, - NavDataProvider dataProvider) throws Exception { + String parentId, + NavDataProvider dataProvider) throws Exception { - List<ActivityLongline> data = super.getData(parentClass, parentId, dataProvider); - ActivityLonglines.sort(data); + DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); + List<ActivityLongline> data = getDataService().getActivityLonglineStubByTrip(dataSource, parentId); return data; } @@ -62,12 +62,8 @@ public class ActivityLonglinesNodeChildLoador extends AbstractAssociationNodeChi throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - ActivityLongline.class, - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(ActivityLonglineNodeChildLoador.class), - false - ); + ObserveNode result = new ActivityLonglineNode(data); return result; + } } \ No newline at end of file diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java index 7c17abc..6b69659 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java @@ -21,16 +21,21 @@ */ package fr.ird.observe.ui.tree.loadors; -import fr.ird.observe.DataService; import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.FloatingObject; import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.ui.tree.ActivitySeineNode; +import fr.ird.observe.ui.tree.FloatingObjectSeineNode; +import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.SetSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; +import java.util.List; + import static org.nuiton.i18n.I18n.n; /** @@ -39,7 +44,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLoador<FloatingObject> { +public class ActivitySeineNodeChildLoador extends AbstractNodeChildLoador<FloatingObject> { private static final long serialVersionUID = 1L; @@ -48,7 +53,7 @@ public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLo } public ActivitySeineNodeChildLoador() { - super(FloatingObject.class, ActivitySeine.PROPERTY_FLOATING_OBJECT); + super(FloatingObject.class); } @Override @@ -68,13 +73,7 @@ public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLo parentNode.add(child); - DataSource source = getDataSource(dataProvider); - DataService service = getDataService(); - - ActivitySeine activitySeine = (ActivitySeine) service.loadEntity( - source, - containerNode.getId(), - false); + ActivitySeine activitySeine = ((ActivitySeineNode) parentNode).getEntity(); SetSeine set = activitySeine.getSetSeine(); if (set != null) { @@ -92,13 +91,10 @@ public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLo if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode child = new ObserveNode( - SetSeine.class, - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(SetSeineNodeChildLoador.class), - false - ); + + SetSeineNode child = new SetSeineNode(data); return child; + } @Override @@ -106,12 +102,21 @@ public class ActivitySeineNodeChildLoador extends AbstractAssociationNodeChildLo if (data == null) { throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - getBeanType(), - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(FloatingObjectNodeChildLoador.class), - false - ); + + FloatingObjectSeineNode result = new FloatingObjectSeineNode(data); return result; + } + + @Override + public List<FloatingObject> getData(Class<?> parentClass, + String parentId, + NavDataProvider dataProvider) throws Exception { + + DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); + List<FloatingObject> data = getDataService().getFloatinObjectStubByActivitySeine(dataSource, parentId); + return data; + + } + } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java index bf40915..e612b52 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeinesNodeChildLoador.java @@ -21,11 +21,11 @@ */ package fr.ird.observe.ui.tree.loadors; +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.ActivitySeine; -import fr.ird.observe.entities.seine.ActivitySeines; -import fr.ird.observe.entities.seine.Route; +import fr.ird.observe.ui.tree.ActivitySeineNode; +import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; -import fr.ird.observe.ui.tree.ObserveTreeHelper; import jaxx.runtime.swing.nav.NavDataProvider; import java.util.List; @@ -36,22 +36,24 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ActivitySeinesNodeChildLoador extends AbstractAssociationNodeChildLoador<ActivitySeine> { +public class ActivitySeinesNodeChildLoador extends AbstractNodeChildLoador<ActivitySeine> { private static final long serialVersionUID = 1L; public ActivitySeinesNodeChildLoador() { - super(ActivitySeine.class, Route.PROPERTY_ACTIVITY_SEINE); + super(ActivitySeine.class); } @Override public List<ActivitySeine> getData(Class<?> parentClass, - String parentId, - NavDataProvider dataProvider) throws Exception { + String parentId, + NavDataProvider dataProvider) throws Exception { - List<ActivitySeine> data = super.getData(parentClass, parentId, dataProvider); - ActivitySeines.sort(data); + + DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); + List<ActivitySeine> data = getDataService().getActivitySeineStubByRoute(dataSource, parentId); return data; + } @Override @@ -60,12 +62,8 @@ public class ActivitySeinesNodeChildLoador extends AbstractAssociationNodeChildL throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - ActivitySeine.class, - data.getTopiaId(), - ObserveTreeHelper.getChildLoador(ActivitySeineNodeChildLoador.class), - false - ); + ActivitySeineNode result = new ActivitySeineNode(data); return result; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java index b76637a..2d2f034 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramLonglineNodeChildLoador.java @@ -28,6 +28,7 @@ import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.TripLonglineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; import org.apache.commons.collections.CollectionUtils; @@ -90,13 +91,13 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Trip List<String> tripIds = selectionModel.getDatas().get(parentId); if (!CollectionUtils.isEmpty(tripIds)) { for (String tripId : tripIds) { - result.add((TripLongline) service.loadEntity(dataSource, tripId, true)); + result.add((TripLongline) selectionModel.getEntityCache(tripId)); } } } else { - result = service.getTripLonglineByProgram(dataSource, parentId, false); + result = service.getTripLonglineStubByProgram(dataSource, parentId); } @@ -111,12 +112,8 @@ public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<Trip throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - TripLongline.class, - data.getTopiaId(), - null, - false - ); + + ObserveNode result = new TripLonglineNode(data); if (addActivities) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java index 4a23ead..204dd65 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ProgramSeineNodeChildLoador.java @@ -27,6 +27,7 @@ import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.TripSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeBridge; import org.apache.commons.collections.CollectionUtils; @@ -87,12 +88,13 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSei List<String> tripIds = selectionModel.getDatas().get(parentId); if (!CollectionUtils.isEmpty(tripIds)) { for (String tripId : tripIds) { - result.add((TripSeine) service.loadEntity(dataSource, tripId, true)); + result.add((TripSeine) selectionModel.getEntityCache(tripId)); } } } else { - result = service.getTripSeineByProgram(dataSource, parentId, false); + result = service.getTripSeineStubByProgram(dataSource, parentId); + } return result; } @@ -104,12 +106,7 @@ public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<TripSei throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - getBeanType(), - data.getTopiaId(), - null, - false - ); + ObserveNode result = new TripSeineNode(data); if (addChilds) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java index bcf28d7..fa7f62c 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java @@ -29,6 +29,8 @@ import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.Programs; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.ProgramLonglineNode; +import fr.ird.observe.ui.tree.ProgramSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; import java.util.ArrayList; @@ -84,7 +86,7 @@ public class RootNodeChildLoador extends AbstractNodeChildLoador<Program> { if (selectionModel != null) { data = new ArrayList<Program>(); for (String programId : selectionModel.getDatas().keySet()) { - data.add((Program) service.loadEntity(dataSource, programId, true)); + data.add((Program) selectionModel.getEntityCache(programId)); } } else { data = service.loadDecoratedEntities(dataSource, getBeanType()); @@ -145,20 +147,12 @@ public class RootNodeChildLoador extends AbstractNodeChildLoador<Program> { case seine: - result = new ObserveNode(getBeanType(), - data.getTopiaId(), - gearType.name(), - ObserveTreeHelper.getChildLoador(ProgramSeineNodeChildLoador.class), - false); + result = new ProgramSeineNode(data); break; case longline: - result = new ObserveNode(getBeanType(), - data.getTopiaId(), - gearType.name(), - ObserveTreeHelper.getChildLoador(ProgramLonglineNodeChildLoador.class), - false); + result = new ProgramLonglineNode(data); break; default: diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java index b96e7af..476ce74 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RoutesNodeChildLoador.java @@ -21,11 +21,12 @@ */ package fr.ird.observe.ui.tree.loadors; +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.Route; -import fr.ird.observe.entities.seine.Routes; -import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.RouteSeineNode; import jaxx.runtime.swing.nav.NavDataProvider; import java.util.List; @@ -38,15 +39,16 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class RoutesNodeChildLoador extends AbstractAssociationNodeChildLoador<Route> { +public class RoutesNodeChildLoador extends AbstractNodeChildLoador<Route> { private static final long serialVersionUID = 1L; static { n("observe.tree.activitySeine"); } + public RoutesNodeChildLoador() { - super(Route.class, TripSeine.PROPERTY_ROUTE); + super(Route.class); } @Override @@ -54,9 +56,11 @@ public class RoutesNodeChildLoador extends AbstractAssociationNodeChildLoador<Ro String parentId, NavDataProvider dataProvider) throws Exception { - List<Route> data = super.getData(parentClass, parentId, dataProvider); - Routes.sort(data); + + DataSource dataSource = ((ObserveDataProvider) dataProvider).getDataSource(); + List<Route> data = getDataService().getRouteStubByTrip(dataSource, parentId); return data; + } @Override @@ -66,12 +70,7 @@ public class RoutesNodeChildLoador extends AbstractAssociationNodeChildLoador<Ro throw new NullPointerException("Ne peut pas ajouter un objet null"); } - ObserveNode result = new ObserveNode( - getBeanType(), - data.getTopiaId(), - null, - false - ); + ObserveNode result = new RouteSeineNode(data); // Creation d'un node activites ObserveNode child = ObserveTreeHelper.createStringNode(Route.PROPERTY_ACTIVITY_SEINE, ActivitySeinesNodeChildLoador.class); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 08bde7b11fa03cded69be98eaffdf2bb2f8a557e Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:49:23 2015 +0200 refs #6914 utilisation des listes simplfiées aussi dans les écrans de liste --- .../list/impl/longline/ActivityLonglinesUIHandler.java | 16 +++++++++++++--- .../list/impl/longline/TripLonglinesUIHandler.java | 10 ++++------ .../content/list/impl/seine/ActivitySeinesUIHandler.java | 16 +++++++++++++--- .../ui/content/list/impl/seine/RoutesUIHandler.java | 12 ++++++++++-- .../ui/content/list/impl/seine/TripSeinesUIHandler.java | 10 ++++------ 5 files changed, 44 insertions(+), 20 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java index 8e9dcf9..9112209 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java @@ -22,7 +22,10 @@ package fr.ird.observe.ui.content.list.impl.longline; * #L% */ +import fr.ird.observe.DataService; import fr.ird.observe.db.DataContext; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.entities.longline.TripLongline; @@ -106,12 +109,19 @@ public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglin } @Override - protected List<ActivityLongline> getChilds(TripLongline bean) { - List<ActivityLongline> list = bean.getActivityLongline(); + protected List<ActivityLongline> getChilds(TripLongline bean) throws DataSourceException { + + DataSource source = getDataSource(); + DataService dataService = getDataService(); + + List<ActivityLongline> list = dataService.getActivityLonglineStubByTrip(source, bean.getTopiaId()); + if (log.isDebugEnabled()) { - log.debug("Will use " + (list == null ? 0 : list.size()) + " activities."); + log.debug("Will use " + list.size() + " activities."); } + return list; + } } \ No newline at end of file diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java index bf213cb..7cbc914 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -34,7 +34,6 @@ import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import java.util.Collections; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -94,19 +93,18 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<Program, TripLo @Override protected List<TripLongline> getChilds(Program bean) throws DataSourceException { + DataSource source = getDataSource(); DataService dataService = getDataService(); - List<TripLongline> list = - dataService.getTripLonglineByProgram(source, bean.getTopiaId(), true); + List<TripLongline> list = dataService.getTripLonglineStubByProgram(source, bean.getTopiaId()); - if (list == null) { - list = Collections.emptyList(); - } if (log.isDebugEnabled()) { log.debug("Will use " + list.size() + " trips."); } + return list; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java index d769864..2a1aab7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java @@ -21,7 +21,10 @@ */ package fr.ird.observe.ui.content.list.impl.seine; +import fr.ird.observe.DataService; import fr.ird.observe.db.DataContext; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.Route; @@ -104,12 +107,19 @@ public class ActivitySeinesUIHandler extends ContentListUIHandler<Route, Activit } @Override - protected List<ActivitySeine> getChilds(Route bean) { - List<ActivitySeine> list = bean.getActivitySeine(); + protected List<ActivitySeine> getChilds(Route bean) throws DataSourceException { + + DataSource source = getDataSource(); + DataService dataService = getDataService(); + + List<ActivitySeine> list = dataService.getActivitySeineStubByRoute(source, bean.getTopiaId()); + if (log.isDebugEnabled()) { - log.debug("Will use " + (list == null ? 0 : list.size()) + " activities."); + log.debug("Will use " + list.size() + " activities."); } + return list; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java index 92231db..3a33ceb 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java @@ -21,7 +21,9 @@ */ package fr.ird.observe.ui.content.list.impl.seine; +import fr.ird.observe.DataService; import fr.ird.observe.db.DataContext; +import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.seine.Route; @@ -103,11 +105,17 @@ public class RoutesUIHandler extends ContentListUIHandler<TripSeine, Route> { @Override protected List<Route> getChilds(TripSeine bean) throws DataSourceException { - List<Route> list = bean.getRoute(); + + DataSource source = getDataSource(); + DataService dataService = getDataService(); + + List<Route> list = dataService.getRouteStubByTrip(source, bean.getTopiaId()); if (log.isDebugEnabled()) { - log.debug("Will use " + (list == null ? 0 : list.size()) + " routes."); + log.debug("Will use " + list.size() + " routes."); } + return list; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java index 76f4bc5..7eb1ee1 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -33,7 +33,6 @@ import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import java.util.Collections; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -91,18 +90,17 @@ public class TripSeinesUIHandler extends ContentListUIHandler<Program, TripSeine @Override protected List<TripSeine> getChilds(Program bean) throws DataSourceException { + DataSource source = getDataSource(); DataService dataService = getDataService(); - List<TripSeine> list = - dataService.getTripSeineByProgram(source, bean.getTopiaId(), true); + List<TripSeine> list = dataService.getTripSeineStubByProgram(source, bean.getTopiaId()); - if (list == null) { - list = Collections.emptyList(); - } if (log.isDebugEnabled()) { log.debug("Will use " + list.size() + " trips."); } + return list; + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 3c6245cce5faa894ac9c3b48d43b81578d3ddde7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 9 08:53:43 2015 +0200 refs #6914 suppression d'un chargeur de noeud par association (trop couteux) --- .../AbstractAssociationNodeChildLoador.java | 68 ---------------------- 1 file changed, 68 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractAssociationNodeChildLoador.java b/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractAssociationNodeChildLoador.java deleted file mode 100644 index cc3c07f..0000000 --- a/observe-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractAssociationNodeChildLoador.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * #%L - * ObServe :: Swing - * %% - * Copyright (C) 2008 - 2010 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% - */ -package fr.ird.observe.ui.tree.loadors; - -import fr.ird.observe.DataService; -import fr.ird.observe.db.DataSource; -import jaxx.runtime.swing.nav.NavDataProvider; -import org.nuiton.topia.persistence.TopiaEntity; - -import java.util.List; - -/** - * Le chargeur des noeuds de marees. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public abstract class AbstractAssociationNodeChildLoador<O extends TopiaEntity> extends AbstractNodeChildLoador<O> { - - private static final long serialVersionUID = 1L; - - protected final String associationName; - - public AbstractAssociationNodeChildLoador(Class<O> internalClass, - String associationName) { - super(internalClass); - this.associationName = associationName; - } - - public String getAssociationName() { - return associationName; - } - - @Override - public List<O> getData(Class<?> parentClass, - String parentId, - NavDataProvider dataProvider) throws Exception { - - DataSource source = getDataSource(dataProvider); - DataService service = getDataService(); - - List<O> result = service.loadEntityAssociation(source, - getBeanType(), - getAssociationName(), - parentId); - return result; - } - -} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 7e2a04dc1772ca8d049d1ed705d507f6704fa1d7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 10 16:43:27 2015 +0200 refs 6934 ajout d'une migration 4.0-RC2 --- .../migration/AbstractDataSourceMigration.java | 3 +- .../DataSourceMigrationForVersion_4_0_RC2.java | 89 ++++++++++++++++++++++ .../db/4.0-RC2/clean-program-gear-type-H2.sql | 6 ++ .../db/4.0-RC2/clean-program-gear-type-PG.sql | 5 ++ .../src/main/xmi/observe-common.properties | 2 +- .../src/main/xmi/observe-longline.properties | 2 +- .../src/main/xmi/observe-seine.properties | 2 +- 7 files changed, 105 insertions(+), 4 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java index c06246a..19d34b2 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java @@ -74,10 +74,11 @@ public abstract class AbstractDataSourceMigration extends TopiaMigrationCallback public static final Version V_3_15 = Versions.valueOf("3.15"); public static final Version V_3_16 = Versions.valueOf("3.16"); + public static final Version V_4_0_RC2 = Versions.valueOf("4.0-RC2"); /** Les versions de mise à jour disponibles. */ public static final Version[] availableVersions = new Version[]{ - V_3_1, V_3_5, V_3_7, V_3_8, V_3_9, V_3_10, V_3_11, V_3_12, V_3_14, V_3_15, V_3_16 + V_3_1, V_3_5, V_3_7, V_3_8, V_3_9, V_3_10, V_3_11, V_3_12, V_3_14, V_3_15, V_3_16,V_4_0_RC2 }; private static Supplier<ApplicationConfig> applicationConfigSupplier; diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_RC2.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_RC2.java new file mode 100644 index 0000000..a782edc --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_RC2.java @@ -0,0 +1,89 @@ +package fr.ird.observe.entities.migration.versions; + +import fr.ird.observe.entities.migration.AbstractDataSourceMigration; +import fr.ird.observe.entities.migration.AbstractObserveMigrationCallBack; +import fr.ird.observe.entities.migration.H2DataSourceMigration; +import fr.ird.observe.entities.migration.PGDataSourceMigration; +import org.hibernate.jdbc.Work; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImplementor; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Created on 4/10/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0-RC2 + */ +public class DataSourceMigrationForVersion_4_0_RC2 extends AbstractObserveMigrationCallBack { + + public DataSourceMigrationForVersion_4_0_RC2(AbstractDataSourceMigration callBack, String scriptSuffix) { + super(AbstractDataSourceMigration.V_4_0_RC2, callBack, scriptSuffix); + } + + @Override + protected void prepareMigrationScript(TopiaContextImplementor tx, + List<String> queries, + boolean showSql, + boolean showProgression) throws TopiaException { + + + // recherche du nom de la constrainte + final Set<String> result = new HashSet<String>(); + + tx.getHibernate().doWork(new Work() { + + @Override + public void execute(Connection connection) throws SQLException { + + String sql = "select distinct (geartype||'') from observe_common.program"; + { + PreparedStatement ps = connection.prepareStatement(sql); + try { + ResultSet set = ps.executeQuery(); + while (set.next()) { + String gearType = set.getString(1); + result.add(gearType); + } + + } catch (Exception e) { + throw new SQLException("Could not obtain program gear types", e); + } finally { + ps.close(); + } + } + + } + }); + + if (result.contains("seine")) { + + addScript("clean-program-gear-type", queries); + } + + } + + public static class H2DataSourceMigrationForVersion extends DataSourceMigrationForVersion_4_0_RC2 { + + public H2DataSourceMigrationForVersion(AbstractDataSourceMigration callBack) { + super(callBack, H2DataSourceMigration.TYPE); + } + + } + + public static class PGDataSourceMigrationForVersion extends DataSourceMigrationForVersion_4_0_RC2 { + + public PGDataSourceMigrationForVersion(AbstractDataSourceMigration callBack) { + super(callBack, PGDataSourceMigration.TYPE); + } + + } + +} diff --git a/observe-entities/src/main/resources/db/4.0-RC2/clean-program-gear-type-H2.sql b/observe-entities/src/main/resources/db/4.0-RC2/clean-program-gear-type-H2.sql new file mode 100644 index 0000000..42561b2 --- /dev/null +++ b/observe-entities/src/main/resources/db/4.0-RC2/clean-program-gear-type-H2.sql @@ -0,0 +1,6 @@ +ALTER TABLE observe_common.program ADD COLUMN geartype2 int; +UPDATE observe_common.program set geartype2 = 0 WHERE geartype='seine'; +UPDATE observe_common.program set geartype2 = 1 WHERE geartype='longline'; +ALTER TABLE observe_common.program DROP COLUMN geartype; +ALTER TABLE observe_common.program ALTER COLUMN geartype2 RENAME TO geartype; + diff --git a/observe-entities/src/main/resources/db/4.0-RC2/clean-program-gear-type-PG.sql b/observe-entities/src/main/resources/db/4.0-RC2/clean-program-gear-type-PG.sql new file mode 100644 index 0000000..564f7dc --- /dev/null +++ b/observe-entities/src/main/resources/db/4.0-RC2/clean-program-gear-type-PG.sql @@ -0,0 +1,5 @@ +ALTER TABLE observe_common.program ADD COLUMN geartype2 int; +UPDATE observe_common.program set geartype2 = 0 WHERE geartype='seine'; +UPDATE observe_common.program set geartype2 = 1 WHERE geartype='longline'; +ALTER TABLE observe_common.program DROP COLUMN geartype; +ALTER TABLE observe_common.program RENAME geartype2 TO geartype; \ No newline at end of file diff --git a/observe-entities/src/main/xmi/observe-common.properties b/observe-entities/src/main/xmi/observe-common.properties index 1a1328d..23d3817 100644 --- a/observe-entities/src/main/xmi/observe-common.properties +++ b/observe-entities/src/main/xmi/observe-common.properties @@ -19,7 +19,7 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -model.tagvalue.version=3.16 +model.tagvalue.version=4.0-RC2 model.tagvalue.notGenerateToString=true model.tagvalue.generateOperatorForDAOHelper=true model.tagvalue.generateStandaloneEnumForDAOHelper=true diff --git a/observe-entities/src/main/xmi/observe-longline.properties b/observe-entities/src/main/xmi/observe-longline.properties index 37f3b3f..b13b38b 100644 --- a/observe-entities/src/main/xmi/observe-longline.properties +++ b/observe-entities/src/main/xmi/observe-longline.properties @@ -19,7 +19,7 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -model.tagvalue.version=3.16 +model.tagvalue.version=4.0-RC2 model.tagvalue.notGenerateToString=true model.tagvalue.generateOperatorForDAOHelper=true model.tagvalue.generateStandaloneEnumForDAOHelper=true diff --git a/observe-entities/src/main/xmi/observe-seine.properties b/observe-entities/src/main/xmi/observe-seine.properties index 10eb046..88335fb 100644 --- a/observe-entities/src/main/xmi/observe-seine.properties +++ b/observe-entities/src/main/xmi/observe-seine.properties @@ -20,7 +20,7 @@ # #L% ### -model.tagvalue.version=3.16 +model.tagvalue.version=4.0-RC2 model.tagvalue.notGenerateToString=true model.tagvalue.generateOperatorForDAOHelper=true model.tagvalue.generateStandaloneEnumForDAOHelper=true -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit bd6b92f34f0403d25082c55aa56884f05d5803ed Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 10 16:44:31 2015 +0200 ne pas faire de migration lors des tests --- .../fr/ird/observe/its/replication/H2LonglineReplicateDataTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/observe-business/src/test/java/fr/ird/observe/its/replication/H2LonglineReplicateDataTest.java b/observe-business/src/test/java/fr/ird/observe/its/replication/H2LonglineReplicateDataTest.java index 3788eae..7d26a8a 100644 --- a/observe-business/src/test/java/fr/ird/observe/its/replication/H2LonglineReplicateDataTest.java +++ b/observe-business/src/test/java/fr/ird/observe/its/replication/H2LonglineReplicateDataTest.java @@ -70,7 +70,7 @@ public class H2LonglineReplicateDataTest extends AbstractReplicateDataTest { File dir = new File(getTestDir(getClass()), "localDB_" + name); - DataSource dataSource = DBTestHelper.createAndOpenFromDump(dir, sourceDbDump.toURI().toURL(), false, false, true, true, true); + DataSource dataSource = DBTestHelper.createAndOpenFromDump(dir, sourceDbDump.toURI().toURL(), false, false, false, true, true); return dataSource; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 7b0afb861c1199c9cce15e717f04d9168c6bcba4 Merge: bd6b92f 1be23f3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 10 17:05:20 2015 +0200 fixes #6914: Amélioration des temps d'ouverture de l'arbre de navigation Merge branch 'feature/6914' into develop .../src/main/java/fr/ird/observe/DataService.java | 202 ++++++++++++++++++++- .../ird/observe/db/model/DataSelectionModel.java | 3 +- .../ird/observe/entities/constants/GearType.java | 11 ++ .../entities/longline/ActivityLonglineDAOImpl.java | 63 +++++-- .../entities/longline/TripLonglineDAOImpl.java | 58 +++++- .../entities/referentiel/ProgramDAOImpl.java | 101 +++++++++++ .../entities/seine/ActivitySeineDAOImpl.java | 61 +++++-- .../entities/seine/FloatingObjectDAOImpl.java | 58 ++++-- .../ird/observe/entities/seine/RouteDAOImpl.java | 57 ++++-- .../observe/entities/seine/TripSeineDAOImpl.java | 62 +++++-- .../ird/observe/ui/tree/ActivityLonglineNode.java | 2 +- .../fr/ird/observe/ui/tree/ActivitySeineNode.java | 2 +- .../observe/ui/tree/FloatingObjectSeineNode.java | 2 +- .../ird/observe/ui/tree/ProgramLonglineNode.java | 2 +- .../fr/ird/observe/ui/tree/ProgramSeineNode.java | 2 +- .../fr/ird/observe/ui/tree/RouteSeineNode.java | 2 +- .../fr/ird/observe/ui/tree/TripLonglineNode.java | 2 +- .../java/fr/ird/observe/ui/tree/TripSeineNode.java | 2 +- .../loadors/ActivityLonglineNodeChildLoador.java | 2 + .../loadors/ActivitySeinesNodeChildLoador.java | 1 - .../loadors/FloatingObjectNodeChildLoador.java | 4 +- .../loadors/ProgramLonglineNodeChildLoador.java | 1 - .../tree/loadors/ProgramSeineNodeChildLoador.java | 1 + .../ui/tree/loadors/RootNodeChildLoador.java | 9 +- .../ui/tree/loadors/RoutesNodeChildLoador.java | 3 +- .../tree/loadors/SetLonglineNodeChildLoador.java | 4 +- .../ui/tree/loadors/SetSeineNodeChildLoador.java | 1 + 27 files changed, 625 insertions(+), 93 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm