branch feature/8429 updated (442712c -> 905a69b)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git discards 442712c ajout API getChild pour remplacer l'API findNodeById discards 664c833 meilleure gestion de l'affichage des nœuds discards ea7bbac gestion des nœuds de création discards 6550c4c meilleure remontée de données discards 7024c82 refs #8429 continue les adaptations sur les arbres discards 3b284ce refs #8429 revue des nœud de chargement et utilisation de NavigationService discards 8e940a0 refs #8429 Ajout méthodes utiles discards 4b115ba refs #8429 Ajout service pour charger l'arbre de navigation discards a575b86 ne pas pas afficher les erreurs sur la base locale si cela n'est pas important discards 2be9f25 refs #8429 : réusinage des arbres discards 9a3d4b2 Amélioration paquetage de binders discards 3ba973b On repasse en sélection automatique sinon l'arbre ne se charge plus bien (en attendant de revoir l'API d'arbre) discards d940f3f Clean code discards 01cdc7a Ajout de Program.tripCount pour optimiser le chargement dans l'arbre de naigation discards c7c48e9 meilleure gestion du faction, réusinage des actions, ajout des actions globales discards 0757412 clean code + ne plus étendre l'arbre automatiquement discards 99177ba Ajout de raccourci clavier sur les actions des formulaires discards 3e8fa18 Introduction de ObserveFocusManager et réusinage des ui (amélioration de la généricité + nouvel héritage pour les référentiels i18n) discards 1bde3fb Gestion du focus sur les écrans d'édition (reste juste le référentiel à faire) discards 54e56f1 Ajout raccourci clavier sur les listes déroulantes new 150fc03 Gérer les associations ordonnées (avec colonne _idx) lors de la réplication des entités new 82b701f Suppression d'une api obsolète new 8b5270a refs #8554 Ajout de logs sur le sql new 160c3dd refs #8554 : changement de la configuration du pool de connections new 9d34e50 Ajout raccourci clavier sur les listes déroulantes new f3617cd Gestion du focus sur les écrans d'édition (reste juste le référentiel à faire) new 6781948 Introduction de ObserveFocusManager et réusinage des ui (amélioration de la généricité + nouvel héritage pour les référentiels i18n) new 946b44c Ajout de raccourci clavier sur les actions des formulaires new 21627b9 clean code + ne plus étendre l'arbre automatiquement new 8357698 meilleure gestion du faction, réusinage des actions, ajout des actions globales new 6035bd0 Ajout de Program.tripCount pour optimiser le chargement dans l'arbre de naigation new 090748a Clean code new 67e39b8 On repasse en sélection automatique sinon l'arbre ne se charge plus bien (en attendant de revoir l'API d'arbre) new ec6c26c Amélioration paquetage de binders new fe96e92 refs #8429 : réusinage des arbres new bed31c0 ne pas pas afficher les erreurs sur la base locale si cela n'est pas important new 7c376d4 refs #8429 Ajout service pour charger l'arbre de navigation new a2957b3 refs #8429 Ajout méthodes utiles new 946c8f9 refs #8429 revue des nœud de chargement et utilisation de NavigationService new 628c272 refs #8429 continue les adaptations sur les arbres new b1782db meilleure remontée de données new 5682241 gestion des nœuds de création new e25e7ae meilleure gestion de l'affichage des nœuds new 2d34b2d ajout API getChild pour remplacer l'API findNodeById new abd3d69 refs #8429 meilleure gestion du focus dans les assistants de base + suppression code mort new 6804ee8 refs #8554 Ajout de logs sur le sql new e67fb09 refs #8429 fix referential access new 905a69b [iso] clean code This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (442712c) \ N -- N -- N refs/heads/feature/8429 (905a69b) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omits" are not gone; other references still refer to them. Any revisions marked "discards" are gone forever. The 28 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 905a69b8081b6d43f275b6a7b4b497409b8b57ad Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:21:42 2016 +0100 [iso] clean code commit e67fb0956d32a522ea32aa91c96ee243c64ddaa1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:21:14 2016 +0100 refs #8429 fix referential access commit 6804ee830bd419d64a2c416030cd8ed9319e5ed7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:20:11 2016 +0100 refs #8554 Ajout de logs sur le sql commit abd3d69ee3c260e40844306c9712207d3d4cad06 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 09:11:21 2016 +0100 refs #8429 meilleure gestion du focus dans les assistants de base + suppression code mort commit 2d34b2d3a547d43f742c75c2991a073f889391b8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 23 09:18:14 2016 +0100 ajout API getChild pour remplacer l'API findNodeById commit e25e7aeec3d9ef0ea8e320a22695614f877207ee Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 23 09:17:47 2016 +0100 meilleure gestion de l'affichage des nœuds commit 5682241e89918ba47c7a7fd665059d463946d4f3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 18:13:55 2016 +0100 gestion des nœuds de création commit b1782dbb4283ce9b18e8a3974e2581598856969a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 18:13:35 2016 +0100 meilleure remontée de données commit 628c272fed4e830f1b1a0fe910662871a2b6f844 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:15:26 2016 +0100 refs #8429 continue les adaptations sur les arbres commit 946c8f9015acc618731f5857b9ca68df48c0dba8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:14:26 2016 +0100 refs #8429 revue des nœud de chargement et utilisation de NavigationService commit a2957b3603984c17b97140fbbc86a5d87a8e4428 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:13:15 2016 +0100 refs #8429 Ajout méthodes utiles commit 7c376d4b872107c50dec5d488c96db207bea8345 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:12:40 2016 +0100 refs #8429 Ajout service pour charger l'arbre de navigation commit bed31c0eba0b6951db1a49356ba606746f5c7998 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 21 09:25:52 2016 +0100 ne pas pas afficher les erreurs sur la base locale si cela n'est pas important commit fe96e92e9d3e3c9f7d0f22376623df49fc212c07 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 21 07:57:52 2016 +0100 refs #8429 : réusinage des arbres commit ec6c26ced3320ffc19efdcb8771b6fd1bc9c940d Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 18 21:59:33 2016 +0100 Amélioration paquetage de binders commit 67e39b8c06cbc283600afca2c872469edb7299c9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 14 09:12:23 2016 +0100 On repasse en sélection automatique sinon l'arbre ne se charge plus bien (en attendant de revoir l'API d'arbre) commit 090748a5234462aacc78d9d6bf1b77f94af25544 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 14 09:11:44 2016 +0100 Clean code commit 6035bd0df1eb1d03428e59561f1fab6607ba4388 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 14 09:11:25 2016 +0100 Ajout de Program.tripCount pour optimiser le chargement dans l'arbre de naigation commit 8357698a5edcfa54ce08177117fbc421690be78b Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 13 20:13:56 2016 +0100 meilleure gestion du faction, réusinage des actions, ajout des actions globales commit 21627b9f7346371f9eb7a846cf8169f9c3ad9b84 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 10 12:12:03 2016 +0100 clean code + ne plus étendre l'arbre automatiquement commit 946b44c4142e6dbe164fdaf19893c1883596e643 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 10 11:56:57 2016 +0100 Ajout de raccourci clavier sur les actions des formulaires commit 678194870c37a286713de2ca7239c4ede2afe432 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 9 16:13:31 2016 +0100 Introduction de ObserveFocusManager et réusinage des ui (amélioration de la généricité + nouvel héritage pour les référentiels i18n) commit f3617cd007ac56a3e56de13cf8eb7ebc00e668a4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 8 20:20:34 2016 +0100 Gestion du focus sur les écrans d'édition (reste juste le référentiel à faire) commit 9d34e50c74d689c97d15afb2f1d791b6b4a67a97 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 8 12:20:37 2016 +0100 Ajout raccourci clavier sur les listes déroulantes commit 160c3dd34986bb75da4b3da8983696f3870cda89 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:22:11 2016 +0100 refs #8554 : changement de la configuration du pool de connections commit 8b5270a0c18ad9fecaf774b7ac17f097e1f20c8a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:20:11 2016 +0100 refs #8554 Ajout de logs sur le sql commit 82b701f6b21e574cec0c06bd9e015985b6c7429a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 10:33:34 2016 +0100 Suppression d'une api obsolète commit 150fc0385c19287a4ea9b5df98258763e845cde2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 24 23:56:12 2016 +0100 Gérer les associations ordonnées (avec colonne _idx) lors de la réplication des entités Summary of changes: .../swing/db/ObserveSwingDataSource.java | 17 +- .../ui/actions/ImportStorageFromFileAction.java | 4 +- .../swing/ui/storage/StorageUIHandler.java | 88 ++---- .../swing/ui/storage/StorageUILauncher.java | 188 ++----------- .../swing/ui/storage/tabs/ConfigUI.jaxx | 93 +------ .../longline/CatchLonglineNavigationTreeNode.java | 5 + .../referential/ReferentialNavigationTreeNode.java | 13 +- .../ui/tree/selection/SelectionTreeModel.java | 8 +- .../observe/ObserveTopiaApplicationContext.java | 25 +- .../fr/ird/observe/ObserveTopiaConfiguration.java | 12 +- .../observe/ObserveTopiaConfigurationFactory.java | 17 +- .../observe/ObserveTopiaPersistenceContext.java | 18 +- .../java/fr/ird/observe/RunScriptTopiaSqlWork.java | 11 +- .../fr/ird/observe/RunScriptsTopiaSqlWork.java | 6 +- ...ObserveDataSourceConfigurationTopiaSupport.java | 11 + .../services/topia/ObserveServiceContextTopia.java | 46 +-- .../services/topia/ObserveServiceFactoryTopia.java | 3 - .../ObserveTopiaApplicationContextFactory.java | 15 +- .../topia/entity/BasketEntitiesExtractor.java | 59 ---- .../topia/entity/BranchlineEntitiesExtractor.java | 66 ----- .../services/topia/entity/EntitiesExtractor.java | 76 ----- .../services/topia/entity/EntitiesSetFactory.java | 310 --------------------- .../topia/entity/SectionEntitiesExtractor.java | 47 ---- .../topia/entity/SpeciesListEntitiesExtractor.java | 59 ---- .../entity/SpeciesListOceanEntitiesExtractor.java | 58 ---- .../topia/service/DataSourceServiceTopia.java | 2 + .../service/data/ImportTripScriptTopiaSqlWork.java | 14 +- .../service/data/TripManagementServiceTopia.java | 9 +- .../data}/TripMapDtoFactory.java | 24 +- .../data/longline/TripLonglineServiceTopia.java | 4 +- .../service/data/seine/TripSeineServiceTopia.java | 4 +- .../service/sql/SqlScriptProducerServiceTopia.java | 9 +- .../persistence/metadata/TopiaMetadataEntity.java | 43 +-- .../metadata/TopiaMetadataModelVisitor.java | 3 + .../topia/service/sql/batch/SqlRequests.java | 108 ++----- .../sql/batch/TopiaSqlBatchServiceImpl.java | 8 +- .../sql/batch/actions/AbstractSchemaAction.java | 4 +- .../sql/batch/actions/AbstractSqlAction.java | 15 +- .../sql/batch/actions/AbstractSqlRequest.java | 7 - .../sql/batch/actions/AbstractTablesAction.java | 48 +++- .../sql/batch/actions/CreateSchemaAction.java | 14 +- .../sql/batch/actions/DeleteTablesAction.java | 10 +- .../sql/batch/actions/DropSchemaAction.java | 15 +- .../sql/batch/actions/ReplicateTablesAction.java | 6 +- .../sql/batch/actions/UpdateTablesAction.java | 10 +- .../sql/batch/tables/TopiaSqlTablesFactory.java | 12 +- .../templates/TopiaMetadataModelGenerator.java | 19 +- 47 files changed, 390 insertions(+), 1253 deletions(-) delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/BasketEntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/BranchlineEntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesSetFactory.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/SectionEntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListEntitiesExtractor.java delete mode 100644 services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListOceanEntitiesExtractor.java rename services-topia/src/main/java/fr/ird/observe/services/topia/{entity => service/data}/TripMapDtoFactory.java (75%) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 150fc0385c19287a4ea9b5df98258763e845cde2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 24 23:56:12 2016 +0100 Gérer les associations ordonnées (avec colonne _idx) lors de la réplication des entités --- .../persistence/metadata/TopiaMetadataEntity.java | 43 +++++++--------------- .../metadata/TopiaMetadataModelVisitor.java | 3 ++ .../sql/batch/actions/AbstractTablesAction.java | 1 - .../templates/TopiaMetadataModelGenerator.java | 19 ++++++++-- 4 files changed, 32 insertions(+), 34 deletions(-) diff --git a/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataEntity.java b/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataEntity.java index e2ecf98..5acfff6 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataEntity.java +++ b/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataEntity.java @@ -23,7 +23,6 @@ package org.nuiton.topia.persistence.metadata; */ import com.google.common.base.MoreObjects; -import com.google.common.collect.ImmutableSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; @@ -91,10 +90,14 @@ public class TopiaMetadataEntity { */ protected final Map<String, String> properties = new LinkedHashMap<>(); /** - * Le dictionnaire des propriétés de type {@link Blob} + * La liste des propriétés de type {@link Blob} */ protected final Set<String> blobProperties = new HashSet<>(); /** + * La liste des colomnes supplémentaires ajoutée. + */ + protected final Set<String> extraColumnNames = new HashSet<>(); + /** * Le nom des colunnes correspondants aux propriétés de l'entité. * <b>Note: </b> On ne conserve que les correspondances qui diffèrent du nom de la propriété. * @@ -140,10 +143,6 @@ public class TopiaMetadataEntity { .toString(); } - public boolean withParent() { - return parent != null; - } - public String getParent() { return parent; } @@ -177,6 +176,7 @@ public class TopiaMetadataEntity { allDbColumnNames.add(TopiaEntity.PROPERTY_TOPIA_ID.toLowerCase()); allDbColumnNames.add(TopiaEntity.PROPERTY_TOPIA_CREATE_DATE.toLowerCase()); allDbColumnNames.add(TopiaEntity.PROPERTY_TOPIA_VERSION.toLowerCase()); + allDbColumnNames.addAll(extraColumnNames); } return allDbColumnNames; } @@ -205,17 +205,8 @@ public class TopiaMetadataEntity { return properties; } - public static final Set<String> PRIMITIVE_TYPES = ImmutableSet.of("byte", "boolean", "char", "int", "long", "float", "double"); - - public Set<String> getPrimitivePropertyNames() { - Set<String> names = new LinkedHashSet<>(); - for (Map.Entry<String, String> entry : properties.entrySet()) { - String propertyType = entry.getValue(); - if (PRIMITIVE_TYPES.contains(propertyType)) { - names.add(entry.getKey()); - } - } - return names; + public Set<String> getExtraColumnNames() { + return extraColumnNames; } public Set<String> getPrimitivePropertyNames(String primitiveType) { @@ -263,6 +254,10 @@ public class TopiaMetadataEntity { addDbColumnName(name, dbColumnName); } + public void addExtraColumn(String extraColumn) { + extraColumnNames.add(extraColumn); + } + public void addOneToManyAssociationInverse(TopiaMetadataEntity associationClazz, String name, String dbColumnName) { log.debug(getType() + "/" + name + "(" + dbColumnName + ") →" + associationClazz.getType()); oneToManyAssociationInverses.add(name); @@ -297,19 +292,6 @@ public class TopiaMetadataEntity { addDbColumnName(name, dbColumnName); } - public TopiaMetadataEntity copy() { - TopiaMetadataEntity copy = new TopiaMetadataEntity(parent, type, dbSchemaName, dbTableName); - copy.oneToManyAssociations.putAll(oneToManyAssociations); - copy.oneToManyAssociationInverses.addAll(oneToManyAssociationInverses); - copy.reversedAssociations.putAll(reversedAssociations); - copy.manyToManyAssociations.putAll(manyToManyAssociations); - copy.manyToOneAssociations.putAll(manyToOneAssociations); - copy.properties.putAll(properties); - copy.dbColumnsName.putAll(dbColumnsName); - copy.dbManyToManyAssociationsTableName.putAll(dbManyToManyAssociationsTableName); - return copy; - } - public void putAll(TopiaMetadataEntity metadataEntity) { metadataEntity.getOneToManyAssociations().putAll(getOneToManyAssociations()); metadataEntity.getOneToManyAssociationInverses().addAll(getOneToManyAssociationInverses()); @@ -317,6 +299,7 @@ public class TopiaMetadataEntity { metadataEntity.getManyToManyAssociations().putAll(getManyToManyAssociations()); metadataEntity.getManyToOneAssociations().putAll(getManyToOneAssociations()); metadataEntity.getProperties().putAll(getProperties()); + metadataEntity.getExtraColumnNames().addAll(getExtraColumnNames()); metadataEntity.getDbColumnsName().putAll(getDbColumnsName()); metadataEntity.getDbColumnsName().putAll(getDbManyToManyAssociationsTableName()); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataModelVisitor.java b/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataModelVisitor.java index 081660c..293e5f3 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataModelVisitor.java +++ b/topia-extension/src/main/java/org/nuiton/topia/persistence/metadata/TopiaMetadataModelVisitor.java @@ -210,6 +210,9 @@ public interface TopiaMetadataModelVisitor { } else { prefix += " "; appendPrefix("E → ").append(metadataEntity).append(eol); + if (!metadataEntity.getExtraColumnNames().isEmpty()) { + appendPrefix("Extra column names: ").append(metadataEntity.getExtraColumnNames()).append(eol); + } } } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java index d084f12..a3ee8bc 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java @@ -126,7 +126,6 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte if (table.isAssociationTable()) { authorizedColumnNames = new TreeSet<>(); - String entityType = table.getAssociationMetadataEntity().getType(); TopiaMetadataEntity entity = table.getAssociationMetadataEntity(); authorizedColumnNames.addAll(entity.getManyToManyAssociations().entrySet().stream() .filter(entry -> entry.getValue().equals(metadataEntity.getType())) diff --git a/topia-templates-extension/src/main/java/org/nuiton/topia/templates/TopiaMetadataModelGenerator.java b/topia-templates-extension/src/main/java/org/nuiton/topia/templates/TopiaMetadataModelGenerator.java index 9271d54..3151968 100644 --- a/topia-templates-extension/src/main/java/org/nuiton/topia/templates/TopiaMetadataModelGenerator.java +++ b/topia-templates-extension/src/main/java/org/nuiton/topia/templates/TopiaMetadataModelGenerator.java @@ -28,6 +28,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.EugeneCoreTagValues; import org.nuiton.eugene.GeneratorUtil; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAttribute; @@ -62,6 +63,7 @@ public class TopiaMetadataModelGenerator extends ObjectModelGenerator { protected TopiaTemplateHelper templateHelper; protected TopiaHibernateTagValues topiaHibernateTagValues; + protected EugeneCoreTagValues eugeneCoreTagValues; public TopiaTemplateHelper getTemplateHelper() { if (templateHelper == null) { @@ -154,7 +156,7 @@ public class TopiaMetadataModelGenerator extends ObjectModelGenerator { Optional<TopiaMetadataEntity> optionalClazz = metadataModel.getOptionalEntity(entityClassName); if (optionalClazz.isPresent()) { - metadataEntity = optionalClazz.get().copy(); + metadataEntity = optionalClazz.get(); } else { @@ -231,7 +233,7 @@ public class TopiaMetadataModelGenerator extends ObjectModelGenerator { TopiaMetadataEntity attributeClazz; if (optionalAttributeClass.isPresent()) { - attributeClazz = optionalAttributeClass.get().copy(); + attributeClazz = optionalAttributeClass.get(); } else { attributeClazz = buildMetadataEntity(attributeClass, metadataModel, oneToManyAssociationInverses); } @@ -245,9 +247,20 @@ public class TopiaMetadataModelGenerator extends ObjectModelGenerator { } else { // one to many + boolean ordered = EugeneCoreTagValues.isOrdered(attr); + if (ordered) { + String extraColumn = templateHelper.getReverseDbName(attr); + if (extraColumn==null) { + extraColumn = entityClassName.toLowerCase(); + } + extraColumn+="_idx"; + if (log.isInfoEnabled()) { + log.info("Found ordered "+attr+" -> "+extraColumn); + } + attributeClazz.addExtraColumn(extraColumn); + } metadataEntity.addOneToManyAssociation(attributeClazz, name, attrColumn); oneToManyAssociationInverses.put(attributeClazz.getType(), metadataEntity.getType()); - } } else { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 82b701f6b21e574cec0c06bd9e015985b6c7429a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 10:33:34 2016 +0100 Suppression d'une api obsolète --- .../topia/entity/BasketEntitiesExtractor.java | 59 ---- .../topia/entity/BranchlineEntitiesExtractor.java | 66 ----- .../services/topia/entity/EntitiesExtractor.java | 76 ----- .../services/topia/entity/EntitiesSetFactory.java | 310 --------------------- .../topia/entity/SectionEntitiesExtractor.java | 47 ---- .../topia/entity/SpeciesListEntitiesExtractor.java | 59 ---- .../entity/SpeciesListOceanEntitiesExtractor.java | 58 ---- .../data}/TripMapDtoFactory.java | 24 +- .../data/longline/TripLonglineServiceTopia.java | 4 +- .../service/data/seine/TripSeineServiceTopia.java | 4 +- 10 files changed, 15 insertions(+), 692 deletions(-) diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/BasketEntitiesExtractor.java b/services-topia/src/main/java/fr/ird/observe/services/topia/entity/BasketEntitiesExtractor.java deleted file mode 100644 index 0823988..0000000 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/BasketEntitiesExtractor.java +++ /dev/null @@ -1,59 +0,0 @@ -package fr.ird.observe.services.topia.entity; - -/*- - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.Sets; -import fr.ird.observe.ObserveTopiaPersistenceContext; -import fr.ird.observe.entities.longline.Basket; -import fr.ird.observe.entities.longline.Section; -import fr.ird.observe.entities.longline.SetLongline; - -import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.Map; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class BasketEntitiesExtractor extends EntitiesExtractor<Basket> { - - protected BasketEntitiesExtractor() { - super(Basket.class, null); - } - - @Override - protected Collection<Basket> getEntitiesSetBase(ObserveTopiaPersistenceContext persistenceContext, Map<String, Object> requestContext) { - - SetLongline setLongline = (SetLongline) requestContext.get(Section.PROPERTY_SET_LONGLINE); - - LinkedHashSet<Basket> baskets = Sets.newLinkedHashSet(); - - for (Section section : setLongline.getSection()) { - - baskets.addAll(section.getBasket()); - - } - - return baskets; - } -} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/BranchlineEntitiesExtractor.java b/services-topia/src/main/java/fr/ird/observe/services/topia/entity/BranchlineEntitiesExtractor.java deleted file mode 100644 index 966a5e6..0000000 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/BranchlineEntitiesExtractor.java +++ /dev/null @@ -1,66 +0,0 @@ -package fr.ird.observe.services.topia.entity; - -/*- - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.Sets; -import fr.ird.observe.ObserveTopiaPersistenceContext; -import fr.ird.observe.entities.longline.Basket; -import fr.ird.observe.entities.longline.Branchline; -import fr.ird.observe.entities.longline.Section; -import fr.ird.observe.entities.longline.SetLongline; - -import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.Map; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class BranchlineEntitiesExtractor extends EntitiesExtractor<Branchline> { - - protected BranchlineEntitiesExtractor() { - super(Branchline.class, null); - } - - @Override - protected Collection<Branchline> getEntitiesSetBase(ObserveTopiaPersistenceContext persistenceContext, Map<String, Object> requestContext) { - - SetLongline setLongline = (SetLongline) requestContext.get(Section.PROPERTY_SET_LONGLINE); - - LinkedHashSet<Branchline> branchlines = Sets.newLinkedHashSet(); - - for (Section section : setLongline.getSection()) { - - for (Basket basket : section.getBasket()) { - - branchlines.addAll(basket.getBranchline()); - - } - - } - - return branchlines; - } - - -} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesExtractor.java b/services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesExtractor.java deleted file mode 100644 index b403b56..0000000 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesExtractor.java +++ /dev/null @@ -1,76 +0,0 @@ -package fr.ird.observe.services.topia.entity; - -/*- - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.ObserveTopiaPersistenceContext; -import fr.ird.observe.entities.ObserveEntity; -import org.nuiton.topia.persistence.TopiaDao; - -import java.util.Collection; -import java.util.Map; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -/** - * Cette classe permet d'extraire dynamiquement un ensemble d'entitiées de la base de données. - * cet emsenble est definit par un ensemble extrait de la base, definit dans getEntitiesSetBase - * Sur cet ensemble on applique le filtre definit l'attribut optionalFilter - * - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class EntitiesExtractor<E extends ObserveEntity> { - - /** - * Le type de l'entité dont on cherche des éléments. - */ - protected final Class<E> entityType; - - /** - * Un prédicat de filtrage optionnel. - */ - protected final Predicate<E> optionalFilter; - - protected EntitiesExtractor(Class<E> entityType, Predicate<E> optionalFilter) { - this.entityType = entityType; - this.optionalFilter = optionalFilter; - } - - public Iterable<E> getEntities(ObserveTopiaPersistenceContext persistenceContext, Map<String, Object> requestContext) { - Collection<E> result = getEntitiesSetBase(persistenceContext, requestContext); - Predicate<E> filter = getFilter(requestContext); - if (filter != null) { - result = result.stream().filter(filter).collect(Collectors.toSet()); - } - return result; - } - - protected Collection<E> getEntitiesSetBase(ObserveTopiaPersistenceContext persistenceContext, Map<String, Object> requestContext) { - TopiaDao<E> dao = persistenceContext.getDao(entityType); - return dao.findAll(); - } - - protected Predicate<E> getFilter(Map<String, Object> requestContext) { - return optionalFilter == null ? null : optionalFilter; - } - -} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesSetFactory.java b/services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesSetFactory.java deleted file mode 100644 index fcac8f2..0000000 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/EntitiesSetFactory.java +++ /dev/null @@ -1,310 +0,0 @@ -package fr.ird.observe.services.topia.entity; - -/*- - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.ImmutableMap; -import fr.ird.observe.entities.Entities; -import fr.ird.observe.entities.ObserveEntity; -import fr.ird.observe.entities.longline.Basket; -import fr.ird.observe.entities.longline.Branchline; -import fr.ird.observe.entities.longline.CatchLongline; -import fr.ird.observe.entities.longline.Encounter; -import fr.ird.observe.entities.longline.Section; -import fr.ird.observe.entities.longline.Tdr; -import fr.ird.observe.entities.longline.TripLongline; -import fr.ird.observe.entities.referentiel.ObserveReferentialEntities; -import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; -import fr.ird.observe.entities.referentiel.Person; -import fr.ird.observe.entities.referentiel.Persons; -import fr.ird.observe.entities.referentiel.Species; -import fr.ird.observe.entities.referentiel.Vessel; -import fr.ird.observe.entities.referentiel.Vessels; -import fr.ird.observe.entities.seine.NonTargetCatch; -import fr.ird.observe.entities.seine.ObjectObservedSpecies; -import fr.ird.observe.entities.seine.ObjectSchoolEstimate; -import fr.ird.observe.entities.seine.SchoolEstimate; -import fr.ird.observe.entities.seine.TargetCatch; -import fr.ird.observe.entities.seine.TargetCatchImpl; -import fr.ird.observe.entities.seine.TripSeine; -import fr.ird.observe.services.dto.ObserveSpeciesListConfiguration; - -import java.util.Objects; -import java.util.function.Predicate; - -/** - * Une usine de {@link EntitiesExtractor}. - * - * Created on 18/10/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class EntitiesSetFactory { - - protected final ImmutableMap<String, EntitiesExtractor> cache; - - public EntitiesSetFactory(ObserveSpeciesListConfiguration speciesListConfiguration) { - - ImmutableMap.Builder<String, EntitiesExtractor> builder = ImmutableMap.builder(); - - // TripSeine - registerReferentialEntitiesExtractor(builder, - TripSeine.class, - TripSeine.PROPERTY_CAPTAIN, - Person.class, - Persons.CAPTAIN_PREDICATE); - registerReferentialEntitiesExtractor(builder, - TripSeine.class, - TripSeine.PROPERTY_OBSERVER, - Person.class, - Persons.OBSERVER_PREDICATE); - registerReferentialEntitiesExtractor(builder, - TripSeine.class, - TripSeine.PROPERTY_DATA_ENTRY_OPERATOR, - Person.class, - Persons.DATA_ENTRY_OPERATOR_PREDICATE); - registerReferentialEntitiesExtractor(builder, - TripSeine.class, - TripSeine.PROPERTY_VESSEL, - Vessel.class, - Vessels.newVesselSeinePredicate()); - - // TripLongLine - registerReferentialEntitiesExtractor(builder, - TripLongline.class, - TripLongline.PROPERTY_CAPTAIN, - Person.class, - Persons.CAPTAIN_PREDICATE); - registerReferentialEntitiesExtractor(builder, - TripLongline.class, - TripLongline.PROPERTY_OBSERVER, - Person.class, - Persons.OBSERVER_PREDICATE); - registerReferentialEntitiesExtractor(builder, - TripLongline.class, - TripLongline.PROPERTY_DATA_ENTRY_OPERATOR, - Person.class, - Persons.DATA_ENTRY_OPERATOR_PREDICATE); - registerReferentialEntitiesExtractor(builder, - TripLongline.class, - TripLongline.PROPERTY_VESSEL, - Vessel.class, - Vessels.newVesselLonglinePredicate()); - - // ObjectSchoolEstimate - registerSpeciesListEntitiesExtractor(builder, - ObjectSchoolEstimate.class, - ObjectSchoolEstimate.PROPERTY_SPECIES, - speciesListConfiguration.getSpeciesListSeineObjectSchoolEstimateId()); - - // ObjectObservedSpecies - registerSpeciesListEntitiesExtractor(builder, - ObjectObservedSpecies.class, - ObjectObservedSpecies.PROPERTY_SPECIES, - speciesListConfiguration.getSpeciesListSeineObjectObservedSpeciesId()); - - // SchoolEstimate - registerSpeciesListEntitiesExtractor(builder, - SchoolEstimate.class, - SchoolEstimate.PROPERTY_SPECIES, - speciesListConfiguration.getSpeciesListSeineSchoolEstimateId()); - - // TargetCatch - registerSpeciesListOceanEntitiesExtractor(builder, - TargetCatch.class, - TargetCatchImpl.PROPERTY_SPECIES, - speciesListConfiguration.getSpeciesListSeineTargetCatchId()); - - // NonTargetCatch - registerSpeciesListEntitiesExtractor(builder, - NonTargetCatch.class, - NonTargetCatch.PROPERTY_SPECIES, - speciesListConfiguration.getSpeciesListSeineNonTargetCatchId()); - - // Encounter - registerSpeciesListEntitiesExtractor(builder, - Encounter.class, - Encounter.PROPERTY_SPECIES, - speciesListConfiguration.getSpeciesListLonglineEncounterId()); - - // CatchLongline - registerSpeciesListEntitiesExtractor(builder, - CatchLongline.class, - CatchLongline.PROPERTY_SPECIES_CATCH, - speciesListConfiguration.getSpeciesListLonglineCatchId()); - - registerSpeciesListEntitiesExtractor(builder, - CatchLongline.class, - CatchLongline.PROPERTY_PREDATOR, - speciesListConfiguration.getSpeciesListLonglineDepredatorId()); - - registerSectionEntitiesExtractor(builder, - CatchLongline.class, - CatchLongline.PROPERTY_SECTION); - - registerBasketEntitiesExtractor(builder, - CatchLongline.class, - CatchLongline.PROPERTY_BASKET); - - registerBranchlineEntitiesExtractor(builder, - CatchLongline.class, - CatchLongline.PROPERTY_BRANCHLINE); - - // CatchLongline - registerSpeciesListEntitiesExtractor(builder, - Tdr.class, - Tdr.PROPERTY_SPECIES, - speciesListConfiguration.getSpeciesListLonglineCatchId()); - - registerSectionEntitiesExtractor(builder, - Tdr.class, - Tdr.PROPERTY_SECTION); - - registerBasketEntitiesExtractor(builder, - Tdr.class, - Tdr.PROPERTY_BASKET); - - registerBranchlineEntitiesExtractor(builder, - Tdr.class, - Tdr.PROPERTY_BRANCHLINE); - - - this.cache = builder.build(); - - } - - public <P extends ObserveEntity, C extends ObserveEntity> EntitiesExtractor<C> newEntitiesSet(Class<P> parentType, - Class<C> propertyType, - String propertyName) { - - Objects.requireNonNull(parentType, "Parent type is required"); - Objects.requireNonNull(propertyName, "Property name is required"); - Objects.requireNonNull(propertyType, "Property type is required"); - - String key = buildKey(parentType, propertyName); - EntitiesExtractor<C> entitiesExtractor = cache.get(key); - - if (entitiesExtractor == null) { - - // Pas de filtre spécifique trouvé, on en construit un générique - - if (Entities.isReferentielClass(propertyType)) { - - // On veut tous les référentiels sauf ceux qui sont désactivés - entitiesExtractor = new EntitiesExtractor<>(propertyType, (Predicate) ObserveReferentialEntities.IS_ACTIF_PREDICATE); - - } else { - - // On veut toutes les entités - entitiesExtractor = new EntitiesExtractor<>(propertyType, null); - - } - - } - - return entitiesExtractor; - - } - - protected <P extends ObserveEntity> String buildKey(Class<P> parentType, String propertyName) { - return parentType.getName() + "#" + propertyName; - } - - protected <P extends ObserveEntity, C extends ObserveReferentialEntity> void registerReferentialEntitiesExtractor( - ImmutableMap.Builder<String, EntitiesExtractor> builder, - Class<P> parentType, - String propertyName, - Class<C> propertyType, - Predicate<C> filter) { - - Predicate<C> predicate = (Predicate) ObserveReferentialEntities.IS_ACTIF_PREDICATE; - Predicate<C> newFilter = f -> filter.test(f) && predicate.test(f); - - EntitiesExtractor<C> entitiesExtractor = new EntitiesExtractor<>(propertyType, newFilter); - registerEntitiesExtractor(builder, parentType, propertyName, entitiesExtractor); - - } - - protected <P extends ObserveEntity> void registerSpeciesListEntitiesExtractor( - ImmutableMap.Builder<String, EntitiesExtractor> builder, - Class<P> parentType, - String propertyName, - String speciesListId) { - - EntitiesExtractor<Species> entitiesExtractor = new SpeciesListEntitiesExtractor(speciesListId); - registerEntitiesExtractor(builder, parentType, propertyName, entitiesExtractor); - - } - - protected <P extends ObserveEntity> void registerSpeciesListOceanEntitiesExtractor( - ImmutableMap.Builder<String, EntitiesExtractor> builder, - Class<P> parentType, - String propertyName, - String speciesListId) { - - EntitiesExtractor<Species> entitiesExtractor = new SpeciesListOceanEntitiesExtractor(speciesListId); - registerEntitiesExtractor(builder, parentType, propertyName, entitiesExtractor); - - } - - protected <P extends ObserveEntity> void registerSectionEntitiesExtractor( - ImmutableMap.Builder<String, EntitiesExtractor> builder, - Class<P> parentType, - String propertyName) { - - EntitiesExtractor<Section> entitiesExtractor = new SectionEntitiesExtractor(); - registerEntitiesExtractor(builder, parentType, propertyName, entitiesExtractor); - - } - - protected <P extends ObserveEntity> void registerBasketEntitiesExtractor( - ImmutableMap.Builder<String, EntitiesExtractor> builder, - Class<P> parentType, - String propertyName) { - - EntitiesExtractor<Basket> entitiesExtractor = new BasketEntitiesExtractor(); - registerEntitiesExtractor(builder, parentType, propertyName, entitiesExtractor); - - } - - protected <P extends ObserveEntity> void registerBranchlineEntitiesExtractor( - ImmutableMap.Builder<String, EntitiesExtractor> builder, - Class<P> parentType, - String propertyName) { - - EntitiesExtractor<Branchline> entitiesExtractor = new BranchlineEntitiesExtractor(); - registerEntitiesExtractor(builder, parentType, propertyName, entitiesExtractor); - - } - - protected <P extends ObserveEntity, C extends ObserveEntity> void registerEntitiesExtractor( - ImmutableMap.Builder<String, EntitiesExtractor> builder, - Class<P> parentType, - String propertyName, - EntitiesExtractor<C> entitiesExtractor) { - - String key = buildKey(parentType, propertyName); - builder.put(key, entitiesExtractor); - - } - -} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/SectionEntitiesExtractor.java b/services-topia/src/main/java/fr/ird/observe/services/topia/entity/SectionEntitiesExtractor.java deleted file mode 100644 index 1c5db10..0000000 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/SectionEntitiesExtractor.java +++ /dev/null @@ -1,47 +0,0 @@ -package fr.ird.observe.services.topia.entity; - -/*- - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.ObserveTopiaPersistenceContext; -import fr.ird.observe.entities.longline.Section; -import fr.ird.observe.entities.longline.SetLongline; - -import java.util.Collection; -import java.util.Map; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class SectionEntitiesExtractor extends EntitiesExtractor<Section> { - - protected SectionEntitiesExtractor() { - super(Section.class, null); - } - - @Override - protected Collection<Section> getEntitiesSetBase(ObserveTopiaPersistenceContext persistenceContext, Map<String, Object> requestContext) { - SetLongline setLongline = (SetLongline) requestContext.get(Section.PROPERTY_SET_LONGLINE); - - return setLongline.getSection(); - } -} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListEntitiesExtractor.java b/services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListEntitiesExtractor.java deleted file mode 100644 index 1ddef0b..0000000 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListEntitiesExtractor.java +++ /dev/null @@ -1,59 +0,0 @@ -package fr.ird.observe.services.topia.entity; - -/*- - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.ObserveTopiaPersistenceContext; -import fr.ird.observe.entities.referentiel.ObserveReferentialEntities; -import fr.ird.observe.entities.referentiel.Species; -import fr.ird.observe.entities.referentiel.SpeciesList; -import fr.ird.observe.entities.referentiel.SpeciesListTopiaDao; - -import java.util.Collection; -import java.util.Map; -import java.util.function.Predicate; - -/** - * Extraction des list d'espèces definit dans le référentiel "liste d'èspéce" - * - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class SpeciesListEntitiesExtractor extends EntitiesExtractor<Species> { - - /** - * L'id de la liste d'espèces à utiliser. - */ - protected final String speciesListId; - - public SpeciesListEntitiesExtractor(String speciesListId) { - super(Species.class, (Predicate) ObserveReferentialEntities.IS_ACTIF_PREDICATE); - this.speciesListId = speciesListId; - } - - @Override - protected Collection<Species> getEntitiesSetBase(ObserveTopiaPersistenceContext persistenceContext, Map<String, Object> requestContext) { - SpeciesListTopiaDao speciesListDao = persistenceContext.getSpeciesListDao(); - SpeciesList speciesList = speciesListDao.forTopiaIdEquals(speciesListId).findUnique(); - return speciesList.getSpecies(); - } - -} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListOceanEntitiesExtractor.java b/services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListOceanEntitiesExtractor.java deleted file mode 100644 index 23a8a29..0000000 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/SpeciesListOceanEntitiesExtractor.java +++ /dev/null @@ -1,58 +0,0 @@ -package fr.ird.observe.services.topia.entity; - -/*- - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.entities.referentiel.Ocean; -import fr.ird.observe.entities.referentiel.Species; -import fr.ird.observe.entities.referentiel.Species2; - -import java.util.Map; -import java.util.function.Predicate; - -/** - * Extraction des list d'espèces definit dans le référentiel "liste d'èspéce" et présent dans un océan - * - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class SpeciesListOceanEntitiesExtractor extends SpeciesListEntitiesExtractor { - - public SpeciesListOceanEntitiesExtractor(String speciesListId) { - super(speciesListId); - } - - @Override - protected Predicate<Species> getFilter(Map<String, Object> requestContext) { - - Predicate<Species> filter = super.getFilter(requestContext); - - Ocean ocean = (Ocean) requestContext.get(Species.PROPERTY_OCEAN); - - if (ocean != null) { - - filter = filter.and(Species2.newSpeciesByOceanPredicate(ocean)); - - } - - return filter; - } -} diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/TripMapDtoFactory.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripMapDtoFactory.java similarity index 75% rename from services-topia/src/main/java/fr/ird/observe/services/topia/entity/TripMapDtoFactory.java rename to services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripMapDtoFactory.java index 4d9c7bb..ba2cde5 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/entity/TripMapDtoFactory.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripMapDtoFactory.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.entity; +package fr.ird.observe.services.topia.service.data; /*- * #%L @@ -22,8 +22,6 @@ package fr.ird.observe.services.topia.entity; * #L% */ -import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; import fr.ird.observe.entities.TripMapPoint; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.TripMapPointDto; @@ -31,7 +29,7 @@ import fr.ird.observe.services.dto.constants.TripMapPointType; import java.util.LinkedHashSet; import java.util.Set; -import java.util.function.Function; +import java.util.stream.Collectors; /** * Created on 09/01/16. @@ -40,20 +38,20 @@ import java.util.function.Function; */ public class TripMapDtoFactory { - protected static final Function<TripMapPoint, TripMapPointDto> TRIP_MAP_POINT_TRIP_MAP_POINT_DTO_FUNCTION = tripMapPoint -> { + public static TripMapDto of(String tripId, Set<TripMapPoint> points) { + TripMapDto tripMapDto = new TripMapDto(); + tripMapDto.setId(tripId); + LinkedHashSet<TripMapPointDto> pointDtos = points.stream().map(TripMapDtoFactory::of).collect(Collectors.toCollection(LinkedHashSet::new)); + tripMapDto.setPoints(pointDtos); + return tripMapDto; + } + + private static TripMapPointDto of(TripMapPoint tripMapPoint) { TripMapPointDto result = new TripMapPointDto(); result.setLatitude(tripMapPoint.getLatitude()); result.setLongitude(tripMapPoint.getLongitude()); result.setTime(tripMapPoint.getTime()); result.setType(TripMapPointType.valueOf(tripMapPoint.getType().name())); return result; - }; - - public static TripMapDto newTripMapDto(String tripId, Set<TripMapPoint> points) { - TripMapDto tripMapDto = new TripMapDto(); - tripMapDto.setId(tripId); - LinkedHashSet<TripMapPointDto> pointDtos = Sets.newLinkedHashSet(Iterables.transform(points, TRIP_MAP_POINT_TRIP_MAP_POINT_DTO_FUNCTION::apply)); - tripMapDto.setPoints(pointDtos); - return tripMapDto; } } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/TripLonglineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/TripLonglineServiceTopia.java index 18455ad..09dbd0e 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/TripLonglineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/TripLonglineServiceTopia.java @@ -48,7 +48,7 @@ import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.services.dto.result.SaveResultDto; -import fr.ird.observe.services.topia.entity.TripMapDtoFactory; +import fr.ird.observe.services.topia.service.data.TripMapDtoFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; @@ -118,7 +118,7 @@ public class TripLonglineServiceTopia extends ObserveServiceTopia implements Tri LinkedHashSet<TripMapPoint> points = getDao().extractTripMapActivityPoints(tripLonglineId); - return TripMapDtoFactory.newTripMapDto(tripLonglineId, points); + return TripMapDtoFactory.of(tripLonglineId, points); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java index ebe73f1..8ba2d61 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java @@ -47,7 +47,7 @@ import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.data.seine.TripSeineService; import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; -import fr.ird.observe.services.topia.entity.TripMapDtoFactory; +import fr.ird.observe.services.topia.service.data.TripMapDtoFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; @@ -147,7 +147,7 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe LinkedHashSet<TripMapPoint> points = getDao().extractTripMapActivityPoints(tripSeineId); - return TripMapDtoFactory.newTripMapDto(tripSeineId, points); + return TripMapDtoFactory.of(tripSeineId, points); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 8b5270a0c18ad9fecaf774b7ac17f097e1f20c8a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:20:11 2016 +0100 refs #8554 Ajout de logs sur le sql --- .../swing/db/ObserveSwingDataSource.java | 7 +- .../fr/ird/observe/ObserveTopiaConfiguration.java | 12 ++- .../observe/ObserveTopiaConfigurationFactory.java | 17 ++-- .../observe/ObserveTopiaPersistenceContext.java | 18 +++- .../java/fr/ird/observe/RunScriptTopiaSqlWork.java | 11 ++- .../fr/ird/observe/RunScriptsTopiaSqlWork.java | 6 +- ...ObserveDataSourceConfigurationTopiaSupport.java | 11 +++ .../services/topia/ObserveServiceFactoryTopia.java | 3 - .../ObserveTopiaApplicationContextFactory.java | 15 ++- .../topia/service/DataSourceServiceTopia.java | 2 + .../service/data/ImportTripScriptTopiaSqlWork.java | 14 ++- .../service/data/TripManagementServiceTopia.java | 9 +- .../service/sql/SqlScriptProducerServiceTopia.java | 9 +- .../topia/service/sql/batch/SqlRequests.java | 108 ++++----------------- .../sql/batch/TopiaSqlBatchServiceImpl.java | 8 +- .../sql/batch/actions/AbstractSchemaAction.java | 4 +- .../sql/batch/actions/AbstractSqlAction.java | 15 ++- .../sql/batch/actions/AbstractSqlRequest.java | 7 -- .../sql/batch/actions/AbstractTablesAction.java | 47 +++++++-- .../sql/batch/actions/CreateSchemaAction.java | 14 ++- .../sql/batch/actions/DeleteTablesAction.java | 10 +- .../sql/batch/actions/DropSchemaAction.java | 15 ++- .../sql/batch/actions/ReplicateTablesAction.java | 6 +- .../sql/batch/actions/UpdateTablesAction.java | 10 +- .../sql/batch/tables/TopiaSqlTablesFactory.java | 12 +-- 25 files changed, 213 insertions(+), 177 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java index 526da30..482abbb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java @@ -58,6 +58,7 @@ import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseDestroyNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.LastUpdateDateService; +import fr.ird.observe.services.service.data.NavigationService; import fr.ird.observe.services.service.referential.ObserveReferentialCache; import fr.ird.observe.services.service.PingService; import fr.ird.observe.services.service.referential.ReferentialService; @@ -451,7 +452,11 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements speciesListConfiguration.setSpeciesListSeineObjectSchoolEstimateId(config.getSpeciesListSeineObjectSchoolEstimateId()); speciesListConfiguration.setSpeciesListSeineSchoolEstimateId(config.getSpeciesListSeineSchoolEstimateId()); speciesListConfiguration.setSpeciesListSeineTargetCatchId(config.getSpeciesListSeineTargetCatchId()); - + boolean showSql = config.isShowSql(); + if (showSql && configurationAndConnection.getConfiguration() instanceof ObserveDataSourceConfigurationTopiaSupport) { + ObserveDataSourceConfigurationTopiaSupport configuration = (ObserveDataSourceConfigurationTopiaSupport) configurationAndConnection.getConfiguration(); + configuration.setTraceSql(true); + } return ObserveServiceInitializer.create( locale, referentialLocale, diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java index 165217c..2eb67ef 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java @@ -22,6 +22,7 @@ package fr.ird.observe; * #L% */ +import com.google.common.collect.ImmutableMap; import org.nuiton.topia.persistence.BeanTopiaConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; @@ -35,13 +36,22 @@ public class ObserveTopiaConfiguration extends BeanTopiaConfiguration { private static final long serialVersionUID = 1L; protected final boolean h2Configuration; + protected final boolean showSql; - public ObserveTopiaConfiguration(JdbcConfiguration jdbcConfiguration, boolean h2Configuration) { + public ObserveTopiaConfiguration(JdbcConfiguration jdbcConfiguration, boolean h2Configuration, boolean showSql) { super(jdbcConfiguration); this.h2Configuration = h2Configuration; + this.showSql = showSql; + if (showSql) { + setHibernateExtraConfiguration(ImmutableMap.of("hibernate.show_sql", Boolean.TRUE.toString())); + } } public boolean isH2Configuration() { return h2Configuration; } + + public boolean isShowSql() { + return showSql; + } } diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfigurationFactory.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfigurationFactory.java index f911347..3f90d08 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfigurationFactory.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfigurationFactory.java @@ -89,7 +89,8 @@ public class ObserveTopiaConfigurationFactory { String password, boolean initSchema, boolean showMigrationSql, - boolean showMigrationProgression) { + boolean showMigrationProgression, + boolean traceSql) { JdbcConfiguration jdbcConfiguration = JDBC_CONFIGURATION_BUILDER.forPostgresqlDatabase(jdbcUrl, username, password); @@ -97,7 +98,8 @@ public class ObserveTopiaConfigurationFactory { initSchema, showMigrationSql, showMigrationProgression, - false); + false, + traceSql); if (log.isDebugEnabled()) { log.debug("PG topia configuration: " + topiaConfiguration); @@ -112,7 +114,8 @@ public class ObserveTopiaConfigurationFactory { String password, boolean initSchema, boolean showMigrationSql, - boolean showMigrationProgression) { + boolean showMigrationProgression, + boolean traceSql) { String dbPath = new File(dbDirectory, dbName).getPath(); String jdbcUrl = String.format(H2_LOCAL_URL, dbPath); @@ -123,7 +126,8 @@ public class ObserveTopiaConfigurationFactory { initSchema, showMigrationSql, showMigrationProgression, - true); + true, + traceSql); if (log.isDebugEnabled()) { log.debug("H2 topia configuration: " + topiaConfiguration); @@ -136,9 +140,10 @@ public class ObserveTopiaConfigurationFactory { boolean initSchema, boolean showMigrationSql, boolean showMigrationProgression, - boolean h2Configuration) { + boolean h2Configuration, + boolean traceSql) { - ObserveTopiaConfiguration topiaConfiguration = new ObserveTopiaConfiguration(jdbcConfiguration, h2Configuration); + ObserveTopiaConfiguration topiaConfiguration = new ObserveTopiaConfiguration(jdbcConfiguration, h2Configuration, traceSql); topiaConfiguration.setTopiaIdFactoryClass(ObserveTopiaIdFactory.class); topiaConfiguration.setInitSchema(initSchema); topiaConfiguration.setValidateSchema(false); diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaPersistenceContext.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaPersistenceContext.java index cc71057..43ac98d 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaPersistenceContext.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaPersistenceContext.java @@ -46,6 +46,8 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste */ private static final Log log = LogFactory.getLog(ObserveTopiaPersistenceContext.class); + private boolean showSql; + public ObserveTopiaPersistenceContext(AbstractTopiaPersistenceContextConstructorParameter parameter) { super(parameter); } @@ -122,6 +124,14 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste } + public void setShowSql(boolean showSql) { + this.showSql = showSql; + } + + public boolean isShowSql() { + return showSql; + } + protected class CountTableSqlWork extends TopiaSqlQuery<Long> { private final String fullyTableName; @@ -133,7 +143,9 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste @Override public PreparedStatement prepareQuery(Connection connection) throws SQLException { String sql = "SELECT count(*) FROM " + fullyTableName; - + if (showSql) { + log.debug(sql); + } return connection.prepareStatement(sql); } @@ -145,11 +157,11 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste public void executeSqlScript(byte... content) { - getSqlSupport().doSqlWork(new RunScriptTopiaSqlWork(1000, content)); + getSqlSupport().doSqlWork(new RunScriptTopiaSqlWork(1000, showSql, content)); } public void executeSqlScripts(byte[]... contents) { - getSqlSupport().doSqlWork(new RunScriptsTopiaSqlWork(1000, contents)); + getSqlSupport().doSqlWork(new RunScriptsTopiaSqlWork(1000, showSql, contents)); } } diff --git a/entities/src/main/java/fr/ird/observe/RunScriptTopiaSqlWork.java b/entities/src/main/java/fr/ird/observe/RunScriptTopiaSqlWork.java index 778199c..41538b7 100644 --- a/entities/src/main/java/fr/ird/observe/RunScriptTopiaSqlWork.java +++ b/entities/src/main/java/fr/ird/observe/RunScriptTopiaSqlWork.java @@ -54,9 +54,11 @@ public class RunScriptTopiaSqlWork implements TopiaSqlWork { protected final byte[] content; protected final boolean gzip; protected final int batchSize; + protected final boolean showSql; - public RunScriptTopiaSqlWork(int batchSize, byte[] content) { + public RunScriptTopiaSqlWork(int batchSize, boolean showSql, byte[] content) { this.batchSize = batchSize; + this.showSql = showSql; this.content = content; if (content == null || content.length == 0) { @@ -98,11 +100,10 @@ public class RunScriptTopiaSqlWork implements TopiaSqlWork { if (trimLine.isEmpty() || trimLine.startsWith("--")) { continue; } - - statement.addBatch(trimLine); - if (log.isDebugEnabled()) { - log.debug("Sql statement: " + trimLine); + if (showSql || log.isDebugEnabled()) { + log.info(trimLine); } + statement.addBatch(trimLine); batchSize++; if (batchSize % this.batchSize == 0) { diff --git a/entities/src/main/java/fr/ird/observe/RunScriptsTopiaSqlWork.java b/entities/src/main/java/fr/ird/observe/RunScriptsTopiaSqlWork.java index d32ce14..bf5a3c6 100644 --- a/entities/src/main/java/fr/ird/observe/RunScriptsTopiaSqlWork.java +++ b/entities/src/main/java/fr/ird/observe/RunScriptsTopiaSqlWork.java @@ -36,8 +36,8 @@ public class RunScriptsTopiaSqlWork extends RunScriptTopiaSqlWork { protected final byte[][] contents; - public RunScriptsTopiaSqlWork(int batchSize, byte[][] contents) { - super(batchSize, null); + public RunScriptsTopiaSqlWork(int batchSize, boolean showSql, byte[][] contents) { + super(batchSize, showSql, null); this.contents = contents; } @@ -45,7 +45,7 @@ public class RunScriptsTopiaSqlWork extends RunScriptTopiaSqlWork { protected void execute0(Connection connection) throws SQLException { for (byte[] content : contents) { - new RunScriptTopiaSqlWork(batchSize, content).execute0(connection); + new RunScriptTopiaSqlWork(batchSize, showSql, content).execute0(connection); } } diff --git a/services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/topia/ObserveDataSourceConfigurationTopiaSupport.java b/services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/topia/ObserveDataSourceConfigurationTopiaSupport.java index 4435b8f..085f3ba 100644 --- a/services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/topia/ObserveDataSourceConfigurationTopiaSupport.java +++ b/services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/topia/ObserveDataSourceConfigurationTopiaSupport.java @@ -72,6 +72,9 @@ public abstract class ObserveDataSourceConfigurationTopiaSupport implements Obse private Version modelVersion; + /** Pour logger les requetes sql **/ + private boolean traceSql; + public abstract boolean isH2Database(); public abstract boolean isPostgresDatabase(); @@ -152,4 +155,12 @@ public abstract class ObserveDataSourceConfigurationTopiaSupport implements Obse public ObserveDataSourceType getType() { return ObserveDataSourceType.SQL; } + + public boolean isTraceSql() { + return traceSql; + } + + public void setTraceSql(boolean traceSql) { + this.traceSql = traceSql; + } } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java index 8b6da41..7014803 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java @@ -256,10 +256,8 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { ObserveTopiaApplicationContext source = serviceContext.getTopiaApplicationContext(); - long t0 = TimeLog.getTime(); try (ObserveTopiaPersistenceContext topiaPersistenceContext = source.newPersistenceContext()) { - serviceContext.setTopiaPersistenceContext(topiaPersistenceContext); Object invoke = invokeMethod(method, args); @@ -277,7 +275,6 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { serviceContext.setTopiaPersistenceContext(null); - TIME_LOG.log(t0, "invokeMethodWithTransaction", method.getName()); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java index 781df96..e98e0b1 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java @@ -56,12 +56,9 @@ public class ObserveTopiaApplicationContextFactory { Optional<ObserveTopiaApplicationContext> optionalTopiaApplicationContext = getTopiaApplicationContextIfPresent(dataSourceConfiguration); ObserveTopiaApplicationContext topiaApplicationContext; - if (optionalTopiaApplicationContext.isPresent()) { - topiaApplicationContext = optionalTopiaApplicationContext.get(); - } else { - // Si on demande de créer ici une base, on ne fait rien sur le schéma - topiaApplicationContext = createTopiaApplicationContext(dataSourceConfiguration, false); - } + // Si on demande de créer ici une base, on ne fait rien sur le schéma + topiaApplicationContext = optionalTopiaApplicationContext.orElseGet( + () -> createTopiaApplicationContext(dataSourceConfiguration, false)); return topiaApplicationContext; } @@ -131,7 +128,8 @@ public class ObserveTopiaApplicationContextFactory { String.valueOf(configuration.getPassword()), initSchema, configuration.isShowMigrationSql(), - configuration.isShowMigrationProgression() + configuration.isShowMigrationProgression(), + configuration.isTraceSql() ); if (log.isInfoEnabled()) { @@ -161,7 +159,8 @@ public class ObserveTopiaApplicationContextFactory { String.valueOf(configuration.getPassword()), initSchema, configuration.isShowMigrationSql(), - configuration.isShowMigrationProgression() + configuration.isShowMigrationProgression(), + configuration.isTraceSql() ); if (log.isInfoEnabled()) { diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java index b857b52..77f66a9 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java @@ -143,6 +143,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS new String(h2DataSourceConfiguration.getPassword()), false, false, + false, false); @@ -168,6 +169,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS new String(pgDataSourceConfiguration.getPassword()), false, false, + false, false); try { diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java index 14c7d5b..60b7fb2 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java @@ -25,6 +25,8 @@ package fr.ird.observe.services.topia.service.data; import com.google.common.collect.ImmutableSet; import fr.ird.observe.RunScriptTopiaSqlWork; import fr.ird.observe.services.service.sql.ObserveBlobsContainer; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import javax.sql.rowset.serial.SerialBlob; import java.sql.Connection; @@ -39,10 +41,13 @@ import java.util.Map; */ public class ImportTripScriptTopiaSqlWork extends RunScriptTopiaSqlWork { + /** Logger */ + private static final Log log = LogFactory.getLog(ImportTripScriptTopiaSqlWork.class); + private final ImmutableSet<ObserveBlobsContainer> blobsContainers; - public ImportTripScriptTopiaSqlWork(int batchSize, byte[] content, ImmutableSet<ObserveBlobsContainer> blobsContainers) { - super(batchSize, content); + public ImportTripScriptTopiaSqlWork(int batchSize, boolean showSql, byte[] content, ImmutableSet<ObserveBlobsContainer> blobsContainers) { + super(batchSize, showSql, content); this.blobsContainers = blobsContainers; } @@ -57,6 +62,11 @@ public class ImportTripScriptTopiaSqlWork extends RunScriptTopiaSqlWork { int batchSize = 0; String sql = String.format("update %s SET %s = ? WHERE topiaId= ?", tableName, columnName); + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sql); + } + } try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) { for (Map.Entry<String, byte[]> containerEntry : blobsContainer.getBlobsById().entrySet()) { diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java index fff3a98..cd7c876 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java @@ -24,6 +24,7 @@ package fr.ird.observe.services.topia.service.data; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaPersistenceContext; +import fr.ird.observe.services.dto.IdHelper; import fr.ird.observe.services.service.data.DeleteTripRequest; import fr.ird.observe.services.service.data.DeleteTripResult; import fr.ird.observe.services.service.data.ExportTripRequest; @@ -31,14 +32,13 @@ import fr.ird.observe.services.service.data.ExportTripResult; import fr.ird.observe.services.service.data.ImportTripRequest; import fr.ird.observe.services.service.data.ImportTripResult; import fr.ird.observe.services.service.data.TripManagementService; -import fr.ird.observe.services.topia.ObserveServiceContextTopia; -import fr.ird.observe.services.topia.ObserveServiceTopia; -import fr.ird.observe.services.dto.IdHelper; import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.AddSqlScriptProducerResult; import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.ObserveBlobsContainer; import fr.ird.observe.services.service.sql.SqlScriptProducerService; +import fr.ird.observe.services.topia.ObserveServiceContextTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.StringUtil; @@ -158,7 +158,8 @@ public class TripManagementServiceTopia extends ObserveServiceTopia implements T } else { - persistenceContext.getSqlSupport().doSqlWork(new ImportTripScriptTopiaSqlWork(1000, request.getSqlContent(), blobsContainers)); + boolean showSql = serviceContext.getTopiaApplicationContext().getConfiguration().isShowSql(); + persistenceContext.getSqlSupport().doSqlWork(new ImportTripScriptTopiaSqlWork(1000, showSql, request.getSqlContent(), blobsContainers)); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java index 7f697e9..34cf494 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java @@ -124,11 +124,14 @@ public class SqlScriptProducerServiceTopia extends ObserveServiceTopia implement protected SqlRequests sqlRequests(AddSqlScriptProducerRequest request, SqlRequests.Builder builder) { + if (serviceContext.getTopiaApplicationContext().getConfiguration().isShowSql()) { + builder.showSql(); + } + if (request.isAddSchema()) { SqlRequests.CreateSchemaRequestBuilder createSchemaRequestBuilder = builder .createSchemaBuilder() - .setAddSchema(true) .setTemporaryPath(serviceContext.getTemporaryDirectoryRoot().toPath()); if (request.isH2()) { createSchemaRequestBuilder.forH2(); @@ -220,6 +223,10 @@ public class SqlScriptProducerServiceTopia extends ObserveServiceTopia implement protected SqlRequests sqlRequests(DeleteSqlScriptProducerRequest request, SqlRequests.Builder builder) { + if (serviceContext.getTopiaApplicationContext().getConfiguration().isShowSql()) { + builder.showSql(); + } + ObserveTopiaApplicationContext topiaApplicationContext = serviceContext.getTopiaApplicationContext(); if (request.isDeleteData()) { diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java index 7742998..5cdf30f 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java @@ -23,7 +23,6 @@ package org.nuiton.topia.service.sql.batch; */ import com.google.common.collect.ImmutableSet; -import org.hibernate.dialect.Dialect; import org.nuiton.topia.persistence.TopiaApplicationContext; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; import org.nuiton.topia.service.sql.batch.actions.AbstractSchemaRequest; @@ -53,8 +52,11 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { protected final ImmutableSet<AbstractSqlRequest> requests; - protected SqlRequests(ImmutableSet<AbstractSqlRequest> requests) { + protected final boolean showSql; + + protected SqlRequests(ImmutableSet<AbstractSqlRequest> requests, boolean showSql) { this.requests = requests; + this.showSql = showSql; } public static Builder builder() { @@ -75,8 +77,14 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { return requests.iterator(); } + public boolean isShowSql() { + return showSql; + } + public interface Builder extends BuilderAddRequestStep { + Builder showSql(); + Builder from(TopiaApplicationContext sourceTopiaApplicationContext); Builder to(TopiaApplicationContext targetTopiaApplicationContext); @@ -97,16 +105,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { DeleteTablesRequestBuilder deleteTablesBuilder(); - BuilderAddRequestStep addCreateSchema(CreateSchemaRequest request); - - BuilderAddRequestStep addDropSchema(DropSchemaRequest request); - - BuilderAddRequestStep addReplicateTables(ReplicateTablesRequest request); - - BuilderAddRequestStep addUpdateTables(UpdateTablesRequest request); - - BuilderAddRequestStep addDeleteTables(DeleteTablesRequest request); - <R extends AbstractSqlRequest> BuilderAddRequestStep addRequest(R request); Builder flush(); @@ -121,6 +119,13 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { protected TopiaApplicationContext sourceTopiaApplicationContext; protected TopiaApplicationContext targetTopiaApplicationContext; protected Writer writer; + private boolean showSql; + + @Override + public Builder showSql() { + showSql = true; + return this; + } @Override public Builder from(TopiaApplicationContext sourceTopiaApplicationContext) { @@ -142,7 +147,7 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { @Override public SqlRequests build() { - return new SqlRequests(requestsBuilder.build()); + return new SqlRequests(requestsBuilder.build(), showSql); } @Override @@ -181,31 +186,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { } @Override - public BuilderAddRequestStep addCreateSchema(CreateSchemaRequest request) { - return addRequest(request); - } - - @Override - public BuilderAddRequestStep addDropSchema(DropSchemaRequest request) { - return addRequest(request); - } - - @Override - public BuilderAddRequestStep addReplicateTables(ReplicateTablesRequest request) { - return addRequest(request); - } - - @Override - public BuilderAddRequestStep addUpdateTables(UpdateTablesRequest request) { - return addRequest(request); - } - - @Override - public BuilderAddRequestStep addDeleteTables(DeleteTablesRequest request) { - return addRequest(request); - } - - @Override public Builder flush() { return this; } @@ -221,11 +201,7 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { public CreateSchemaRequestBuilder(BuilderImpl builder, CreateSchemaRequest.Builder delegate) { super(builder, delegate); - } - - public CreateSchemaRequestBuilder setAddSchema(boolean addSchema) { - delegate.setAddSchema(addSchema); - return this; + delegate.setAddSchema(true); } } @@ -234,11 +210,7 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { public DropSchemaRequestBuilder(BuilderImpl builder, DropSchemaRequest.Builder delegate) { super(builder, delegate); - } - - public DropSchemaRequestBuilder setDropSchema(boolean dropSchema) { - delegate.setDropSchema(dropSchema); - return this; + delegate.setDropSchema(true); } } @@ -303,31 +275,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { } @Override - public BuilderAddRequestStep addCreateSchema(CreateSchemaRequest request) { - return flush().addRequest(request); - } - - @Override - public BuilderAddRequestStep addDropSchema(DropSchemaRequest request) { - return flush().addRequest(request); - } - - @Override - public BuilderAddRequestStep addReplicateTables(ReplicateTablesRequest request) { - return flush().addRequest(request); - } - - @Override - public BuilderAddRequestStep addUpdateTables(UpdateTablesRequest request) { - return flush().addRequest(request); - } - - @Override - public BuilderAddRequestStep addDeleteTables(DeleteTablesRequest request) { - return addRequest(request); - } - - @Override public <RR extends AbstractSqlRequest> BuilderAddRequestStep addRequest(RR request) { return builder.addRequest(request); } @@ -343,10 +290,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { return builder; } -// protected BuilderAddRequestStep flushCurrentRequest() { -// return addRequest(delegate.build()); -// } - protected B returnThis() { return (B) this; } @@ -369,11 +312,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { return returnThis(); } - public B setDialect(Class<? extends Dialect> dialectType) { - delegate.setDialect(dialectType); - return returnThis(); - } - public B setTemporaryPath(Path temporaryPath) { delegate.setTemporaryPath(temporaryPath); return returnThis(); @@ -392,11 +330,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { return returnThis(); } - public B setFetchSize(int fetchSize) { - delegate.setReadFetchSize(fetchSize); - return returnThis(); - } - public B setSelectArgument(TopiaSqlTableSelectArgument arg) { delegate.setSelectArgument(arg); return returnThis(); @@ -404,5 +337,4 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { } - } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java index 32af6fe..a69332f 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java @@ -158,7 +158,7 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { AbstractSqlRequest sqlRequest = sqlRequestIterator.next(); - AbstractSqlAction<?> action = createAction(sqlRequest); + AbstractSqlAction<?> action = createAction(sqlRequest, requests.isShowSql()); action.run(); @@ -207,7 +207,7 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { } - protected <R extends AbstractSqlRequest, A extends AbstractSqlAction<R>> A createAction(R request) { + protected <R extends AbstractSqlRequest, A extends AbstractSqlAction<R>> A createAction(R request, boolean showSql) { Objects.requireNonNull(request, "Request can't be null"); Class<A> actionType = ACTION_MAPPING.get(request.getClass()); @@ -215,12 +215,12 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { Constructor<A> constructor; try { - constructor = actionType.getConstructor(request.getClass()); + constructor = actionType.getConstructor(request.getClass(), boolean.class); } catch (NoSuchMethodException e) { throw new TopiaException(e); } try { - return constructor.newInstance(request); + return constructor.newInstance(request, showSql); } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { throw new TopiaException(e); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java index 3364f08..9d3772e 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java @@ -36,8 +36,8 @@ import java.sql.SQLException; */ public abstract class AbstractSchemaAction<R extends AbstractSchemaRequest> extends AbstractSqlAction<R> { - protected AbstractSchemaAction(R request) { - super(request); + protected AbstractSchemaAction(R request, boolean showSql) { + super(request, showSql); } protected abstract String produceSql(Class<? extends Dialect> dialectType, Path temporaryDirectory) throws IOException; diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java index 4bd8a0e..397687c 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java @@ -31,7 +31,6 @@ import org.nuiton.topia.persistence.TopiaPersistenceContext; import org.nuiton.topia.persistence.internal.AbstractTopiaPersistenceContext; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcHelper; -import org.nuiton.topia.persistence.support.TopiaSqlWork; import org.nuiton.util.TimeLog; import java.io.Closeable; @@ -54,10 +53,9 @@ import java.util.Set; public abstract class AbstractSqlAction<R extends AbstractSqlRequest> implements Runnable, Closeable { protected static final TimeLog TIME_LOG = new TimeLog(AbstractSqlAction.class, 50L, 100L); - /** - * Logger. - */ + /** Logger. */ private static final Log log = LogFactory.getLog(AbstractSqlAction.class); + protected final R request; protected final ImmutableSet<Closeable> closeables; @@ -72,10 +70,13 @@ public abstract class AbstractSqlAction<R extends AbstractSqlRequest> implements protected long endTime; + protected final boolean showSql; + private final Set<BlobsContainer.Builder> blobsContainerBuilders = new LinkedHashSet<>(); - protected AbstractSqlAction(R request) { + protected AbstractSqlAction(R request, boolean showSql) { this.request = request; + this.showSql = showSql; this.closeables = ImmutableSet.<Closeable>builder() .add(() -> { @@ -211,10 +212,6 @@ public abstract class AbstractSqlAction<R extends AbstractSqlRequest> implements } - protected void executeSqlWork(TopiaSqlWork sqlWork) { - getSourcePersistenceContext().getSqlSupport().doSqlWork(sqlWork); - } - protected AbstractTopiaPersistenceContext getSourcePersistenceContext() { if (sourcePersistenceContext == null) { sourcePersistenceContext = request.getSourceTopiaApplicationContext().newPersistenceContext(); diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlRequest.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlRequest.java index 177d3d5..e0a7a02 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlRequest.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlRequest.java @@ -23,8 +23,6 @@ package org.nuiton.topia.service.sql.batch.actions; */ import com.google.common.base.Preconditions; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaApplicationContext; import java.io.Writer; @@ -39,11 +37,6 @@ import java.io.Writer; */ public abstract class AbstractSqlRequest { - /** - * Logger. - */ - private static final Log log = LogFactory.getLog(AbstractSqlRequest.class); - protected TopiaApplicationContext sourceTopiaApplicationContext; protected TopiaApplicationContext targetTopiaApplicationContext; diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java index a3ee8bc..ad74fe4 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java @@ -52,13 +52,11 @@ import java.util.stream.Collectors; */ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> extends AbstractSqlAction<R> { - /** - * Logger. - */ + /** Logger. */ private static final Log log = LogFactory.getLog(AbstractTablesAction.class); - protected AbstractTablesAction(R request) { - super(request); + protected AbstractTablesAction(R request, boolean showSql) { + super(request, showSql); } protected abstract TopiaSqlTables getTables(); @@ -73,7 +71,7 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte long startTable = TimeLog.getTime(); TopiaSqlWork sqlWork = new ReadSqlWork(request, table); - executeSqlWork(sqlWork); + getSourcePersistenceContext().getSqlSupport().doSqlWork(sqlWork); TIME_LOG.log(startTable, "Executed on table.", table.getFullyTableName()); @@ -143,6 +141,21 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte } + private static class PreparedStatementWrapper implements AutoCloseable { + private final String sqlCode; + private final PreparedStatement preparedStatement; + + private PreparedStatementWrapper(String sqlCode, PreparedStatement preparedStatement) { + this.sqlCode = sqlCode; + this.preparedStatement = preparedStatement; + } + + @Override + public void close() throws SQLException { + preparedStatement.close(); + } + } + protected class ReadSqlWork implements TopiaSqlWork { private final R request; @@ -156,17 +169,27 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte @Override public void execute(Connection connection) throws SQLException { - try (PreparedStatement readStatement = createReadStatement(table, connection)) { + try (PreparedStatementWrapper readStatementWrapper = createReadStatement(table, connection)) { + + PreparedStatement readStatement = readStatementWrapper.preparedStatement; + + long t0 = TimeLog.getTime(); readStatement.execute(); + TIME_LOG.log(t0, "Read statement", readStatementWrapper.sqlCode); + t0 = TimeLog.getTime(); + executeOnTable(request, table, readStatement); + TIME_LOG.log(t0, "Execute on table", readStatementWrapper.sqlCode); + } } - protected PreparedStatement createReadStatement(TopiaSqlTable table, Connection connection) throws SQLException { + + protected PreparedStatementWrapper createReadStatement(TopiaSqlTable table, Connection connection) throws SQLException { StringBuilder sqlBuilder = new StringBuilder("SELECT " + table.getTableName() + ".*"); @@ -186,14 +209,20 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte } PreparedStatement statement = connection.prepareStatement(sql); + String sqlCode = sql; if (filter) { int index = 1; for (String id : selectArgument.getIds()) { statement.setString(index++, id); } + sqlCode = sql + " -> " + selectArgument.getIds(); + } + if (showSql) { + log.info(sqlCode); + } statement.setFetchSize(request.getReadFetchSize()); - return statement; + return new PreparedStatementWrapper(sqlCode, statement); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java index d2cb2fc..5f87059 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java @@ -23,6 +23,8 @@ package org.nuiton.topia.service.sql.batch.actions; */ import com.google.common.collect.ImmutableSet; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.cfg.Configuration; import org.hibernate.cfg.Environment; @@ -44,10 +46,13 @@ import java.util.Properties; */ public class CreateSchemaAction extends AbstractSchemaAction<CreateSchemaRequest> { + /** Logger */ + private static final Log log = LogFactory.getLog(CreateSchemaAction.class); + public static final String CREATE_SCHEMA_STATEMENT = "CREATE SCHEMA %s;\n"; - public CreateSchemaAction(CreateSchemaRequest request) { - super(request); + public CreateSchemaAction(CreateSchemaRequest request, boolean showSql) { + super(request, showSql); } protected String produceSql(Class<? extends Dialect> dialectType, Path temporaryDirectory) throws IOException { @@ -78,6 +83,11 @@ public class CreateSchemaAction extends AbstractSchemaAction<CreateSchemaRequest } sqlStatements += new String(Files.readAllBytes(sqlScriptFile)); + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sqlStatements); + } + } Files.delete(sqlScriptFile); return sqlStatements; diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java index 7859c13..f668fa7 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java @@ -52,8 +52,8 @@ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest */ private static final Log log = LogFactory.getLog(DeleteTablesAction.class); - public DeleteTablesAction(DeleteTablesRequest request) { - super(request); + public DeleteTablesAction(DeleteTablesRequest request, boolean showSql) { + super(request, showSql); } @Override @@ -113,7 +113,11 @@ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest String sql = String.format(deleteStatementSql, topiaId); writer.append(sql); - + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sql); + } + } } catch (IOException e) { throw new TopiaException("Could not deleteRow", e); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java index c50fda4..8153c6e 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java @@ -24,6 +24,8 @@ package org.nuiton.topia.service.sql.batch.actions; import com.google.common.collect.ImmutableSet; import org.apache.commons.io.output.WriterOutputStream; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.cfg.Configuration; import org.hibernate.cfg.Environment; @@ -44,10 +46,13 @@ import java.util.Properties; */ public class DropSchemaAction extends AbstractSchemaAction<DropSchemaRequest> { + /** Logger */ + private static final Log log = LogFactory.getLog(DropSchemaAction.class); + public static final String DROP_SCHEMA_STATEMENT = "\nDROP SCHEMA %s;"; - public DropSchemaAction(DropSchemaRequest request) { - super(request); + public DropSchemaAction(DropSchemaRequest request, boolean showSql) { + super(request, showSql); } @Override @@ -82,7 +87,11 @@ public class DropSchemaAction extends AbstractSchemaAction<DropSchemaRequest> { sqlContent += String.format(DROP_SCHEMA_STATEMENT, schemaName); } } - + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sqlContent); + } + } return sqlContent; } catch (HibernateException eee) { diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java index d7b2096..5a2954f 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java @@ -62,8 +62,8 @@ public class ReplicateTablesAction extends AbstractTablesAction<ReplicateTablesR */ private static final Log log = LogFactory.getLog(ReplicateTablesAction.class); - public ReplicateTablesAction(ReplicateTablesRequest request) { - super(request); + public ReplicateTablesAction(ReplicateTablesRequest request, boolean showSql) { + super(request, showSql); } @Override @@ -203,7 +203,7 @@ public class ReplicateTablesAction extends AbstractTablesAction<ReplicateTablesR if (columnValue == null) { continue; } - + InputStream stream; int size; if (columnValue instanceof Long) { diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java index 1b5202e..4eea197 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java @@ -53,8 +53,8 @@ public class UpdateTablesAction extends AbstractTablesAction<UpdateTablesRequest */ private static final Log log = LogFactory.getLog(UpdateTablesAction.class); - public UpdateTablesAction(UpdateTablesRequest request) { - super(request); + public UpdateTablesAction(UpdateTablesRequest request, boolean showSql) { + super(request, showSql); } protected TopiaSqlTables getTables() { @@ -121,7 +121,11 @@ public class UpdateTablesAction extends AbstractTablesAction<UpdateTablesRequest String arguments = generateArguments(columnNames, readResultSet); String sql = String.format(updateStatementSql, arguments, topiaId); writer.append(sql); - + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sql + " -> " + arguments); + } + } } catch (IOException e) { throw new RuntimeException("Could not updateRow", e); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTablesFactory.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTablesFactory.java index 8202553..a1d30d2 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTablesFactory.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTablesFactory.java @@ -43,9 +43,7 @@ import java.util.Set; */ public class TopiaSqlTablesFactory { - /** - * Logger. - */ + /** Logger. */ private static final Log log = LogFactory.getLog(TopiaSqlTablesFactory.class); protected final TopiaMetadataModel model; @@ -114,7 +112,7 @@ public class TopiaSqlTablesFactory { boolean added = dones.add(metadataEntity); if (added) { - log.info("E → " + metadataEntity.getType()); + log.debug("E → " + metadataEntity.getType()); TopiaEntityEnum entityEnum = entityEnumProvider.getEntityEnum(metadataEntity.getType()); builder = (builder == null ? TopiaSqlTables.builder(metadataModel, metadataEntity) : builder).addMainTable(entityEnum); @@ -127,7 +125,7 @@ public class TopiaSqlTablesFactory { public void visitEntiyEnd(TopiaMetadataModel metadataModel, TopiaMetadataEntity metadataEntity) { if (dones.contains(metadataEntity)) { - log.info("E ← " + metadataEntity.getType()); + log.debug("E ← " + metadataEntity.getType()); } } @@ -139,7 +137,7 @@ public class TopiaSqlTablesFactory { TopiaEntityEnum entityEnum = entityEnumProvider.getEntityEnum(propertyType.getType()); boolean withShell = propertyType.withShell(); - log.info(metadataEntity.getType() + "/" + propertyName + "→" + propertyType.getType() + " (withShell: " + withShell + ")"); + log.debug(metadataEntity.getType() + "/" + propertyName + "→" + propertyType.getType() + " (withShell: " + withShell + ")"); if (withShell) { builder = builder.addAndEnterReverseJoinTable(entityEnum); @@ -157,7 +155,7 @@ public class TopiaSqlTablesFactory { TopiaEntityEnum entityEnum = entityEnumProvider.getEntityEnum(propertyType.getType()); boolean withShell = propertyType.withShell(); - log.info(metadataEntity.getType() + "/" + propertyName + "→" + propertyType.getType() + " (withShell: " + withShell + ")"); + log.debug(metadataEntity.getType() + "/" + propertyName + "→" + propertyType.getType() + " (withShell: " + withShell + ")"); if (withShell) { builder = builder.addAndEnterJoinTable(entityEnum); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 160c3dd34986bb75da4b3da8983696f3870cda89 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:22:11 2016 +0100 refs #8554 : changement de la configuration du pool de connections --- .../observe/ObserveTopiaApplicationContext.java | 25 ++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java index 5a649b9..2efe028 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java @@ -32,6 +32,7 @@ import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; +import org.nuiton.topia.persistence.HibernateAvailableSettings; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.internal.support.TopiaMetadataModelSupportImpl; import org.nuiton.topia.persistence.jdbc.JdbcH2Helper; @@ -49,6 +50,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.LinkedHashSet; import java.util.Objects; +import java.util.Properties; import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; @@ -65,8 +67,6 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat public static final String SQL_BATCH_SERVICE_NAME = "sqlBatch"; - public static final String DB_VERSION = "db.version"; - private static final String CREATE_SCHEMA_SCRIPT = "CREATE SCHEMA OBSERVE_COMMON;\n" + "CREATE SCHEMA OBSERVE_LONGLINE;\n" @@ -93,6 +93,23 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat this.topiaMetadataModelSupport = new TopiaMetadataModelSupportImpl("fr.ird.observe", "Observe"); this.topiaSqlTablesFactory = new TopiaSqlTablesFactory(getMetadataModel(), this); this.observeMigrationConfigurationProvider = ObserveMigrationConfigurationProvider.get(); + + // La valeur par défaut dans ToPIA est 20 et c'est trop peu + //FIXME Il semblerait que l'export d'une marée consome une connection mais ne la rend pas + //FIXME On devrait du coup limiter le nombre de marées à exporter (200-300) + Properties properties = new Properties(); + properties.put(HibernateAvailableSettings.C3P0_MAX_SIZE, 500); + properties.put(HibernateAvailableSettings.C3P0_MAX_STATEMENTS, 500); + properties.put(HibernateAvailableSettings.C3P0_TIMEOUT, 100); + getHibernateProvider().getHibernateConfiguration().addProperties(properties); + + } + + @Override + public ObserveTopiaPersistenceContext newPersistenceContext() { + ObserveTopiaPersistenceContext persistenceContext = super.newPersistenceContext(); + persistenceContext.setShowSql(getConfiguration().isShowSql()); + return persistenceContext; } @Override @@ -108,10 +125,6 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat this.open = open; } - public ObserveMigrationConfigurationProvider getObserveMigrationConfigurationProvider() { - return observeMigrationConfigurationProvider; - } - public ObserveMigrationEngine getMigrationService() { return getServices(ObserveMigrationEngine.class).get(MIGRATION_SERVICE_NAME); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 9d34e50c74d689c97d15afb2f1d791b6b4a67a97 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 8 12:20:37 2016 +0100 Ajout raccourci clavier sur les listes déroulantes --- .../swing/ui/content/ContentUIInitializer.java | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java index 6cd093c..c2cee31 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java @@ -69,7 +69,9 @@ import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; import org.nuiton.jaxx.widgets.select.FilterableDoubleList; import org.nuiton.util.DateUtil; +import javax.swing.AbstractAction; import javax.swing.AbstractButton; +import javax.swing.Action; import javax.swing.ActionMap; import javax.swing.JCheckBox; import javax.swing.JComboBox; @@ -82,6 +84,7 @@ import javax.swing.JSpinner; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; +import javax.swing.KeyStroke; import javax.swing.ListCellRenderer; import javax.swing.SwingUtilities; import javax.swing.border.LineBorder; @@ -89,6 +92,7 @@ import javax.swing.table.TableCellEditor; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; +import java.awt.event.ActionEvent; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.event.ItemEvent; @@ -361,6 +365,43 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E } beanComboBox.setI18nPrefix("observe.common."); beanComboBox.setMinimumSize(new Dimension(0, 24)); + beanComboBox.getResetButton().setToolTipText(beanComboBox.getResetButton().getToolTipText() + " (ctrl + D)"); + beanComboBox.getChangeDecorator().setToolTipText(beanComboBox.getChangeDecorator().getToolTipText() + " (ctrl + F)"); + JComponent editorComponent = (JComponent) beanComboBox.getCombobox().getEditor().getEditorComponent(); + + Action resetAction = new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + beanComboBox.doActionPerformed__on__resetButton(null); + SwingUtilities.invokeLater(beanComboBox::grabFocus); + } + }; + + editorComponent.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ctrl pressed D"), "resetAction"); + editorComponent.getActionMap().put("resetAction", resetAction); + + Action showPopupAction = new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + if (!beanComboBox.getCombobox().isPopupVisible()) { + beanComboBox.getCombobox().showPopup(); + } else { + beanComboBox.setSelectedItem(beanComboBox.getCombobox().getEditor().getItem()); + beanComboBox.getCombobox().hidePopup(); + } + } + }; + editorComponent.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ENTER"), "showPopupAction"); + editorComponent.getActionMap().put("showPopupAction", showPopupAction); + + Action showDecoratorPopupAction = new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + beanComboBox.getPopup().show(beanComboBox, 0, 0); + } + }; + editorComponent.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ctrl pressed F"), "showDecoratorPopupAction"); + editorComponent.getActionMap().put("showDecoratorPopupAction", showDecoratorPopupAction); Class dtoClass = getDtoClass(beanComboBox); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit f3617cd007ac56a3e56de13cf8eb7ebc00e668a4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 8 20:20:34 2016 +0100 Gestion du focus sur les écrans d'édition (reste juste le référentiel à faire) --- .../ui/actions/shared/CloseAndCreateUIAction.java | 16 +- .../swing/ui/actions/shared/CloseOpenUIAction.java | 199 ++++++++++++--------- .../swing/ui/actions/shared/ReOpenUIAction.java | 23 ++- .../swing/ui/content/ContentUIInitializer.java | 3 + .../LonglineDetailCompositionUIHandler.java | 67 ++++++- .../impl/longline/SetLonglineUIHandler.java | 39 ++++ ...ngObjectTransmittingBuoyOperationUIHandler.java | 48 ++++- .../impl/seine/FloatingObjectUIHandler.java | 48 ++++- .../ui/content/impl/seine/SetSeineUIHandler.java | 63 ++++++- .../swing/ui/content/list/ContentListUI.jaxx | 21 ++- .../swing/ui/content/list/ContentListUI.jcss | 7 + .../ui/content/list/ContentListUIHandler.java | 66 ++++++- .../list/impl/longline/ActivityLonglinesUI.jaxx | 8 +- .../impl/longline/ActivityLonglinesUIHandler.java | 11 +- .../list/impl/longline/TripLonglinesUI.jaxx | 7 +- .../list/impl/longline/TripLonglinesUIHandler.java | 13 +- .../content/list/impl/seine/ActivitySeinesUI.jaxx | 8 +- .../list/impl/seine/ActivitySeinesUIHandler.java | 8 +- .../swing/ui/content/list/impl/seine/RoutesUI.jaxx | 8 +- .../content/list/impl/seine/RoutesUIHandler.java | 8 +- .../ui/content/list/impl/seine/TripSeinesUI.jaxx | 8 +- .../list/impl/seine/TripSeinesUIHandler.java | 11 +- .../swing/ui/content/open/ContentOpenableUI.jaxx | 12 +- .../ui/content/open/ContentOpenableUIHandler.java | 39 ++-- .../open/impl/longline/ActivityLonglineUI.jaxx | 16 +- .../impl/longline/ActivityLonglineUIHandler.java | 37 +++- .../content/open/impl/longline/TripLonglineUI.jaxx | 47 +++-- .../open/impl/longline/TripLonglineUIHandler.java | 43 ++++- .../content/open/impl/seine/ActivitySeineUI.jaxx | 5 +- .../open/impl/seine/ActivitySeineUIHandler.java | 62 ++++++- .../swing/ui/content/open/impl/seine/RouteUI.jaxx | 16 +- .../ui/content/open/impl/seine/RouteUIHandler.java | 84 ++++----- .../ui/content/open/impl/seine/TripSeineUI.jaxx | 27 +-- .../open/impl/seine/TripSeineUIHandler.java | 52 ++++-- .../swing/ui/content/table/ContentTableModel.java | 7 +- .../swing/ui/content/table/ContentTableUI.jaxx | 6 +- .../ui/content/table/ContentTableUIHandler.java | 155 +++++----------- .../content/table/ContentTableUIInitializer.java | 4 +- .../ui/content/table/ContentTableUIModel.java | 6 +- .../ui/content/table/ObserveContentTableUI.java | 4 +- .../table/impl/longline/BaitsCompositionUI.jaxx | 19 +- .../impl/longline/BaitsCompositionUIHandler.java | 8 +- .../impl/longline/BaitsCompositionUIModel.java | 20 +-- .../impl/longline/BranchlinesCompositionUI.jaxx | 19 +- .../longline/BranchlinesCompositionUIHandler.java | 8 +- .../longline/BranchlinesCompositionUIModel.java | 20 +-- .../impl/longline/CatchLonglineTableModel.java | 3 +- .../table/impl/longline/CatchLonglineUI.jaxx | 59 ++++-- .../impl/longline/CatchLonglineUIHandler.java | 97 ++++++++-- .../table/impl/longline/CatchLonglineUIModel.java | 58 +++--- .../content/table/impl/longline/EncounterUI.jaxx | 14 +- .../table/impl/longline/EncounterUIHandler.java | 47 ++++- .../table/impl/longline/EncounterUIModel.java | 12 +- .../impl/longline/FloatlinesCompositionUI.jaxx | 16 +- .../longline/FloatlinesCompositionUIHandler.java | 8 +- .../longline/FloatlinesCompositionUIModel.java | 17 +- .../GearUseFeaturesLonglineTableModel.java | 8 +- .../impl/longline/GearUseFeaturesLonglineUI.jaxx | 25 ++- .../longline/GearUseFeaturesLonglineUIHandler.java | 41 ++++- .../longline/GearUseFeaturesLonglineUIModel.java | 10 +- .../table/impl/longline/HooksCompositionUI.jaxx | 20 +-- .../impl/longline/HooksCompositionUIHandler.java | 8 +- .../impl/longline/HooksCompositionUIModel.java | 19 +- .../content/table/impl/longline/SensorUsedUI.jaxx | 18 +- .../table/impl/longline/SensorUsedUIHandler.java | 40 ++++- .../table/impl/longline/SensorUsedUIModel.java | 23 +-- .../ui/content/table/impl/longline/TdrUI.jaxx | 27 +-- .../content/table/impl/longline/TdrUIHandler.java | 83 ++++++++- .../ui/content/table/impl/longline/TdrUIModel.java | 5 +- .../table/impl/seine/AbstractSampleUIHandler.java | 6 +- .../impl/seine/GearUseFeaturesSeineTableModel.java | 8 +- .../table/impl/seine/GearUseFeaturesSeineUI.jaxx | 25 ++- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 55 +++++- .../impl/seine/GearUseFeaturesSeineUIModel.java | 24 +-- .../content/table/impl/seine/NonTargetCatchUI.jaxx | 45 ++--- .../table/impl/seine/NonTargetCatchUIHandler.java | 28 ++- .../table/impl/seine/NonTargetCatchUIModel.java | 12 +- .../table/impl/seine/NonTargetSampleUI.jaxx | 15 +- .../table/impl/seine/NonTargetSampleUIHandler.java | 35 +++- .../table/impl/seine/NonTargetSampleUIModel.java | 23 +-- .../table/impl/seine/ObjectObservedSpeciesUI.jaxx | 31 ++-- .../impl/seine/ObjectObservedSpeciesUIHandler.java | 28 ++- .../impl/seine/ObjectObservedSpeciesUIModel.java | 13 +- .../table/impl/seine/ObjectSchoolEstimateUI.jaxx | 31 ++-- .../impl/seine/ObjectSchoolEstimateUIHandler.java | 28 ++- .../impl/seine/ObjectSchoolEstimateUIModel.java | 13 +- .../content/table/impl/seine/SchoolEstimateUI.jaxx | 24 +-- .../table/impl/seine/SchoolEstimateUIHandler.java | 42 ++++- .../table/impl/seine/SchoolEstimateUIModel.java | 19 +- .../ui/content/table/impl/seine/TargetCatchUI.jaxx | 27 ++- .../table/impl/seine/TargetCatchUIHandler.java | 40 ++++- .../table/impl/seine/TargetCatchUIModel.java | 27 +-- .../table/impl/seine/TargetDiscardCatchUI.jaxx | 33 ++-- .../impl/seine/TargetDiscardCatchUIHandler.java | 34 +++- .../impl/seine/TargetDiscardCatchUIModel.java | 27 +-- .../table/impl/seine/TargetSampleCaptureUI.jaxx | 7 +- .../table/impl/seine/TargetSampleRejeteUI.jaxx | 7 +- .../content/table/impl/seine/TargetSampleUI.jaxx | 17 +- .../table/impl/seine/TargetSampleUIHandler.java | 37 +++- .../table/impl/seine/TargetSampleUIModel.java | 4 +- 100 files changed, 1867 insertions(+), 962 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java index 96a3ce0..d2e1807 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java @@ -22,8 +22,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; @@ -32,6 +30,8 @@ import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; import fr.ird.observe.application.swing.ui.content.open.impl.longline.ActivityLonglineUI; import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; import javax.swing.JComponent; import javax.swing.JTree; @@ -70,12 +70,10 @@ public class CloseAndCreateUIAction extends AbstractUIAction { ContentUI<?> ui = (ContentUI<?>) c.getClientProperty("ui"); if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); + throw new IllegalStateException("could not find client property ui on component" + c); } if (ui instanceof ContentOpenableUI) { - ((ContentOpenableUI<?>) ui).closeAndCreateData(); + ((ContentOpenableUI<?, ?>) ui).closeAndCreateData(); return; } @@ -86,11 +84,7 @@ public class CloseAndCreateUIAction extends AbstractUIAction { JTree tree = getMainUI().getNavigation(); ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - boolean wasCollapsed = isOpenActivityNodeCollapsed( - tree, - treeHelper, - getMainUI().getDataContext() - ); + boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, treeHelper, getMainUI().getDataContext()); // selection du noeud de l'activity ouverte treeHelper.selectOpenNode(ActivitySeineDto.class); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java index 8e68887..79d443f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java @@ -22,22 +22,19 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; +import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; +import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; +import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUI; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; -import fr.ird.observe.application.swing.ui.content.open.impl.longline.ActivityLonglineUI; -import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import javax.swing.JComponent; -import javax.swing.JTree; import javax.swing.SwingUtilities; -import javax.swing.tree.TreePath; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n.n; @@ -68,104 +65,144 @@ public class CloseOpenUIAction extends AbstractUIAction { SwingUtilities.invokeLater(() -> { JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); + ContentUI<?> ui = (ContentUI<?>) c.getClientProperty("ui"); if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); + throw new IllegalStateException("could not find client property ui on component" + c); } if (ui instanceof ContentOpenableUI) { - ((ContentOpenableUI<?>) ui).closeData(); + ((ContentOpenableUI<?, ?>) ui).closeData(); return; } - if (ui instanceof ActivitySeinesUI) { - - // cas particulier pour l'écran des activités - - JTree tree = getMainUI().getNavigation(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - - // recuperation du noeud courant (activitys) - ObserveNode node = treeHelper.getSelectedNode(); - - boolean wasCollapsed = isOpenActivityNodeCollapsed( - tree, - treeHelper, - getMainUI().getDataContext() - ); - - // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(ActivitySeineDto.class); - - // on conserve le path de l'activity - TreePath path = tree.getSelectionPath(); - - // recuperation de l'écran associé - ActivitySeineUI selectedUI = (ActivitySeineUI) - ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); - - // fermeture de l'activity - selectedUI.closeData(); - - if (wasCollapsed) { - - // on ferme le noeud de l'activity (qui a ete ouvert - // lors de la selection de celle-ci) - tree.collapsePath(path); - } - - // retour sur le noeud des activitys - treeHelper.selectNode(node); + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + if (ui instanceof TripSeinesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenTripSeineId(); + closeData(applicationContext, ui, higherOpenId); + return; + } + if (ui instanceof RoutesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenRouteId(); + closeData(applicationContext, ui, higherOpenId); + return; + } + if (ui instanceof ActivitySeinesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenActivitySeineId(); + closeData(applicationContext, ui, higherOpenId); return; } + if (ui instanceof TripLonglinesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenTripLonglineId(); + closeData(applicationContext, ui, higherOpenId); + return; + } if (ui instanceof ActivityLonglinesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenActivityLonglineId(); + closeData(applicationContext, ui, higherOpenId); + return; + } - // cas particulier pour l'écran des activités - - JTree tree = getMainUI().getNavigation(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); +// if (ui instanceof ActivitySeinesUI) { +// +// // cas particulier pour l'écran des activités +// +// JTree tree = getMainUI().getNavigation(); +// ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); +// +// // recuperation du noeud courant (activitys) +// ObserveNode node = treeHelper.getSelectedNode(); +// +// boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, treeHelper, getMainUI().getDataContext()); +// +// // selection du noeud de l'activity ouverte +// treeHelper.selectOpenNode(ActivitySeineDto.class); +// +// // on conserve le path de l'activity +// TreePath path = tree.getSelectionPath(); +// +// // recuperation de l'écran associé +// ActivitySeineUI selectedUI = (ActivitySeineUI) +// applicationContext.getContentUIManager().getSelectedContentUI(); +// +// // fermeture de l'activity +// selectedUI.closeData(); +// +// if (wasCollapsed) { +// +// // on ferme le noeud de l'activity (qui a ete ouvert +// // lors de la selection de celle-ci) +// tree.collapsePath(path); +// } +// +// // retour sur le noeud des activitys +// treeHelper.selectNode(node); +// +// return; +// } +// +// if (ui instanceof ActivityLonglinesUI) { +// +// // cas particulier pour l'écran des activités +// +// JTree tree = getMainUI().getNavigation(); +// ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); +// +// // recuperation du noeud courant (activitys) +// ObserveNode node = treeHelper.getSelectedNode(); +// +// boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, treeHelper, getMainUI().getDataContext()); +// +// // selection du noeud de l'activity ouverte +// treeHelper.selectOpenNode(ActivityLonglineDto.class); +// +// // on conserve le path de l'activité +// TreePath path = tree.getSelectionPath(); +// +// // recuperation de l'écran associé +// ActivityLonglineUI selectedUI = (ActivityLonglineUI) +// applicationContext.getContentUIManager().getSelectedContentUI(); +// +// // fermeture de l'activité +// selectedUI.closeData(); +// +// if (wasCollapsed) { +// +// // on ferme le noeud de l'activité (qui a ete ouvert lors de la selection de celle-ci) +// tree.collapsePath(path); +// } +// +// // retour sur le noeud des activités +// treeHelper.selectNode(node); +// +// return; +// } - // recuperation du noeud courant (activitys) - ObserveNode node = treeHelper.getSelectedNode(); + throw new IllegalStateException("Can not come here!"); + }); - boolean wasCollapsed = isOpenActivityNodeCollapsed( - tree, - treeHelper, - getMainUI().getDataContext() - ); + } - // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(ActivityLonglineDto.class); + private void closeData(ObserveSwingApplicationContext applicationContext, ContentUI<?> ui, String id) { - // on conserve le path de l'activity - TreePath path = tree.getSelectionPath(); + ObserveTreeHelper treeHelper = ui.getTreeHelper(); + ObserveNode selectedNode = treeHelper.getSelectedNode(); - // recuperation de l'écran associé - ActivityLonglineUI selectedUI = (ActivityLonglineUI) - ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + ObserveNode node = treeHelper.findNode(selectedNode, id); - // fermeture de l'activity - selectedUI.closeData(); + treeHelper.selectNode(node); - if (wasCollapsed) { + ContentOpenableUI selectedUI = (ContentOpenableUI) applicationContext.getContentUIManager().getSelectedContentUI(); - // on ferme le noeud de l'activity (qui a ete ouvert - // lors de la selection de celle-ci) - tree.collapsePath(path); - } + // on demande la fermeture de la donnée + selectedUI.closeData(); - // retour sur le noeud des activitys - treeHelper.selectNode(node); + SwingUtilities.invokeLater(() -> { - return; - } + // retour sur le noeud parent + treeHelper.selectNode(selectedNode); - throw new IllegalStateException("Can not come here!"); }); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java index a5935c8..7f5aa95 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java @@ -22,13 +22,13 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.ContentListUI; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.services.dto.DataReference; import javax.swing.JComponent; import javax.swing.SwingUtilities; @@ -62,23 +62,20 @@ public class ReOpenUIAction extends AbstractUIAction { public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); + ContentUI<?> ui = (ContentUI<?>) c.getClientProperty("ui"); if (ui == null) { - throw new IllegalStateException( - "could not find client property ui " + - "on component" + c); + throw new IllegalStateException("could not find client property ui on component" + c); } - ContentOpenableUI<?> openUI; + ContentOpenableUI<?, ?> openUI; - if (ui instanceof ContentOpenableUI<?>) { + if (ui instanceof ContentOpenableUI<?, ?>) { - openUI = (ContentOpenableUI<?>) ui; - } else if (ui instanceof ContentListUI<?, ?>) { + openUI = (ContentOpenableUI<?, ?>) ui; + } else if (ui instanceof ContentListUI<?, ?, ?>) { - DataReference<?> selectedData = ((ContentListUI<?, ?>) ui).getSelectedData(); + DataReference<?> selectedData = ((ContentListUI<?, ?, ?>) ui).getSelectedData(); String id = selectedData.getId(); @@ -88,7 +85,7 @@ public class ReOpenUIAction extends AbstractUIAction { treeHelper.selectNode(node); - openUI = (ContentOpenableUI<?>) + openUI = (ContentOpenableUI<?, ?>) ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); } else { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java index c2cee31..3cc59b2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java @@ -434,6 +434,8 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E protected void init(FilterableDoubleList beanList) { beanList.setI18nPrefix("observe.common."); + beanList.getAddButton().setFocusable(false); + beanList.getRemoveButton().setFocusable(false); if (log.isInfoEnabled()) { log.info("init list for " + beanList.getBeanType()); @@ -467,6 +469,7 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E log.debug("init date time editor " + editor.getName()); } editor.init(); + editor.getSliderHidor().setFocusable(false); if (isAutoSelectOnFocus(editor)) { addAutoSelectOnFocus((JSpinner.DateEditor) editor.getHourEditor().getEditor()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java index d4f6dfa..d7d03d7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java @@ -27,6 +27,12 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.content.ContentMode; +import fr.ird.observe.application.swing.ui.content.ContentUIHandler; +import fr.ird.observe.application.swing.ui.content.ContentUIModel; +import fr.ird.observe.application.swing.ui.util.JVetoableTabbedPane; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.BasketDto; @@ -39,12 +45,6 @@ import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionHelper; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.service.data.longline.SetLonglineDetailCompositionService; -import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.ContentMode; -import fr.ird.observe.application.swing.ui.content.ContentUIHandler; -import fr.ird.observe.application.swing.ui.content.ContentUIModel; -import fr.ird.observe.application.swing.ui.util.JVetoableTabbedPane; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -53,8 +53,11 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComboBox; import javax.swing.JOptionPane; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.ChangeListener; import javax.swing.event.TableModelListener; +import java.awt.Component; +import java.awt.Container; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.LinkedHashSet; @@ -329,6 +332,54 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong tabPane.setChangeSelectedIndex(tabbedPaneWillChanged); tabPane.addChangeListener(tabbedPaneChanged); + getUi().setFocusCycleRoot(true); + getUi().setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + int selectedIndex = getUi().getFishingOperationTabPane().getSelectedIndex(); + if (selectedIndex == 2) { + if (aComponent.equals(getUi().getBranchlineDetailUI().getTopType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(getUi().getBranchlineDetailUI().getHookType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + int selectedIndex = getUi().getFishingOperationTabPane().getSelectedIndex(); + if (selectedIndex == 2) { + int subSelectedIndex = getUi().getBranchlineDetailUI().getFishingOperationTabPane().getSelectedIndex(); + switch (subSelectedIndex) { + case 0: + return getUi().getBranchlineDetailUI().getTopType(); + case 1: + return getUi().getBranchlineDetailUI().getHookType(); + } + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + + if (getUi().getSave().isEnabled()) { + return getUi().getSave(); + } + if (getUi().getReset().isEnabled()) { + return getUi().getReset(); + } + int selectedIndex = getUi().getFishingOperationTabPane().getSelectedIndex(); + if (selectedIndex == 2) { + getUi().getBranchlineDetailUI().getComment2(); + } + return super.getLastComponent(aContainer); + } + }); } @Override @@ -564,8 +615,8 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong sectionsTableModel.setData(sections); List<SectionDto> sectionHelper = sections.stream() - .map(SectionWithTemplate::getDelegate) - .collect(Collectors.toList()); + .map(SectionWithTemplate::getDelegate) + .collect(Collectors.toList()); getBean().addAllSection(sectionHelper); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java index 71569ed..02c0a18 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java @@ -49,7 +49,10 @@ import org.nuiton.jaxx.widgets.gis.CoordinateFormat; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditorModel; import org.nuiton.validator.NuitonValidatorScope; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; +import java.awt.Component; +import java.awt.Container; import java.beans.PropertyChangeListener; import java.util.HashSet; import java.util.Set; @@ -152,6 +155,42 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto> { getUi().getHaulingStartCoordinates().getModel().addPropertyChangeListener(CoordinatesEditorModel.PROPERTY_FORMAT, onCoordinateFormatChangedListener); getUi().getHaulingEndCoordinates().getModel().addPropertyChangeListener(CoordinatesEditorModel.PROPERTY_FORMAT, onCoordinateFormatChangedListener); + getUi().setFocusCycleRoot(true); + getUi().setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { + + @Override + public Component getFirstComponent(Container aContainer) { + int selectedIndex = getUi().getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return getUi().getHomeId(); + case 1: + return getUi().getSettingShape(); + case 2: + return getUi().getHaulingDirectionSameAsSetting(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getDelete(); + } + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(getUi().getHomeId())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(getUi().getHaulingDirectionSameAsSetting())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(getUi().getSettingShape().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + }); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java index ad7d3b8..8e4a2c3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java @@ -47,7 +47,10 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JPanel; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.SwingUtilities; +import java.awt.Component; +import java.awt.Container; import java.awt.GridLayout; import java.util.ArrayList; import java.util.Collection; @@ -102,6 +105,41 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } @Override + public void initUI() { + super.initUI(); + + FloatingObjectTransmittingBuoyOperationUI ui = getUi(); + + ui.setFocusCycleRoot(true); + ui.setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + + if (aComponent.equals(ui.getTypeOperation())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return ui.getTypeOperation(); + } + + @Override + public Component getLastComponent(Container aContainer) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + return ui.getComment2(); + } + }); + } + + @Override public void openUI() { super.openUI(); @@ -170,7 +208,7 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH FloatingObjectTransmittingBuoyOperationUI.BINDING_COUNTRY1_SELECTED_ITEM, FloatingObjectTransmittingBuoyOperationUI.BINDING_COUNTRY2_SELECTED_ITEM, FloatingObjectTransmittingBuoyOperationUI.BINDING_TYPE_OPERATION_SELECTED_ITEM - ); + ); FloatingObjectTransmittingBuoyOperationUI ui = getUi(); @@ -332,7 +370,7 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH if (log.isDebugEnabled()) { log.debug("Reuse an empty balise lue for objectOperation " + - transmittingBuoyOperation.getPropertyValue(TransmittingBuoyOperationDto.PROPERTY_LABEL1)); + transmittingBuoyOperation.getPropertyValue(TransmittingBuoyOperationDto.PROPERTY_LABEL1)); } if (isBalisePose(transmittingBuoyOperation)) { @@ -357,7 +395,7 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } protected ReferentialReference<TransmittingBuoyOperationDto> getObjectOperation(List<ReferentialReference<TransmittingBuoyOperationDto>> objectOperations, - String codeOperation) { + String codeOperation) { ReferentialReference<TransmittingBuoyOperationDto> objectOperation = null; for (ReferentialReference<TransmittingBuoyOperationDto> op : objectOperations) { if (codeOperation.equals(op.getPropertyValue(TransmittingBuoyOperationDto.PROPERTY_CODE))) { @@ -368,13 +406,13 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH if (objectOperation == null) { throw new IllegalArgumentException( "could not find a " + - TransmittingBuoyOperationDto.class + " with code " + codeOperation); + TransmittingBuoyOperationDto.class + " with code " + codeOperation); } return objectOperation; } protected TransmittingBuoyOperationService getTransmittingBuoyOperationService() { - return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTransmittingBuoyOperationService(); + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTransmittingBuoyOperationService(); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java index b219958..582a5b4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java @@ -25,6 +25,11 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.content.ContentMode; +import fr.ird.observe.application.swing.ui.content.ContentUIHandler; +import fr.ird.observe.application.swing.ui.content.ContentUIModel; +import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.result.SaveResultDto; @@ -32,15 +37,14 @@ import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.FloatingObjectHelper; import fr.ird.observe.services.service.data.seine.FloatingObjectService; -import fr.ird.observe.application.swing.ui.content.ContentMode; -import fr.ird.observe.application.swing.ui.content.ContentUIHandler; -import fr.ird.observe.application.swing.ui.content.ContentUIModel; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; +import javax.swing.LayoutFocusTraversalPolicy; +import java.awt.Component; +import java.awt.Container; + import static org.nuiton.i18n.I18n.t; /** @@ -96,6 +100,40 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto> } @Override + public void initUI() { + super.initUI(); + + FloatingObjectUI ui = getUi(); + + ui.setFocusCycleRoot(true); + ui.setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getObjectOperation().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return ui.getObjectOperation(); + } + + @Override + public Component getLastComponent(Container aContainer) { + if (ui.getDelete().isVisible() && ui.getDelete().isEnabled()) { + return ui.getDelete(); + } + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + return ui.getReset(); + } + }); + } + + @Override public void openUI() { super.openUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java index 4a1e41c..3b2a5a6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.application.swing.ui.content.impl.seine; +import fr.ird.observe.application.swing.I18nEnumHelper; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; @@ -28,9 +29,8 @@ import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; import fr.ird.observe.application.swing.ui.content.ContentUIModel; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.I18nEnumHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.constants.seine.SchoolType; @@ -50,7 +50,12 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; +import javax.swing.JComponent; +import javax.swing.JSpinner; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; +import java.awt.Component; +import java.awt.Container; import java.beans.PropertyChangeListener; import java.util.Date; import java.util.HashSet; @@ -136,15 +141,59 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { super.initUI(); + SetSeineUI ui = getUi(); + // To be sure always remove listener (could prevent some leaks) - getUi().getErrorTableModel().removeTableModelListener(computeTabValidStateListener); + ui.getErrorTableModel().removeTableModelListener(computeTabValidStateListener); // listen messages to see if required to add - getUi().getErrorTableModel().addTableModelListener(computeTabValidStateListener); + ui.getErrorTableModel().addTableModelListener(computeTabValidStateListener); + + ui.getStartTime().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); + ui.getEndPursingTimeStamp().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); + ui.getEndSetTimeStamp().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); + + ui.setFocusCycleRoot(true); + ui.setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.getParent().equals(ui.getStartTime().getHourEditor().getEditor())) { + return getLastComponent(aContainer); + } + case 1: + if (aComponent.equals(ui.getSchoolThickness().getTextField())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } - getUi().getStartTime().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); - getUi().getEndPursingTimeStamp().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); - getUi().getEndSetTimeStamp().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); + @Override + public Component getFirstComponent(Container aContainer) { + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + JComponent editor = ui.getStartTime().getHourEditor().getEditor(); + return ((JSpinner.DateEditor) editor).getTextField(); + case 1: + return ui.getSchoolThickness(); + } + return super.getFirstComponent(aContainer); + } + @Override + public Component getLastComponent(Container aContainer) { + if (ui.getDelete().isVisible() && ui.getDelete().isEnabled()) { + return ui.getDelete(); + } + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + return ui.getReset(); + } + }); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx index e2bd28b..b40b058 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx @@ -21,11 +21,11 @@ --> <fr.ird.observe.application.swing.ui.content.ContentUI - abstract='true' - superGenericType='E' - genericType='E extends IdDto, C extends DataDto'> + abstract='true' superGenericType='E' + genericType='E extends IdDto, C extends DataDto, U extends ContentListUI<E,C, U>'> <import> + fr.ird.observe.application.swing.ui.actions.shared.CloseOpenUIAction fr.ird.observe.application.swing.ui.actions.shared.ReOpenUIAction fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction @@ -50,11 +50,10 @@ <ContentListUIModel id='model' genericType='E, C'/> - <ListSelectionModel id='listSelectionModel' - initializer='new DefaultListSelectionModel()' + <ListSelectionModel id='listSelectionModel' initializer='new DefaultListSelectionModel()' onValueChanged='if (!event.getValueIsAdjusting()) getModel().setSelectedDatas(getSelectedDatas());'/> - <ContentListUIHandler id='handler' genericType='E, C'/> + <ContentListUIHandler id='handler' genericType='E, C, U'/> <script><![CDATA[ @@ -70,13 +69,12 @@ public final List<DataReference<C>> getSelectedDatas() { <JPanel id='body'> - <JScrollPane id='listPane' constraints='BorderLayout.CENTER' - onFocusGained='list.requestFocus()' + <JScrollPane id='listPane' constraints='BorderLayout.CENTER' onFocusGained='list.requestFocus()' columnHeaderView='{listHeader}'> <JList id='list' onMouseClicked='getHandler().onDataSelected(event)'/> - <BeanListHeader id='listHeader' genericType='DataReference< C >' _entityClass="getModel().getChildType()"/> + <BeanListHeader id='listHeader' genericType='DataReference< C >'/> </JScrollPane> @@ -93,6 +91,11 @@ public final List<DataReference<C>> getSelectedDatas() { <JButton id='reopenChild'/> </cell> </row> + <row> + <cell fill='both' columns="3"> + <JButton id='closeChild'/> + </cell> + </row> <row weighty="1" weightx="1" fill="both"> <cell> <JButton id='gotoOpenChild'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss index ab4721e..1ea4dae 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss @@ -32,6 +32,7 @@ _listNoLoad: true; beanType:{(Class)DataReference.class}; _doInit:{getModel().getChildType()}; + _entityClass:{getModel().getChildType()}; showReset:true; list:{list}; data:{getHandler().updateList(listHeader, model.getData())}; @@ -60,6 +61,12 @@ _observeAction:{ReOpenUIAction.ACTION_NAME}; } +#closeChild { + visible:{!model.isEmpty() && !model.isCanReopen()}; + enabled:{getHandler().isCanCloseChild()}; + _observeAction:{CloseOpenUIAction.ACTION_NAME}; +} + #createChild { actionIcon:"add"; visible:{model.isCreatingMode()}; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java index 9aca004..a2efb7f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java @@ -23,7 +23,6 @@ package fr.ird.observe.application.swing.ui.content.list; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.constants.DataContextType; -import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; @@ -41,14 +40,20 @@ import org.apache.commons.logging.LogFactory; import javax.swing.DefaultListCellRenderer; import javax.swing.Icon; import javax.swing.JButton; +import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JList; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.ListCellRenderer; import javax.swing.SwingUtilities; import java.awt.Color; import java.awt.Component; +import java.awt.Container; import java.awt.event.MouseEvent; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import java.util.Optional; import static org.nuiton.i18n.I18n.t; @@ -56,12 +61,12 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.5 */ -public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto> extends ContentUIHandler<E> { +public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U extends ContentListUI<E, C, U>> extends ContentUIHandler<E> { /** Logger */ private static final Log log = LogFactory.getLog(ContentListUIHandler.class); - public ContentListUIHandler(ContentListUI<E, C> ui, + public ContentListUIHandler(U ui, DataContextType parentType, DataContextType type) { super(ui, parentType, type); @@ -76,14 +81,16 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto> e */ protected abstract List<DataReference<C>> getChilds(String parentId); + public abstract boolean isCanCloseChild(); + @Override protected boolean computeCanWrite(ObserveSwingDataSource source) { return source.canWriteData(); } @Override - public ContentListUI<E, C> getUi() { - return (ContentListUI<E, C>) super.getUi(); + public U getUi() { + return (U) super.getUi(); } @Override @@ -103,6 +110,53 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto> e ListCellRenderer renderer2 = new EntityListCellRenderer(renderer, treeHelper); getUi().getList().setCellRenderer(renderer2); + getUi().setFocusCycleRoot(true); + getUi().setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { + + private List<JComponent> actions; + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getList(); + } + + public List<JComponent> getActions() { + if (actions == null) { + + actions = new ArrayList<>(); + actions.add(getUi().getGotoSelectedChild()); + actions.add(getUi().getReopenChild()); + actions.add(getUi().getCloseChild()); + actions.add(getUi().getGotoOpenChild()); + actions.add(getUi().getGotoOpenChild2()); + actions.add(getUi().getCreateChild()); + for (Component component : getUi().getExtraActions().getComponents()) { + if (component instanceof JButton) { + actions.add((JComponent) component); + } + } + actions.add(getUi().getMoveSelectedChildren()); + + } + List<JComponent> result = new ArrayList<>(actions); + Collections.reverse(result); + return result; + } + + @Override + public Component getLastComponent(Container aContainer) { + Optional<JComponent> optional = getActions().stream().filter(a -> a.isEnabled() && a.isVisible()).findFirst(); + return optional.isPresent() ? optional.get() : super.getLastComponent(aContainer); + } + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(getUi().getList())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + }); } @Override @@ -162,6 +216,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto> e // getUi().getGotoOpenChild().setEnabled(false); }); + getUi().getCloseChild().setEnabled(isCanCloseChild()); // finalize openUI with specified code finalizeOpenUI(); } @@ -216,6 +271,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto> e // rien par default } + /** * Un renderer de liste d'entité qui reprendre la cosmétique de l'arbre * de navigation. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx index 2a09f19..89140dc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx @@ -20,9 +20,10 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.list.ContentListUI superGenericType='TripLonglineDto, ActivityLonglineDto' - contentTitle='{n("observe.storage.activityLonglines.title")}' listText='{n("observe.common.activities.list")}' - emptyListMessage='{n("observe.message.no.activity.for.trip")}'> +<fr.ird.observe.application.swing.ui.content.list.ContentListUI + superGenericType='TripLonglineDto, ActivityLonglineDto, ActivityLonglinesUI' + contentTitle='{n("observe.storage.activityLonglines.title")}' listText='{n("observe.common.activities.list")}' + emptyListMessage='{n("observe.message.no.activity.for.trip")}'> <import> fr.ird.observe.services.dto.longline.ActivityLonglineDto @@ -49,6 +50,7 @@ <!-- override generic actions --> <JButton id='gotoSelectedChild'/> <JButton id='reopenChild'/> + <JButton id='closeChild'/> <JButton id='gotoOpenChild' styleClass='gotoOpenActivity'/> <JButton id='gotoOpenChild2' styleClass='gotoOpenActivity2'/> <JButton id='createChild'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java index 650c3e5..799d23a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java @@ -25,13 +25,13 @@ package fr.ird.observe.application.swing.ui.content.list.impl.longline; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.content.ContentMode; +import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.service.data.longline.ActivityLonglineService; -import fr.ird.observe.application.swing.ui.content.ContentMode; -import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -46,7 +46,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglineDto, ActivityLonglineDto> { +public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglineDto, ActivityLonglineDto, ActivityLonglinesUI> { /** Logger */ private static final Log log = LogFactory.getLog(ActivityLonglinesUIHandler.class); @@ -56,6 +56,11 @@ public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglin } @Override + public boolean isCanCloseChild() { + return true; + } + + @Override protected ContentMode getContentMode(DataContext dataContext) { String openTripLonglineId = dataContext.getOpenTripId(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx index 82a5eb8..4bfe978 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx @@ -19,9 +19,9 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.list.ContentListUI superGenericType='ProgramDto, TripLonglineDto' - listText='{n("observe.common.trips.list")}' - emptyListMessage='{n("observe.message.no.trip.for.program")}'> +<fr.ird.observe.application.swing.ui.content.list.ContentListUI + superGenericType='ProgramDto, TripLonglineDto, TripLonglinesUI' + listText='{n("observe.common.trips.list")}' emptyListMessage='{n("observe.message.no.trip.for.program")}'> <import> fr.ird.observe.services.dto.longline.ActivityLonglineDto @@ -47,6 +47,7 @@ <!-- override generic actions --> <JButton id='gotoSelectedChild'/> <JButton id='reopenChild'/> + <JButton id='closeChild'/> <JButton id='gotoOpenChild' styleClass='gotoOpenTrip'/> <JButton id='gotoOpenChild2' styleClass='gotoOpenTrip2'/> <JButton id='createChild'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java index f3899d5..e9472b8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -25,14 +25,14 @@ package fr.ird.observe.application.swing.ui.content.list.impl.longline; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.content.ContentMode; +import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.service.data.longline.TripLonglineService; -import fr.ird.observe.application.swing.ui.content.ContentMode; -import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -47,7 +47,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, TripLonglineDto> { +public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, TripLonglineDto, TripLonglinesUI> { /** Logger */ static private final Log log = LogFactory.getLog(TripLonglinesUIHandler.class); @@ -89,6 +89,11 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, Tri } @Override + public boolean isCanCloseChild() { + return !getModel().isCanReopen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenActivityLongline(); + } + + @Override protected void finalizeOpenUI() { Class referenceType = ProgramDto.class; ReferentialReference<ProgramDto> programRef = getDataSource().getReferentialReference(referenceType, getSelectedParentId()); @@ -100,7 +105,7 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, Tri protected List<DataReference<TripLonglineDto>> getChilds(String parentId) { TripLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); - DataReferenceSet<TripLonglineDto> tripLonglineByProgram = service.getTripLonglineByProgram( parentId); + DataReferenceSet<TripLonglineDto> tripLonglineByProgram = service.getTripLonglineByProgram(parentId); if (log.isDebugEnabled()) { log.debug("Will use " + tripLonglineByProgram.sizeReference() + " trips."); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx index 5d67433..0a453d7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx @@ -20,9 +20,10 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.list.ContentListUI superGenericType='RouteDto, ActivitySeineDto' - contentTitle='{n("observe.storage.activitySeines.title")}' listText='{n("observe.common.activities.list")}' - emptyListMessage='{n("observe.message.no.activity.for.route")}'> +<fr.ird.observe.application.swing.ui.content.list.ContentListUI + superGenericType='RouteDto, ActivitySeineDto, ActivitySeinesUI' + contentTitle='{n("observe.storage.activitySeines.title")}' listText='{n("observe.common.activities.list")}' + emptyListMessage='{n("observe.message.no.activity.for.route")}'> <import> fr.ird.observe.services.dto.seine.ActivitySeineDto @@ -49,6 +50,7 @@ <!-- override generic actions --> <JButton id='gotoSelectedChild'/> <JButton id='reopenChild'/> + <JButton id='closeChild'/> <JButton id='gotoOpenChild' styleClass='gotoOpenActivity'/> <JButton id='gotoOpenChild2' styleClass='gotoOpenActivity2'/> <JButton id='createChild'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java index e20e302..8e13d88 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java @@ -24,6 +24,7 @@ package fr.ird.observe.application.swing.ui.content.list.impl.seine; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.seine.ActivitySeineDto; @@ -43,7 +44,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class ActivitySeinesUIHandler extends ContentListUIHandler<RouteDto, ActivitySeineDto> { +public class ActivitySeinesUIHandler extends ContentListUIHandler<RouteDto, ActivitySeineDto, ActivitySeinesUI> { /** Logger */ private static final Log log = LogFactory.getLog(ActivitySeinesUIHandler.class); @@ -53,6 +54,11 @@ public class ActivitySeinesUIHandler extends ContentListUIHandler<RouteDto, Acti } @Override + public boolean isCanCloseChild() { + return true; + } + + @Override protected ContentMode getContentMode(DataContext dataContext) { String openRouteId = dataContext.getOpenRouteId(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx index f722954..bdc29a5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx @@ -20,9 +20,10 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.list.ContentListUI superGenericType='TripSeineDto, RouteDto' - contentTitle='{n("observe.content.routes.title")}' listText='{n("observe.common.routes.list")}' - emptyListMessage='{n("observe.message.no.route.for.maree")}'> +<fr.ird.observe.application.swing.ui.content.list.ContentListUI superGenericType='TripSeineDto, RouteDto, RoutesUI' + contentTitle='{n("observe.content.routes.title")}' + listText='{n("observe.common.routes.list")}' + emptyListMessage='{n("observe.message.no.route.for.maree")}'> <import> fr.ird.observe.services.dto.seine.ActivitySeineDto @@ -48,6 +49,7 @@ <!-- override generic actions --> <JButton id='gotoSelectedChild'/> <JButton id='reopenChild'/> + <JButton id='closeChild'/> <JButton id='gotoOpenChild' styleClass='gotoOpenRoute'/> <JButton id='gotoOpenChild2' styleClass='gotoOpenRoute2'/> <JButton id='createChild'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java index f17564b..ce25730 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java @@ -43,7 +43,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class RoutesUIHandler extends ContentListUIHandler<TripSeineDto, RouteDto> { +public class RoutesUIHandler extends ContentListUIHandler<TripSeineDto, RouteDto, RoutesUI> { /** Logger */ private static final Log log = LogFactory.getLog(RoutesUIHandler.class); @@ -52,6 +52,12 @@ public class RoutesUIHandler extends ContentListUIHandler<TripSeineDto, RouteDto super(ui, DataContextType.TripSeine, DataContextType.Route); } + + @Override + public boolean isCanCloseChild() { + return !getModel().isCanReopen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenActivitySeine(); + } + @Override protected ContentMode getContentMode(DataContext dataContext) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx index bb84e3c..4701fef 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx @@ -19,10 +19,9 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.list.ContentListUI - superGenericType='ProgramDto, TripSeineDto' - listText='{n("observe.common.trips.list")}' - emptyListMessage='{n("observe.message.no.trip.for.program")}'> +<fr.ird.observe.application.swing.ui.content.list.ContentListUI listText='{n("observe.common.trips.list")}' + superGenericType='ProgramDto, TripSeineDto, TripSeinesUI' + emptyListMessage='{n("observe.message.no.trip.for.program")}'> <import> fr.ird.observe.services.dto.seine.ActivitySeineDto @@ -49,6 +48,7 @@ <!-- override generic actions --> <JButton id='gotoSelectedChild'/> <JButton id='reopenChild'/> + <JButton id='closeChild'/> <JButton id='gotoOpenChild' styleClass='gotoOpenTrip'/> <JButton id='gotoOpenChild2' styleClass='gotoOpenTrip2'/> <JButton id='createChild'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java index 044424b..0840ef3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -24,14 +24,14 @@ package fr.ird.observe.application.swing.ui.content.list.impl.seine; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.content.ContentMode; +import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.data.seine.TripSeineService; -import fr.ird.observe.application.swing.ui.content.ContentMode; -import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -44,7 +44,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSeineDto> { +public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSeineDto, TripSeinesUI> { /** Logger */ static private final Log log = LogFactory.getLog(TripSeinesUIHandler.class); @@ -94,6 +94,11 @@ public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSe } @Override + public boolean isCanCloseChild() { + return !getModel().isCanReopen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenRoute(); + } + + @Override protected List<DataReference<TripSeineDto>> getChilds(String parentId) { TripSeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx index 1b434e4..ba5ebcd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx @@ -21,13 +21,10 @@ --> <fr.ird.observe.application.swing.ui.content.ContentUI - abstract='true' - superGenericType='E' - genericType='E extends IdDto' - > + abstract='true' superGenericType='E' + genericType='E extends IdDto, U extends ContentOpenableUI<E, U>'> <import> - fr.ird.observe.services.dto.AbstractObserveDto fr.ird.observe.services.dto.IdDto fr.ird.observe.application.swing.ui.actions.shared.CancelCreateUIAction @@ -43,11 +40,10 @@ </import> <!-- handler --> - <ContentOpenableUIHandler id='handler' genericType='E'/> + <ContentOpenableUIHandler id='handler' genericType='E, U'/> <!-- model --> - <ContentOpenableUIModel id='model' genericType='E' - enabled='{!model.isReadingMode()}'/> + <ContentOpenableUIModel id='model' genericType='E' enabled='{!model.isReadingMode()}'/> <script><![CDATA[ diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java index c608156..491671c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java @@ -39,13 +39,16 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; +import javax.swing.JComponent; +import java.awt.FocusTraversalPolicy; + import static org.nuiton.i18n.I18n.t; /** * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentUIHandler<E> { +public abstract class ContentOpenableUIHandler<E extends IdDto, U extends ContentOpenableUI<E, U>> extends ContentUIHandler<E> { protected static final String POSITION_OPENABLE = "positionOpenable"; @@ -54,7 +57,7 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU protected final String closeMessage; - public ContentOpenableUIHandler(ContentOpenableUI<E> ui, + public ContentOpenableUIHandler(U ui, DataContextType parentType, DataContextType type, String closeMessage) { @@ -64,9 +67,19 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU protected abstract boolean obtainCanReopen(boolean create); + + public void initUI() { + + super.initUI(); + ((JComponent) ui).setFocusCycleRoot(true); + ((JComponent) ui).setFocusTraversalPolicy(createFocusTraversalPolicy(getUi())); + } + + protected abstract FocusTraversalPolicy createFocusTraversalPolicy(U ui); + @Override - public ContentOpenableUI<E> getUi() { - return (ContentOpenableUI<E>) super.getUi(); + public U getUi() { + return (U) super.getUi(); } @Override @@ -97,7 +110,7 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU public final void afterOpenData() { - ContentOpenableUI<E> ui = getUi(); + U ui = getUi(); // On charge les ensembles de références utilisées dans les combobox updateUiWithReferenceSetsFromModel(); @@ -133,7 +146,7 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU public final void afterCloseData() { - ContentOpenableUI<E> ui = getUi(); + U ui = getUi(); ContentOpenableUIModel<E> model = getModel(); @@ -148,12 +161,6 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU getTypeI18nKey(bean.getClass()), t(closeMessage)); ObserveTreeHelper treeHelper = getTreeHelper(ui); -// 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 TripSeineDto || bean instanceof TripLonglineDto, true); updateActions(); } @@ -163,7 +170,7 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU super.afterSave(refresh); - ContentOpenableUI<E> ui = getUi(); + U ui = getUi(); int position = ui.getContextValue(Integer.class, POSITION_OPENABLE); ObserveTreeHelper treeHelper = getTreeHelper(ui); @@ -214,10 +221,7 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU } // on repaint le noeud et ses enfants -// treeHelper.refreshNode(node, true); treeHelper.reloadSelectedNode(false, true); - -// treeHelper.refreshNode(node, false); } } @@ -275,9 +279,6 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU protected final void finalizeOpenUI(ContentMode mode, boolean create) { -// // utilisation du mode requis -// setContentMode(mode); - boolean historicalData = false; ContentOpenableUIModel<E> model = getUi().getModel(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUI.jaxx index a914f39..03c3ef9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUI.jaxx @@ -20,8 +20,9 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI superGenericType='ActivityLonglineDto' - contentTitle='{n("observe.storage.activityLongline.title")}'> +<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI + superGenericType='ActivityLonglineDto, ActivityLonglineUI' + contentTitle='{n("observe.storage.activityLongline.title")}'> <style source="../../../Common.jcss"/> @@ -42,8 +43,6 @@ java.awt.Dimension - javax.swing.SwingConstants - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue static org.nuiton.i18n.I18n.n </import> @@ -94,7 +93,8 @@ <JLabel id='vesselActivityLonglineLabel'/> </cell> <cell anchor='east' fill="both"> - <BeanComboBox id='vesselActivityLongline' genericType='ReferentialReference<VesselActivityLonglineDto>' _entityClass='VesselActivityLonglineDto.class' constructorParams='this'/> + <BeanComboBox id='vesselActivityLongline' genericType='ReferentialReference<VesselActivityLonglineDto>' + _entityClass='VesselActivityLonglineDto.class' constructorParams='this'/> </cell> </row> @@ -103,7 +103,8 @@ <JLabel id='fpaZoneLabel'/> </cell> <cell anchor='east' fill="both"> - <BeanComboBox id='fpaZone' genericType='ReferentialReference<FpaZoneDto>' _entityClass='FpaZoneDto.class' constructorParams='this'/> + <BeanComboBox id='fpaZone' genericType='ReferentialReference<FpaZoneDto>' + _entityClass='FpaZoneDto.class' constructorParams='this'/> </cell> </row> @@ -138,8 +139,7 @@ <Table id='extraActions' fill="both" weightx="1" insets='2' visible='{model.isUpdatingMode()}'> <row> <cell weightx="0.5" fill="both"> - <JButton id='addSet' - onActionPerformed='getHandler().addChild(SetLonglineDto.class)'/> + <JButton id='addSet' onActionPerformed='getHandler().addChild(SetLonglineDto.class)'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java index 17682ad..b0fbc96 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java @@ -40,7 +40,11 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.SwingUtilities; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -51,7 +55,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -class ActivityLonglineUIHandler extends ContentOpenableUIHandler<ActivityLonglineDto> { +class ActivityLonglineUIHandler extends ContentOpenableUIHandler<ActivityLonglineDto, ActivityLonglineUI> { /** Logger */ private static final Log log = LogFactory.getLog(ActivityLonglineUIHandler.class); @@ -72,8 +76,35 @@ class ActivityLonglineUIHandler extends ContentOpenableUIHandler<ActivityLonglin } @Override - public ActivityLonglineUI getUi() { - return (ActivityLonglineUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(ActivityLonglineUI ui) { + return new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getTimeStamp().getDayDateEditor().getEditor())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getComponentAfter(Container aContainer, Component aComponent) { + if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { + + // retour au début + return ui.getTimeStamp().getDayDateEditor().getEditor(); + } + if (aComponent.equals(ui.getCloseAndCreate())) { + + // retour au début + return ui.getTimeStamp().getDayDateEditor().getEditor(); + } + return super.getComponentAfter(aContainer, aComponent); + } + }; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jaxx index 26be957..5b71a2f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jaxx @@ -20,21 +20,18 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI superGenericType='TripLonglineDto' - contentTitle='{n("observe.content.tripLongline.title")}'> +<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI superGenericType='TripLonglineDto, TripLonglineUI' + contentTitle='{n("observe.content.tripLongline.title")}'> <style source="../../../Common.jcss"/> <import> fr.ird.observe.services.dto.CommentableDto fr.ird.observe.services.dto.longline.TripLonglineDto - fr.ird.observe.services.dto.longline.ActivityLonglineDto fr.ird.observe.services.dto.longline.TripLonglineActivityDto fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.HarbourDto - fr.ird.observe.services.dto.referential.PersonHelper fr.ird.observe.services.dto.referential.VesselDto - fr.ird.observe.services.dto.referential.VesselHelper fr.ird.observe.services.dto.referential.PersonDto fr.ird.observe.services.dto.referential.OceanDto fr.ird.observe.services.dto.referential.longline.TripTypeDto @@ -47,11 +44,8 @@ jaxx.runtime.swing.editor.bean.BeanComboBox java.awt.Dimension - java.beans.PropertyChangeEvent - java.beans.PropertyChangeListener static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.apache.commons.lang3.StringUtils.isEmpty static org.nuiton.i18n.I18n.n </import> @@ -65,11 +59,8 @@ <TripLonglineDto id='bean'/> <!-- validator --> - <BeanValidator id='validator' - beanClass='fr.ird.observe.services.dto.longline.TripLonglineDto' - errorTableModel='{getErrorTableModel()}' - autoField='true' - context='ui-update'> + <BeanValidator id='validator' beanClass='fr.ird.observe.services.dto.longline.TripLonglineDto' + errorTableModel='{getErrorTableModel()}' autoField='true' context='ui-update'> <field name='activityLongline' component='{actionDown}'/> </BeanValidator> @@ -94,7 +85,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<TripLonglineActivityDto> <JLabel id='tripTypeLabel'/> </cell> <cell anchor='east'> - <BeanComboBox id='tripType' constructorParams='this' genericType='ReferentialReference<TripTypeDto>' _entityClass='TripTypeDto.class'/> + <BeanComboBox id='tripType' constructorParams='this' genericType='ReferentialReference<TripTypeDto>' + _entityClass='TripTypeDto.class'/> </cell> </row> @@ -104,7 +96,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<TripLonglineActivityDto> <JLabel id='captainLabel'/> </cell> <cell anchor='east'> - <BeanComboBox id='captain' constructorParams='this' genericType='ReferentialReference<PersonDto>' _entityClass='PersonDto.class'/> + <BeanComboBox id='captain' constructorParams='this' genericType='ReferentialReference<PersonDto>' + _entityClass='PersonDto.class'/> </cell> </row> @@ -114,7 +107,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<TripLonglineActivityDto> <JLabel id='observerLabel'/> </cell> <cell anchor='east'> - <BeanComboBox id='observer' constructorParams='this' genericType='ReferentialReference<PersonDto>' _entityClass='PersonDto.class'/> + <BeanComboBox id='observer' constructorParams='this' genericType='ReferentialReference<PersonDto>' + _entityClass='PersonDto.class'/> </cell> </row> @@ -124,7 +118,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<TripLonglineActivityDto> <JLabel id='dataEntryOperatorLabel'/> </cell> <cell anchor='east'> - <BeanComboBox id='dataEntryOperator' constructorParams='this' genericType='ReferentialReference<PersonDto>' _entityClass='PersonDto.class'/> + <BeanComboBox id='dataEntryOperator' constructorParams='this' + genericType='ReferentialReference<PersonDto>' _entityClass='PersonDto.class'/> </cell> </row> @@ -134,7 +129,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<TripLonglineActivityDto> <JLabel id='vesselLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='vessel' constructorParams='this' genericType='ReferentialReference<VesselDto>' _entityClass='VesselDto.class'/> + <BeanComboBox id='vessel' constructorParams='this' genericType='ReferentialReference<VesselDto>' + _entityClass='VesselDto.class'/> </cell> </row> @@ -144,7 +140,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<TripLonglineActivityDto> <JLabel id='oceanLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='ocean' genericType='ReferentialReference<OceanDto>' _entityClass='OceanDto.class' constructorParams='this'/> + <BeanComboBox id='ocean' genericType='ReferentialReference<OceanDto>' _entityClass='OceanDto.class' + constructorParams='this'/> </cell> </row> @@ -154,7 +151,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<TripLonglineActivityDto> <JLabel id='departureHarbourLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='departureHarbour' genericType='ReferentialReference<HarbourDto>' _entityClass='HarbourDto.class' constructorParams='this'/> + <BeanComboBox id='departureHarbour' genericType='ReferentialReference<HarbourDto>' + _entityClass='HarbourDto.class' constructorParams='this'/> </cell> </row> @@ -164,7 +162,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<TripLonglineActivityDto> <JLabel id='landingHarbourLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='landingHarbour' genericType='ReferentialReference<HarbourDto>' _entityClass='HarbourDto.class' constructorParams='this'/> + <BeanComboBox id='landingHarbour' genericType='ReferentialReference<HarbourDto>' + _entityClass='HarbourDto.class' constructorParams='this'/> </cell> </row> @@ -217,10 +216,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<TripLonglineActivityDto> <!-- comment --> <row> <cell columns='2' fill='both' weighty="1"> - <JScrollPane id='comment' - onFocusGained='comment2.requestFocus()'> - <JTextArea id='comment2' - onKeyReleased='getModel().getBean().setComment(comment2.getText())'/> + <JScrollPane id='comment' onFocusGained='comment2.requestFocus()'> + <JTextArea id='comment2' onKeyReleased='getModel().getBean().setComment(comment2.getText())'/> </JScrollPane> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUIHandler.java index 3c0a539..1ea6413 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUIHandler.java @@ -45,7 +45,11 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; import javax.swing.JTabbedPane; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.SwingUtilities; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.Date; import java.util.LinkedList; @@ -60,7 +64,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto> { +class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto,TripLonglineUI> { /** Logger */ static private final Log log = LogFactory.getLog(TripLonglineUIHandler.class); @@ -74,9 +78,42 @@ class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto> { n("observe.content.tripLongline.message.not.open")); } +// @Override +// public TripLonglineUI getUi() { +// return (TripLonglineUI) super.getUi(); +// } + + @Override - public TripLonglineUI getUi() { - return (TripLonglineUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(TripLonglineUI ui) { + return new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getTripType().getCombobox().getEditor().getEditorComponent())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getComponentAfter(Container aContainer, Component aComponent) { + if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { + + // retour au début + return ui.getTripType(); + } + if (aComponent.equals(ui.getCloseAndCreate())) { + + // retour au début + return ui.getTripType(); + } + return super.getComponentAfter(aContainer, aComponent); + } + }; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUI.jaxx index f7adb30..290eeef 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUI.jaxx @@ -20,7 +20,7 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI superGenericType='ActivitySeineDto' +<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI superGenericType='ActivitySeineDto, ActivitySeineUI' contentTitle='{n("observe.storage.activitySeine.title")}'> <style source="../../../Common.jcss"/> @@ -43,7 +43,6 @@ jaxx.runtime.swing.editor.NumberEditor jaxx.runtime.swing.editor.bean.BeanComboBox - jaxx.runtime.swing.CardLayout2Ext org.nuiton.jaxx.widgets.datetime.TimeEditor org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor @@ -52,8 +51,6 @@ java.awt.Dimension java.util.Collection - javax.swing.SwingConstants - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue static org.nuiton.i18n.I18n.n </import> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java index db40d22..de4ee78 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java @@ -43,8 +43,14 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; +import javax.swing.JComponent; +import javax.swing.JSpinner; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.SwingUtilities; import javax.swing.event.TableModelListener; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.HashSet; import java.util.Set; @@ -55,7 +61,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySeineDto> { +class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySeineDto, ActivitySeineUI> { /** Logger */ private static final Log log = LogFactory.getLog(ActivitySeineUIHandler.class); @@ -77,8 +83,58 @@ class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySeineDto> } @Override - public ActivitySeineUI getUi() { - return (ActivitySeineUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(ActivitySeineUI ui) { + return new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.getParent().equals(ui.getTime().getHourEditor().getEditor())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + break; + case 1: + if (aComponent.equals(ui.getVesselSpeed().getTextField())) { + return getLastComponent(aContainer); + } + case 2: + if (aComponent.equals(ui.getObservedSystem().getUniverseList())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + JComponent editor = ui.getTime().getHourEditor().getEditor(); + return ((JSpinner.DateEditor) editor).getTextField(); + case 1: + return ui.getVesselSpeed(); + case 2: return ui.getObservedSystem().getUniverseList(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + if (getModel().isCreatingMode()) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + return ui.getReset(); + } else + return ui.getCloseAndCreate(); + } + }; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUI.jaxx index f36134c..7fecea6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUI.jaxx @@ -20,7 +20,8 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI superGenericType='RouteDto' contentTitle='{n("observe.content.route.title")}'> +<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI superGenericType='RouteDto, RouteUI' + contentTitle='{n("observe.content.route.title")}'> <import> fr.ird.observe.services.dto.seine.RouteDto @@ -45,11 +46,8 @@ <RouteDto id='bean'/> <!-- validator --> - <BeanValidator id='validator' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.RouteDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'> + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.seine.RouteDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'> <field name='activitySeine' component='{actionDown}'/> </BeanValidator> @@ -82,10 +80,8 @@ </row> <row> <cell columns='2' fill="both" weightx="1" weighty="1"> - <JScrollPane id='comment' - onFocusGained='comment2.requestFocus()'> - <JTextArea id='comment2' - onKeyReleased='getBean().setComment(comment2.getText())'/> + <JScrollPane id='comment' onFocusGained='comment2.requestFocus()'> + <JTextArea id='comment2' onKeyReleased='getBean().setComment(comment2.getText())'/> </JScrollPane> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java index d17062e..b911436 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java @@ -28,8 +28,8 @@ import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUIHandler; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; @@ -45,6 +45,10 @@ import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JOptionPane; +import javax.swing.LayoutFocusTraversalPolicy; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.Date; import static org.nuiton.i18n.I18n.n; @@ -54,9 +58,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { - -// private static final String UPDATE_TRIP_NODE = "updateTripNode"; +class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> { /** Logger */ private static final Log log = LogFactory.getLog(RouteUIHandler.class); @@ -69,8 +71,35 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { } @Override - public RouteUI getUi() { - return (RouteUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(RouteUI ui) { + return new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getDate().getEditor())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getComponentAfter(Container aContainer, Component aComponent) { + if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { + + // retour au début + return ui.getDate(); + } + if (aComponent.equals(ui.getCloseAndCreate())) { + + // retour au début + return ui.getDate(); + } + return super.getComponentAfter(aContainer, aComponent); + } + }; } @Override @@ -103,9 +132,7 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { } else { // la maree courante est ouverte - addMessage(ui, NuitonValidatorScope.INFO, - getTypeI18nKey(RouteDto.class), - t(closeMessage)); + addMessage(ui, NuitonValidatorScope.INFO, getTypeI18nKey(RouteDto.class), t(closeMessage)); } return ContentMode.READ; } @@ -402,13 +429,13 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { if (close) { - // on sauvegarde l'activity + // on sauvegarde l'activité selectedUI.save(false); - // on ferme l'activity + // on ferme l'activité selectedUI.closeData(); - // on ferme l'écean + // on ferme l'écran selectedUI.stopEdit(); } return selectedUI; @@ -423,39 +450,6 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { return !create && getOpenDataManager().canOpenRoute(getSelectedParentId()); } -// private void repaintTripNode() { -// Boolean updateTripNode = getUi().getContextValue(Boolean.class, UPDATE_TRIP_NODE); -// -// getUi().removeContextValue(Boolean.class, UPDATE_TRIP_NODE); -// -// if (updateTripNode == null || !updateTripNode) { -// return; -// } -// -// -// ObserveTreeHelper treeHelper = getTreeHelper(getUi()); -// ObserveNode tripNode = treeHelper.getSelectedNode().getParent().getParent(); -// if (log.isInfoEnabled()) { -// log.info("Refresh trip node : " + tripNode); -// } -// treeHelper.reloadNode(tripNode, false); -// } - -// protected void setUpdateMareeNodeTag(boolean wasUpdated) { -// -// if (wasUpdated) { -// -// // la date de fin a ete modifiee, il faut : redessiner le noeud de la maree le repositionner -// getUi().setContextValue(Boolean.TRUE, UPDATE_TRIP_NODE); -// -// } else { -// -// getUi().removeContextValue(Boolean.class, UPDATE_TRIP_NODE); -// -// } -// -// } - private RouteService getRouteService() { return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUI.jaxx index 1f5639b..51dcc25 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUI.jaxx @@ -20,8 +20,8 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI superGenericType='TripSeineDto' - contentTitle='{n("observe.content.tripSeine.title")}'> +<fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI superGenericType='TripSeineDto, TripSeineUI' + contentTitle='{n("observe.content.tripSeine.title")}'> <import> fr.ird.observe.services.dto.seine.TripSeineDto @@ -82,7 +82,7 @@ protected boolean canEditOcean(java.util.LinkedHashSet<RouteStubDto> routes) { <JPanel id="body" layout='{new BorderLayout()}'> <JTabbedPane id='tripSeineTabPane' constraints='BorderLayout.CENTER'> <tab id='generalTab'> - <Table insets="0" fill="both"> + <Table insets="0" fill="both" id="formGeneral"> <!-- captain --> <row> @@ -90,7 +90,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<RouteStubDto> routes) { <JLabel id='captainLabel'/> </cell> <cell anchor='east'> - <BeanComboBox id='captain' constructorParams='this' genericType='ReferentialReference<PersonDto>' _entityClass='PersonDto.class'/> + <BeanComboBox id='captain' constructorParams='this' genericType='ReferentialReference<PersonDto>' + _entityClass='PersonDto.class'/> </cell> </row> @@ -100,7 +101,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<RouteStubDto> routes) { <JLabel id='observerLabel'/> </cell> <cell anchor='east'> - <BeanComboBox id='observer' constructorParams='this' genericType='ReferentialReference<PersonDto>' _entityClass='PersonDto.class'/> + <BeanComboBox id='observer' constructorParams='this' genericType='ReferentialReference<PersonDto>' + _entityClass='PersonDto.class'/> </cell> </row> @@ -110,7 +112,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<RouteStubDto> routes) { <JLabel id='dataEntryOperatorLabel'/> </cell> <cell anchor='east'> - <BeanComboBox id='dataEntryOperator' constructorParams='this' genericType='ReferentialReference<PersonDto>' _entityClass='PersonDto.class'/> + <BeanComboBox id='dataEntryOperator' constructorParams='this' + genericType='ReferentialReference<PersonDto>' _entityClass='PersonDto.class'/> </cell> </row> @@ -120,7 +123,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<RouteStubDto> routes) { <JLabel id='vesselLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='vessel' constructorParams='this' genericType='ReferentialReference<VesselDto>' _entityClass='VesselDto.class'/> + <BeanComboBox id='vessel' constructorParams='this' genericType='ReferentialReference<VesselDto>' + _entityClass='VesselDto.class'/> </cell> </row> @@ -130,7 +134,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<RouteStubDto> routes) { <JLabel id='oceanLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='ocean' genericType='ReferentialReference<OceanDto>' _entityClass='OceanDto.class' constructorParams='this'/> + <BeanComboBox id='ocean' genericType='ReferentialReference<OceanDto>' _entityClass='OceanDto.class' + constructorParams='this'/> </cell> </row> @@ -140,7 +145,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<RouteStubDto> routes) { <JLabel id='departureHarbourLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='departureHarbour' genericType='ReferentialReference<HarbourDto>' _entityClass='HarbourDto.class' constructorParams='this'/> + <BeanComboBox id='departureHarbour' genericType='ReferentialReference<HarbourDto>' + _entityClass='HarbourDto.class' constructorParams='this'/> </cell> </row> @@ -150,7 +156,8 @@ protected boolean canEditOcean(java.util.LinkedHashSet<RouteStubDto> routes) { <JLabel id='landingHarbourLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='landingHarbour' genericType='ReferentialReference<HarbourDto>' _entityClass='HarbourDto.class' constructorParams='this'/> + <BeanComboBox id='landingHarbour' genericType='ReferentialReference<HarbourDto>' + _entityClass='HarbourDto.class' constructorParams='this'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUIHandler.java index 84f2885..7a31c57 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -25,6 +25,10 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.content.ContentMode; +import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUIHandler; +import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUIModel; +import fr.ird.observe.application.swing.ui.util.tripMap.TripMapUI; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.referential.PersonHelper; @@ -35,16 +39,16 @@ import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.dto.seine.TripSeineHelper; import fr.ird.observe.services.service.data.seine.TripSeineService; -import fr.ird.observe.application.swing.ui.content.ContentMode; -import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUIHandler; -import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUIModel; -import fr.ird.observe.application.swing.ui.util.tripMap.TripMapUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; import javax.swing.JTabbedPane; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.SwingUtilities; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.Date; import java.util.LinkedList; @@ -57,7 +61,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { +class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto, TripSeineUI> { /** Logger */ static private final Log log = LogFactory.getLog(TripSeineUIHandler.class); @@ -71,12 +75,6 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { n("observe.content.tripSeine.message.not.open")); } - - @Override - public TripSeineUI getUi() { - return (TripSeineUI) super.getUi(); - } - @Override public boolean doCloseData() { boolean result = getOpenDataManager().isOpenTripSeine(getSelectedId()); @@ -87,6 +85,38 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { } @Override + protected FocusTraversalPolicy createFocusTraversalPolicy(TripSeineUI ui) { + return new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getCaptain().getCombobox().getEditor().getEditorComponent())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getComponentAfter(Container aContainer, Component aComponent) { + if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { + + // retour au début + return ui.getCaptain(); + } + if (aComponent.equals(ui.getCloseAndCreate())) { + + // retour au début + return ui.getCaptain(); + } + return super.getComponentAfter(aContainer, aComponent); + } + }; + } + + @Override public void initUI() { super.initUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableModel.java index 3ba96f9..3cfcb10 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableModel.java @@ -127,11 +127,10 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend /** un drapeau pour savoir si le modèle a ete initialisé. */ private boolean init; - private ObserveContentTableUI<P, B> context; + private ObserveContentTableUI<P, B, ?> context; @SuppressWarnings("unchecked") - public ContentTableModel(ObserveContentTableUI<P, B> context, - List<ContentTableMeta<B>> metas) { + public ContentTableModel(ObserveContentTableUI<P, B, ?> context, List<ContentTableMeta<B>> metas) { if (CollectionUtils.isEmpty(metas)) { throw new NullPointerException("meta parameter can not be null, nor empty"); } @@ -449,7 +448,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend } @SuppressWarnings("unchecked") - protected ContentTableUIHandler<P, B> getHandler() { + protected ContentTableUIHandler<P, B, ?> getHandler() { return context.getHandler(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx index c6e467b..58e3cdd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx @@ -22,8 +22,8 @@ <fr.ird.observe.application.swing.ui.content.ContentUI abstract='true' - superGenericType='E' implements="fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI<E,D>" - genericType='E extends IdDto, D extends IdDto'> + superGenericType='E' implements="fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI<E, D, U>" + genericType='E extends IdDto, D extends IdDto, U extends ContentTableUI<E, D, U>'> <import> fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction @@ -58,7 +58,7 @@ <String id='deleteEntryTip' javaBean='n("observe.action.delete.entry.tip")'/> <!-- Handler --> - <ContentTableUIHandler id='handler' genericType='E, D'/> + <ContentTableUIHandler id='handler' genericType='E, D, U'/> <!-- Model --> <ContentTableUIModel id='model' genericType='E, D' initializer='ContentTableUIModel.newModel(this)'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java index a458c6c..86c660f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java @@ -25,13 +25,6 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.constants.DataContextType; -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.TargetCatchDto; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; @@ -40,10 +33,18 @@ import fr.ird.observe.application.swing.ui.content.table.impl.longline.WeightMea import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.util.table.EditableTableModelSupport; import fr.ird.observe.application.swing.ui.util.table.InlineTableAutotSelectRowAndShowPopupAction; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.TargetCatchDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; +import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; @@ -53,6 +54,8 @@ import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.FocusTraversalPolicy; import java.awt.Rectangle; import java.beans.PropertyChangeListener; import java.io.Serializable; @@ -68,12 +71,12 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> extends ContentUIHandler<E> { +public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U extends ContentTableUI<E, D, U>> extends ContentUIHandler<E> { /** Logger */ private static final Log log = LogFactory.getLog(ContentTableUIHandler.class); - protected ContentTableUIHandler(ObserveContentTableUI<E, D> ui, DataContextType dataContextType) { + protected ContentTableUIHandler(U ui, DataContextType dataContextType) { super(ui, dataContextType, null); } @@ -133,8 +136,8 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex } @Override - public ObserveContentTableUI<E, D> getUi() { - return (ObserveContentTableUI<E, D>) super.getUi(); + public U getUi() { + return (U) super.getUi(); } public final D getTableEditBean() { @@ -143,7 +146,7 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex public final void updateEditor(ListSelectionEvent event) { - final ObserveContentTableUI<E, D> ui = getUi(); + U ui = getUi(); if (ui.getValidatorTable() == null) { log.debug("skip validator is null!"); @@ -217,50 +220,40 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex protected abstract void loadEditBean(String beanId); - //FIXME -// @Override -// protected final void onLoad(TopiaContext tx, E bean) throws TopiaException { -// super.onLoad(tx, bean); -// -// // on duplique la liste des fils traites dans le tableau -// // sinon on reste sur les references d'origine et on aura pas -// // la possibilité d'annuler l'edition ensuite car on aura modifie -// // les entrées d'origine... -// E editBean = getBean(); -// Collection<D> data = loadChilds(tx, editBean); -// getModel().getChildsUpdator().setChilds(editBean, data); -// } - - //FIXME -// protected Collection<D> loadChilds(TopiaContext tx, E bean) throws TopiaException { -// Collection<D> childs = getModel().getChildsUpdator().getChilds(bean); -// Collection<D> data = new ArrayList<D>(); -// if (CollectionUtils.isNotEmpty(childs)) { -// Loador<D> loader = getModel().getChildLoador(); -// TopiaDAO<D> dao = getMainDataSource().getDAO(tx, getTableEditBean()); -// for (D c : childs) { -// try { -// D cUp = dao.findByTopiaId(c.getTopiaId()); -// D c2 = getModel().newTableEditBean(); -// loader.load(cUp, c2, true); -// data.add(c2); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } -// } -// } -// return data; -// } + protected abstract FocusTraversalPolicy createFocusTraversalPolicy(U ui); @Override public void initUI() { - final ContentTableUIInitializer<E, D, ObserveContentTableUI<E, D>> uiInitializer = - new ContentTableUIInitializer<>(getUi()); + ContentTableUIInitializer<E, D, U> uiInitializer = new ContentTableUIInitializer<>(getUi()); uiInitializer.initUI(); getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM, evt -> updateUiWithReferenceSetsFromModel()); + ((JComponent) ui).setFocusCycleRoot(true); + ((JComponent) ui).setFocusTraversalPolicy(createFocusTraversalPolicy(getUi())); + } + + protected Component getDefaultLastComponent(U ui, Component optionalComponent) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + if (optionalComponent != null) { + return optionalComponent; + } + if (ui.getDeleteEntry().isVisible() && ui.getDeleteEntry().isEnabled()) { + return ui.getDeleteEntry(); + } + if (ui.getSaveNewEntry().isVisible() && ui.getSaveNewEntry().isEnabled()) { + return ui.getSaveNewEntry(); + } + if (ui.getResetNewEntry().isVisible() && ui.getResetNewEntry().isEnabled()) { + return ui.getResetNewEntry(); + } + return ui.getResetEntry(); } @Override @@ -271,7 +264,7 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex // récupération du mode de l'écran ContentMode mode = computeContentMode(); - ObserveContentTableUI<E, D> ui = getUi(); + U ui = getUi(); int oldIndex = ui.getTableModel().getSelectedRow(); @@ -341,7 +334,7 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex @Override protected boolean doSave(E bean) throws Exception { - ObserveContentTableUI<E, D> ui = getUi(); + U ui = getUi(); List<D> objets = ui.getTableModel().getData(); @@ -364,63 +357,6 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex protected abstract void doPersist(E bean); - //FIXME -// @Override -// protected E onUpdate(TopiaContext tx, Object parentBean, E beanToSave) throws TopiaException { -// -// List<D> childs = getUi().getTableModel().getData(); -// -// E editBean = getBean(); -// -// TopiaEntityBinder<E> binder = getLoadBinder(); -// -// Loador<D> childBinder = getModel().getChildLoador(); -// -// EntityListUpdator<E, D> childUpdator = getModel().getChildsUpdator(); -// -// // recopie des propriétés du bean en excluant toujours la liste des fils -// binder.copyExcluding(editBean, beanToSave, childUpdator.getPropertyName()); -// -// // on conserve l'ancienne liste des fils (pour traitement ultérieure) -// Collection<D> oldChilds = -// new ArrayList<D>(childUpdator.getChilds(beanToSave)); -// -// // suppression des fils dans le bean a sauver -// childUpdator.removeAll(beanToSave); -// -// TopiaDAO<D> dao = ObserveDAOHelper.getDAO(tx, getModel().getChildType()); -// -// for (D child : childs) { -// -// D childToSave; -// -// if (child.getTopiaId() == null) { -// -// // creation du fils -// Map<String, Object> map = childBinder.obtainProperties(child); -// -// childToSave = dao.create(map); -// -// } else { -// -// // mise a jour du fils -// -// childToSave = dao.findByTopiaId(child.getTopiaId()); -// -// childBinder.load(child, childToSave, false); -// } -// -// // ajout du fils au bean à sauver -// childUpdator.addToList(beanToSave, childToSave); -// } -// -// // on donne la main aux implantations pour faire des traitements -// // supplémentaires -// onUpdateFinalize(tx, beanToSave, oldChilds); -// -// return beanToSave; -// } - @Override protected void afterSave(boolean refresh) { @@ -434,11 +370,6 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex return true; } - //FIXME -// protected void onUpdateFinalize(TopiaContext tx, E bean, Collection<D> oldChilds) throws TopiaException { -// // par défaut, rien à faire -// } - protected ContentTableModel<E, D> getTableModel() { return getUi().getTableModel(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java index c5d8701..93105a3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java @@ -50,7 +50,7 @@ import java.awt.event.KeyEvent; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class ContentTableUIInitializer<E extends IdDto, D extends IdDto, UI extends ObserveContentTableUI<E, D>> extends ContentUIInitializer<E, UI> { +public class ContentTableUIInitializer<E extends IdDto, D extends IdDto, UI extends ContentTableUI<E, D, UI>> extends ContentUIInitializer<E, UI> { public static final String CLIENT_PROPERTY_TABLE_PROPERTY_NAME = "tablePropertyName"; @@ -71,7 +71,7 @@ public class ContentTableUIInitializer<E extends IdDto, D extends IdDto, UI exte return ui.getModel(); } - protected ContentTableUIHandler<E, D> getHandler() { + protected ContentTableUIHandler<E, D, UI> getHandler() { return ui.getHandler(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIModel.java index fd26972..3209c07 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIModel.java @@ -94,7 +94,7 @@ public abstract class ContentTableUIModel<E extends IdDto, D extends IdDto> exte this.selectionModel = new ContentTableListSelectionModel(); } - public static <E extends IdDto, D extends IdDto> ContentTableUIModel<E, D> newModel(ObserveContentTableUI<E, D> ui) { + public static <E extends IdDto, D extends IdDto> ContentTableUIModel<E, D> newModel(ObserveContentTableUI<E, D, ?> ui) { String uiName = ui.getClass().getName(); String modelName = uiName + "Model"; @@ -110,13 +110,13 @@ public abstract class ContentTableUIModel<E extends IdDto, D extends IdDto> exte } - public void initModel(ObserveContentTableUI<E, D> ui, List<ContentTableMeta<D>> metas) { + public void initModel(ObserveContentTableUI<E, D, ?> ui, List<ContentTableMeta<D>> metas) { this.tableModel = createTableModel(ui, metas); } - protected abstract ContentTableModel<E, D> createTableModel(ObserveContentTableUI<E, D> ui, List<ContentTableMeta<D>> metas) ; + protected abstract ContentTableModel<E, D> createTableModel(ObserveContentTableUI<E, D, ?> ui, List<ContentTableMeta<D>> metas) ; public Class<D> getChildType() { return childType; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ObserveContentTableUI.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ObserveContentTableUI.java index 30feeeb..951482a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ObserveContentTableUI.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ObserveContentTableUI.java @@ -35,9 +35,9 @@ import javax.swing.*; * @author Tony Chemit - chemit@codelutin.com * @since XXX */ -public interface ObserveContentTableUI<E extends IdDto, D extends IdDto> extends ObserveContentUI<E> { +public interface ObserveContentTableUI<E extends IdDto, D extends IdDto, U extends ContentTableUI<E,D, U>> extends ObserveContentUI<E> { - ContentTableUIHandler<E, D> getHandler(); + ContentTableUIHandler<E, D, U> getHandler(); ContentTableUIModel<E, D> getModel(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUI.jaxx index c417e00..5bab278 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUI.jaxx @@ -19,10 +19,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='SetLonglineGlobalCompositionDto, BaitsCompositionDto' - contentTitle='{n("observe.content.baitsComposition.title")}' - saveNewEntryText='{n("observe.content.baitsComposition.action.create")}' - saveNewEntryTip='{n("observe.content.baitsComposition.action.create.tip")}'> + superGenericType='SetLonglineGlobalCompositionDto, BaitsCompositionDto, BaitsCompositionUI' + contentTitle='{n("observe.content.baitsComposition.title")}' + saveNewEntryText='{n("observe.content.baitsComposition.action.create")}' + saveNewEntryTip='{n("observe.content.baitsComposition.action.create.tip")}'> <style source="../../CommonTable.jcss"/> @@ -64,9 +64,8 @@ </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' autoField='true' context='ui-update' - beanClass='fr.ird.observe.services.dto.longline.BaitsCompositionDto' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validatorTable' autoField='true' context='ui-update' errorTableModel='{getErrorTableModel()}' + beanClass='fr.ird.observe.services.dto.longline.BaitsCompositionDto'/> <Table id='editorPanel' fill='both' insets='1'> @@ -76,7 +75,8 @@ <JLabel id='baitTypeLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='baitType' constructorParams='this' genericType='ReferentialReference<BaitTypeDto>' _entityClass='BaitTypeDto.class'/> + <BeanComboBox id='baitType' constructorParams='this' genericType='ReferentialReference<BaitTypeDto>' + _entityClass='BaitTypeDto.class'/> </cell> </row> @@ -86,7 +86,8 @@ <JLabel id='baitSettingStatusLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='baitSettingStatus' constructorParams='this' genericType='ReferentialReference<BaitSettingStatusDto>' _entityClass='BaitSettingStatusDto.class'/> + <BeanComboBox id='baitSettingStatus' constructorParams='this' _entityClass='BaitSettingStatusDto.class' + genericType='ReferentialReference<BaitSettingStatusDto>'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java index d1da929..13377c4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java @@ -35,6 +35,8 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.FocusTraversalPolicy; + import static org.nuiton.i18n.I18n.n; /** @@ -43,7 +45,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 3.9 */ -public class BaitsCompositionUIHandler extends ContentTableUIHandler<SetLonglineGlobalCompositionDto, BaitsCompositionDto> { +public class BaitsCompositionUIHandler extends ContentTableUIHandler<SetLonglineGlobalCompositionDto, BaitsCompositionDto, BaitsCompositionUI> { /** Logger */ private static final Log log = LogFactory.getLog(BaitsCompositionUIHandler.class); @@ -53,8 +55,8 @@ public class BaitsCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override - public BaitsCompositionUI getUi() { - return (BaitsCompositionUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(BaitsCompositionUI ui) { + return null; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIModel.java index ef1e396..07fe92f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.longline.BaitsCompositionDto; -import fr.ird.observe.services.dto.longline.BaitsCompositionHelper; -import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.longline.BaitsCompositionDto; +import fr.ird.observe.services.dto.longline.BaitsCompositionHelper; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -51,12 +51,12 @@ public class BaitsCompositionUIModel extends ContentTableUIModel<SetLonglineGlob SetLonglineGlobalCompositionDto.PROPERTY_BAITS_COMPOSITION }, new String[]{BaitsCompositionDto.PROPERTY_BAIT_TYPE, - BaitsCompositionDto.PROPERTY_BAIT_SETTING_STATUS, - BaitsCompositionDto.PROPERTY_INDIVIDUAL_SIZE, - BaitsCompositionDto.PROPERTY_INDIVIDUAL_WEIGHT, - BaitsCompositionDto.PROPERTY_PROPORTION}); + BaitsCompositionDto.PROPERTY_BAIT_SETTING_STATUS, + BaitsCompositionDto.PROPERTY_INDIVIDUAL_SIZE, + BaitsCompositionDto.PROPERTY_INDIVIDUAL_WEIGHT, + BaitsCompositionDto.PROPERTY_PROPORTION}); - List<ContentTableMeta<BaitsCompositionDto>> metas = Lists.newArrayList( + List<ContentTableMeta<BaitsCompositionDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(BaitsCompositionDto.class, BaitsCompositionDto.PROPERTY_BAIT_TYPE, false), ContentTableModel.newTableMeta(BaitsCompositionDto.class, BaitsCompositionDto.PROPERTY_BAIT_SETTING_STATUS, false), ContentTableModel.newTableMeta(BaitsCompositionDto.class, BaitsCompositionDto.PROPERTY_INDIVIDUAL_SIZE, false), @@ -69,7 +69,7 @@ public class BaitsCompositionUIModel extends ContentTableUIModel<SetLonglineGlob @Override protected ContentTableModel<SetLonglineGlobalCompositionDto, BaitsCompositionDto> createTableModel( - ObserveContentTableUI<SetLonglineGlobalCompositionDto, BaitsCompositionDto> ui, + ObserveContentTableUI<SetLonglineGlobalCompositionDto, BaitsCompositionDto, ?> ui, List<ContentTableMeta<BaitsCompositionDto>> contentTableMetas) { return new ContentTableModel<SetLonglineGlobalCompositionDto, BaitsCompositionDto>(ui, contentTableMetas) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUI.jaxx index c68aea7..5994fbc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUI.jaxx @@ -19,10 +19,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='SetLonglineGlobalCompositionDto, BranchlinesCompositionDto' - contentTitle='{n("observe.content.branchlinesComposition.title")}' - saveNewEntryText='{n("observe.content.branchlinesComposition.action.create")}' - saveNewEntryTip='{n("observe.content.branchlinesComposition.action.create.tip")}'> + superGenericType='SetLonglineGlobalCompositionDto, BranchlinesCompositionDto, BranchlinesCompositionUI' + contentTitle='{n("observe.content.branchlinesComposition.title")}' + saveNewEntryText='{n("observe.content.branchlinesComposition.action.create")}' + saveNewEntryTip='{n("observe.content.branchlinesComposition.action.create.tip")}'> <style source="../../CommonTable.jcss"/> @@ -63,9 +63,8 @@ </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' autoField='true' context='ui-update' - beanClass='fr.ird.observe.services.dto.longline.BranchlinesCompositionDto' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validatorTable' autoField='true' context='ui-update' errorTableModel='{getErrorTableModel()}' + beanClass='fr.ird.observe.services.dto.longline.BranchlinesCompositionDto'/> <Table id='editorPanel' fill='both' insets='1'> @@ -75,7 +74,8 @@ <JLabel id='topTypeLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='topType' constructorParams='this' genericType='ReferentialReference<LineTypeDto>' _entityClass='LineTypeDto.class'/> + <BeanComboBox id='topType' constructorParams='this' genericType='ReferentialReference<LineTypeDto>' + _entityClass='LineTypeDto.class'/> </cell> </row> @@ -85,7 +85,8 @@ <JLabel id='tracelineTypeLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='tracelineType' constructorParams='this' genericType='ReferentialReference<LineTypeDto>' _entityClass='LineTypeDto.class'/> + <BeanComboBox id='tracelineType' constructorParams='this' genericType='ReferentialReference<LineTypeDto>' + _entityClass='LineTypeDto.class'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java index 259ba83..a0d947c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java @@ -35,6 +35,8 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.FocusTraversalPolicy; + import static org.nuiton.i18n.I18n.n; /** @@ -43,7 +45,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 3.9 */ -public class BranchlinesCompositionUIHandler extends ContentTableUIHandler<SetLonglineGlobalCompositionDto, BranchlinesCompositionDto> { +public class BranchlinesCompositionUIHandler extends ContentTableUIHandler<SetLonglineGlobalCompositionDto, BranchlinesCompositionDto, BranchlinesCompositionUI> { /** Logger */ private static final Log log = LogFactory.getLog(BranchlinesCompositionUIHandler.class); @@ -53,8 +55,8 @@ public class BranchlinesCompositionUIHandler extends ContentTableUIHandler<SetLo } @Override - public BranchlinesCompositionUI getUi() { - return (BranchlinesCompositionUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(BranchlinesCompositionUI ui) { + return null; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIModel.java index b757b51..9193e9f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.longline.BranchlinesCompositionDto; -import fr.ird.observe.services.dto.longline.BranchlinesCompositionHelper; -import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.longline.BranchlinesCompositionDto; +import fr.ird.observe.services.dto.longline.BranchlinesCompositionHelper; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -51,12 +51,12 @@ public class BranchlinesCompositionUIModel extends ContentTableUIModel<SetLongli SetLonglineGlobalCompositionDto.PROPERTY_BRANCHLINES_COMPOSITION }, new String[]{BranchlinesCompositionDto.PROPERTY_TOP_TYPE, - BranchlinesCompositionDto.PROPERTY_TRACELINE_TYPE, - BranchlinesCompositionDto.PROPERTY_LENGTH, - BranchlinesCompositionDto.PROPERTY_TRACELINE_LENGTH, - BranchlinesCompositionDto.PROPERTY_PROPORTION}); + BranchlinesCompositionDto.PROPERTY_TRACELINE_TYPE, + BranchlinesCompositionDto.PROPERTY_LENGTH, + BranchlinesCompositionDto.PROPERTY_TRACELINE_LENGTH, + BranchlinesCompositionDto.PROPERTY_PROPORTION}); - List<ContentTableMeta<BranchlinesCompositionDto>> metas = Lists.newArrayList( + List<ContentTableMeta<BranchlinesCompositionDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(BranchlinesCompositionDto.class, BranchlinesCompositionDto.PROPERTY_TOP_TYPE, false), ContentTableModel.newTableMeta(BranchlinesCompositionDto.class, BranchlinesCompositionDto.PROPERTY_TRACELINE_TYPE, false), ContentTableModel.newTableMeta(BranchlinesCompositionDto.class, BranchlinesCompositionDto.PROPERTY_LENGTH, false), @@ -70,7 +70,7 @@ public class BranchlinesCompositionUIModel extends ContentTableUIModel<SetLongli @Override protected ContentTableModel<SetLonglineGlobalCompositionDto, BranchlinesCompositionDto> createTableModel( - ObserveContentTableUI<SetLonglineGlobalCompositionDto, BranchlinesCompositionDto> ui, + ObserveContentTableUI<SetLonglineGlobalCompositionDto, BranchlinesCompositionDto, ?> ui, List<ContentTableMeta<BranchlinesCompositionDto>> contentTableMetas) { return new ContentTableModel<SetLonglineGlobalCompositionDto, BranchlinesCompositionDto>(ui, contentTableMetas) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineTableModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineTableModel.java index 5099fdd..f4d81e1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineTableModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineTableModel.java @@ -33,7 +33,6 @@ import fr.ird.observe.services.dto.longline.WeightMeasureDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.SwingUtilities; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; @@ -51,7 +50,7 @@ public class CatchLonglineTableModel extends ContentTableModel<SetLonglineCatchD private static final long serialVersionUID = 1L; - public CatchLonglineTableModel(ObserveContentTableUI<SetLonglineCatchDto, CatchLonglineDto> context, + public CatchLonglineTableModel(ObserveContentTableUI<SetLonglineCatchDto, CatchLonglineDto, ?> context, List<ContentTableMeta<CatchLonglineDto>> contentTableMetas) { super(context, contentTableMetas); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jaxx index 7499479..3449fb4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jaxx @@ -20,12 +20,13 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.table.ContentTableUI superGenericType='SetLonglineCatchDto, CatchLonglineDto' - contentTitle='{n("observe.content.catchLongline.title")}' - newEntryText='{n("observe.content.catchLongline.action.new")}' - newEntryTip='{n("observe.content.catchLongline.action.new.tip")}' - saveNewEntryText='{n("observe.content.catchLongline.action.create")}' - saveNewEntryTip='{n("observe.content.catchLongline.action.create.tip")}'> +<fr.ird.observe.application.swing.ui.content.table.ContentTableUI + superGenericType='SetLonglineCatchDto, CatchLonglineDto, CatchLonglineUI' + contentTitle='{n("observe.content.catchLongline.title")}' + newEntryText='{n("observe.content.catchLongline.action.new")}' + newEntryTip='{n("observe.content.catchLongline.action.new.tip")}' + saveNewEntryText='{n("observe.content.catchLongline.action.create")}' + saveNewEntryTip='{n("observe.content.catchLongline.action.create.tip")}'> <style source="../../CommonTable.jcss"/> @@ -156,7 +157,8 @@ <JLabel id='sectionLabel'/> </cell> <cell fill="both" weightx="1"> - <BeanComboBox id='section' genericType='DataReference<SectionDto>' _entityClass='SectionDto.class' constructorParams='this'/> + <BeanComboBox id='section' genericType='DataReference<SectionDto>' + _entityClass='SectionDto.class' constructorParams='this'/> </cell> </row> <row> @@ -164,7 +166,8 @@ <JLabel id='basketLabel'/> </cell> <cell fill="both" weightx="1"> - <BeanComboBox id='basket' genericType='DataReference<BasketDto>' _entityClass='BasketDto.class' constructorParams='this'/> + <BeanComboBox id='basket' genericType='DataReference<BasketDto>' + _entityClass='BasketDto.class' constructorParams='this'/> </cell> </row> <row> @@ -172,7 +175,8 @@ <JLabel id='branchlineLabel'/> </cell> <cell fill="both" weightx="1"> - <BeanComboBox id='branchline' genericType='DataReference<BranchlineDto>' _entityClass='BranchlineDto.class' constructorParams='this'/> + <BeanComboBox id='branchline' genericType='DataReference<BranchlineDto>' + _entityClass='BranchlineDto.class' constructorParams='this'/> </cell> </row> </Table> @@ -187,7 +191,8 @@ <JLabel id='speciesCatchLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='speciesCatch' genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class' constructorParams='this'/> + <BeanComboBox id='speciesCatch' genericType='ReferentialReference<SpeciesDto>' + _entityClass='SpeciesDto.class' constructorParams='this'/> </cell> <cell anchor='west'> <JLabel id='tagNumberLabel'/> @@ -226,13 +231,17 @@ <JLabel id='catchHealthnessLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='catchHealthness' constructorParams='this' genericType='ReferentialReference<HealthnessDto>' _entityClass='HealthnessDto.class'/> + <BeanComboBox id='catchHealthness' constructorParams='this' + genericType='ReferentialReference<HealthnessDto>' + _entityClass='HealthnessDto.class'/> </cell> <cell> <JLabel id='hookPositionLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='hookPosition' constructorParams='this' genericType='ReferentialReference<HookPositionDto>' _entityClass='HookPositionDto.class'/> + <BeanComboBox id='hookPosition' constructorParams='this' + genericType='ReferentialReference<HookPositionDto>' + _entityClass='HookPositionDto.class'/> </cell> </row> @@ -243,13 +252,17 @@ <JLabel id='catchFateLonglineLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='catchFateLongline' constructorParams='this' genericType='ReferentialReference<CatchFateLonglineDto>' _entityClass='CatchFateLonglineDto.class'/> + <BeanComboBox id='catchFateLongline' constructorParams='this' + genericType='ReferentialReference<CatchFateLonglineDto>' + _entityClass='CatchFateLonglineDto.class'/> </cell> <cell> <JLabel id='discardHealthnessLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='discardHealthness' constructorParams='this' genericType='ReferentialReference<HealthnessDto>' _entityClass='HealthnessDto.class'/> + <BeanComboBox id='discardHealthness' constructorParams='this' + genericType='ReferentialReference<HealthnessDto>' + _entityClass='HealthnessDto.class'/> </cell> </row> @@ -303,7 +316,8 @@ <row> <cell columns="2" fill="both" weighty="0.7"> <JScrollPane id='predatorPane'> - <FilterableDoubleList id='predator' genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class'/> + <FilterableDoubleList id='predator' genericType='ReferentialReference<SpeciesDto>' + _entityClass='SpeciesDto.class'/> </JScrollPane> </cell> </row> @@ -322,7 +336,9 @@ <JLabel id='stomacFullnessLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='stomacFullness' constructorParams='this' genericType='ReferentialReference<StomacFullnessDto>' _entityClass='StomacFullnessDto.class'/> + <BeanComboBox id='stomacFullness' constructorParams='this' + genericType='ReferentialReference<StomacFullnessDto>' + _entityClass='StomacFullnessDto.class'/> </cell> </row> @@ -332,7 +348,8 @@ <JLabel id='sexLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='sex' constructorParams='this' genericType='ReferentialReference<SexDto>' _entityClass='SexDto.class'/> + <BeanComboBox id='sex' constructorParams='this' genericType='ReferentialReference<SexDto>' + _entityClass='SexDto.class'/> </cell> </row> @@ -342,7 +359,9 @@ <JLabel id='maturityStatusLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='maturityStatus' constructorParams='this' genericType='ReferentialReference<MaturityStatusDto>' _entityClass='MaturityStatusDto.class'/> + <BeanComboBox id='maturityStatus' constructorParams='this' + genericType='ReferentialReference<MaturityStatusDto>' + _entityClass='MaturityStatusDto.class'/> </cell> </row> @@ -422,7 +441,9 @@ <JLabel id='baitHaulingStatusLabel'/> </cell> <cell anchor='east' weightx="1" fill="both" columns="2"> - <BeanComboBox id='baitHaulingStatus' constructorParams='this' genericType='ReferentialReference<BaitHaulingStatusDto>' _entityClass='BaitHaulingStatusDto.class'/> + <BeanComboBox id='baitHaulingStatus' constructorParams='this' + genericType='ReferentialReference<BaitHaulingStatusDto>' + _entityClass='BaitHaulingStatusDto.class'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java index 2cf0545..2ed9f6d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -52,11 +52,11 @@ import fr.ird.observe.services.dto.longline.WeightMeasureDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.ReferentialReferences; +import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.referential.WeightMeasureTypeDto; import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; import fr.ird.observe.services.dto.referential.longline.HealthnessDto; -import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; -import fr.ird.observe.services.dto.referential.WeightMeasureTypeDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.service.data.longline.BranchlineService; import fr.ird.observe.services.service.data.longline.SetLonglineCatchService; @@ -76,8 +76,12 @@ import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.beans.PropertyChangeListener; import java.util.Calendar; import java.util.Collection; @@ -97,7 +101,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCatchDto, CatchLonglineDto> { +public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCatchDto, CatchLonglineDto, CatchLonglineUI> { /** Logger */ private static final Log log = LogFactory.getLog(CatchLonglineUIHandler.class); @@ -136,11 +140,6 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat } @Override - public CatchLonglineUI getUi() { - return (CatchLonglineUI) super.getUi(); - } - - @Override public CatchLonglineUIModel getModel() { return (CatchLonglineUIModel) super.getModel(); } @@ -148,7 +147,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat @Override public void initUI() { - final CatchLonglineContentTableUIInitializer uiInitializer = new CatchLonglineContentTableUIInitializer(getUi()); + CatchLonglineContentTableUIInitializer uiInitializer = new CatchLonglineContentTableUIInitializer(getUi()); uiInitializer.initUI(); getModel().addPropertyChangeListener(CatchLonglineUIModel.PROPERTY_SHOW_INDIVIDUAL_TABS, evt -> { @@ -178,6 +177,84 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat } @Override + protected FocusTraversalPolicy createFocusTraversalPolicy(CatchLonglineUI ui) { + return new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (getTableModel().isCreate()) { + if (aComponent.equals(ui.getAcquisitionModeIndividual())) { + return getLastComponent(aContainer); + } + } else { + if (aComponent.equals(ui.getSection().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } + + case 1: + if (aComponent.equals(ui.getDepredated())) { + return getLastComponent(aContainer); + } + case 2: + if (aComponent.equals(ui.getStomacFullness().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + case 5: + if (aComponent.equals(ui.getDepthRecorder())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (getTableModel().isCreate()) { + return ui.getAcquisitionModeIndividual(); + } else { + return ui.getSection(); + } + case 1: + return ui.getDepredated(); + case 2: + return ui.getStomacFullness(); + case 5: + return ui.getDepthRecorder(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + if (ui.getDeleteEntry().isEnabled()) { + return ui.getDeleteEntry(); + } + if (ui.getSaveNewEntry().isEnabled()) { + return ui.getSaveNewEntry(); + } + if (ui.getResetEntry().isEnabled()) { + return ui.getResetEntry(); + } + + return super.getLastComponent(aContainer); + } + }; + } + + @Override public void openUI() { if (log.isInfoEnabled()) { @@ -423,7 +500,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat ui.getFishingOperationTabPane().setSelectedIndex(0); // select by default individual acquisition mode - String openTripLonglineId = getDataContext().getOpenTripLonglineId(); +// String openTripLonglineId = getDataContext().getOpenTripLonglineId(); ObserveTreeHelper treeHelper = ObserveSwingApplicationContext.get().getMainUI().getTreeHelper(); ObserveNode selectedNode = treeHelper.getSelectedNode(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIModel.java index cc50155..45091d1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIModel.java @@ -23,17 +23,17 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; */ import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.longline.BranchlineDto; -import fr.ird.observe.services.dto.longline.CatchLonglineDto; -import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.CatchLonglineDto; +import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderModelBuilder; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Set; @@ -122,35 +122,35 @@ public class CatchLonglineUIModel extends ContentTableUIModel<SetLonglineCatchDt SetLonglineCatchDto.PROPERTY_CATCH_LONGLINE }, new String[]{CatchLonglineDto.PROPERTY_SPECIES_CATCH, - CatchLonglineDto.PROPERTY_ACQUISITION_MODE, - CatchLonglineDto.PROPERTY_COUNT, - CatchLonglineDto.PROPERTY_CATCH_HEALTHNESS, - CatchLonglineDto.PROPERTY_CATCH_FATE_LONGLINE, - CatchLonglineDto.PROPERTY_DISCARD_HEALTHNESS, - CatchLonglineDto.PROPERTY_DEPREDATED, - CatchLonglineDto.PROPERTY_NUMBER, - CatchLonglineDto.PROPERTY_HOME_ID, - CatchLonglineDto.PROPERTY_HOOK_POSITION, - CatchLonglineDto.PROPERTY_HOOK_WHEN_DISCARDED, - CatchLonglineDto.PROPERTY_MATURITY_STATUS, - CatchLonglineDto.PROPERTY_PHOTO_REFERENCES, - CatchLonglineDto.PROPERTY_SEX, - CatchLonglineDto.PROPERTY_PREDATOR, - CatchLonglineDto.PROPERTY_STOMAC_FULLNESS, - CatchLonglineDto.PROPERTY_TOTAL_WEIGHT, - CatchLonglineDto.PROPERTY_BEAT_DIAMETER, - CatchLonglineDto.PROPERTY_GONADE_WEIGHT, - CatchLonglineDto.PROPERTY_SECTION, - CatchLonglineDto.PROPERTY_BASKET, - CatchLonglineDto.PROPERTY_BRANCHLINE, - CatchLonglineDto.PROPERTY_TAG_NUMBER, - CatchLonglineDto.PROPERTY_COMMENT + CatchLonglineDto.PROPERTY_ACQUISITION_MODE, + CatchLonglineDto.PROPERTY_COUNT, + CatchLonglineDto.PROPERTY_CATCH_HEALTHNESS, + CatchLonglineDto.PROPERTY_CATCH_FATE_LONGLINE, + CatchLonglineDto.PROPERTY_DISCARD_HEALTHNESS, + CatchLonglineDto.PROPERTY_DEPREDATED, + CatchLonglineDto.PROPERTY_NUMBER, + CatchLonglineDto.PROPERTY_HOME_ID, + CatchLonglineDto.PROPERTY_HOOK_POSITION, + CatchLonglineDto.PROPERTY_HOOK_WHEN_DISCARDED, + CatchLonglineDto.PROPERTY_MATURITY_STATUS, + CatchLonglineDto.PROPERTY_PHOTO_REFERENCES, + CatchLonglineDto.PROPERTY_SEX, + CatchLonglineDto.PROPERTY_PREDATOR, + CatchLonglineDto.PROPERTY_STOMAC_FULLNESS, + CatchLonglineDto.PROPERTY_TOTAL_WEIGHT, + CatchLonglineDto.PROPERTY_BEAT_DIAMETER, + CatchLonglineDto.PROPERTY_GONADE_WEIGHT, + CatchLonglineDto.PROPERTY_SECTION, + CatchLonglineDto.PROPERTY_BASKET, + CatchLonglineDto.PROPERTY_BRANCHLINE, + CatchLonglineDto.PROPERTY_TAG_NUMBER, + CatchLonglineDto.PROPERTY_COMMENT }); this.sizeMeasuresTableModel = new SizeMeasuresTableModel(); this.weightMeasuresTableModel = new WeightMeasuresTableModel(); - List<ContentTableMeta<CatchLonglineDto>> metas = Lists.newArrayList( + List<ContentTableMeta<CatchLonglineDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(CatchLonglineDto.class, CatchLonglineDto.PROPERTY_SECTION, false), ContentTableModel.newTableMeta(CatchLonglineDto.class, CatchLonglineDto.PROPERTY_BASKET, false), ContentTableModel.newTableMeta(CatchLonglineDto.class, CatchLonglineDto.PROPERTY_BRANCHLINE, false), @@ -232,7 +232,7 @@ public class CatchLonglineUIModel extends ContentTableUIModel<SetLonglineCatchDt } @Override - protected ContentTableModel<SetLonglineCatchDto, CatchLonglineDto> createTableModel(ObserveContentTableUI<SetLonglineCatchDto, CatchLonglineDto> ui, List<ContentTableMeta<CatchLonglineDto>> contentTableMetas) { + protected ContentTableModel<SetLonglineCatchDto, CatchLonglineDto> createTableModel(ObserveContentTableUI<SetLonglineCatchDto, CatchLonglineDto, ?> ui, List<ContentTableMeta<CatchLonglineDto>> contentTableMetas) { return new CatchLonglineTableModel(ui, contentTableMetas); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUI.jaxx index 21588ef..673ce69 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUI.jaxx @@ -19,10 +19,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='ActivityLonglineEncounterDto, EncounterDto' - contentTitle='{n("observe.content.encounter.title")}' - saveNewEntryText='{n("observe.content.encounter.action.create")}' - saveNewEntryTip='{n("observe.content.encounter.action.create.tip")}'> + superGenericType='ActivityLonglineEncounterDto, EncounterDto, EncounterUI' + contentTitle='{n("observe.content.encounter.title")}' + saveNewEntryText='{n("observe.content.encounter.action.create")}' + saveNewEntryTip='{n("observe.content.encounter.action.create.tip")}'> <style source="../../CommonTable.jcss"/> @@ -77,7 +77,8 @@ <JLabel id='encounterTypeLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='encounterType' constructorParams='this' genericType='ReferentialReference<EncounterTypeDto>' _entityClass='EncounterTypeDto.class'/> + <BeanComboBox id='encounterType' constructorParams='this' + genericType='ReferentialReference<EncounterTypeDto>' _entityClass='EncounterTypeDto.class'/> </cell> </row> @@ -87,7 +88,8 @@ <JLabel id='speciesLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='species' constructorParams='this' genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class'/> + <BeanComboBox id='species' constructorParams='this' genericType='ReferentialReference<SpeciesDto>' + _entityClass='SpeciesDto.class'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIHandler.java index 00d6bb7..59063c5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIHandler.java @@ -24,6 +24,8 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.ActivityLonglineEncounterDto; import fr.ird.observe.services.dto.longline.ActivityLonglineEncounterHelper; @@ -35,15 +37,17 @@ import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; import fr.ird.observe.services.dto.result.SaveResultDto; -import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.services.service.data.longline.ActivityLongLineEncounterService; -import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; +import fr.ird.observe.services.service.referential.ReferentialService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.LinkedList; import java.util.Set; @@ -56,7 +60,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineEncounterDto, EncounterDto> { +public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineEncounterDto, EncounterDto, EncounterUI> { /** Logger */ private static final Log log = LogFactory.getLog(EncounterUIHandler.class); @@ -66,11 +70,6 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineEn } @Override - public EncounterUI getUi() { - return (EncounterUI) super.getUi(); - } - - @Override protected void onSelectedRowChanged(int editingRow, EncounterDto bean, boolean create) { if (getTableModel().isEditable()) { if (log.isDebugEnabled()) { @@ -81,6 +80,36 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineEn } @Override + protected FocusTraversalPolicy createFocusTraversalPolicy(EncounterUI ui) { + return new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getEncounterType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return ui.getEncounterType(); + } + + @Override + public Component getLastComponent(Container aContainer) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + return ui.getComment2(); + } + }; + } + + @Override protected void initTableUI(DefaultTableCellRenderer renderer) { JTable table = getUi().getTable(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIModel.java index e5ea568..0da0597 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.longline.ActivityLonglineEncounterDto; -import fr.ird.observe.services.dto.longline.EncounterDto; -import fr.ird.observe.services.dto.longline.EncounterHelper; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.longline.ActivityLonglineEncounterDto; +import fr.ird.observe.services.dto.longline.EncounterDto; +import fr.ird.observe.services.dto.longline.EncounterHelper; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -56,7 +56,7 @@ public class EncounterUIModel extends ContentTableUIModel<ActivityLonglineEncoun EncounterDto.PROPERTY_COUNT, EncounterDto.PROPERTY_ENCOUNTER_TYPE}); - List<ContentTableMeta<EncounterDto>> metas = Lists.newArrayList( + List<ContentTableMeta<EncounterDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(EncounterDto.class, EncounterDto.PROPERTY_ENCOUNTER_TYPE, false), ContentTableModel.newTableMeta(EncounterDto.class, EncounterDto.PROPERTY_SPECIES, false), ContentTableModel.newTableMeta(EncounterDto.class, EncounterDto.PROPERTY_DISTANCE, false), @@ -68,7 +68,7 @@ public class EncounterUIModel extends ContentTableUIModel<ActivityLonglineEncoun @Override protected ContentTableModel<ActivityLonglineEncounterDto, EncounterDto> createTableModel( - ObserveContentTableUI<ActivityLonglineEncounterDto, EncounterDto> ui, + ObserveContentTableUI<ActivityLonglineEncounterDto, EncounterDto, ?> ui, List<ContentTableMeta<EncounterDto>> contentTableMetas) { return new ContentTableModel<ActivityLonglineEncounterDto, EncounterDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUI.jaxx index 6e42e3b..2851019 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUI.jaxx @@ -19,10 +19,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='SetLonglineGlobalCompositionDto, FloatlinesCompositionDto' - contentTitle='{n("observe.content.floatlinesComposition.title")}' - saveNewEntryText='{n("observe.content.floatlinesComposition.action.create")}' - saveNewEntryTip='{n("observe.content.floatlinesComposition.action.create.tip")}'> + superGenericType='SetLonglineGlobalCompositionDto, FloatlinesCompositionDto, FloatlinesCompositionUI' + contentTitle='{n("observe.content.floatlinesComposition.title")}' + saveNewEntryText='{n("observe.content.floatlinesComposition.action.create")}' + saveNewEntryTip='{n("observe.content.floatlinesComposition.action.create.tip")}'> <style source="../../CommonTable.jcss"/> @@ -64,9 +64,8 @@ </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' autoField='true' context='ui-update' - beanClass='fr.ird.observe.services.dto.longline.FloatlinesCompositionDto' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validatorTable' autoField='true' context='ui-update' errorTableModel='{getErrorTableModel()}' + beanClass='fr.ird.observe.services.dto.longline.FloatlinesCompositionDto'/> <Table id='editorPanel' fill='both' insets='1'> @@ -76,7 +75,8 @@ <JLabel id='lineTypeLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='lineType' constructorParams='this' genericType='ReferentialReference<LineTypeDto>' _entityClass='LineTypeDto.class'/> + <BeanComboBox id='lineType' constructorParams='this' genericType='ReferentialReference<LineTypeDto>' + _entityClass='LineTypeDto.class'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java index 5de05fa..c402d38 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java @@ -34,6 +34,8 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.FocusTraversalPolicy; + import static org.nuiton.i18n.I18n.n; /** @@ -42,7 +44,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 3.9 */ -public class FloatlinesCompositionUIHandler extends ContentTableUIHandler<SetLonglineGlobalCompositionDto, FloatlinesCompositionDto> { +public class FloatlinesCompositionUIHandler extends ContentTableUIHandler<SetLonglineGlobalCompositionDto, FloatlinesCompositionDto, FloatlinesCompositionUI> { /** Logger */ private static final Log log = LogFactory.getLog(FloatlinesCompositionUIHandler.class); @@ -52,8 +54,8 @@ public class FloatlinesCompositionUIHandler extends ContentTableUIHandler<SetLon } @Override - public FloatlinesCompositionUI getUi() { - return (FloatlinesCompositionUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(FloatlinesCompositionUI ui) { + return null; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIModel.java index ca309ba..6cbb411 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.longline.FloatlinesCompositionDto; -import fr.ird.observe.services.dto.longline.FloatlinesCompositionHelper; -import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.longline.FloatlinesCompositionDto; +import fr.ird.observe.services.dto.longline.FloatlinesCompositionHelper; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -51,10 +51,10 @@ public class FloatlinesCompositionUIModel extends ContentTableUIModel<SetLonglin SetLonglineGlobalCompositionDto.PROPERTY_FLOATLINES_COMPOSITION }, new String[]{FloatlinesCompositionDto.PROPERTY_LINE_TYPE, - FloatlinesCompositionDto.PROPERTY_LENGTH, - FloatlinesCompositionDto.PROPERTY_PROPORTION}); + FloatlinesCompositionDto.PROPERTY_LENGTH, + FloatlinesCompositionDto.PROPERTY_PROPORTION}); - List<ContentTableMeta<FloatlinesCompositionDto>> metas = Lists.newArrayList( + List<ContentTableMeta<FloatlinesCompositionDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(FloatlinesCompositionDto.class, FloatlinesCompositionDto.PROPERTY_LINE_TYPE, false), ContentTableModel.newTableMeta(FloatlinesCompositionDto.class, FloatlinesCompositionDto.PROPERTY_LENGTH, false), ContentTableModel.newTableMeta(FloatlinesCompositionDto.class, FloatlinesCompositionDto.PROPERTY_PROPORTION, false)); @@ -66,11 +66,12 @@ public class FloatlinesCompositionUIModel extends ContentTableUIModel<SetLonglin @Override protected ContentTableModel<SetLonglineGlobalCompositionDto, FloatlinesCompositionDto> createTableModel( - ObserveContentTableUI<SetLonglineGlobalCompositionDto, FloatlinesCompositionDto> ui, + ObserveContentTableUI<SetLonglineGlobalCompositionDto, FloatlinesCompositionDto, ?> ui, List<ContentTableMeta<FloatlinesCompositionDto>> contentTableMetas) { return new ContentTableModel<SetLonglineGlobalCompositionDto, FloatlinesCompositionDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; + @Override protected Collection<FloatlinesCompositionDto> getChilds(SetLonglineGlobalCompositionDto bean) { return bean.getFloatlinesComposition(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineTableModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineTableModel.java index efd69f6..7fafb31 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineTableModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineTableModel.java @@ -23,15 +23,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; */ import com.google.common.collect.Sets; +import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; +import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; +import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineHelper; import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineGearUseDto; import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; -import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; -import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -54,7 +54,7 @@ public class GearUseFeaturesLonglineTableModel extends ContentTableModel<TripLon private transient GearUseFeaturesLonglineUIHandler gearUseFeaturesLonglineUIHandler; - public GearUseFeaturesLonglineTableModel(ObserveContentTableUI<TripLonglineGearUseDto, GearUseFeaturesLonglineDto> context, + public GearUseFeaturesLonglineTableModel(ObserveContentTableUI<TripLonglineGearUseDto, GearUseFeaturesLonglineDto, ?> context, List<ContentTableMeta<GearUseFeaturesLonglineDto>> contentTableMetas) { super(context, contentTableMetas); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUI.jaxx index b7609c4..86b428e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUI.jaxx @@ -21,10 +21,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='TripLonglineGearUseDto, GearUseFeaturesLonglineDto' - contentTitle='{n("observe.content.gearUseFeaturesLongline.title")}' - saveNewEntryText='{n("observe.content.action.gearUseFeaturesLongline")}' - saveNewEntryTip='{n("observe.content.action.gearUseFeaturesLongline.tip")}'> + superGenericType='TripLonglineGearUseDto, GearUseFeaturesLonglineDto, GearUseFeaturesLonglineUI' + contentTitle='{n("observe.content.gearUseFeaturesLongline.title")}' + saveNewEntryText='{n("observe.content.action.gearUseFeaturesLongline")}' + saveNewEntryTip='{n("observe.content.action.gearUseFeaturesLongline.tip")}'> <style source="../../CommonTable.jcss"/> @@ -32,7 +32,6 @@ fr.ird.observe.services.dto.CommentableDto fr.ird.observe.services.dto.longline.TripLonglineDto fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto - fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.GearDto fr.ird.observe.application.swing.ui.content.table.* @@ -66,17 +65,12 @@ <ContentTableModel id='tableModel'/> <!-- le validateur de l'écran --> - <BeanValidator id='validator' - beanClass='fr.ird.observe.services.dto.longline.TripLonglineGearUseDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + <BeanValidator id='validator' beanClass='fr.ird.observe.services.dto.longline.TripLonglineGearUseDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'/> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + <BeanValidator id='validatorTable' autoField='true' errorTableModel='{getErrorTableModel()}' context='ui-update' + beanClass='fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto'/> <JPopupMenu id='measurementsTablePopup'> <JMenuItem id='addMeasurement' onActionPerformed='getHandler().addMeasurement()'/> @@ -101,7 +95,8 @@ <JLabel id='gearLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='gear' constructorParams='this' genericType='ReferentialReference<GearDto>' _entityClass='GearDto.class'/> + <BeanComboBox id='gear' constructorParams='this' genericType='ReferentialReference<GearDto>' + _entityClass='GearDto.class'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java index 097b2ae..13a708d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java @@ -45,8 +45,8 @@ import fr.ird.observe.services.dto.referential.GearCaracteristicTypeHelper; import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.result.SaveResultDto; -import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.services.service.data.longline.TripLonglineGearUseService; +import fr.ird.observe.services.service.referential.ReferentialService; import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; @@ -57,8 +57,12 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.awt.GridBagConstraints; import java.awt.Insets; import java.beans.PropertyChangeListener; @@ -78,7 +82,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.16 */ -public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<TripLonglineGearUseDto, GearUseFeaturesLonglineDto> { +public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<TripLonglineGearUseDto, GearUseFeaturesLonglineDto, GearUseFeaturesLonglineUI> { /** Logger */ private static final Log log = LogFactory.getLog(GearUseFeaturesLonglineUIHandler.class); @@ -100,8 +104,37 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip } @Override - public GearUseFeaturesLonglineUI getUi() { - return (GearUseFeaturesLonglineUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(GearUseFeaturesLonglineUI ui) { + + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getGear().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getGear(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(ui, null); + } + }; + } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIModel.java index adb0d7b..a5865fd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIModel.java @@ -23,14 +23,14 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; */ import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; -import fr.ird.observe.services.dto.longline.TripLonglineGearUseDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineGearUseDto; +import java.util.Arrays; import java.util.List; import java.util.Set; @@ -74,7 +74,7 @@ public class GearUseFeaturesLonglineUIModel extends ContentTableUIModel<TripLong this.measurementsTableModel = new GearUseFeaturesMeasurementLonglinesTableModel(); - List<ContentTableMeta<GearUseFeaturesLonglineDto>> metas = Lists.newArrayList( + List<ContentTableMeta<GearUseFeaturesLonglineDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(GearUseFeaturesLonglineDto.class, GearUseFeaturesLonglineDto.PROPERTY_GEAR, false), ContentTableModel.newTableMeta(GearUseFeaturesLonglineDto.class, GearUseFeaturesLonglineDto.PROPERTY_NUMBER, false), ContentTableModel.newTableMeta(GearUseFeaturesLonglineDto.class, GearUseFeaturesLonglineDto.PROPERTY_USED_IN_TRIP, false), @@ -86,7 +86,7 @@ public class GearUseFeaturesLonglineUIModel extends ContentTableUIModel<TripLong } @Override - protected GearUseFeaturesLonglineTableModel createTableModel(ObserveContentTableUI<TripLonglineGearUseDto, GearUseFeaturesLonglineDto> ui, List<ContentTableMeta<GearUseFeaturesLonglineDto>> contentTableMetas) { + protected GearUseFeaturesLonglineTableModel createTableModel(ObserveContentTableUI<TripLonglineGearUseDto, GearUseFeaturesLonglineDto, ?> ui, List<ContentTableMeta<GearUseFeaturesLonglineDto>> contentTableMetas) { return new GearUseFeaturesLonglineTableModel(ui, contentTableMetas); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUI.jaxx index 7328788..8448aa5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUI.jaxx @@ -19,10 +19,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='SetLonglineGlobalCompositionDto, HooksCompositionDto' - contentTitle='{n("observe.content.hooksComposition.title")}' - saveNewEntryText='{n("observe.content.hooksComposition.action.create")}' - saveNewEntryTip='{n("observe.content.hooksComposition.action.create.tip")}'> + superGenericType='SetLonglineGlobalCompositionDto, HooksCompositionDto, HooksCompositionUI' + contentTitle='{n("observe.content.hooksComposition.title")}' + saveNewEntryText='{n("observe.content.hooksComposition.action.create")}' + saveNewEntryTip='{n("observe.content.hooksComposition.action.create.tip")}'> <style source="../../CommonTable.jcss"/> @@ -64,9 +64,8 @@ </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' autoField='true' context='ui-update' - beanClass='fr.ird.observe.services.dto.longline.HooksCompositionDto' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validatorTable' autoField='true' context='ui-update' errorTableModel='{getErrorTableModel()}' + beanClass='fr.ird.observe.services.dto.longline.HooksCompositionDto'/> <Table id='editorPanel' fill='both' insets='1'> @@ -76,7 +75,8 @@ <JLabel id='hookTypeLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='hookType' constructorParams='this' genericType='ReferentialReference<HookTypeDto>' _entityClass='HookTypeDto.class'/> + <BeanComboBox id='hookType' constructorParams='this' genericType='ReferentialReference<HookTypeDto>' + _entityClass='HookTypeDto.class'/> </cell> </row> @@ -86,11 +86,11 @@ <JLabel id='hookSizeLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='hookSize' constructorParams='this' genericType='ReferentialReference<HookSizeDto>' _entityClass='HookSizeDto.class'/> + <BeanComboBox id='hookSize' constructorParams='this' genericType='ReferentialReference<HookSizeDto>' + _entityClass='HookSizeDto.class'/> </cell> </row> - <!-- hookOffset --> <row> <cell> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java index ad25532..e3e2c88 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java @@ -35,6 +35,8 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.FocusTraversalPolicy; + import static org.nuiton.i18n.I18n.n; /** @@ -43,7 +45,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 3.9 */ -public class HooksCompositionUIHandler extends ContentTableUIHandler<SetLonglineGlobalCompositionDto, HooksCompositionDto> { +public class HooksCompositionUIHandler extends ContentTableUIHandler<SetLonglineGlobalCompositionDto, HooksCompositionDto, HooksCompositionUI> { /** Logger */ private static final Log log = LogFactory.getLog(HooksCompositionUIHandler.class); @@ -53,8 +55,8 @@ public class HooksCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override - public HooksCompositionUI getUi() { - return (HooksCompositionUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(HooksCompositionUI ui) { + return null; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIModel.java index 1ab45b5..1b9e373 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.longline.HooksCompositionDto; -import fr.ird.observe.services.dto.longline.HooksCompositionHelper; -import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.longline.HooksCompositionDto; +import fr.ird.observe.services.dto.longline.HooksCompositionHelper; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -51,11 +51,11 @@ public class HooksCompositionUIModel extends ContentTableUIModel<SetLonglineGlob SetLonglineGlobalCompositionDto.PROPERTY_HOOKS_COMPOSITION }, new String[]{HooksCompositionDto.PROPERTY_HOOK_TYPE, - HooksCompositionDto.PROPERTY_HOOK_SIZE, - HooksCompositionDto.PROPERTY_HOOK_OFFSET, - HooksCompositionDto.PROPERTY_PROPORTION}); + HooksCompositionDto.PROPERTY_HOOK_SIZE, + HooksCompositionDto.PROPERTY_HOOK_OFFSET, + HooksCompositionDto.PROPERTY_PROPORTION}); - List<ContentTableMeta<HooksCompositionDto>> metas = Lists.newArrayList( + List<ContentTableMeta<HooksCompositionDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(HooksCompositionDto.class, HooksCompositionDto.PROPERTY_HOOK_TYPE, false), ContentTableModel.newTableMeta(HooksCompositionDto.class, HooksCompositionDto.PROPERTY_HOOK_SIZE, false), ContentTableModel.newTableMeta(HooksCompositionDto.class, HooksCompositionDto.PROPERTY_HOOK_OFFSET, false), @@ -68,11 +68,12 @@ public class HooksCompositionUIModel extends ContentTableUIModel<SetLonglineGlob @Override protected ContentTableModel<SetLonglineGlobalCompositionDto, HooksCompositionDto> createTableModel( - ObserveContentTableUI<SetLonglineGlobalCompositionDto, HooksCompositionDto> ui, + ObserveContentTableUI<SetLonglineGlobalCompositionDto, HooksCompositionDto, ?> ui, List<ContentTableMeta<HooksCompositionDto>> contentTableMetas) { return new ContentTableModel<SetLonglineGlobalCompositionDto, HooksCompositionDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; + @Override protected Collection<HooksCompositionDto> getChilds(SetLonglineGlobalCompositionDto bean) { return bean.getHooksComposition(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUI.jaxx index 5a25e06..c32c54e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUI.jaxx @@ -19,10 +19,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='ActivityLonglineSensorUsedDto, SensorUsedDto' - contentTitle='{n("observe.content.sensorUsed.title")}' - saveNewEntryText='{n("observe.content.sensorUsed.action.create")}' - saveNewEntryTip='{n("observe.content.sensorUsed.action.create.tip")}'> + superGenericType='ActivityLonglineSensorUsedDto, SensorUsedDto, SensorUsedUI' + contentTitle='{n("observe.content.sensorUsed.title")}' + saveNewEntryText='{n("observe.content.sensorUsed.action.create")}' + saveNewEntryTip='{n("observe.content.sensorUsed.action.create.tip")}'> <style source="../../CommonTable.jcss"/> @@ -77,7 +77,8 @@ <JLabel id='sensorTypeLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='sensorType' constructorParams='this' genericType='ReferentialReference<SensorTypeDto>' _entityClass='SensorTypeDto.class'/> + <BeanComboBox id='sensorType' constructorParams='this' genericType='ReferentialReference<SensorTypeDto>' + _entityClass='SensorTypeDto.class'/> </cell> </row> @@ -87,7 +88,9 @@ <JLabel id='sensorDataFormatLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='sensorDataFormat' constructorParams='this' genericType='ReferentialReference<SensorDataFormatDto>' _entityClass='SensorDataFormatDto.class'/> + <BeanComboBox id='sensorDataFormat' constructorParams='this' + genericType='ReferentialReference<SensorDataFormatDto>' + _entityClass='SensorDataFormatDto.class'/> </cell> </row> @@ -97,7 +100,8 @@ <JLabel id='sensorBrandLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='sensorBrand' constructorParams='this' genericType='ReferentialReference<SensorBrandDto>' _entityClass='SensorBrandDto.class'/> + <BeanComboBox id='sensorBrand' constructorParams='this' genericType='ReferentialReference<SensorBrandDto>' + _entityClass='SensorBrandDto.class'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java index 0b3bb08..b1bd29b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java @@ -44,8 +44,11 @@ import org.nuiton.jaxx.runtime.JaxxFileChooser; import javax.swing.JOptionPane; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -59,7 +62,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineSensorUsedDto, SensorUsedDto> { +public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineSensorUsedDto, SensorUsedDto, SensorUsedUI> { /** Logger */ private static final Log log = LogFactory.getLog(SensorUsedUIHandler.class); @@ -69,11 +72,6 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineS } @Override - public SensorUsedUI getUi() { - return (SensorUsedUI) super.getUi(); - } - - @Override protected void onSelectedRowChanged(int editingRow, SensorUsedDto bean, boolean create) { if (getTableModel().isEditable()) { if (log.isDebugEnabled()) { @@ -234,6 +232,36 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineS ActivityLonglineSensorUsedHelper.copyActivityLonglineSensorUsedDto(form.getObject(), getBean()); } + @Override + protected FocusTraversalPolicy createFocusTraversalPolicy(SensorUsedUI ui) { + return new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getSensorType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return ui.getSensorType(); + } + + @Override + public Component getLastComponent(Container aContainer) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + return ui.getComment2(); + } + }; + } + protected ActivityLongLineSensorUsedService getActivityLonglineSensorUsedService() { return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLongLineSensorUsedService(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIModel.java index fa79727..aa13383 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; -import fr.ird.observe.services.dto.longline.SensorUsedDto; -import fr.ird.observe.services.dto.longline.SensorUsedHelper; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; +import fr.ird.observe.services.dto.longline.SensorUsedDto; +import fr.ird.observe.services.dto.longline.SensorUsedHelper; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -52,13 +52,13 @@ public class SensorUsedUIModel extends ContentTableUIModel<ActivityLonglineSenso ActivityLonglineSensorUsedDto.PROPERTY_SENSOR_USED, ActivityLonglineSensorUsedDto.PROPERTY_COMMENT}, new String[]{SensorUsedDto.PROPERTY_HAS_DATA, - SensorUsedDto.PROPERTY_DATA, - SensorUsedDto.PROPERTY_SENSOR_SERIAL_NO, - SensorUsedDto.PROPERTY_SENSOR_TYPE, - SensorUsedDto.PROPERTY_SENSOR_BRAND, - SensorUsedDto.PROPERTY_SENSOR_DATA_FORMAT}); + SensorUsedDto.PROPERTY_DATA, + SensorUsedDto.PROPERTY_SENSOR_SERIAL_NO, + SensorUsedDto.PROPERTY_SENSOR_TYPE, + SensorUsedDto.PROPERTY_SENSOR_BRAND, + SensorUsedDto.PROPERTY_SENSOR_DATA_FORMAT}); - List<ContentTableMeta<SensorUsedDto>> metas = Lists.newArrayList( + List<ContentTableMeta<SensorUsedDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(SensorUsedDto.class, SensorUsedDto.PROPERTY_SENSOR_TYPE, false), ContentTableModel.newTableMeta(SensorUsedDto.class, SensorUsedDto.PROPERTY_SENSOR_BRAND, false), ContentTableModel.newTableMeta(SensorUsedDto.class, SensorUsedDto.PROPERTY_SENSOR_DATA_FORMAT, false), @@ -72,11 +72,12 @@ public class SensorUsedUIModel extends ContentTableUIModel<ActivityLonglineSenso @Override protected ContentTableModel<ActivityLonglineSensorUsedDto, SensorUsedDto> createTableModel( - ObserveContentTableUI<ActivityLonglineSensorUsedDto, SensorUsedDto> ui, + ObserveContentTableUI<ActivityLonglineSensorUsedDto, SensorUsedDto, ?> ui, List<ContentTableMeta<SensorUsedDto>> contentTableMetas) { return new ContentTableModel<ActivityLonglineSensorUsedDto, SensorUsedDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; + @Override protected Collection<SensorUsedDto> getChilds(ActivityLonglineSensorUsedDto bean) { return bean.getSensorUsed(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUI.jaxx index c7ddc72..3e7c8e5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUI.jaxx @@ -18,10 +18,10 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.table.ContentTableUI superGenericType='SetLonglineTdrDto, TdrDto' - contentTitle='{n("observe.content.tdr.title")}' - saveNewEntryText='{n("observe.content.tdr.action.create")}' - saveNewEntryTip='{n("observe.content.tdr.action.create.tip")}'> +<fr.ird.observe.application.swing.ui.content.table.ContentTableUI superGenericType='SetLonglineTdrDto, TdrDto, TdrUI' + contentTitle='{n("observe.content.tdr.title")}' + saveNewEntryText='{n("observe.content.tdr.action.create")}' + saveNewEntryTip='{n("observe.content.tdr.action.create.tip")}'> <style source="../../CommonTable.jcss"/> @@ -124,7 +124,9 @@ <JLabel id='sensorBrandLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='sensorBrand' constructorParams='this' genericType='ReferentialReference<SensorBrandDto>' _entityClass='SensorBrandDto.class'/> + <BeanComboBox id='sensorBrand' constructorParams='this' + genericType='ReferentialReference<SensorBrandDto>' + _entityClass='SensorBrandDto.class'/> </cell> </row> @@ -176,7 +178,8 @@ <JLabel id='sectionLabel'/> </cell> <cell fill="both" weightx="1"> - <BeanComboBox id='section' genericType='DataReference<SectionDto>' _entityClass='SectionDto.class' constructorParams='this'/> + <BeanComboBox id='section' genericType='DataReference<SectionDto>' + _entityClass='SectionDto.class' constructorParams='this'/> </cell> </row> <row> @@ -184,7 +187,8 @@ <JLabel id='basketLabel'/> </cell> <cell fill="both" weightx="1"> - <BeanComboBox id='basket' genericType='DataReference<BasketDto>' _entityClass='BasketDto.class' constructorParams='this'/> + <BeanComboBox id='basket' genericType='DataReference<BasketDto>' + _entityClass='BasketDto.class' constructorParams='this'/> </cell> </row> <row> @@ -192,7 +196,8 @@ <JLabel id='branchlineLabel'/> </cell> <cell fill="both" weightx="1"> - <BeanComboBox id='branchline' genericType='DataReference<BranchlineDto>' _entityClass='BranchlineDto.class' constructorParams='this'/> + <BeanComboBox id='branchline' genericType='DataReference<BranchlineDto>' + _entityClass='BranchlineDto.class' constructorParams='this'/> </cell> </row> </Table> @@ -206,7 +211,8 @@ </cell> <cell weightx='1' anchor='east'> <BeanComboBox id='itemHorizontalPosition' constructorParams='this' - genericType='ReferentialReference<ItemHorizontalPositionDto>' _entityClass='ItemHorizontalPositionDto.class'/> + genericType='ReferentialReference<ItemHorizontalPositionDto>' + _entityClass='ItemHorizontalPositionDto.class'/> </cell> </row> @@ -217,7 +223,8 @@ </cell> <cell weightx='1' anchor='east'> <BeanComboBox id='itemVerticalPosition' constructorParams='this' - genericType='ReferentialReference<ItemVerticalPositionDto>' _entityClass='ItemVerticalPositionDto.class'/> + genericType='ReferentialReference<ItemVerticalPositionDto>' + _entityClass='ItemVerticalPositionDto.class'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java index 1d4a545..1617795 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java @@ -54,9 +54,12 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; @@ -77,7 +80,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since XXX */ -public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDto> { +public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDto, TdrUI> { /** Logger */ private static final Log log = LogFactory.getLog(TdrUIHandler.class); @@ -108,11 +111,6 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt } @Override - public TdrUI getUi() { - return (TdrUI) super.getUi(); - } - - @Override protected void onSelectedRowChanged(int editingRow, TdrDto bean, boolean create) { ContentTableModel<SetLonglineTdrDto, TdrDto> model = getTableModel(); @@ -210,6 +208,79 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt } @Override + protected FocusTraversalPolicy createFocusTraversalPolicy(TdrUI ui) { + return new LayoutFocusTraversalPolicy() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + int selectedIndex = ui.getEditTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getHomeId())) { + return getLastComponent(aContainer); + } + case 1: + if (aComponent.equals(ui.getSection().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + case 2: + if (aComponent.equals(ui.getEnableTimestamp())) { + return getLastComponent(aContainer); + } + case 3: + if (aComponent.equals(ui.getFishingStartDepth())) { + return getLastComponent(aContainer); + } + case 4: + if (aComponent.equals(ui.getSpecies().getUniverseList())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + int selectedIndex = ui.getEditTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getHomeId(); + case 1: + return ui.getSection(); + case 2: + return ui.getEnableTimestamp(); + case 3: + return ui.getFishingStartDepth(); + case 4: + return ui.getSpecies().getUniverseList(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + if (ui.getDeleteEntry().isEnabled()) { + return ui.getDeleteEntry(); + } + if (ui.getSaveNewEntry().isEnabled()) { + return ui.getSaveNewEntry(); + } + if (ui.getResetEntry().isEnabled()) { + return ui.getResetEntry(); + } + + return super.getLastComponent(aContainer); + } + }; + } + + @Override public void openUI() { if (log.isInfoEnabled()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIModel.java index e2d8b35..793fa1d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIModel.java @@ -32,6 +32,7 @@ import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Set; @@ -147,7 +148,7 @@ public class TdrUIModel extends ContentTableUIModel<SetLonglineTdrDto, TdrDto> { // species tab TdrDto.PROPERTY_SPECIES}); - List<ContentTableMeta<TdrDto>> metas = Lists.newArrayList( + List<ContentTableMeta<TdrDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(TdrDto.class, TdrDto.PROPERTY_HOME_ID, false), ContentTableModel.newTableMeta(TdrDto.class, TdrDto.PROPERTY_SERIAL_NO, false), ContentTableModel.newTableMeta(TdrDto.class, TdrDto.PROPERTY_SENSOR_BRAND, false), @@ -159,7 +160,7 @@ public class TdrUIModel extends ContentTableUIModel<SetLonglineTdrDto, TdrDto> { @Override protected ContentTableModel<SetLonglineTdrDto, TdrDto> createTableModel( - ObserveContentTableUI<SetLonglineTdrDto, TdrDto> ui, + ObserveContentTableUI<SetLonglineTdrDto, TdrDto, ?> ui, List<ContentTableMeta<TdrDto>> contentTableMetas) { return new ContentTableModel<SetLonglineTdrDto, TdrDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUIHandler.java index fbf67dc..9efd037 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUIHandler.java @@ -23,8 +23,8 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; */ import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; -import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SpeciesDto; @@ -38,7 +38,7 @@ import java.beans.PropertyChangeListener; * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public abstract class AbstractSampleUIHandler<E extends IdDto, D extends IdDto> extends ContentTableUIHandler<E, D> { +public abstract class AbstractSampleUIHandler<E extends IdDto, D extends IdDto, U extends ContentTableUI<E, D, U>> extends ContentTableUIHandler<E, D, U> { /** * Ecoute les modifications de la propriété {@link TargetLengthDto#getWeight()}, @@ -67,7 +67,7 @@ public abstract class AbstractSampleUIHandler<E extends IdDto, D extends IdDto> */ protected final PropertyChangeListener speciesChanged; - protected AbstractSampleUIHandler(ObserveContentTableUI<E, D> ui) { + protected AbstractSampleUIHandler(U ui) { super(ui, DataContextType.SetSeine); weightChanged = evt -> { onWeightChanged((Float) evt.getNewValue()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineTableModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineTableModel.java index 9b1a35b..d3b7557 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineTableModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineTableModel.java @@ -23,15 +23,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; */ import com.google.common.collect.Sets; +import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; +import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; +import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineHelper; import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; -import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; -import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; -import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -54,7 +54,7 @@ public class GearUseFeaturesSeineTableModel extends ContentTableModel<TripSeineG private transient GearUseFeaturesSeineUIHandler gearUseFeaturesSeineUIHandler; - public GearUseFeaturesSeineTableModel(ObserveContentTableUI<TripSeineGearUseDto, GearUseFeaturesSeineDto> context, + public GearUseFeaturesSeineTableModel(ObserveContentTableUI<TripSeineGearUseDto, GearUseFeaturesSeineDto, ?> context, List<ContentTableMeta<GearUseFeaturesSeineDto>> contentTableMetas) { super(context, contentTableMetas); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUI.jaxx index 9ac4a1a..291995d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUI.jaxx @@ -21,10 +21,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='TripSeineGearUseDto, GearUseFeaturesSeineDto' - contentTitle='{n("observe.content.gearUseFeaturesSeine.title")}' - saveNewEntryText='{n("observe.content.action.create.gearUseFeaturesSeine")}' - saveNewEntryTip='{n("observe.content.action.create.gearUseFeaturesSeine.tip")}'> + superGenericType='TripSeineGearUseDto, GearUseFeaturesSeineDto, GearUseFeaturesSeineUI' + contentTitle='{n("observe.content.gearUseFeaturesSeine.title")}' + saveNewEntryText='{n("observe.content.action.create.gearUseFeaturesSeine")}' + saveNewEntryTip='{n("observe.content.action.create.gearUseFeaturesSeine.tip")}'> <style source="../../CommonTable.jcss"/> @@ -32,7 +32,6 @@ fr.ird.observe.services.dto.CommentableDto fr.ird.observe.services.dto.seine.TripSeineGearUseDto fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto - fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.GearDto fr.ird.observe.application.swing.ui.content.table.* @@ -66,17 +65,12 @@ <ContentTableModel id='tableModel'/> <!-- le validateur de l'écran --> - <BeanValidator id='validator' - beanClass='fr.ird.observe.services.dto.seine.TripSeineGearUseDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + <BeanValidator id='validator' beanClass='fr.ird.observe.services.dto.seine.TripSeineGearUseDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'/> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + <BeanValidator id='validatorTable' autoField='true' errorTableModel='{getErrorTableModel()}' context='ui-update' + beanClass='fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto'/> <JPopupMenu id='measurementsTablePopup'> <JMenuItem id='addMeasurement' onActionPerformed='getHandler().addMeasurement()'/> @@ -101,7 +95,8 @@ <JLabel id='gearLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='gear' constructorParams='this' genericType='ReferentialReference<GearDto>' _entityClass='GearDto.class'/> + <BeanComboBox id='gear' constructorParams='this' genericType='ReferentialReference<GearDto>' + _entityClass='GearDto.class'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java index 565fd94..932488b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java @@ -57,8 +57,12 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.awt.GridBagConstraints; import java.awt.Insets; import java.beans.PropertyChangeListener; @@ -78,7 +82,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.16 */ -public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSeineGearUseDto, GearUseFeaturesSeineDto> { +public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSeineGearUseDto, GearUseFeaturesSeineDto, GearUseFeaturesSeineUI> { /** Logger */ private static final Log log = LogFactory.getLog(GearUseFeaturesSeineUIHandler.class); @@ -100,8 +104,53 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } @Override - public GearUseFeaturesSeineUI getUi() { - return (GearUseFeaturesSeineUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(GearUseFeaturesSeineUI ui) { + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getGear().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getGear(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + if (ui.getDeleteEntry().isVisible() && ui.getDeleteEntry().isEnabled()) { + return ui.getDeleteEntry(); + } + if (ui.getSaveNewEntry().isVisible() && ui.getSaveNewEntry().isEnabled()) { + return ui.getSaveNewEntry(); + } + if (ui.getResetNewEntry().isVisible() && ui.getResetNewEntry().isEnabled()) { + return ui.getResetNewEntry(); + } + if (ui.getResetEntry().isEnabled()) { + return ui.getResetEntry(); + } + return super.getLastComponent(aContainer); + } + }; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIModel.java index 4696bfb..1b6c58a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIModel.java @@ -23,14 +23,14 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; */ import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; +import java.util.Arrays; import java.util.List; import java.util.Set; @@ -59,13 +59,13 @@ public class GearUseFeaturesSeineUIModel extends ContentTableUIModel<TripSeineGe public GearUseFeaturesSeineUIModel(GearUseFeaturesSeineUI ui) { super(TripSeineGearUseDto.class, - GearUseFeaturesSeineDto.class, - new String[]{ - TripSeineGearUseDto.PROPERTY_ID, - TripSeineGearUseDto.PROPERTY_GEAR_USE_FEATURES_SEINE, - TripSeineGearUseDto.PROPERTY_LAST_UPDATE_DATE, - }, - new String[]{ + GearUseFeaturesSeineDto.class, + new String[]{ + TripSeineGearUseDto.PROPERTY_ID, + TripSeineGearUseDto.PROPERTY_GEAR_USE_FEATURES_SEINE, + TripSeineGearUseDto.PROPERTY_LAST_UPDATE_DATE, + }, + new String[]{ GearUseFeaturesSeineDto.PROPERTY_ID, GearUseFeaturesSeineDto.PROPERTY_NUMBER, GearUseFeaturesSeineDto.PROPERTY_USED_IN_TRIP, @@ -76,7 +76,7 @@ public class GearUseFeaturesSeineUIModel extends ContentTableUIModel<TripSeineGe this.measurementsTableModel = new GearUseFeaturesMeasurementSeinesTableModel(); - List<ContentTableMeta<GearUseFeaturesSeineDto>> metas = Lists.newArrayList( + List<ContentTableMeta<GearUseFeaturesSeineDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(GearUseFeaturesSeineDto.class, GearUseFeaturesSeineDto.PROPERTY_GEAR, false), ContentTableModel.newTableMeta(GearUseFeaturesSeineDto.class, GearUseFeaturesSeineDto.PROPERTY_NUMBER, false), ContentTableModel.newTableMeta(GearUseFeaturesSeineDto.class, GearUseFeaturesSeineDto.PROPERTY_USED_IN_TRIP, false), @@ -88,7 +88,7 @@ public class GearUseFeaturesSeineUIModel extends ContentTableUIModel<TripSeineGe @Override protected GearUseFeaturesSeineTableModel createTableModel( - ObserveContentTableUI<TripSeineGearUseDto, GearUseFeaturesSeineDto> ui, + ObserveContentTableUI<TripSeineGearUseDto, GearUseFeaturesSeineDto, ?> ui, List<ContentTableMeta<GearUseFeaturesSeineDto>> contentTableMetas) { return new GearUseFeaturesSeineTableModel(ui, contentTableMetas); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUI.jaxx index 66852f6..473ea0f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUI.jaxx @@ -22,10 +22,10 @@ <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='SetSeineNonTargetCatchDto, NonTargetCatchDto' - contentTitle='{n("observe.common.nonTargetCatch")}' - saveNewEntryText='{n("observe.content.action.create.nonTargetCatch")}' - saveNewEntryTip='{n("observe.content.action.create.nonTargetCatch.tip")}'> + superGenericType='SetSeineNonTargetCatchDto, NonTargetCatchDto, NonTargetCatchUI' + contentTitle='{n("observe.common.nonTargetCatch")}' + saveNewEntryText='{n("observe.content.action.create.nonTargetCatch")}' + saveNewEntryTip='{n("observe.content.action.create.nonTargetCatch.tip")}'> <style source="../../CommonTable.jcss"/> @@ -66,20 +66,15 @@ <!-- le validateur de l'écran --> - <BeanValidator id='validator' - beanClass='fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'> + <BeanValidator id='validator' beanClass='fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'> <!-- clef unique --> <field name="nonTargetCatch" component="editorPanel"/> </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.NonTargetCatchDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + <BeanValidator id='validatorTable' autoField='true' beanClass='fr.ird.observe.services.dto.seine.NonTargetCatchDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'/> <Table id='editorPanel' fill='both' insets='1' onFocusGained='species.requestFocus()'> @@ -90,7 +85,8 @@ <JLabel id='speciesLabel'/> </cell> <cell weightx='1' anchor='east' columns="2"> - <BeanComboBox id='species' constructorParams='this' genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class'/> + <BeanComboBox id='species' constructorParams='this' genericType='ReferentialReference<SpeciesDto>' + _entityClass='SpeciesDto.class'/> </cell> </row> @@ -100,7 +96,8 @@ <JLabel id='speciesFateLabel'/> </cell> <cell weightx='1' anchor='east' columns="2"> - <BeanComboBox id='speciesFate' constructorParams='this' genericType='ReferentialReference<SpeciesFateDto>' _entityClass='SpeciesFateDto.class'/> + <BeanComboBox id='speciesFate' constructorParams='this' genericType='ReferentialReference<SpeciesFateDto>' + _entityClass='SpeciesFateDto.class'/> </cell> </row> @@ -110,7 +107,8 @@ <JLabel id='reasonForDiscardLabel'/> </cell> <cell weightx='1' anchor='east' columns="2"> - <BeanComboBox id='reasonForDiscard' constructorParams='this' genericType='ReferentialReference<ReasonForDiscardDto>' _entityClass='ReasonForDiscardDto.class'/> + <BeanComboBox id='reasonForDiscard' constructorParams='this' _entityClass='ReasonForDiscardDto.class' + genericType='ReferentialReference<ReasonForDiscardDto>'/> </cell> </row> @@ -124,8 +122,7 @@ </cell> <cell anchor='east'> <JToolBar id='catchWeightComputedAction'> - <JButton id='catchWeightComputedInformation' - onActionPerformed='getHandler().resetCatchWeightComputed()'/> + <JButton id='catchWeightComputedInformation' onActionPerformed='getHandler().resetCatchWeightComputed()'/> </JToolBar> </cell> </row> @@ -141,8 +138,7 @@ </cell> <cell anchor='east'> <JToolBar id='totalCountComputedAction'> - <JButton id='totalCountComputedInformation' - onActionPerformed='getHandler().resetTotalCountComputed()'/> + <JButton id='totalCountComputedInformation' onActionPerformed='getHandler().resetTotalCountComputed()'/> </JToolBar> </cell> </row> @@ -157,8 +153,7 @@ </cell> <cell anchor='east'> <JToolBar id='meanWeightComputedAction'> - <JButton id='meanWeightComputedInformation' - onActionPerformed='getHandler().resetMeanWeightComputed()'/> + <JButton id='meanWeightComputedInformation' onActionPerformed='getHandler().resetMeanWeightComputed()'/> </JToolBar> </cell> </row> @@ -173,8 +168,7 @@ </cell> <cell anchor='east'> <JToolBar id='meanLengthComputedAction'> - <JButton id='meanLengthComputedInformation' - onActionPerformed='getHandler().resetMeanLengthComputed()'/> + <JButton id='meanLengthComputedInformation' onActionPerformed='getHandler().resetMeanLengthComputed()'/> </JToolBar> </cell> </row> @@ -197,8 +191,7 @@ <!-- comment --> <row> <cell columns='3' weighty='1'> - <JScrollPane id='comment' - onFocusGained='comment2.requestFocus()'> + <JScrollPane id='comment' onFocusGained='comment2.requestFocus()'> <JTextArea id='comment2' onKeyReleased='getTableEditBean().setComment(((JTextArea) event.getSource()).getText())'/> </JScrollPane> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIHandler.java index a2f5278..ee42d6e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIHandler.java @@ -51,7 +51,11 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Collection; @@ -66,7 +70,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTargetCatchDto, NonTargetCatchDto> { +public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTargetCatchDto, NonTargetCatchDto, NonTargetCatchUI> { /** Logger */ private static final Log log = LogFactory.getLog(NonTargetCatchUIHandler.class); @@ -128,8 +132,26 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTa } @Override - public NonTargetCatchUI getUi() { - return (NonTargetCatchUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(NonTargetCatchUI ui) { + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return ui.getSpecies(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(ui, null); + } + }; } public String getCatchWeightDataTip(NonTargetCatchComputedValueSource computed) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIModel.java index be4a698..f95e4ff 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.seine.NonTargetCatchDto; -import fr.ird.observe.services.dto.seine.NonTargetCatchHelper; -import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.seine.NonTargetCatchDto; +import fr.ird.observe.services.dto.seine.NonTargetCatchHelper; +import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -65,7 +65,7 @@ public class NonTargetCatchUIModel extends ContentTableUIModel<SetSeineNonTarget NonTargetCatchDto.PROPERTY_COMMENT }); - List<ContentTableMeta<NonTargetCatchDto>> metas = Lists.newArrayList( + List<ContentTableMeta<NonTargetCatchDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(NonTargetCatchDto.class, NonTargetCatchDto.PROPERTY_SPECIES, false), ContentTableModel.newTableMeta(NonTargetCatchDto.class, NonTargetCatchDto.PROPERTY_SPECIES_FATE, false), ContentTableModel.newTableMeta(NonTargetCatchDto.class, NonTargetCatchDto.PROPERTY_REASON_FOR_DISCARD, false), @@ -82,7 +82,7 @@ public class NonTargetCatchUIModel extends ContentTableUIModel<SetSeineNonTarget @Override protected ContentTableModel<SetSeineNonTargetCatchDto, NonTargetCatchDto> createTableModel( - ObserveContentTableUI<SetSeineNonTargetCatchDto, NonTargetCatchDto> ui, + ObserveContentTableUI<SetSeineNonTargetCatchDto, NonTargetCatchDto, ?> ui, List<ContentTableMeta<NonTargetCatchDto>> contentTableMetas) { return new ContentTableModel<SetSeineNonTargetCatchDto, NonTargetCatchDto>(ui, contentTableMetas) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jaxx index cc648fa..f741966 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jaxx @@ -21,7 +21,7 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='NonTargetSampleDto, NonTargetLengthDto' + superGenericType='NonTargetSampleDto, NonTargetLengthDto, NonTargetSampleUI' contentTitle='{n("observe.common.nonTargetSample")}' saveNewEntryText='{n("observe.content.action.create.nonTargetSample")}' saveNewEntryTip='{n("observe.content.action.create.nonTargetSample.tip")}'> @@ -66,19 +66,14 @@ <ContentTableModel id='tableModel'/> <!-- le validateur de l'écran --> - <BeanValidator id='validator' - beanClass='fr.ird.observe.services.dto.seine.NonTargetSampleDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'> + <BeanValidator id='validator' beanClass='fr.ird.observe.services.dto.seine.NonTargetSampleDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'> <field name='comment'/> </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.NonTargetLengthDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'> + <BeanValidator id='validatorTable' autoField='true' beanClass='fr.ird.observe.services.dto.seine.NonTargetLengthDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'> </BeanValidator> <ButtonGroup id='acquisitionModeGroup' diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java index 1ec4207..aa464d0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java @@ -46,7 +46,11 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -60,7 +64,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetSampleDto, NonTargetLengthDto> { +public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetSampleDto, NonTargetLengthDto, NonTargetSampleUI> { /** Logger */ private static final Log log = LogFactory.getLog(NonTargetSampleUIHandler.class); @@ -70,8 +74,33 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS } @Override - public NonTargetSampleUI getUi() { - return (NonTargetSampleUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(NonTargetSampleUI ui) { + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getAcquisitionModeEffectif())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent()) && !ui.getAcquisitionModeEffectif().isEnabled()) { + return super.getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + if (ui.getAcquisitionModeEffectif().isEnabled()) { + return ui.getAcquisitionModeEffectif(); + } + return ui.getSizeMeasureType(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(ui, ui.getComment2()); + } + }; + } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIModel.java index 3087dba..87d3d7e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIModel.java @@ -47,7 +47,7 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD private static final long serialVersionUID = 1L; - public static final String PROPERTY_DEFAULT_SIZE_MEASURE_TYPE="defaultSizeMeasureType"; + public static final String PROPERTY_DEFAULT_SIZE_MEASURE_TYPE = "defaultSizeMeasureType"; private ReferentialReference<SizeMeasureTypeDto> defaultSizeMeasureType; @@ -59,15 +59,15 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD NonTargetSampleDto.PROPERTY_NON_TARGET_LENGTH, NonTargetSampleDto.PROPERTY_COMMENT}, new String[]{NonTargetLengthDto.PROPERTY_SPECIES, - NonTargetLengthDto.PROPERTY_LENGTH, - NonTargetLengthDto.PROPERTY_IS_LENGTH_COMPUTED, - NonTargetLengthDto.PROPERTY_WEIGHT, - NonTargetLengthDto.PROPERTY_IS_WEIGHT_COMPUTED, - NonTargetLengthDto.PROPERTY_SEX, - NonTargetLengthDto.PROPERTY_COUNT, - NonTargetLengthDto.PROPERTY_SPECIES_FATE, - NonTargetLengthDto.PROPERTY_ACQUISITION_MODE, - NonTargetLengthDto.PROPERTY_PICTURES_REFERENCES + NonTargetLengthDto.PROPERTY_LENGTH, + NonTargetLengthDto.PROPERTY_IS_LENGTH_COMPUTED, + NonTargetLengthDto.PROPERTY_WEIGHT, + NonTargetLengthDto.PROPERTY_IS_WEIGHT_COMPUTED, + NonTargetLengthDto.PROPERTY_SEX, + NonTargetLengthDto.PROPERTY_COUNT, + NonTargetLengthDto.PROPERTY_SPECIES_FATE, + NonTargetLengthDto.PROPERTY_ACQUISITION_MODE, + NonTargetLengthDto.PROPERTY_PICTURES_REFERENCES }); List<ContentTableMeta<NonTargetLengthDto>> metas = Arrays.asList( @@ -91,9 +91,10 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD } @Override - protected ContentTableModel<NonTargetSampleDto, NonTargetLengthDto> createTableModel(ObserveContentTableUI<NonTargetSampleDto, NonTargetLengthDto> ui, List<ContentTableMeta<NonTargetLengthDto>> contentTableMetas) { + protected ContentTableModel<NonTargetSampleDto, NonTargetLengthDto> createTableModel(ObserveContentTableUI<NonTargetSampleDto, NonTargetLengthDto, ?> ui, List<ContentTableMeta<NonTargetLengthDto>> contentTableMetas) { return new ContentTableModel<NonTargetSampleDto, NonTargetLengthDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; + @Override protected Collection<NonTargetLengthDto> getChilds(NonTargetSampleDto bean) { return bean.getNonTargetLength(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUI.jaxx index b912040..1e6d6cb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUI.jaxx @@ -21,10 +21,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='FloatingObjectObservedSpeciesDto, ObjectObservedSpeciesDto' - contentTitle='{n("observe.common.objectObservedSpecies")}' - saveNewEntryText='{n("observe.content.action.create.objectObservedSpecies")}' - saveNewEntryTip='{n("observe.content.action.create.objectObservedSpecies.tip")}'> + superGenericType='FloatingObjectObservedSpeciesDto, ObjectObservedSpeciesDto, ObjectObservedSpeciesUI' + contentTitle='{n("observe.common.objectObservedSpecies")}' + saveNewEntryText='{n("observe.content.action.create.objectObservedSpecies")}' + saveNewEntryTip='{n("observe.content.action.create.objectObservedSpecies.tip")}'> <style source="../../CommonTable.jcss"/> @@ -62,18 +62,13 @@ <ContentTableModel id='tableModel'/> <!-- le validateur de l'écran --> - <BeanValidator id='validator' - autoField='true' + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + errorTableModel='{getErrorTableModel()}' context='ui-update'/> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + <BeanValidator id='validatorTable' autoField='true' errorTableModel='{getErrorTableModel()}' context='ui-update' + beanClass='fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto'/> <Table id='editorPanel' fill='both' insets='1'> @@ -83,8 +78,8 @@ <JLabel id='speciesLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='species' constructorParams='this' - genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class'/> + <BeanComboBox id='species' constructorParams='this' genericType='ReferentialReference<SpeciesDto>' + _entityClass='SpeciesDto.class'/> </cell> </row> @@ -113,10 +108,8 @@ <Table id='extraZone' fill='both' weightx='1' insets='0'> <row> <cell weighty='1'> - <JScrollPane id='comment' - onFocusGained='comment2.requestFocus()'> - <JTextArea id='comment2' - onKeyReleased='getBean().setComment(comment2.getText())'/> + <JScrollPane id='comment' onFocusGained='comment2.requestFocus()'> + <JTextArea id='comment2' onKeyReleased='getBean().setComment(comment2.getText())'/> </JScrollPane> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java index 54ac0f8..da0e421 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java @@ -43,7 +43,11 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.LinkedList; import java.util.Set; @@ -54,7 +58,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<FloatingObjectObservedSpeciesDto, ObjectObservedSpeciesDto> { +public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<FloatingObjectObservedSpeciesDto, ObjectObservedSpeciesDto, ObjectObservedSpeciesUI> { /** Logger */ private static final Log log = LogFactory.getLog(ObjectObservedSpeciesUIHandler.class); @@ -64,8 +68,26 @@ public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<Floati } @Override - public ObjectObservedSpeciesUI getUi() { - return (ObjectObservedSpeciesUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(ObjectObservedSpeciesUI ui) { + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return ui.getSpecies(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(ui, ui.getComment2()); + } + }; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIModel.java index 6764cf7..4ead773 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; -import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; -import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesHelper; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; +import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; +import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesHelper; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -57,7 +57,7 @@ public class ObjectObservedSpeciesUIModel extends ContentTableUIModel<FloatingOb ObjectObservedSpeciesDto.PROPERTY_COUNT} ); - List<ContentTableMeta<ObjectObservedSpeciesDto>> metas = Lists.newArrayList( + List<ContentTableMeta<ObjectObservedSpeciesDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(ObjectObservedSpeciesDto.class, ObjectObservedSpeciesDto.PROPERTY_SPECIES, false), ContentTableModel.newTableMeta(ObjectObservedSpeciesDto.class, ObjectObservedSpeciesDto.PROPERTY_SPECIES_STATUS, false), ContentTableModel.newTableMeta(ObjectObservedSpeciesDto.class, ObjectObservedSpeciesDto.PROPERTY_COUNT, false)); @@ -68,11 +68,12 @@ public class ObjectObservedSpeciesUIModel extends ContentTableUIModel<FloatingOb @Override protected ContentTableModel<FloatingObjectObservedSpeciesDto, ObjectObservedSpeciesDto> createTableModel( - ObserveContentTableUI<FloatingObjectObservedSpeciesDto, ObjectObservedSpeciesDto> ui, + ObserveContentTableUI<FloatingObjectObservedSpeciesDto, ObjectObservedSpeciesDto, ?> ui, List<ContentTableMeta<ObjectObservedSpeciesDto>> contentTableMetas) { return new ContentTableModel<FloatingObjectObservedSpeciesDto, ObjectObservedSpeciesDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; + @Override protected Collection<ObjectObservedSpeciesDto> getChilds(FloatingObjectObservedSpeciesDto bean) { return bean.getObjectObservedSpecies(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUI.jaxx index c5a18d4..ac22112 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUI.jaxx @@ -21,10 +21,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='FloatingObjectSchoolEstimateDto, ObjectSchoolEstimateDto' - contentTitle='{n("observe.common.schoolEstimate")}' - saveNewEntryText='{n("observe.content.action.create.schoolEstimate")}' - saveNewEntryTip='{n("observe.content.action.create.schoolEstimate.tip")}'> + superGenericType='FloatingObjectSchoolEstimateDto, ObjectSchoolEstimateDto, ObjectSchoolEstimateUI' + contentTitle='{n("observe.common.schoolEstimate")}' + saveNewEntryText='{n("observe.content.action.create.schoolEstimate")}' + saveNewEntryTip='{n("observe.content.action.create.schoolEstimate.tip")}'> <style source="../../CommonTable.jcss"/> @@ -61,18 +61,13 @@ <ContentTableModel id='tableModel'/> <!-- le validateur de l'écran --> - <BeanValidator id='validator' - autoField='true' + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + errorTableModel='{getErrorTableModel()}' context='ui-update'/> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + <BeanValidator id='validatorTable' autoField='true' errorTableModel='{getErrorTableModel()}' context='ui-update' + beanClass='fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto'/> <Table id='editorPanel' fill='both' insets='1'> @@ -82,8 +77,8 @@ <JLabel id='speciesLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='species' constructorParams='this' - genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class'/> + <BeanComboBox id='species' constructorParams='this' genericType='ReferentialReference<SpeciesDto>' + _entityClass='SpeciesDto.class'/> </cell> </row> @@ -101,10 +96,8 @@ <Table id='extraZone' fill='both' weightx='1' insets='1'> <row> <cell weighty='1'> - <JScrollPane id='comment' - onFocusGained='comment2.requestFocus()'> - <JTextArea id='comment2' - onKeyReleased='getBean().setComment(comment2.getText())'/> + <JScrollPane id='comment' onFocusGained='comment2.requestFocus()'> + <JTextArea id='comment2' onKeyReleased='getBean().setComment(comment2.getText())'/> </JScrollPane> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java index c2d6ccd..272ac1d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java @@ -41,7 +41,11 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.LinkedList; import java.util.Set; @@ -52,7 +56,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<FloatingObjectSchoolEstimateDto, ObjectSchoolEstimateDto> { +public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<FloatingObjectSchoolEstimateDto, ObjectSchoolEstimateDto, ObjectSchoolEstimateUI> { /** Logger */ @@ -63,8 +67,26 @@ public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<Floatin } @Override - public ObjectSchoolEstimateUI getUi() { - return (ObjectSchoolEstimateUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(ObjectSchoolEstimateUI ui) { + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return ui.getSpecies(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(ui, ui.getComment2()); + } + }; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIModel.java index 09bb397..f513381 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; -import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; -import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateHelper; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; +import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; +import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateHelper; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -56,7 +56,7 @@ public class ObjectSchoolEstimateUIModel extends ContentTableUIModel<FloatingObj ObjectSchoolEstimateDto.PROPERTY_TOTAL_WEIGHT} ); - List<ContentTableMeta<ObjectSchoolEstimateDto>> metas = Lists.newArrayList( + List<ContentTableMeta<ObjectSchoolEstimateDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(ObjectSchoolEstimateDto.class, ObjectSchoolEstimateDto.PROPERTY_SPECIES, false), ContentTableModel.newTableMeta(ObjectSchoolEstimateDto.class, ObjectSchoolEstimateDto.PROPERTY_TOTAL_WEIGHT, false)); @@ -66,11 +66,12 @@ public class ObjectSchoolEstimateUIModel extends ContentTableUIModel<FloatingObj @Override protected ContentTableModel<FloatingObjectSchoolEstimateDto, ObjectSchoolEstimateDto> createTableModel( - ObserveContentTableUI<FloatingObjectSchoolEstimateDto, ObjectSchoolEstimateDto> ui, + ObserveContentTableUI<FloatingObjectSchoolEstimateDto, ObjectSchoolEstimateDto, ?> ui, List<ContentTableMeta<ObjectSchoolEstimateDto>> contentTableMetas) { return new ContentTableModel<FloatingObjectSchoolEstimateDto, ObjectSchoolEstimateDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; + @Override protected Collection<ObjectSchoolEstimateDto> getChilds(FloatingObjectSchoolEstimateDto bean) { return bean.getObjectSchoolEstimate(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUI.jaxx index 1990c02..6a03201 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUI.jaxx @@ -21,12 +21,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='SetSeineSchoolEstimateDto, SchoolEstimateDto' - - - contentTitle='{n("observe.common.schoolEstimate")}' - saveNewEntryText='{n("observe.content.action.create.schoolEstimate")}' - saveNewEntryTip='{n("observe.content.action.create.schoolEstimate.tip")}'> + superGenericType='SetSeineSchoolEstimateDto, SchoolEstimateDto, SchoolEstimateUI' + contentTitle='{n("observe.common.schoolEstimate")}' + saveNewEntryText='{n("observe.content.action.create.schoolEstimate")}' + saveNewEntryTip='{n("observe.content.action.create.schoolEstimate.tip")}'> <style source="../../CommonTable.jcss"/> @@ -63,21 +61,15 @@ <ContentTableModel id='tableModel'/> <!-- le validateur de l'écran --> - <BeanValidator id='validator' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'> + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'> <!-- clef unique --> <field name="schoolEstimate" component="editorPanel"/> </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.SchoolEstimateDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'/> + <BeanValidator id='validatorTable' autoField='true' beanClass='fr.ird.observe.services.dto.seine.SchoolEstimateDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'/> <!-- formulaire --> <Table id='editorPanel' fill='both' insets='1'> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIHandler.java index ea130a4..a663687 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIHandler.java @@ -23,6 +23,9 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -35,15 +38,16 @@ import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateHelper; import fr.ird.observe.services.service.data.seine.SchoolEstimateService; import fr.ird.observe.services.service.data.seine.TripSeineService; -import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; -import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.Collections; import java.util.LinkedList; @@ -57,7 +61,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoolEstimateDto, SchoolEstimateDto> { +public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoolEstimateDto, SchoolEstimateDto, SchoolEstimateUI> { /** Logger */ private static final Log log = LogFactory.getLog(SchoolEstimateUIHandler.class); @@ -67,8 +71,32 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoo } @Override - public SchoolEstimateUI getUi() { - return (SchoolEstimateUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(SchoolEstimateUI ui) { + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getTotalWeight().getTextField()) && !ui.getSpecies().isEnabled()) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + if (ui.getSpecies().isEnabled()) { + return ui.getSpecies(); + } + return ui.getTotalWeight(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(ui, ui.getComment2()); + } + }; } @Override @@ -98,7 +126,7 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoo Set<String> listSpeciesIdUsed = listSpeciesUsed.stream().map(ReferentialReference::getId).collect(Collectors.toSet()); - availableEspeces = ReferentialReferences.filterNotContains(references,listSpeciesIdUsed); + availableEspeces = ReferentialReferences.filterNotContains(references, listSpeciesIdUsed); requestFocus = ui.getSpecies(); } else { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIModel.java index d0585a3..b09c152 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIModel.java @@ -22,15 +22,15 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.seine.SchoolEstimateDto; -import fr.ird.observe.services.dto.seine.SchoolEstimateHelper; -import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.seine.SchoolEstimateDto; +import fr.ird.observe.services.dto.seine.SchoolEstimateHelper; +import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -52,12 +52,12 @@ public class SchoolEstimateUIModel extends ContentTableUIModel<SetSeineSchoolEst SetSeineSchoolEstimateDto.PROPERTY_SCHOOL_ESTIMATE, SetSeineSchoolEstimateDto.PROPERTY_COMMENT}, new String[]{ - SchoolEstimateDto.PROPERTY_SPECIES, - SchoolEstimateDto.PROPERTY_TOTAL_WEIGHT, - SchoolEstimateDto.PROPERTY_MEAN_WEIGHT} + SchoolEstimateDto.PROPERTY_SPECIES, + SchoolEstimateDto.PROPERTY_TOTAL_WEIGHT, + SchoolEstimateDto.PROPERTY_MEAN_WEIGHT} ); - List<ContentTableMeta<SchoolEstimateDto>> metas = Lists.newArrayList( + List<ContentTableMeta<SchoolEstimateDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(SchoolEstimateDto.class, SchoolEstimateDto.PROPERTY_SPECIES, false), ContentTableModel.newTableMeta(SchoolEstimateDto.class, SchoolEstimateDto.PROPERTY_TOTAL_WEIGHT, false), ContentTableModel.newTableMeta(SchoolEstimateDto.class, SchoolEstimateDto.PROPERTY_MEAN_WEIGHT, false)); @@ -68,11 +68,12 @@ public class SchoolEstimateUIModel extends ContentTableUIModel<SetSeineSchoolEst @Override protected ContentTableModel<SetSeineSchoolEstimateDto, SchoolEstimateDto> createTableModel( - ObserveContentTableUI<SetSeineSchoolEstimateDto, SchoolEstimateDto> ui, + ObserveContentTableUI<SetSeineSchoolEstimateDto, SchoolEstimateDto, ?> ui, List<ContentTableMeta<SchoolEstimateDto>> contentTableMetas) { return new ContentTableModel<SetSeineSchoolEstimateDto, SchoolEstimateDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; + @Override protected Collection<SchoolEstimateDto> getChilds(SetSeineSchoolEstimateDto bean) { return bean.getSchoolEstimate(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUI.jaxx index 3b72dc1..08a308a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUI.jaxx @@ -21,10 +21,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='SetSeineTargetCatchDto, TargetCatchDto' - contentTitle='{n("observe.common.targetCatch")}' - saveNewEntryText='{n("observe.content.action.create.targetCatch")}' - saveNewEntryTip='{n("observe.content.action.create.targetCatch.tip")}'> + superGenericType='SetSeineTargetCatchDto, TargetCatchDto, TargetCatchUI' + contentTitle='{n("observe.common.targetCatch")}' + saveNewEntryText='{n("observe.content.action.create.targetCatch")}' + saveNewEntryTip='{n("observe.content.action.create.targetCatch.tip")}'> <style source="../../CommonTable.jcss"/> @@ -64,20 +64,15 @@ <ContentTableModel id='tableModel'/> <!-- le validateur de l'écran --> - <BeanValidator id='validator' - beanClass='fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update-targetCatch'> + <BeanValidator id='validator' beanClass='fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto' + errorTableModel='{getErrorTableModel()}' context='ui-update-targetCatch'> <!-- clef unique --> <field name="targetCatch" component="editorPanel"/> </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.TargetCatchDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update-targetCatch'/> + <BeanValidator id='validatorTable' autoField='true' beanClass='fr.ird.observe.services.dto.seine.TargetCatchDto' + errorTableModel='{getErrorTableModel()}' context='ui-update-targetCatch'/> <Table id='editorPanel' fill='both' insets='1' onFocusGained='species.requestFocus()'> @@ -88,7 +83,8 @@ <JLabel id='speciesLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='species' genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class' constructorParams='this'/> + <BeanComboBox id='species' genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class' + constructorParams='this'/> </cell> </row> @@ -99,7 +95,8 @@ <JLabel id='weightCategoryLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='weightCategory' genericType='ReferentialReference<WeightCategoryDto>' _entityClass='WeightCategoryDto.class' constructorParams='this'/> + <BeanComboBox id='weightCategory' genericType='ReferentialReference<WeightCategoryDto>' + _entityClass='WeightCategoryDto.class' constructorParams='this'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIHandler.java index 4a72373..d722d51 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIHandler.java @@ -25,6 +25,9 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -40,9 +43,6 @@ import fr.ird.observe.services.dto.seine.TargetCatchDto; import fr.ird.observe.services.dto.seine.TargetCatchHelper; import fr.ird.observe.services.service.data.seine.TargetCatchService; import fr.ird.observe.services.service.data.seine.TripSeineService; -import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; -import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import jaxx.runtime.swing.editor.bean.BeanComboBox; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -51,7 +51,11 @@ import org.nuiton.decorator.Decorator; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.Collections; import java.util.LinkedList; @@ -65,7 +69,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCatchDto, TargetCatchDto> { +public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCatchDto, TargetCatchDto, TargetCatchUI> { /** Logger */ private static final Log log = LogFactory.getLog(TargetCatchUIHandler.class); @@ -75,8 +79,32 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCa } @Override - public TargetCatchUI getUi() { - return (TargetCatchUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(TargetCatchUI ui) { + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getCatchWeight().getTextField()) && !ui.getSpecies().isEnabled()) { + return super.getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + if (ui.getSpecies().isEnabled()) { + return ui.getSpecies(); + } + return ui.getCatchWeight(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(ui, ui.getTargetCatchCompositionEstimatedByObserver()); + } + }; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIModel.java index b9cb1d4..a3a6afc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIModel.java @@ -22,16 +22,16 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; -import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; -import fr.ird.observe.services.dto.seine.TargetCatchDto; -import fr.ird.observe.services.dto.seine.TargetCatchHelper; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; +import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; +import fr.ird.observe.services.dto.seine.TargetCatchDto; +import fr.ird.observe.services.dto.seine.TargetCatchHelper; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -54,15 +54,15 @@ public class TargetCatchUIModel extends ContentTableUIModel<SetSeineTargetCatchD SetSeineTargetCatchDto.PROPERTY_TARGET_CATCH }, new String[]{ - TargetCatchDto.PROPERTY_WEIGHT_CATEGORY, - TargetCatchDto.PROPERTY_CATCH_WEIGHT, - TargetCatchDto.PROPERTY_WELL, - TargetCatchDto.PROPERTY_BROUGHT_ON_DECK, - TargetCatchDto.PROPERTY_DISCARDED, - TargetCatchDto.PROPERTY_COMMENT} + TargetCatchDto.PROPERTY_WEIGHT_CATEGORY, + TargetCatchDto.PROPERTY_CATCH_WEIGHT, + TargetCatchDto.PROPERTY_WELL, + TargetCatchDto.PROPERTY_BROUGHT_ON_DECK, + TargetCatchDto.PROPERTY_DISCARDED, + TargetCatchDto.PROPERTY_COMMENT} ); - List<ContentTableMeta<TargetCatchDto>> metas = Lists.newArrayList( + List<ContentTableMeta<TargetCatchDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(TargetCatchDto.class, WeightCategoryDto.PROPERTY_SPECIES, true), ContentTableModel.newTableMeta(TargetCatchDto.class, TargetCatchDto.PROPERTY_WEIGHT_CATEGORY, true), ContentTableModel.newTableMeta(TargetCatchDto.class, TargetCatchDto.PROPERTY_WELL, false), @@ -75,10 +75,11 @@ public class TargetCatchUIModel extends ContentTableUIModel<SetSeineTargetCatchD @Override protected ContentTableModel<SetSeineTargetCatchDto, TargetCatchDto> createTableModel( - ObserveContentTableUI<SetSeineTargetCatchDto, TargetCatchDto> ui, + ObserveContentTableUI<SetSeineTargetCatchDto, TargetCatchDto, ?> ui, List<ContentTableMeta<TargetCatchDto>> contentTableMetas) { return new ContentTableModel<SetSeineTargetCatchDto, TargetCatchDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; + @Override protected Collection<TargetCatchDto> getChilds(SetSeineTargetCatchDto bean) { return bean.getTargetCatch(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUI.jaxx index c462c04..a6de31a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUI.jaxx @@ -21,10 +21,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='SetSeineTargetCatchDto, TargetCatchDto' - contentTitle='{n("observe.common.targetDiscarded")}' - saveNewEntryText='{n("observe.content.action.create.targetDiscarded")}' - saveNewEntryTip='{n("observe.content.action.create.targetDiscarded.tip")}'> + superGenericType='SetSeineTargetCatchDto, TargetCatchDto, TargetDiscardCatchUI' + contentTitle='{n("observe.common.targetDiscarded")}' + saveNewEntryText='{n("observe.content.action.create.targetDiscarded")}' + saveNewEntryTip='{n("observe.content.action.create.targetDiscarded.tip")}'> <style source="../../CommonTable.jcss"/> @@ -66,20 +66,15 @@ <ContentTableModel id='tableModel'/> <!-- le validateur de l'écran --> - <BeanValidator id='validator' - beanClass='fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update-targetDiscarded'> + <BeanValidator id='validator' beanClass='fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto' + errorTableModel='{getErrorTableModel()}' context='ui-update-targetDiscarded'> <!-- clef unique --> <field name="targetCatch" component="editorPanel"/> </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.TargetCatchDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update-targetDiscarded'/> + <BeanValidator id='validatorTable' autoField='true' beanClass='fr.ird.observe.services.dto.seine.TargetCatchDto' + errorTableModel='{getErrorTableModel()}' context='ui-update-targetDiscarded'/> <Table id='editorPanel' fill='both' insets='1'> @@ -89,7 +84,8 @@ <JLabel id='speciesLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='species' constructorParams='this' genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class'/> + <BeanComboBox id='species' constructorParams='this' genericType='ReferentialReference<SpeciesDto>' + _entityClass='SpeciesDto.class'/> </cell> </row> @@ -99,7 +95,8 @@ <JLabel id='weightCategoryLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='weightCategory' constructorParams='this' genericType='ReferentialReference<WeightCategoryDto>' _entityClass='WeightCategoryDto.class'/> + <BeanComboBox id='weightCategory' constructorParams='this' _entityClass='WeightCategoryDto.class' + genericType='ReferentialReference<WeightCategoryDto>'/> </cell> </row> @@ -109,7 +106,8 @@ <JLabel id='reasonForDiscardLabel'/> </cell> <cell weightx='1' anchor='east'> - <BeanComboBox id='reasonForDiscard' constructorParams='this' genericType='ReferentialReference<ReasonForDiscardDto>' _entityClass='ReasonForDiscardDto.class'/> + <BeanComboBox id='reasonForDiscard' constructorParams='this' _entityClass='ReasonForDiscardDto.class' + genericType='ReferentialReference<ReasonForDiscardDto>'/> </cell> </row> @@ -140,8 +138,7 @@ <!-- comment --> <row> <cell columns='2' weighty='1'> - <JScrollPane id='comment' - onFocusGained='comment2.requestFocus()'> + <JScrollPane id='comment' onFocusGained='comment2.requestFocus()'> <JTextArea id='comment2' onKeyReleased='getTableEditBean().setComment(((JTextArea) event.getSource()).getText())'/> </JScrollPane> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java index 830f600..d9bceb4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java @@ -52,7 +52,11 @@ import org.nuiton.decorator.Decorator; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -68,7 +72,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCatchDto, TargetCatchDto> { +public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCatchDto, TargetCatchDto, TargetDiscardCatchUI> { /** Logger */ private static final Log log = LogFactory.getLog(TargetDiscardCatchUIHandler.class); @@ -78,8 +82,32 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineT } @Override - public TargetDiscardCatchUI getUi() { - return (TargetDiscardCatchUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(TargetDiscardCatchUI ui) { + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getCatchWeight().getTextField()) && !ui.getSpecies().isEnabled()) { + return super.getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + if (ui.getSpecies().isEnabled()) { + return ui.getSpecies(); + } + return ui.getCatchWeight(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(ui, ui.getTargetDiscardCatchCompositionEstimatedByObserver()); + } + }; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIModel.java index bd83a08..ac6b6c0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIModel.java @@ -22,16 +22,16 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; * #L% */ -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; -import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; -import fr.ird.observe.services.dto.seine.TargetCatchDto; -import fr.ird.observe.services.dto.seine.TargetCatchHelper; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; +import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; +import fr.ird.observe.services.dto.seine.TargetCatchDto; +import fr.ird.observe.services.dto.seine.TargetCatchHelper; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -53,14 +53,14 @@ public class TargetDiscardCatchUIModel extends ContentTableUIModel<SetSeineTarge SetSeineTargetCatchDto.PROPERTY_DISCARDED, SetSeineTargetCatchDto.PROPERTY_TARGET_CATCH}, new String[]{ - TargetCatchDto.PROPERTY_WEIGHT_CATEGORY, - TargetCatchDto.PROPERTY_CATCH_WEIGHT, - TargetCatchDto.PROPERTY_REASON_FOR_DISCARD, - TargetCatchDto.PROPERTY_DISCARDED, - TargetCatchDto.PROPERTY_BROUGHT_ON_DECK, - TargetCatchDto.PROPERTY_COMMENT}); + TargetCatchDto.PROPERTY_WEIGHT_CATEGORY, + TargetCatchDto.PROPERTY_CATCH_WEIGHT, + TargetCatchDto.PROPERTY_REASON_FOR_DISCARD, + TargetCatchDto.PROPERTY_DISCARDED, + TargetCatchDto.PROPERTY_BROUGHT_ON_DECK, + TargetCatchDto.PROPERTY_COMMENT}); - List<ContentTableMeta<TargetCatchDto>> metas = Lists.newArrayList( + List<ContentTableMeta<TargetCatchDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(TargetCatchDto.class, WeightCategoryDto.PROPERTY_SPECIES, true), ContentTableModel.newTableMeta(TargetCatchDto.class, TargetCatchDto.PROPERTY_WEIGHT_CATEGORY, true), ContentTableModel.newTableMeta(TargetCatchDto.class, TargetCatchDto.PROPERTY_REASON_FOR_DISCARD, true), @@ -74,11 +74,12 @@ public class TargetDiscardCatchUIModel extends ContentTableUIModel<SetSeineTarge @Override protected ContentTableModel<SetSeineTargetCatchDto, TargetCatchDto> createTableModel( - ObserveContentTableUI<SetSeineTargetCatchDto, TargetCatchDto> ui, + ObserveContentTableUI<SetSeineTargetCatchDto, TargetCatchDto, ?> ui, List<ContentTableMeta<TargetCatchDto>> contentTableMetas) { return new ContentTableModel<SetSeineTargetCatchDto, TargetCatchDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; + @Override protected Collection<TargetCatchDto> getChilds(SetSeineTargetCatchDto bean) { return bean.getTargetCatch(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleCaptureUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleCaptureUI.jaxx index 69ab37d..49e14a1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleCaptureUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleCaptureUI.jaxx @@ -20,10 +20,9 @@ #L% --> -<TargetSampleUI - contentTitle='{n("observe.common.targetSampleCapture")}' - saveNewEntryText='{n("observe.content.action.create.targetSampleCapture")}' - saveNewEntryTip='{n("observe.content.action.create.targetSampleCapture.tip")}'> +<TargetSampleUI contentTitle='{n("observe.common.targetSampleCapture")}' + saveNewEntryText='{n("observe.content.action.create.targetSampleCapture")}' + saveNewEntryTip='{n("observe.content.action.create.targetSampleCapture.tip")}'> <import> static org.nuiton.i18n.I18n.n diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleRejeteUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleRejeteUI.jaxx index 36f5716..a80c9de 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleRejeteUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleRejeteUI.jaxx @@ -20,10 +20,9 @@ #L% --> -<TargetSampleUI - contentTitle='{n("observe.common.targetSample")}' - saveNewEntryText='{n("observe.content.action.create.targetSample")}' - saveNewEntryTip='{n("observe.content.action.create.targetSample.tip")}'> +<TargetSampleUI contentTitle='{n("observe.common.targetSample")}' + saveNewEntryText='{n("observe.content.action.create.targetSample")}' + saveNewEntryTip='{n("observe.content.action.create.targetSample.tip")}'> <import> static org.nuiton.i18n.I18n.n diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jaxx index 74667d6..717e3d1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jaxx @@ -21,8 +21,7 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='TargetSampleDto, TargetLengthDto' - abstract="true"> + superGenericType='TargetSampleDto, TargetLengthDto, TargetSampleUI' abstract="true"> <style source="AbstractSampleUI.jcss"/> @@ -61,22 +60,16 @@ <ContentTableModel id='tableModel'/> <!-- le validateur de l'écran --> - <BeanValidator id='validator' - beanClass='fr.ird.observe.services.dto.seine.TargetSampleDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update'> + <BeanValidator id='validator' beanClass='fr.ird.observe.services.dto.seine.TargetSampleDto' + errorTableModel='{getErrorTableModel()}' context='ui-update'> <!-- clef unique --> <field name="targetLength" component="editorPanel"/> <field name='comment'/> </BeanValidator> <!-- le validateur d'une entrée de tableau --> - <BeanValidator id='validatorTable' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.TargetLengthDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update' - parentValidator='{validator}'/> + <BeanValidator id='validatorTable' autoField='true' beanClass='fr.ird.observe.services.dto.seine.TargetLengthDto' + errorTableModel='{getErrorTableModel()}' context='ui-update' parentValidator='{validator}'/> <ButtonGroup id='acquisitionModeGroup' onStateChanged='getHandler().updateModeSaisie((ModeSaisieEchantillonEnum) acquisitionModeGroup.getSelectedValue())'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java index 818bbd3..20ff998 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java @@ -26,7 +26,6 @@ import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; -import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -46,7 +45,11 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JTable; +import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; +import java.awt.Component; +import java.awt.Container; +import java.awt.FocusTraversalPolicy; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedList; @@ -60,7 +63,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleDto, TargetLengthDto> { +public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleDto, TargetLengthDto, TargetSampleUI> { /** Logger */ private static final Log log = LogFactory.getLog(TargetSampleUIHandler.class); @@ -73,14 +76,38 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD */ protected final boolean discarded; - public TargetSampleUIHandler(ContentTableUI<TargetSampleDto, TargetLengthDto> ui, boolean discarded) { + public TargetSampleUIHandler(TargetSampleUI ui, boolean discarded) { super(ui); this.discarded = discarded; } @Override - public TargetSampleUI getUi() { - return (TargetSampleUI) super.getUi(); + protected FocusTraversalPolicy createFocusTraversalPolicy(TargetSampleUI ui) { + return new LayoutFocusTraversalPolicy() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(ui.getAcquisitionModeEffectif())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent()) && !ui.getAcquisitionModeEffectif().isEnabled()) { + return super.getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + if (ui.getAcquisitionModeEffectif().isEnabled()) { + return ui.getAcquisitionModeEffectif(); + } + return ui.getSizeMeasureType(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(ui, ui.getComment2()); + } + }; } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIModel.java index 8a3ecbb..8e81801 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIModel.java @@ -47,7 +47,7 @@ public class TargetSampleUIModel extends ContentTableUIModel<TargetSampleDto, Ta private static final long serialVersionUID = 1L; - public static final String PROPERTY_DEFAULT_SIZE_MEASURE_TYPE="defaultSizeMeasureType"; + public static final String PROPERTY_DEFAULT_SIZE_MEASURE_TYPE = "defaultSizeMeasureType"; private ReferentialReference<SizeMeasureTypeDto> defaultSizeMeasureType; @@ -85,7 +85,7 @@ public class TargetSampleUIModel extends ContentTableUIModel<TargetSampleDto, Ta @Override protected ContentTableModel<TargetSampleDto, TargetLengthDto> createTableModel( - ObserveContentTableUI<TargetSampleDto, TargetLengthDto> ui, + ObserveContentTableUI<TargetSampleDto, TargetLengthDto, ?> ui, List<ContentTableMeta<TargetLengthDto>> contentTableMetas) { return new ContentTableModel<TargetSampleDto, TargetLengthDto>(ui, contentTableMetas) { private static final long serialVersionUID = 1L; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 678194870c37a286713de2ca7239c4ede2afe432 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 9 16:13:31 2016 +0100 Introduction de ObserveFocusManager et réusinage des ui (amélioration de la généricité + nouvel héritage pour les référentiels i18n) --- .../swing/ObserveSwingApplicationContext.java | 8 + .../application/swing/ui/ObserveMainUIHandler.java | 18 +- .../swing/ui/actions/shared/AbstractUIAction.java | 28 +- .../ui/actions/shared/CancelCreateUIAction.java | 10 +- .../ui/actions/shared/CloseAndCreateUIAction.java | 9 +- .../swing/ui/actions/shared/CloseOpenUIAction.java | 9 +- .../ui/actions/shared/DeleteDataUIAction.java | 15 +- .../ui/actions/shared/DeleteReferenceUIAction.java | 11 +- .../swing/ui/actions/shared/GoDownUIAction.java | 20 +- .../swing/ui/actions/shared/GoUpUIAction.java | 17 +- .../shared/MoveActivityLonglinesUIAction.java | 15 +- .../actions/shared/MoveActivitySeinesUIAction.java | 25 +- .../ui/actions/shared/MoveRoutesUIAction.java | 18 +- .../actions/shared/MoveTripLonglinesUIAction.java | 21 +- .../ui/actions/shared/MoveTripSeinesUIAction.java | 21 +- .../swing/ui/actions/shared/MoveTripsUIAction.java | 30 +- .../swing/ui/actions/shared/ReOpenUIAction.java | 8 +- .../swing/ui/actions/shared/ResetEditUIAction.java | 8 +- .../swing/ui/actions/shared/SaveEditUIAction.java | 12 +- .../ui/actions/shared/SelectOpenNodeUIAction.java | 7 +- .../application/swing/ui/content/ContentUI.jaxx | 6 +- .../swing/ui/content/ContentUIHandler.java | 63 +- .../swing/ui/content/ContentUIInitializer.java | 2 +- .../swing/ui/content/ContentUIManager.java | 28 +- .../swing/ui/content/ContentUIModel.java | 4 +- .../swing/ui/content/ObserveContentUI.java | 2 +- .../swing/ui/content/ObserveFocusManager.java | 1337 ++++++++++++++++++++ .../ui/content/impl/longline/BranchlineUI.jaxx | 34 +- .../content/impl/longline/BranchlineUIHandler.java | 7 +- .../impl/longline/LonglineDetailCompositionUI.jaxx | 12 +- .../LonglineDetailCompositionUIHandler.java | 55 +- .../impl/longline/LonglineGlobalCompositionUI.jaxx | 12 +- .../LonglineGlobalCompositionUIHandler.java | 7 +- .../ui/content/impl/longline/SetLonglineUI.jaxx | 22 +- .../impl/longline/SetLonglineUIHandler.java | 46 +- .../FloatingObjectTransmittingBuoyOperationUI.jaxx | 57 +- ...ngObjectTransmittingBuoyOperationUIHandler.java | 45 +- .../ui/content/impl/seine/FloatingObjectUI.jaxx | 24 +- .../impl/seine/FloatingObjectUIHandler.java | 45 +- .../swing/ui/content/impl/seine/SetSeineUI.jaxx | 8 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 54 +- .../swing/ui/content/list/ContentListUI.jaxx | 2 +- .../ui/content/list/ContentListUIHandler.java | 54 +- .../list/impl/seine/ActivitySeinesUIHandler.java | 5 +- .../swing/ui/content/open/ContentOpenableUI.jaxx | 2 +- .../ui/content/open/ContentOpenableUIHandler.java | 20 +- .../impl/longline/ActivityLonglineUIHandler.java | 36 - .../open/impl/longline/TripLonglineUIHandler.java | 42 - .../open/impl/seine/ActivitySeineUIHandler.java | 61 - .../ui/content/open/impl/seine/RouteUIHandler.java | 36 - .../open/impl/seine/TripSeineUIHandler.java | 32 - ...itySeineUI.jaxx => ContentI18nReferenceUI.jaxx} | 70 +- .../ui/content/ref/ContentI18nReferenceUI.jcss | 71 ++ .../swing/ui/content/ref/ContentReferenceUI.jaxx | 30 +- .../swing/ui/content/ref/ContentReferenceUI.jcss | 1 + .../ui/content/ref/ContentReferenceUIHandler.java | 32 +- .../swing/ui/content/ref/ReferenceHomeUI.jaxx | 7 +- .../ui/content/ref/ReferenceHomeUIHandler.java | 4 +- .../swing/ui/content/ref/ReferenceHomeUIModel.java | 2 +- .../ref/ReferentialContentUIInitializer.java | 13 +- .../swing/ui/content/ref/UniqueKeyTableModel.java | 2 +- .../swing/ui/content/ref/impl/CountryUI.jaxx | 97 +- .../swing/ui/content/ref/impl/CountryUIModel.java | 2 +- .../swing/ui/content/ref/impl/FpaZoneUI.jaxx | 95 +- .../swing/ui/content/ref/impl/FpaZoneUIModel.java | 2 +- .../content/ref/impl/GearCaracteristicTypeUI.jaxx | 95 +- .../ref/impl/GearCaracteristicTypeUIModel.java | 2 +- .../ui/content/ref/impl/GearCaracteristicUI.jaxx | 97 +- .../content/ref/impl/GearCaracteristicUIModel.java | 4 +- .../swing/ui/content/ref/impl/GearUI.jaxx | 25 +- .../swing/ui/content/ref/impl/GearUI.jcss | 4 - .../swing/ui/content/ref/impl/GearUIHandler.java | 9 +- .../swing/ui/content/ref/impl/GearUIModel.java | 2 +- .../swing/ui/content/ref/impl/HarbourUI.jaxx | 27 +- .../swing/ui/content/ref/impl/HarbourUIModel.java | 22 +- .../ui/content/ref/impl/I18nReferenceEntity.jcss | 92 -- .../content/ref/impl/LengthLengthParameterUI.jaxx | 7 +- .../ref/impl/LengthLengthParameterUIHandler.java | 7 +- .../content/ref/impl/LengthWeightParameterUI.jaxx | 7 +- .../ref/impl/LengthWeightParameterUIHandler.java | 9 +- .../ref/impl/LengthWeightParameterUIModel.java | 3 +- .../ref/impl/NeedCommentReferenceEntity.jcss | 25 - .../swing/ui/content/ref/impl/OceanUI.jaxx | 96 +- .../swing/ui/content/ref/impl/OceanUIModel.java | 2 +- .../swing/ui/content/ref/impl/OrganismUI.jaxx | 98 +- .../swing/ui/content/ref/impl/OrganismUIModel.java | 2 +- .../swing/ui/content/ref/impl/PersonUI.jaxx | 23 +- .../swing/ui/content/ref/impl/PersonUIModel.java | 14 +- .../swing/ui/content/ref/impl/ProgramUI.jaxx | 41 +- .../swing/ui/content/ref/impl/ProgramUI.jcss | 4 - .../ui/content/ref/impl/ProgramUIHandler.java | 9 +- .../swing/ui/content/ref/impl/ProgramUIModel.java | 2 +- .../swing/ui/content/ref/impl/ReferenceEntity.jcss | 3 + .../swing/ui/content/ref/impl/SexUI.jaxx | 95 +- .../swing/ui/content/ref/impl/SexUIModel.java | 2 +- .../swing/ui/content/ref/impl/ShipOwnerUI.jaxx | 24 +- .../ui/content/ref/impl/SizeMeasureTypeUI.jaxx | 92 +- .../content/ref/impl/SizeMeasureTypeUIModel.java | 2 +- .../swing/ui/content/ref/impl/SpeciesGroupUI.jaxx | 97 +- .../ui/content/ref/impl/SpeciesGroupUIModel.java | 2 +- .../swing/ui/content/ref/impl/SpeciesListUI.jaxx | 29 +- .../swing/ui/content/ref/impl/SpeciesListUI.jcss | 4 - .../ui/content/ref/impl/SpeciesListUIHandler.java | 9 +- .../ui/content/ref/impl/SpeciesListUIModel.java | 2 +- .../swing/ui/content/ref/impl/SpeciesUI.jaxx | 19 +- .../swing/ui/content/ref/impl/SpeciesUI.jcss | 4 - .../ui/content/ref/impl/SpeciesUIHandler.java | 9 +- .../swing/ui/content/ref/impl/SpeciesUIModel.java | 22 +- .../ui/content/ref/impl/VesselSizeCategoryUI.jaxx | 30 +- .../ref/impl/VesselSizeCategoryUIModel.java | 2 +- .../swing/ui/content/ref/impl/VesselTypeUI.jaxx | 28 +- .../ui/content/ref/impl/VesselTypeUIModel.java | 2 +- .../swing/ui/content/ref/impl/VesselUI.jaxx | 38 +- .../swing/ui/content/ref/impl/VesselUI.jcss | 4 - .../swing/ui/content/ref/impl/VesselUIHandler.java | 9 +- .../ui/content/ref/impl/WeightMeasureTypeUI.jaxx | 93 +- .../content/ref/impl/WeightMeasureTypeUIModel.java | 2 +- .../ref/impl/longline/BaitHaulingStatusUI.jaxx | 95 +- .../impl/longline/BaitHaulingStatusUIModel.java | 2 +- .../ref/impl/longline/BaitSettingStatusUI.jaxx | 97 +- .../impl/longline/BaitSettingStatusUIModel.java | 2 +- .../ui/content/ref/impl/longline/BaitTypeUI.jaxx | 94 +- .../content/ref/impl/longline/BaitTypeUIModel.java | 2 +- .../ref/impl/longline/CatchFateLonglineUI.jaxx | 95 +- .../impl/longline/CatchFateLonglineUIModel.java | 2 +- .../content/ref/impl/longline/EncounterTypeUI.jaxx | 95 +- .../ref/impl/longline/EncounterTypeUIModel.java | 2 +- .../ui/content/ref/impl/longline/HealthnessUI.jaxx | 94 +- .../ref/impl/longline/HealthnessUIModel.java | 2 +- .../content/ref/impl/longline/HookPositionUI.jaxx | 95 +- .../ref/impl/longline/HookPositionUIModel.java | 2 +- .../ui/content/ref/impl/longline/HookSizeUI.jaxx | 94 +- .../content/ref/impl/longline/HookSizeUIModel.java | 2 +- .../ui/content/ref/impl/longline/HookTypeUI.jaxx | 96 +- .../content/ref/impl/longline/HookTypeUIModel.java | 2 +- .../impl/longline/ItemHorizontalPositionUI.jaxx | 95 +- .../longline/ItemHorizontalPositionUIModel.java | 2 +- .../ref/impl/longline/ItemVerticalPositionUI.jaxx | 95 +- .../impl/longline/ItemVerticalPositionUIModel.java | 2 +- .../ref/impl/longline/LightsticksColorUI.jaxx | 95 +- .../ref/impl/longline/LightsticksColorUIModel.java | 2 +- .../ref/impl/longline/LightsticksTypeUI.jaxx | 95 +- .../ref/impl/longline/LightsticksTypeUIModel.java | 2 +- .../ui/content/ref/impl/longline/LineTypeUI.jaxx | 94 +- .../content/ref/impl/longline/LineTypeUIModel.java | 2 +- .../ref/impl/longline/MaturityStatusUI.jaxx | 98 +- .../ref/impl/longline/MaturityStatusUIModel.java | 2 +- .../ref/impl/longline/MitigationTypeUI.jaxx | 95 +- .../ref/impl/longline/MitigationTypeUIModel.java | 2 +- .../content/ref/impl/longline/SensorBrandUI.jaxx | 24 +- .../ref/impl/longline/SensorBrandUIModel.java | 2 +- .../ref/impl/longline/SensorDataFormatUI.jaxx | 95 +- .../ref/impl/longline/SensorDataFormatUIModel.java | 2 +- .../ui/content/ref/impl/longline/SensorTypeUI.jaxx | 94 +- .../ref/impl/longline/SensorTypeUIModel.java | 2 +- .../content/ref/impl/longline/SettingShapeUI.jaxx | 95 +- .../ref/impl/longline/SettingShapeUIModel.java | 2 +- .../ref/impl/longline/StomacFullnessUI.jaxx | 95 +- .../ref/impl/longline/StomacFullnessUIModel.java | 2 +- .../ui/content/ref/impl/longline/TripTypeUI.jaxx | 94 +- .../content/ref/impl/longline/TripTypeUIModel.java | 2 +- .../impl/longline/VesselActivityLonglineUI.jaxx | 95 +- .../longline/VesselActivityLonglineUIModel.java | 2 +- .../ui/content/ref/impl/seine/DetectionModeUI.jaxx | 95 +- .../ref/impl/seine/DetectionModeUIModel.java | 2 +- .../ui/content/ref/impl/seine/ObjectFateUI.jaxx | 93 +- .../content/ref/impl/seine/ObjectFateUIModel.java | 2 +- .../content/ref/impl/seine/ObjectOperationUI.jaxx | 96 +- .../ref/impl/seine/ObjectOperationUIModel.java | 2 +- .../ui/content/ref/impl/seine/ObjectTypeUI.jaxx | 93 +- .../content/ref/impl/seine/ObjectTypeUIModel.java | 2 +- .../content/ref/impl/seine/ObservedSystemUI.jaxx | 97 +- .../ref/impl/seine/ObservedSystemUIModel.java | 2 +- .../content/ref/impl/seine/ReasonForDiscardUI.jaxx | 96 +- .../ref/impl/seine/ReasonForDiscardUIModel.java | 2 +- .../ref/impl/seine/ReasonForNoFishingUI.jaxx | 99 +- .../ref/impl/seine/ReasonForNoFishingUIModel.java | 2 +- .../content/ref/impl/seine/ReasonForNullSetUI.jaxx | 94 +- .../ref/impl/seine/ReasonForNullSetUIModel.java | 2 +- .../ui/content/ref/impl/seine/SpeciesFateUI.jaxx | 78 +- .../ui/content/ref/impl/seine/SpeciesStatusUI.jaxx | 94 +- .../ref/impl/seine/SpeciesStatusUIModel.java | 2 +- .../ref/impl/seine/SurroundingActivityUI.jaxx | 94 +- .../ref/impl/seine/SurroundingActivityUIModel.java | 2 +- .../impl/seine/TransmittingBuoyOperationUI.jaxx | 96 +- .../seine/TransmittingBuoyOperationUIModel.java | 2 +- .../ref/impl/seine/TransmittingBuoyTypeUI.jaxx | 93 +- .../impl/seine/TransmittingBuoyTypeUIModel.java | 2 +- .../ref/impl/seine/VesselActivitySeineUI.jaxx | 80 +- .../ref/impl/seine/VesselActivitySeineUIModel.java | 3 +- .../content/ref/impl/seine/WeightCategoryUI.jaxx | 94 +- .../ref/impl/seine/WeightCategoryUIModel.java | 2 +- .../swing/ui/content/ref/impl/seine/WindUI.jaxx | 98 +- .../ui/content/ref/impl/seine/WindUIModel.java | 2 +- .../swing/ui/content/table/ContentTableUI.jaxx | 2 +- .../ui/content/table/ContentTableUIHandler.java | 37 +- .../ui/content/table/ObserveContentTableUI.java | 8 +- .../impl/longline/BaitsCompositionUIHandler.java | 11 +- .../longline/BranchlinesCompositionUIHandler.java | 11 +- .../impl/longline/CatchLonglineUIHandler.java | 82 -- .../table/impl/longline/EncounterUIHandler.java | 34 - .../longline/FloatlinesCompositionUIHandler.java | 11 +- .../longline/GearUseFeaturesLonglineUIHandler.java | 38 - .../impl/longline/HooksCompositionUIHandler.java | 5 - .../table/impl/longline/SensorUsedUIHandler.java | 30 - .../content/table/impl/longline/TdrUIHandler.java | 76 -- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 56 +- .../table/impl/seine/NonTargetCatchUIHandler.java | 27 - .../table/impl/seine/NonTargetSampleUIHandler.java | 34 - .../impl/seine/ObjectObservedSpeciesUIHandler.java | 33 +- .../impl/seine/ObjectSchoolEstimateUIHandler.java | 33 +- .../table/impl/seine/SchoolEstimateUIHandler.java | 33 - .../table/impl/seine/TargetCatchUIHandler.java | 33 - .../impl/seine/TargetDiscardCatchUIHandler.java | 33 - .../table/impl/seine/TargetSampleUIHandler.java | 33 - .../tree/ObserveNavigationTreeShowPopupAction.java | 2 +- 216 files changed, 2538 insertions(+), 6054 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java index e52c4a2..1ed8e6b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java @@ -47,6 +47,7 @@ import fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction; import fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction; import fr.ird.observe.application.swing.ui.content.ContentUIManager; +import fr.ird.observe.application.swing.ui.content.ObserveFocusManager; import fr.ird.observe.application.swing.validation.ValidationContext; import fr.ird.observe.services.ObserveServicesProvider; import fr.ird.observe.services.dto.constants.ReferentialLocale; @@ -82,6 +83,7 @@ import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.En import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.DATA_SOURCES_MANAGER; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.DATA_SOURCE_CONFIGURATION_FACTORY; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.DECORATOR_SERVICE; +import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.FOCUS_MANAGER; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.H2_SERVER; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.H2_SERVER_MODE; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.H2_WEBSERVER; @@ -133,6 +135,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im H2_SERVER_MODE("H2 Server mode", Boolean.class), H2_SERVER("H2 Server", Server.class), H2_WEBSERVER("H2 Web server", Server.class), + FOCUS_MANAGER("Focus manager", ObserveFocusManager.class), VALIDATORS("Validators"), LOCAL_DATABASE_BACKUP_TIMER("Local database backup task", ScheduledThreadPoolExecutor.class), NODE_TO_RESELECT("Node to reselect"); @@ -223,6 +226,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im SERVICE_MAIN_FACTORY.set(ObserveServiceMainFactory.get()); LOCAL_DATABASE_BACKUP_TIMER.set(new ScheduledThreadPoolExecutor(1)); OBSERVE_SWING_SESSION_HELPER.set(new ObserveSwingSessionHelper(config.getSwingSessionFile())); + FOCUS_MANAGER.set(new ObserveFocusManager()); referenceBinderEngine = new ReferenceBinderEngineSupplier().get(); scheduledFuture = getLocalDatabaseBackupTimer().scheduleAtFixedRate(new LocalDatabaseBackupTask(), 0, config.getBackupDelay(), TimeUnit.MINUTES); @@ -326,6 +330,10 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im return OBSERVE_SWING_SESSION_HELPER.get(); } + public ObserveFocusManager getFocusManager() { + return FOCUS_MANAGER.get(); + } + //------------------------------------------- // - Write //------------------------------------------- diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java index 4c5972d..b5e3d9c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java @@ -22,23 +22,23 @@ package fr.ird.observe.application.swing.ui; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; +import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; -import fr.ird.observe.services.dto.AbstractObserveDto; -import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.ContentUIManager; import fr.ird.observe.application.swing.ui.content.ContentUIModel; import fr.ird.observe.application.swing.ui.content.ObserveContentUI; import fr.ird.observe.application.swing.ui.tree.ObserveNavigationTreeShowPopupAction; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.util.ObserveSwingValidatorMessageTableModel; import fr.ird.observe.application.swing.ui.util.ObserveValidatorMessageTableRenderer; +import fr.ird.observe.services.dto.AbstractObserveDto; +import fr.ird.observe.services.dto.constants.ReferentialLocale; import jaxx.runtime.JAXXContext; import jaxx.runtime.context.DefaultApplicationContext; import jaxx.runtime.context.JAXXInitialContext; @@ -101,7 +101,7 @@ public class ObserveMainUIHandler { ContentUIManager manager = ui.getContentUIManager(); // obtain the ui type to show - Class<? extends ObserveContentUI<?>> uiClass = manager.convertNodeToContentUI(node); + Class<? extends ObserveContentUI<?, ?>> uiClass = manager.convertNodeToContentUI(node); if (log.isDebugEnabled()) { log.debug("new selected path = " + node + ", ui = " + uiClass); } @@ -132,9 +132,7 @@ public class ObserveMainUIHandler { } } - public void doOpencontent(ObserveMainUI ui, - TreePath path, - Class<? extends ObserveContentUI<?>> uiClass) { + public void doOpencontent(ObserveMainUI ui, TreePath path, Class<? extends ObserveContentUI<?, ?>> uiClass) { ContentUIManager manager = ui.getContentUIManager(); @@ -160,7 +158,7 @@ public class ObserveMainUIHandler { context.populateSelectedIds(selectedIds); // on recherche l'ui (voir si elle existe déjà) - ObserveContentUI<?> content = manager.getContent(uiClass); + ObserveContentUI<?, ?> content = manager.getContent(uiClass); if (content == null) { @@ -259,7 +257,7 @@ public class ObserveMainUIHandler { public static final String H2_SERVER_URL_PATTERN = "jdbc:h2:%s/%s/obstuna"; public static void restartEdit() { - ContentUI<?> selectedUI = ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + ContentUI<?, ?> selectedUI = ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); if (selectedUI == null) { // pas d'écran selectionne diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java index 0feb166..ea9f4cd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java @@ -23,16 +23,20 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.content.ObserveContentUI; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import jaxx.runtime.SwingUtil; import javax.swing.AbstractAction; import javax.swing.AbstractButton; import javax.swing.Icon; +import javax.swing.JComponent; +import javax.swing.JPopupMenu; import javax.swing.JTree; import javax.swing.tree.TreePath; +import java.awt.event.ActionEvent; +import java.util.Objects; import static org.nuiton.i18n.I18n.t; @@ -69,12 +73,12 @@ public abstract class AbstractUIAction extends AbstractAction { return actionId; } - public void initAction(ObserveContentUI<?> ui, AbstractButton editor) { + public void initAction(ContentUI<?, ?> ui, AbstractButton editor) { editor.setAction(this); editor.putClientProperty("mainUI", mainUI); } - public void updateAction(ObserveContentUI<?> ui, AbstractButton editor) { + public void updateAction(ContentUI<?, ?> ui, AbstractButton editor) { editor.putClientProperty("ui", ui); String tip = (String) editor.getClientProperty("toolTipText"); if (tip != null) { @@ -109,4 +113,20 @@ public abstract class AbstractUIAction extends AbstractAction { return tree.isCollapsed(activityPath); } + + + protected ContentUI<?, ?> getContentUI(ActionEvent e) { + JComponent c = (JComponent) e.getSource(); + ContentUI<?, ?> ui = (ContentUI<?, ?>) c.getClientProperty("ui"); + Objects.requireNonNull(ui, "could not find client property ui on component" + c); + return ui; + } + + protected JPopupMenu getPopup(ActionEvent e) { + JComponent c = (JComponent) e.getSource(); + JPopupMenu ui = (JPopupMenu) c.getClientProperty("popup"); + Objects.requireNonNull(ui, "could not find client property popup on component" + c); + return ui; + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java index 26288f0..3bf739c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java @@ -25,7 +25,6 @@ import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import javax.swing.JComponent; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; @@ -56,14 +55,7 @@ public class CancelCreateUIAction extends AbstractUIAction { @Override public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); - } + ContentUI<?, ?> ui = getContentUI(e); ui.stopEdit(); ObserveNode parentNode = ui.getTreeHelper().removeNode(ui.getTreeHelper().getSelectedNode()); ui.getTreeHelper().selectNode(parentNode); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java index d2e1807..f26a4af 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java @@ -33,7 +33,6 @@ import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import javax.swing.JComponent; import javax.swing.JTree; import javax.swing.SwingUtilities; import javax.swing.tree.TreePath; @@ -66,12 +65,8 @@ public class CloseAndCreateUIAction extends AbstractUIAction { public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException("could not find client property ui on component" + c); - } + ContentUI<?, ?> ui = getContentUI(e); + if (ui instanceof ContentOpenableUI) { ((ContentOpenableUI<?, ?>) ui).closeAndCreateData(); return; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java index 79d443f..fbdab1d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java @@ -33,7 +33,6 @@ import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import javax.swing.JComponent; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; @@ -64,11 +63,7 @@ public class CloseOpenUIAction extends AbstractUIAction { public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException("could not find client property ui on component" + c); - } + ContentUI<?, ?> ui = getContentUI(e); if (ui instanceof ContentOpenableUI) { ((ContentOpenableUI<?, ?>) ui).closeData(); @@ -184,7 +179,7 @@ public class CloseOpenUIAction extends AbstractUIAction { } - private void closeData(ObserveSwingApplicationContext applicationContext, ContentUI<?> ui, String id) { + private void closeData(ObserveSwingApplicationContext applicationContext, ContentUI<?, ?> ui, String id) { ObserveTreeHelper treeHelper = ui.getTreeHelper(); ObserveNode selectedNode = treeHelper.getSelectedNode(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java index a38808b..9f49e16 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java @@ -24,7 +24,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; -import javax.swing.JComponent; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; @@ -59,18 +58,8 @@ public class DeleteDataUIAction extends AbstractUIAction { SwingUtilities.invokeLater(() -> { try { - - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); - } - - - ui.delete(); + ContentUI<?, ?> contentUI = getContentUI(e); + contentUI.delete(); } finally { getMainUI().setBusy(false); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java index 9ee10e5..4733b95 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java @@ -24,7 +24,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; -import javax.swing.JComponent; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; @@ -56,15 +55,7 @@ public class DeleteReferenceUIAction extends AbstractUIAction { public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { try { - JComponent c = (JComponent) e.getSource(); - - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); - } + ContentUI<?, ?> ui = getContentUI(e); ui.delete(); } finally { getMainUI().setBusy(false); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java index e099e46..7fa5a03 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java @@ -22,10 +22,10 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.content.ObserveContentUI; -import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; import javax.swing.AbstractButton; import javax.swing.Action; @@ -67,25 +67,19 @@ public class GoDownUIAction extends AbstractUIAction { SwingUtilities.invokeLater(() -> { JComponent c = (JComponent) e.getSource(); - JPopupMenu p = (JPopupMenu) - c.getClientProperty("popup"); - if (p == null) { - throw new IllegalStateException( - "could not find client property " + - "popup on component" + c); - } + JPopupMenu p = getPopup(e); p.show(c, 2, c.getHeight()); }); } @Override - public void initAction(ObserveContentUI<?> ui, AbstractButton editor) { + public void initAction(ContentUI<?, ?> ui, AbstractButton editor) { super.initAction(ui, editor); editor.putClientProperty("popup", getMainUI().getScopeDownPopup()); } @Override - public void updateAction(ObserveContentUI<?> ui, AbstractButton editor) { + public void updateAction(ContentUI<?, ?> ui, AbstractButton editor) { ObserveMainUI mainUI = getMainUI(); ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); @@ -124,7 +118,7 @@ public class GoDownUIAction extends AbstractUIAction { } if (nodeOriginal.getChildCount() == 1 && - !nodeOriginal.getChildAt(0).isLeaf()) { + !nodeOriginal.getChildAt(0).isLeaf()) { e = nodeOriginal.getChildAt(0).children(); while (e.hasMoreElements()) { node = (ObserveNode) e.nextElement(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java index 49a3025..13624d4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java @@ -22,10 +22,10 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.content.ObserveContentUI; -import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; import javax.swing.AbstractButton; import javax.swing.Action; @@ -68,24 +68,19 @@ public class GoUpUIAction extends AbstractUIAction { SwingUtilities.invokeLater(() -> { JComponent c = (JComponent) e.getSource(); - JPopupMenu p = (JPopupMenu) c.getClientProperty("popup"); - if (p == null) { - throw new IllegalStateException( - "could not find client property " + - "popup on component" + c); - } + JPopupMenu p = getPopup(e); p.show(c, 2, c.getHeight()); }); } @Override - public void initAction(ObserveContentUI<?> ui, AbstractButton editor) { + public void initAction(ContentUI<?, ?> ui, AbstractButton editor) { super.initAction(ui, editor); editor.putClientProperty("popup", getMainUI().getScopeUpPopup()); } @Override - public void updateAction(ObserveContentUI<?> ui, AbstractButton editor) { + public void updateAction(ContentUI<?, ?> ui, AbstractButton editor) { super.updateAction(ui, editor); ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java index 8b43a71..7976691 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java @@ -28,8 +28,8 @@ import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecor import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.node.TripLonglineNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; import fr.ird.observe.services.dto.DataReference; @@ -39,7 +39,6 @@ import fr.ird.observe.services.service.data.longline.ActivityLonglineService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; @@ -80,15 +79,7 @@ public class MoveActivityLonglinesUIAction extends AbstractUIAction { public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); - } - + ContentUI<?, ?> ui = getContentUI(e); if (!(ui instanceof ActivityLonglinesUI)) { throw new IllegalStateException("Can not come here!"); } @@ -125,7 +116,7 @@ public class MoveActivityLonglinesUIAction extends AbstractUIAction { } - protected String chooseNewTripLongline(ContentUI<?> ui, ObserveNode oldTripLonglineNode) { + protected String chooseNewTripLongline(ContentUI<?, ?> ui, ObserveNode oldTripLonglineNode) { ObserveNode programNode = oldTripLonglineNode.getParent(); String oldTripLonglineId = oldTripLonglineNode.getId(); int tripLonglineNb = programNode.getChildCount(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java index 0e14b48..622cff2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java @@ -29,18 +29,15 @@ import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUIModel; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.node.RouteSeineNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.service.data.seine.ActivitySeineService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; @@ -61,11 +58,6 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { private static final long serialVersionUID = 1L; - /** - * Logger. - */ - private static final Log log = LogFactory.getLog(MoveActivitySeinesUIAction.class); - public static final String ACTION_NAME = "moveActivitySeines"; public MoveActivitySeinesUIAction(ObserveMainUI mainUI) { @@ -81,14 +73,7 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); - } + ContentUI<?, ?> ui = getContentUI(e); if (!(ui instanceof ActivitySeinesUI)) { throw new IllegalStateException("Can not come here!"); @@ -107,7 +92,7 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { List<DataReference<ActivitySeineDto>> selectedDatas = ((ActivitySeinesUIModel) ui.getModel()).getSelectedDatas(); List<String> activityIds = selectedDatas.stream() .map(DataReference.ID_FUNCTION) - .collect(Collectors.toList()) ; + .collect(Collectors.toList()); ActivitySeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); List<Integer> positions = service.moveActivitySeinesToRoute(activityIds, routeId); @@ -119,7 +104,7 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { } - protected String chooseNewRoute(ContentUI<?> ui, ObserveNode oldRouteNode) { + protected String chooseNewRoute(ContentUI<?, ?> ui, ObserveNode oldRouteNode) { ObserveNode routesNode = oldRouteNode.getParent(); String oldRouteId = oldRouteNode.getId(); int routeNb = routesNode.getChildCount(); @@ -163,7 +148,7 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { ObserveNode oldRouteNode = oldActivitiesNode.getParent(); ObserveNode routesNode = oldRouteNode.getParent(); - ObserveNode tripNode = routesNode.getParent(); +// ObserveNode tripNode = routesNode.getParent(); ObserveNode newRouteNode = treeHelper.getChild(routesNode, routeId); String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); ObserveNode newActivitiesNode = treeHelper.getChild(newRouteNode, activitiesNodeId); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java index c5179be..8fd275b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java @@ -28,16 +28,14 @@ import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecor import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.node.TripSeineNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.data.seine.RouteService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JOptionPane; @@ -60,11 +58,6 @@ public class MoveRoutesUIAction extends AbstractUIAction { private static final long serialVersionUID = 1L; - /** - * Logger. - */ - private static final Log log = LogFactory.getLog(MoveRoutesUIAction.class); - public static final String ACTION_NAME = "moveRoutes"; public MoveRoutesUIAction(ObserveMainUI mainUI) { @@ -81,12 +74,9 @@ public class MoveRoutesUIAction extends AbstractUIAction { SwingUtilities.invokeLater(() -> { JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); + ContentUI<?, ?> ui = (ContentUI<?, ?>) c.getClientProperty("ui"); if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); + throw new IllegalStateException("could not find client property ui on component" + c); } if (!(ui instanceof RoutesUI)) { @@ -118,7 +108,7 @@ public class MoveRoutesUIAction extends AbstractUIAction { } - protected String chooseNewTripSeine(ContentUI<?> ui, ObserveNode oldTripSeineNode) { + protected String chooseNewTripSeine(ContentUI<?, ?> ui, ObserveNode oldTripSeineNode) { ObserveNode programNode = oldTripSeineNode.getParent(); String oldTripSeineId = oldTripSeineNode.getId(); int tripSeineNb = programNode.getChildCount(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripLonglinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripLonglinesUIAction.java index c70731d..bff6c8d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripLonglinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripLonglinesUIAction.java @@ -23,16 +23,14 @@ package fr.ird.observe.application.swing.ui.actions.shared; */ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.service.data.longline.TripLonglineService; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUIModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.service.data.longline.TripLonglineService; import java.util.ArrayList; import java.util.List; @@ -45,11 +43,6 @@ public class MoveTripLonglinesUIAction extends MoveTripsUIAction<TripLonglineDto private static final long serialVersionUID = 1L; - /** - * Logger. - */ - private static final Log log = LogFactory.getLog(MoveTripLonglinesUIAction.class); - public static final String ACTION_NAME = "moveTripLonglines"; public MoveTripLonglinesUIAction(ObserveMainUI mainUI) { @@ -57,14 +50,14 @@ public class MoveTripLonglinesUIAction extends MoveTripsUIAction<TripLonglineDto } @Override - protected void checkUIClass(ContentUI<?> ui) throws IllegalStateException { + protected void checkUIClass(ContentUI<?, ?> ui) throws IllegalStateException { if (!(ui instanceof TripLonglinesUI)) { throw new IllegalStateException("Can not come here!"); } } @Override - protected GearType getGearType(ContentUI<?> ui) { + protected GearType getGearType(ContentUI<?, ?> ui) { return GearType.longline; } @@ -75,7 +68,7 @@ public class MoveTripLonglinesUIAction extends MoveTripsUIAction<TripLonglineDto } @Override - protected void updateModelData(ContentUI<?> ui) { + protected void updateModelData(ContentUI<?, ?> ui) { TripLonglinesUI tripLonglinesUI = (TripLonglinesUI) ui; TripLonglinesUIModel model = tripLonglinesUI.getModel(); List<DataReference<TripLonglineDto>> data = new ArrayList<>(model.getData()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripSeinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripSeinesUIAction.java index 5b19f83..4988af1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripSeinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripSeinesUIAction.java @@ -23,16 +23,14 @@ package fr.ird.observe.application.swing.ui.actions.shared; */ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.seine.TripSeineService; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUIModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.data.seine.TripSeineService; import java.util.ArrayList; import java.util.List; @@ -45,11 +43,6 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeineDto> { private static final long serialVersionUID = 1L; - /** - * Logger. - */ - private static final Log log = LogFactory.getLog(MoveTripSeinesUIAction.class); - public static final String ACTION_NAME = "moveTripSeines"; public MoveTripSeinesUIAction(ObserveMainUI mainUI) { @@ -57,14 +50,14 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeineDto> { } @Override - protected void checkUIClass(ContentUI<?> ui) throws IllegalStateException { + protected void checkUIClass(ContentUI<?,?> ui) throws IllegalStateException { if (!(ui instanceof TripSeinesUI)) { throw new IllegalStateException("Can not come here!"); } } @Override - protected GearType getGearType(ContentUI<?> ui) { + protected GearType getGearType(ContentUI<?, ?> ui) { return GearType.seine; } @@ -75,7 +68,7 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeineDto> { } @Override - protected void updateModelData(ContentUI<?> ui) { + protected void updateModelData(ContentUI<?, ?> ui) { TripSeinesUI tripSeinesUI = (TripSeinesUI) ui; TripSeinesUIModel model = tripSeinesUI.getModel(); List<DataReference<TripSeineDto>> data = new ArrayList<>(model.getData()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java index 22ade74..e118785 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java @@ -23,20 +23,19 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.DataDto; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.constants.GearType; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.ContentListUIModel; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.menu.MoveTripNodeMenuPopulator; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.constants.GearType; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; @@ -77,15 +76,8 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractUIAct public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); - } + ContentUI<?, ?> ui = getContentUI(e); checkUIClass(ui); // get current program id @@ -111,9 +103,7 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractUIAct } - protected String chooseNewProgram(ContentUI<?> ui, String oldProgramId) { - - ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + protected String chooseNewProgram(ContentUI<?, ?> ui, String oldProgramId) { ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); @@ -141,7 +131,7 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractUIAct return decoratedProgram == null ? null : decoratedProgram.getId(); } - protected void updateTree(ContentUI<?> ui, + protected void updateTree(ContentUI<?, ?> ui, ObserveNode oldProgramNode, String oldProgramId, String programId, @@ -186,12 +176,12 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractUIAct treeHelper.selectNode(newProgramNode); } - protected abstract void checkUIClass(ContentUI<?> ui) throws IllegalStateException; + protected abstract void checkUIClass(ContentUI<?, ?> ui) throws IllegalStateException; - protected abstract GearType getGearType(ContentUI<?> ui); + protected abstract GearType getGearType(ContentUI<?, ?> ui); protected abstract List<Integer> getPositions(List<String> tripIds, String programId); - protected abstract void updateModelData(ContentUI<?> ui); + protected abstract void updateModelData(ContentUI<?, ?> ui); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java index 7f5aa95..0a8a161 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java @@ -30,7 +30,6 @@ import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.services.dto.DataReference; -import javax.swing.JComponent; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; @@ -61,12 +60,7 @@ public class ReOpenUIAction extends AbstractUIAction { @Override public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) c.getClientProperty("ui"); - - if (ui == null) { - throw new IllegalStateException("could not find client property ui on component" + c); - } + ContentUI<?, ?> ui = getContentUI(e); ContentOpenableUI<?, ?> openUI; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java index be1d230..274ee60 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java @@ -24,10 +24,8 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; -import javax.swing.JComponent; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; -import java.util.Objects; import static org.nuiton.i18n.I18n.n; @@ -56,10 +54,8 @@ public class ResetEditUIAction extends AbstractUIAction { @Override public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) c.getClientProperty("ui"); - Objects.requireNonNull(ui, "could not find client property ui on component" + c); - ui.resetEdit(); + ContentUI<?, ?> contentUI = getContentUI(e); + contentUI.resetEdit(); }); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java index e899b07..25b4a7a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java @@ -24,7 +24,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; -import javax.swing.JComponent; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; @@ -55,15 +54,8 @@ public class SaveEditUIAction extends AbstractUIAction { @Override public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?> ui = (ContentUI<?>) - c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException( - "could not find client property " + - "ui on component" + c); - } - ui.save(true); + ContentUI<?, ?> contentUI = getContentUI(e); + contentUI.save(true); }); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java index 2e6594b..bc36961 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java @@ -25,6 +25,7 @@ import fr.ird.observe.application.swing.ui.ObserveMainUI; import javax.swing.JComponent; import java.awt.event.ActionEvent; +import java.util.Objects; /** * Action pour sélectionner un noeud (attaché à l'éditeur) dans l'arbre de @@ -48,11 +49,7 @@ public class SelectOpenNodeUIAction extends AbstractUIAction { JComponent c = (JComponent) e.getSource(); Class<?> type = (Class<?>) c.getClientProperty("type"); - if (type == null) { - throw new IllegalStateException( - "could not find client property " + - "type on component" + c); - } + Objects.requireNonNull(type, "could not find client property type on component" + c); getMainUI().getTreeHelper().selectOpenNode(type); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx index 5edae7b..9b002c3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx @@ -21,7 +21,7 @@ --> <org.jdesktop.swingx.JXTitledPanel - abstract='true' genericType='E extends IdDto' implements="fr.ird.observe.application.swing.ui.content.ObserveContentUI<E>" + abstract='true' genericType='E extends IdDto, U extends ContentUI<E, U>' implements="fr.ird.observe.application.swing.ui.content.ObserveContentUI<E, U>" title='{getHandler().updateTitle(getContentTitle())}' contentContainer='{contentContainer}' leftDecoration='{titleLeft}' @@ -65,9 +65,9 @@ <ObserveTreeHelper id='treeHelper' initializer='getContextValue(ObserveTreeHelper.class)'/> - <ContentUIModel id='model' genericType='E' initializer='ContentUIModel.newModel(this)'/> + <ContentUIModel id='model' genericType='E' initializer='ContentUIModel.newModel((U) this)'/> - <ContentUIHandler id='handler' genericType='E' initializer='ContentUIHandler.newHandler(this)'/> + <ContentUIHandler id='handler' genericType='E, U' initializer='ContentUIHandler.newHandler((U) this)'/> <IdDto id='bean' initializer='model.getBean()'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java index 6e977d8..f19ecba 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java @@ -42,7 +42,6 @@ import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; import fr.ird.observe.application.swing.ui.util.SpringUtilities; import fr.ird.observe.application.swing.validation.ValidationContext; -import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; @@ -106,7 +105,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public abstract class ContentUIHandler<E extends IdDto> { +public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U>> { /** Logger */ static private final Log log = LogFactory.getLog(ContentUIHandler.class); @@ -120,16 +119,16 @@ public abstract class ContentUIHandler<E extends IdDto> { private final Icon errorIcon; /** l'interface graphique que le controleur utilise */ - protected final ObserveContentUI<E> ui; + protected final U ui; - static <E extends IdDto> ContentUIHandler<E> newHandler(ObserveContentUI<E> ui) { + static <E extends IdDto, U extends ContentUI<E, U>> ContentUIHandler<E, U> newHandler(U ui) { String uiName = ui.getClass().getName(); String modelName = uiName + "Handler"; try { - Class<ContentUIHandler<E>> handlerClass = (Class<ContentUIHandler<E>>) Class.forName(modelName); + Class<ContentUIHandler<E, U>> handlerClass = (Class) Class.forName(modelName); return ConstructorUtils.invokeConstructor(handlerClass, ui); } catch (Exception e) { @@ -147,9 +146,9 @@ public abstract class ContentUIHandler<E extends IdDto> { * @return {@code true} if ui can be safelty closed, {@code false} * otherwise. */ - protected static boolean checkEdit(ObserveContentUI<?> ui) { + protected static <E extends IdDto, U extends ContentUI<E, U>> boolean checkEdit(U ui) { - ContentUIModel<? extends AbstractObserveDto> model = ui.getModel(); + ContentUIModel<E> model = ui.getModel(); if (model.isCreatingMode()) { @@ -185,7 +184,7 @@ public abstract class ContentUIHandler<E extends IdDto> { if (model.isValid()) { // ask user if wants to save int reponse = UIHelper.askUser( - (JComponent) ui, + ui, t("observe.title.need.confirm"), t("observe.message.quit.valid.edit"), JOptionPane.WARNING_MESSAGE, @@ -216,7 +215,7 @@ public abstract class ContentUIHandler<E extends IdDto> { } else { // ask user if wants to quit without saving since edit is not valid int reponse = UIHelper.askUser( - (JComponent) ui, + ui, t("observe.title.need.confirm"), t("observe.message.quit.invalid.edit"), JOptionPane.ERROR_MESSAGE, @@ -245,22 +244,22 @@ public abstract class ContentUIHandler<E extends IdDto> { return wasClosed; } - public static void addMessage(ObserveContentUI<?> ui, NuitonValidatorScope scope, String fieldName, String message) { + public static <E extends IdDto, U extends ContentUI<E,U>> void addMessage(U ui, NuitonValidatorScope scope, String fieldName, String message) { SwingValidatorMessageTableModel model = ui.getErrorTableModel(); - model.addMessages((JComponent) ui, fieldName, scope, message); + model.addMessages(ui, fieldName, scope, message); } - public static void removeAllMessages(ContentUI<?> ui, NuitonValidatorScope scope, String fieldName) { + public static <E extends IdDto, U extends ContentUI<E,U>>void removeAllMessages(U ui, NuitonValidatorScope scope, String fieldName) { SwingValidatorMessageTableModel model = ui.getErrorTableModel(); model.removeMessages(ui, fieldName, scope); } - protected static void removeAllMessages(ObserveContentUI<?> ui) { + protected static <E extends IdDto, U extends ContentUI<E,U>> void removeAllMessages(U ui) { SwingValidatorMessageTableModel model = ui.getErrorTableModel(); - model.removeMessages((JComponent) ui, null); + model.removeMessages(ui, null); } - public ContentUIHandler(ObserveContentUI<E> ui, DataContextType parentType, DataContextType type) { + public ContentUIHandler(U ui, DataContextType parentType, DataContextType type) { this.ui = ui; this.parentType = parentType; this.type = type; @@ -277,7 +276,7 @@ public abstract class ContentUIHandler<E extends IdDto> { } } - public ObserveContentUI<E> getUi() { + public final U getUi() { return ui; } @@ -300,11 +299,11 @@ public abstract class ContentUIHandler<E extends IdDto> { public void initUI() { - final ContentUIInitializer<E, ObserveContentUI<E>> uiInitializer = new ContentUIInitializer<>(ui); - uiInitializer.initUI(); + new ContentUIInitializer<>(ui).initUI(); getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM, evt -> updateUiWithReferenceSetsFromModel()); + ObserveSwingApplicationContext.get().getFocusManager().setFocusTraversalPolicy(ui); } public void openUI() { @@ -761,7 +760,7 @@ public abstract class ContentUIHandler<E extends IdDto> { } protected void updateToolbarActions() { - ObserveContentUI<E> ui = getUi(); + U ui = getUi(); JToolBar toolBar = ui.getTitleRightToolBar(); Component[] components = toolBar.getComponents(); for (Component component : components) { @@ -783,7 +782,7 @@ public abstract class ContentUIHandler<E extends IdDto> { Icon updateModeIcon(ContentMode mode) { Icon icon = null; if (mode != null) { - icon = (Icon) ((JComponent) ui).getClientProperty(mode.name() + "Icon"); + icon = (Icon) ui.getClientProperty(mode.name() + "Icon"); } return icon; } @@ -791,7 +790,7 @@ public abstract class ContentUIHandler<E extends IdDto> { String updateModeTip(ContentMode mode) { String tip = null; if (mode != null) { - tip = (String) ((JComponent) ui).getClientProperty(mode.name() + "Tip"); + tip = (String) ui.getClientProperty(mode.name() + "Tip"); } return tip; } @@ -1167,26 +1166,4 @@ public abstract class ContentUIHandler<E extends IdDto> { popup.show(button, x, y); } - -// protected static class LogPropertyChanges implements PropertyChangeListener { -// -// private final ImmutableSet<String> propertyNames; -// -// public LogPropertyChanges(ImmutableSet<String> propertyNames) { -// this.propertyNames = propertyNames; -// } -// -// @Override -// public void propertyChange(PropertyChangeEvent evt) { -// -// if (propertyNames.contains(evt.getPropertyName())) { -// if (log.isInfoEnabled()) { -// log.info(String.format("Property %s changed (%s → %s)", evt.getPropertyName(), evt.getOldValue(), evt.getNewValue())); -// } -// -// } -// -// } -// -// } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java index 3cc59b2..97ac366 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java @@ -117,7 +117,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E>> { +public class ContentUIInitializer<E extends IdDto, UI extends ContentUI<E, UI>> { public static final String OBSERVE_ACTION = "observeAction"; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java index 4cbebde..1e70471 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java @@ -121,7 +121,7 @@ public class ContentUIManager { /** Logger */ static private final Log log = LogFactory.getLog(ContentUIManager.class); - private final Map<String, Class<? extends ObserveContentUI<?>>> mapping; + private final Map<String, Class<? extends ObserveContentUI<?, ?>>> mapping; public ContentUIManager() { @@ -191,7 +191,7 @@ public class ContentUIManager { } - public Class<? extends ObserveContentUI<?>> convertNodeToContentUI(ObserveNode node) { + public Class<? extends ObserveContentUI<?, ?>> convertNodeToContentUI(ObserveNode node) { if (log.isDebugEnabled()) { log.debug("Entrer for node = " + node); } @@ -230,7 +230,7 @@ public class ContentUIManager { return mapping.get(mappingKey); } - public <U extends ObserveContentUI<?>> U getContent(Class<U> uiClass) { + public <U extends ObserveContentUI<?, ?>> U getContent(Class<U> uiClass) { CardLayout2 layout = getLayout(); JPanel layoutContent = getLayoutContent(); @@ -250,7 +250,7 @@ public class ContentUIManager { return content; } - public <U extends ObserveContentUI<?>> U createContent(Class<U> uiClass) { + public <U extends ObserveContentUI<?, ?>> U createContent(Class<U> uiClass) { String constraints = uiClass.getName(); @@ -286,12 +286,12 @@ public class ContentUIManager { } } - public ObserveContentUI<?> getCurrentContent() { - return (ObserveContentUI<?>) + public ObserveContentUI<?, ?> getCurrentContent() { + return (ObserveContentUI<?, ?>) getLayout().getVisibleComponent(getLayoutContent()); } - public void openContent(ObserveContentUI<?> content) { + public void openContent(ObserveContentUI<?, ?> content) { String constraints = content.getClass().getName(); @@ -320,7 +320,7 @@ public class ContentUIManager { getLayout().reset(getLayoutContent()); } - public ContentUI<?> getSelectedContentUI() { + public ContentUI<?, ?> getSelectedContentUI() { return getSelectedContentUI(getMainUI()); } @@ -337,7 +337,7 @@ public class ContentUIManager { * @since 1.5 */ public boolean closeSelectedContentUI(ObserveMainUI mainUI) { - ContentUI<?> ui = getSelectedContentUI(mainUI); + ContentUI<?, ?> ui = getSelectedContentUI(mainUI); if (ui == null) { // no content ui return true; @@ -384,20 +384,20 @@ public class ContentUIManager { return ObserveSwingApplicationContext.get().getMainUI(); } - private ContentUI<?> getSelectedContentUI(ObserveMainUI ui) { + private ContentUI<?, ?> getSelectedContentUI(ObserveMainUI ui) { if (ui == null) { // no ui, so no modification return null; } - ContentUI<?> result = null; + ContentUI<?, ?> result = null; CardLayout2 layout = ui.getContentLayout(); JPanel container = ui.getContent(); Component currentContent = layout.getVisibleComponent(container); - if (currentContent != null && currentContent instanceof ContentUI<?>) { + if (currentContent != null && currentContent instanceof ContentUI<?, ?>) { - result = (ContentUI<?>) currentContent; + result = (ContentUI<?, ?>) currentContent; } return result; } @@ -409,7 +409,7 @@ public class ContentUIManager { if (log.isDebugEnabled()) { log.debug("Add key: " + key + " → " + contentClass.getName()); } - mapping.put(key, (Class<? extends ContentUI<?>>) contentClass); + mapping.put(key, (Class<? extends ContentUI<?, ?>>) contentClass); } private String getMappingKey(String prefix, Class<?> klass, String context) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java index 883d57c..7ac6e1e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java @@ -106,14 +106,14 @@ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializab */ protected ImmutableMap<String, DataReferenceSet<?>> dataReferenceSetsByPropertyName = ImmutableMap.of(); - public static <E extends IdDto> ContentUIModel<E> newModel(ObserveContentUI<E> ui) { + public static <E extends IdDto, U extends ContentUI<E, U>> ContentUIModel<E> newModel(U ui) { String uiName = ui.getClass().getName(); String modelName = uiName + "Model"; try { - Class<ContentUIModel<E>> modelClass = (Class<ContentUIModel<E>>) Class.forName(modelName); + Class<ContentUIModel<E>> modelClass = (Class) Class.forName(modelName); return modelClass.newInstance(); } catch (Exception e) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java index 37d5eb5..cdc2fca 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java @@ -38,7 +38,7 @@ import javax.swing.JToolBar; * @author Tony Chemit - chemit@codelutin.com * @since XXX */ -public interface ObserveContentUI<E extends IdDto> extends JAXXObject { +public interface ObserveContentUI<E extends IdDto, U extends ContentUI<E, U>> extends JAXXObject { String CLIENT_PROPERTY_FORCE_LOAD = "forceLoad"; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java new file mode 100644 index 0000000..c649f10 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java @@ -0,0 +1,1337 @@ +package fr.ird.observe.application.swing.ui.content; + +import com.google.common.collect.ImmutableMap; +import fr.ird.observe.application.swing.ui.content.impl.longline.LonglineDetailCompositionUI; +import fr.ird.observe.application.swing.ui.content.impl.longline.SetLonglineUI; +import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectTransmittingBuoyOperationUI; +import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectUI; +import fr.ird.observe.application.swing.ui.content.impl.seine.SetSeineUI; +import fr.ird.observe.application.swing.ui.content.list.ContentListUI; +import fr.ird.observe.application.swing.ui.content.open.impl.longline.ActivityLonglineUI; +import fr.ird.observe.application.swing.ui.content.open.impl.longline.TripLonglineUI; +import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; +import fr.ird.observe.application.swing.ui.content.open.impl.seine.RouteUI; +import fr.ird.observe.application.swing.ui.content.open.impl.seine.TripSeineUI; +import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI; +import fr.ird.observe.application.swing.ui.content.ref.ReferenceHomeUI; +import fr.ird.observe.application.swing.ui.content.ref.impl.GearUI; +import fr.ird.observe.application.swing.ui.content.ref.impl.LengthLengthParameterUI; +import fr.ird.observe.application.swing.ui.content.ref.impl.LengthWeightParameterUI; +import fr.ird.observe.application.swing.ui.content.ref.impl.ProgramUI; +import fr.ird.observe.application.swing.ui.content.ref.impl.SpeciesListUI; +import fr.ird.observe.application.swing.ui.content.ref.impl.SpeciesUI; +import fr.ird.observe.application.swing.ui.content.ref.impl.VesselUI; +import fr.ird.observe.application.swing.ui.content.ref.impl.seine.WeightCategoryUI; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; +import fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUI; +import fr.ird.observe.application.swing.ui.content.table.impl.longline.EncounterUI; +import fr.ird.observe.application.swing.ui.content.table.impl.longline.GearUseFeaturesLonglineUI; +import fr.ird.observe.application.swing.ui.content.table.impl.longline.SensorUsedUI; +import fr.ird.observe.application.swing.ui.content.table.impl.longline.TdrUI; +import fr.ird.observe.application.swing.ui.content.table.impl.seine.GearUseFeaturesSeineUI; +import fr.ird.observe.application.swing.ui.content.table.impl.seine.NonTargetCatchUI; +import fr.ird.observe.application.swing.ui.content.table.impl.seine.NonTargetSampleUI; +import fr.ird.observe.application.swing.ui.content.table.impl.seine.ObjectObservedSpeciesUI; +import fr.ird.observe.application.swing.ui.content.table.impl.seine.ObjectSchoolEstimateUI; +import fr.ird.observe.application.swing.ui.content.table.impl.seine.SchoolEstimateUI; +import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetCatchUI; +import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetDiscardCatchUI; +import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetSampleUI; + +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JSpinner; +import javax.swing.LayoutFocusTraversalPolicy; +import java.awt.Component; +import java.awt.Container; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.function.Supplier; + +/** + * Created on 09/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ObserveFocusManager { + + private final ImmutableMap<Class<? extends ContentUI>, ObserveLayoutFocusTraversalPolicy> policies; + + public <U extends ContentUI> void setFocusTraversalPolicy(U ui) { + Objects.requireNonNull(ui); + Class<? extends ContentUI> uiClass = ui.getClass(); + if (ui instanceof ContentListUI) { + uiClass = ContentListUI.class; + } + ObserveLayoutFocusTraversalPolicy policy = policies.get(uiClass); + if (policy == null && ui instanceof ContentReferenceUI) { + uiClass = ContentReferenceUI.class; + policy = policies.get(uiClass); + } + + Objects.requireNonNull(policy, "Could not focus traversal policy for ui: " + ui.getClass().getName()); + ui.setFocusCycleRoot(true); + policy.setUiSupplier(() -> ui); + ui.setFocusTraversalPolicy(policy); + } + + public ObserveFocusManager() { + + ImmutableMap.Builder<Class<? extends ContentUI>, ObserveLayoutFocusTraversalPolicy> builder = ImmutableMap.builder(); + + builder.put(LonglineDetailCompositionUI.class, new ObserveLayoutFocusTraversalPolicy<LonglineDetailCompositionUI>() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + LonglineDetailCompositionUI ui = getUi(); + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + if (selectedIndex == 2) { + if (aComponent.equals(ui.getBranchlineDetailUI().getTopType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getBranchlineDetailUI().getHookType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + LonglineDetailCompositionUI ui = getUi(); + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + if (selectedIndex == 2) { + int subSelectedIndex = ui.getBranchlineDetailUI().getFishingOperationTabPane().getSelectedIndex(); + switch (subSelectedIndex) { + case 0: + return ui.getBranchlineDetailUI().getTopType(); + case 1: + return ui.getBranchlineDetailUI().getHookType(); + } + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + + LonglineDetailCompositionUI ui = getUi(); + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + if (selectedIndex == 2) { + ui.getBranchlineDetailUI().getComment2(); + } + return super.getLastComponent(aContainer); + } + }); + + builder.put(SetLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<SetLonglineUI>() { + + @Override + public Component getFirstComponent(Container aContainer) { + SetLonglineUI ui = getUi(); + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getHomeId(); + case 1: + return ui.getSettingShape(); + case 2: + return ui.getHaulingDirectionSameAsSetting(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getDelete(); + } + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + SetLonglineUI ui = getUi(); + if (aComponent.equals(ui.getHomeId())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getHaulingDirectionSameAsSetting())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getSettingShape().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + }); + builder.put(FloatingObjectTransmittingBuoyOperationUI.class, new ObserveLayoutFocusTraversalPolicy<FloatingObjectTransmittingBuoyOperationUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + + if (aComponent.equals(getUi().getTypeOperation())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getTypeOperation(); + } + + @Override + public Component getLastComponent(Container aContainer) { + FloatingObjectTransmittingBuoyOperationUI ui = getUi(); + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + return ui.getComment2(); + } + + }); + + builder.put(SetSeineUI.class, new ObserveLayoutFocusTraversalPolicy<SetSeineUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + SetSeineUI ui = getUi(); + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.getParent().equals(ui.getStartTime().getHourEditor().getEditor())) { + return getLastComponent(aContainer); + } + case 1: + if (aComponent.equals(ui.getSchoolThickness().getTextField())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + SetSeineUI ui = getUi(); + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + JComponent editor = ui.getStartTime().getHourEditor().getEditor(); + return ((JSpinner.DateEditor) editor).getTextField(); + case 1: + return ui.getSchoolThickness(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + SetSeineUI ui = getUi(); + if (ui.getDelete().isVisible() && ui.getDelete().isEnabled()) { + return ui.getDelete(); + } + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + return ui.getReset(); + } + }); + + builder.put(FloatingObjectUI.class, new ObserveLayoutFocusTraversalPolicy<FloatingObjectUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + FloatingObjectUI ui = getUi(); + if (aComponent.equals(ui.getObjectOperation().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getObjectOperation(); + } + + @Override + public Component getLastComponent(Container aContainer) { + FloatingObjectUI ui = getUi(); + if (ui.getDelete().isVisible() && ui.getDelete().isEnabled()) { + return ui.getDelete(); + } + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + return ui.getReset(); + } + }); + + builder.put(ContentListUI.class, new ObserveLayoutFocusTraversalPolicy<ContentListUI>() { + + private List<JComponent> actions; + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getList(); + } + + public List<JComponent> getActions() { + if (actions == null) { + + actions = new ArrayList<>(); + actions.add(getUi().getGotoSelectedChild()); + actions.add(getUi().getReopenChild()); + actions.add(getUi().getCloseChild()); + actions.add(getUi().getGotoOpenChild()); + actions.add(getUi().getGotoOpenChild2()); + actions.add(getUi().getCreateChild()); + for (Component component : getUi().getExtraActions().getComponents()) { + if (component instanceof JButton) { + actions.add((JComponent) component); + } + } + actions.add(getUi().getMoveSelectedChildren()); + + } + List<JComponent> result = new ArrayList<>(actions); + Collections.reverse(result); + return result; + } + + @Override + public Component getLastComponent(Container aContainer) { + Optional<JComponent> optional = getActions().stream().filter(a -> a.isEnabled() && a.isVisible()).findFirst(); + return optional.isPresent() ? optional.get() : super.getLastComponent(aContainer); + } + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(getUi().getList())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + }); + + builder.put(TripLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<TripLonglineUI>() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + TripLonglineUI ui = getUi(); + if (aComponent.equals(ui.getTripType().getCombobox().getEditor().getEditorComponent())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getComponentAfter(Container aContainer, Component aComponent) { + TripLonglineUI ui = getUi(); + if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { + + // retour au début + return ui.getTripType(); + } + if (aComponent.equals(ui.getCloseAndCreate())) { + + // retour au début + return ui.getTripType(); + } + return super.getComponentAfter(aContainer, aComponent); + } + }); + builder.put(ActivityLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<ActivityLonglineUI>() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + ActivityLonglineUI ui = getUi(); + if (aComponent.equals(ui.getTimeStamp().getDayDateEditor().getEditor())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getComponentAfter(Container aContainer, Component aComponent) { + ActivityLonglineUI ui = getUi(); + if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { + + // retour au début + return ui.getTimeStamp().getDayDateEditor().getEditor(); + } + if (aComponent.equals(ui.getCloseAndCreate())) { + + // retour au début + return ui.getTimeStamp().getDayDateEditor().getEditor(); + } + return super.getComponentAfter(aContainer, aComponent); + } + }); + builder.put(ActivitySeineUI.class, new ObserveLayoutFocusTraversalPolicy<ActivitySeineUI>() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + ActivitySeineUI ui = getUi(); + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.getParent().equals(ui.getTime().getHourEditor().getEditor())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + break; + case 1: + if (aComponent.equals(ui.getVesselSpeed().getTextField())) { + return getLastComponent(aContainer); + } + case 2: + if (aComponent.equals(ui.getObservedSystem().getUniverseList())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + ActivitySeineUI ui = getUi(); + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + JComponent editor = ui.getTime().getHourEditor().getEditor(); + return ((JSpinner.DateEditor) editor).getTextField(); + case 1: + return ui.getVesselSpeed(); + case 2: + return ui.getObservedSystem().getUniverseList(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + ActivitySeineUI ui = getUi(); + if (ui.getModel().isCreatingMode()) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + return ui.getReset(); + } else + return ui.getCloseAndCreate(); + } + }); + + builder.put(TripSeineUI.class, new ObserveLayoutFocusTraversalPolicy<TripSeineUI>() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + TripSeineUI ui = getUi(); + if (aComponent.equals(ui.getCaptain().getCombobox().getEditor().getEditorComponent())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getComponentAfter(Container aContainer, Component aComponent) { + TripSeineUI ui = getUi(); + if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { + + // retour au début + return ui.getCaptain(); + } + if (aComponent.equals(ui.getCloseAndCreate())) { + + // retour au début + return ui.getCaptain(); + } + return super.getComponentAfter(aContainer, aComponent); + } + }); + builder.put(RouteUI.class, new ObserveLayoutFocusTraversalPolicy<RouteUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + RouteUI ui = getUi(); + if (aComponent.equals(ui.getDate().getEditor())) { + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); + } + return ui.getDelete(); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getComponentAfter(Container aContainer, Component aComponent) { + RouteUI ui = getUi(); + if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { + + // retour au début + return ui.getDate(); + } + if (aComponent.equals(ui.getCloseAndCreate())) { + + // retour au début + return ui.getDate(); + } + return super.getComponentAfter(aContainer, aComponent); + } + }); + builder.put(TdrUI.class, new ObserveLayoutFocusTraversalPolicy<TdrUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + TdrUI ui = getUi(); + int selectedIndex = ui.getEditTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getHomeId())) { + return getLastComponent(aContainer); + } + case 1: + if (aComponent.equals(ui.getSection().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + case 2: + if (aComponent.equals(ui.getEnableTimestamp())) { + return getLastComponent(aContainer); + } + case 3: + if (aComponent.equals(ui.getFishingStartDepth())) { + return getLastComponent(aContainer); + } + case 4: + if (aComponent.equals(ui.getSpecies().getUniverseList())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + TdrUI ui = getUi(); + int selectedIndex = ui.getEditTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getHomeId(); + case 1: + return ui.getSection(); + case 2: + return ui.getEnableTimestamp(); + case 3: + return ui.getFishingStartDepth(); + case 4: + return ui.getSpecies().getUniverseList(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + TdrUI ui = getUi(); + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + if (ui.getDeleteEntry().isEnabled()) { + return ui.getDeleteEntry(); + } + if (ui.getSaveNewEntry().isEnabled()) { + return ui.getSaveNewEntry(); + } + if (ui.getResetEntry().isEnabled()) { + return ui.getResetEntry(); + } + + return super.getLastComponent(aContainer); + } + }); + builder.put(SensorUsedUI.class, new ObserveLayoutFocusTraversalPolicy<SensorUsedUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + SensorUsedUI ui = getUi(); + if (aComponent.equals(ui.getSensorType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getSensorType(); + } + + @Override + public Component getLastComponent(Container aContainer) { + SensorUsedUI ui = getUi(); + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + return ui.getComment2(); + } + }); + builder.put(GearUseFeaturesLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<GearUseFeaturesLonglineUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + GearUseFeaturesLonglineUI ui = getUi(); + int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getGear().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + GearUseFeaturesLonglineUI ui = getUi(); + int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getGear(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(getUi(), null); + } + }); + builder.put(EncounterUI.class, new ObserveLayoutFocusTraversalPolicy<EncounterUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + EncounterUI ui = getUi(); + if (aComponent.equals(ui.getEncounterType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getEncounterType(); + } + + @Override + public Component getLastComponent(Container aContainer) { + EncounterUI ui = getUi(); + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + return ui.getComment2(); + } + }); + builder.put(CatchLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<CatchLonglineUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + CatchLonglineUI ui = getUi(); + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (ui.getTableModel().isCreate()) { + if (aComponent.equals(ui.getAcquisitionModeIndividual())) { + return getLastComponent(aContainer); + } + } else { + if (aComponent.equals(ui.getSection().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } + + case 1: + if (aComponent.equals(ui.getDepredated())) { + return getLastComponent(aContainer); + } + case 2: + if (aComponent.equals(ui.getStomacFullness().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + case 5: + if (aComponent.equals(ui.getDepthRecorder())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + CatchLonglineUI ui = getUi(); + int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (ui.getTableModel().isCreate()) { + return ui.getAcquisitionModeIndividual(); + } else { + return ui.getSection(); + } + case 1: + return ui.getDepredated(); + case 2: + return ui.getStomacFullness(); + case 5: + return ui.getDepthRecorder(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(getUi(), null); + } + }); + builder.put(TargetSampleUI.class, new ObserveLayoutFocusTraversalPolicy<TargetSampleUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + TargetSampleUI ui = getUi(); + if (aComponent.equals(ui.getAcquisitionModeEffectif())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent()) && !ui.getAcquisitionModeEffectif().isEnabled()) { + return super.getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + TargetSampleUI ui = getUi(); + if (ui.getAcquisitionModeEffectif().isEnabled()) { + return ui.getAcquisitionModeEffectif(); + } + return ui.getSizeMeasureType(); + } + + @Override + public Component getLastComponent(Container aContainer) { + TargetSampleUI ui = getUi(); + return getDefaultLastComponent(ui, ui.getComment2()); + } + }); + builder.put(TargetDiscardCatchUI.class, new ObserveLayoutFocusTraversalPolicy<TargetDiscardCatchUI>() { + + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + TargetDiscardCatchUI ui = getUi(); + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getCatchWeight().getTextField()) && !ui.getSpecies().isEnabled()) { + return super.getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + TargetDiscardCatchUI ui = getUi(); + if (ui.getSpecies().isEnabled()) { + return ui.getSpecies(); + } + return ui.getCatchWeight(); + } + + @Override + public Component getLastComponent(Container aContainer) { + TargetDiscardCatchUI ui = getUi(); + return getDefaultLastComponent(ui, ui.getTargetDiscardCatchCompositionEstimatedByObserver()); + } + }); + builder.put(TargetCatchUI.class, new ObserveLayoutFocusTraversalPolicy<TargetCatchUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + TargetCatchUI ui = getUi(); + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getCatchWeight().getTextField()) && !ui.getSpecies().isEnabled()) { + return super.getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + TargetCatchUI ui = getUi(); + if (ui.getSpecies().isEnabled()) { + return ui.getSpecies(); + } + return ui.getCatchWeight(); + } + + @Override + public Component getLastComponent(Container aContainer) { + TargetCatchUI ui = getUi(); + return getDefaultLastComponent(ui, ui.getTargetCatchCompositionEstimatedByObserver()); + } + }); + builder.put(SchoolEstimateUI.class, new ObserveLayoutFocusTraversalPolicy<SchoolEstimateUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + SchoolEstimateUI ui = getUi(); + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getTotalWeight().getTextField()) && !ui.getSpecies().isEnabled()) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + SchoolEstimateUI ui = getUi(); + if (ui.getSpecies().isEnabled()) { + return ui.getSpecies(); + } + return ui.getTotalWeight(); + } + + @Override + public Component getLastComponent(Container aContainer) { + SchoolEstimateUI ui = getUi(); + return getDefaultLastComponent(ui, ui.getComment2()); + } + + }); + builder.put(ObjectSchoolEstimateUI.class, new ObserveLayoutFocusTraversalPolicy<ObjectSchoolEstimateUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(getUi().getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getSpecies(); + } + + @Override + public Component getLastComponent(Container aContainer) { + ObjectSchoolEstimateUI ui = getUi(); + return getDefaultLastComponent(ui, ui.getComment2()); + } + + }); + builder.put(ObjectObservedSpeciesUI.class, new ObserveLayoutFocusTraversalPolicy<ObjectObservedSpeciesUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(getUi().getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getSpecies(); + } + + @Override + public Component getLastComponent(Container aContainer) { + ObjectObservedSpeciesUI ui = getUi(); + return getDefaultLastComponent(ui, ui.getComment2()); + } + + }); + builder.put(NonTargetSampleUI.class, new ObserveLayoutFocusTraversalPolicy<NonTargetSampleUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + NonTargetSampleUI ui = getUi(); + if (aComponent.equals(ui.getAcquisitionModeEffectif())) { + return getLastComponent(aContainer); + } + if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent()) && !ui.getAcquisitionModeEffectif().isEnabled()) { + return super.getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + NonTargetSampleUI ui = getUi(); + if (ui.getAcquisitionModeEffectif().isEnabled()) { + return ui.getAcquisitionModeEffectif(); + } + return ui.getSizeMeasureType(); + } + + @Override + public Component getLastComponent(Container aContainer) { + NonTargetSampleUI ui = getUi(); + return getDefaultLastComponent(ui, ui.getComment2()); + } + + }); + builder.put(NonTargetCatchUI.class, new ObserveLayoutFocusTraversalPolicy<NonTargetCatchUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(getUi().getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getSpecies(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(getUi(), null); + } + + }); + builder.put(GearUseFeaturesSeineUI.class, new ObserveLayoutFocusTraversalPolicy<GearUseFeaturesSeineUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + GearUseFeaturesSeineUI ui = getUi(); + int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getGear().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + GearUseFeaturesSeineUI ui = getUi(); + int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getGear(); + } + return super.getFirstComponent(aContainer); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getDefaultLastComponent(getUi(), null); + } + }); + builder.put(ContentReferenceUI.class, new ObserveLayoutFocusTraversalPolicy<ContentReferenceUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + if (aComponent.equals(getUi().getUri())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getUri(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getBackToList(); + } + }); + + builder.put(ReferenceHomeUI.class, new ObserveLayoutFocusTraversalPolicy<ReferenceHomeUI>()); + + builder.put(VesselUI.class, new ObserveLayoutFocusTraversalPolicy<VesselUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + VesselUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getKeelCode().getTextField())) { + return getLastComponent(aContainer); + } + break; + case 1: + if (aComponent.equals(ui.getLength().getTextField())) { + return getLastComponent(aContainer); + } + break; + } + + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + VesselUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getKeelCode(); + case 1: + return ui.getLength(); + } + return ui.getUri(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getBackToList(); + } + }); + + builder.put(SpeciesUI.class, new ObserveLayoutFocusTraversalPolicy<SpeciesUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + SpeciesUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getUri())) { + return getLastComponent(aContainer); + } + break; + case 1: + if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + break; + } + + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + SpeciesUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getUri(); + case 1: + return ui.getSizeMeasureType(); + } + return ui.getUri(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getBackToList(); + } + }); + + builder.put(SpeciesListUI.class, new ObserveLayoutFocusTraversalPolicy<SpeciesListUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + SpeciesListUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getUri())) { + return getLastComponent(aContainer); + } + break; + case 1: + if (aComponent.equals(ui.getSpecies().getUniverseList())) { + return getLastComponent(aContainer); + } + break; + } + + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + SpeciesListUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getUri(); + case 1: + return ui.getSpecies().getUniverseList(); + } + return ui.getUri(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getBackToList(); + } + }); + + builder.put(ProgramUI.class, new ObserveLayoutFocusTraversalPolicy<ProgramUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + ProgramUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getUri())) { + return getLastComponent(aContainer); + } + break; + case 1: + if (aComponent.equals(ui.getNonTargetObservation())) { + return getLastComponent(aContainer); + } + break; + } + + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + ProgramUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getUri(); + case 1: + return ui.getNonTargetObservation(); + } + return ui.getUri(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getBackToList(); + } + }); + + builder.put(LengthWeightParameterUI.class, new ObserveLayoutFocusTraversalPolicy<LengthWeightParameterUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + LengthWeightParameterUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (ui.getModel().isCreatingMode()) { + if (aComponent.equals(ui.getSex().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } else { + + if (aComponent.equals(ui.getStartDate().getEditor())) { + return getLastComponent(aContainer); + } + } + break; + case 1: + if (aComponent.equals(ui.getCoefficients())) { + return getLastComponent(aContainer); + } + break; + } + + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + LengthWeightParameterUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (ui.getModel().isCreatingMode()) { + return ui.getSex(); + } else { + + return ui.getStartDate(); + } + case 1: + return ui.getCoefficients(); + } + return ui.getUri(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getBackToList(); + } + }); + + builder.put(LengthLengthParameterUI.class, new ObserveLayoutFocusTraversalPolicy<LengthLengthParameterUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + LengthLengthParameterUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (ui.getModel().isCreatingMode()) { + if (aComponent.equals(ui.getInputSizeMeasureType().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + } else { + + if (aComponent.equals(ui.getUri())) { + return getLastComponent(aContainer); + } + } + break; + case 1: + if (aComponent.equals(ui.getCoefficients())) { + return getLastComponent(aContainer); + } + break; + } + + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + LengthLengthParameterUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (ui.getModel().isCreatingMode()) { + return ui.getInputSizeMeasureType(); + } else { + + return ui.getUri(); + } + case 1: + return ui.getCoefficients(); + } + return ui.getUri(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getBackToList(); + } + }); + + builder.put(GearUI.class, new ObserveLayoutFocusTraversalPolicy<GearUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + GearUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + if (aComponent.equals(ui.getUri())) { + return getLastComponent(aContainer); + } + break; + case 1: + if (aComponent.equals(ui.getGearCaracteristic().getUniverseList())) { + return getLastComponent(aContainer); + } + break; + } + + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + GearUI ui = getUi(); + int selectedIndex = ui.getTabPane().getSelectedIndex(); + switch (selectedIndex) { + case 0: + return ui.getUri(); + case 1: + return ui.getGearCaracteristic().getUniverseList(); + } + return ui.getUri(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getBackToList(); + } + }); + + + builder.put(WeightCategoryUI.class, new ObserveLayoutFocusTraversalPolicy<WeightCategoryUI>() { + @Override + public Component getComponentBefore(Container aContainer, Component aComponent) { + WeightCategoryUI ui = getUi(); + if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + @Override + public Component getFirstComponent(Container aContainer) { + return getUi().getSpecies(); + } + + @Override + public Component getLastComponent(Container aContainer) { + return getUi().getBackToList(); + } + }); + + policies = builder.build(); + + } + + public static class ObserveLayoutFocusTraversalPolicy<U extends ContentUI> extends LayoutFocusTraversalPolicy { + + private Supplier<U> uiSupplier; + + public void setUiSupplier(Supplier<U> uiSupplier) { + this.uiSupplier = uiSupplier; + } + + public U getUi() { + return uiSupplier.get(); + } + + protected <UU extends ContentTableUI> Component getDefaultLastComponent(UU ui, Component optionalComponent) { + if (ui.getSave().isEnabled()) { + return ui.getSave(); + } + if (ui.getReset().isEnabled()) { + return ui.getReset(); + } + if (optionalComponent != null) { + return optionalComponent; + } + if (ui.getDeleteEntry().isVisible() && ui.getDeleteEntry().isEnabled()) { + return ui.getDeleteEntry(); + } + if (ui.getSaveNewEntry().isVisible() && ui.getSaveNewEntry().isEnabled()) { + return ui.getSaveNewEntry(); + } + if (ui.getResetNewEntry().isVisible() && ui.getResetNewEntry().isEnabled()) { + return ui.getResetNewEntry(); + } + return ui.getResetEntry(); + } + + } + + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jaxx index 0f7d7ad..b3b48b5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jaxx @@ -18,7 +18,8 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='BranchlineDto' contentTitle='{n("observe.content.branchline.title")}'> +<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='BranchlineDto, BranchlineUI' + contentTitle='{n("observe.content.branchline.title")}'> <import> fr.ird.observe.services.dto.CommentableDto @@ -31,9 +32,6 @@ fr.ird.observe.services.dto.referential.longline.HookSizeDto fr.ird.observe.services.dto.referential.longline.HookTypeDto - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction - jaxx.runtime.swing.editor.NumberEditor jaxx.runtime.swing.editor.bean.BeanComboBox org.nuiton.jaxx.widgets.datetime.DateTimeEditor @@ -89,7 +87,9 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JLabel id='topTypeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both" columns="2"> - <BeanComboBox id='topType' constructorParams='this' genericType='ReferentialReference<LineTypeDto>' _entityClass='LineTypeDto.class'/> + <BeanComboBox id='topType' constructorParams='this' + genericType='ReferentialReference<LineTypeDto>' + _entityClass='LineTypeDto.class'/> </cell> </row> @@ -99,7 +99,9 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JLabel id='tracelineTypeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both" columns="2"> - <BeanComboBox id='tracelineType' constructorParams='this' genericType='ReferentialReference<LineTypeDto>' _entityClass='LineTypeDto.class'/> + <BeanComboBox id='tracelineType' constructorParams='this' + genericType='ReferentialReference<LineTypeDto>' + _entityClass='LineTypeDto.class'/> </cell> </row> @@ -179,7 +181,9 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JLabel id='hookTypeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both" columns="2"> - <BeanComboBox id='hookType' constructorParams='this' genericType='ReferentialReference<HookTypeDto>' _entityClass='HookTypeDto.class'/> + <BeanComboBox id='hookType' constructorParams='this' + genericType='ReferentialReference<HookTypeDto>' + _entityClass='HookTypeDto.class'/> </cell> </row> @@ -189,7 +193,9 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JLabel id='hookSizeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both" columns="2"> - <BeanComboBox id='hookSize' constructorParams='this' genericType='ReferentialReference<HookSizeDto>' _entityClass='HookSizeDto.class'/> + <BeanComboBox id='hookSize' constructorParams='this' + genericType='ReferentialReference<HookSizeDto>' + _entityClass='HookSizeDto.class'/> </cell> </row> @@ -209,7 +215,9 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JLabel id='baitTypeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both" columns="2"> - <BeanComboBox id='baitType' constructorParams='this' genericType='ReferentialReference<BaitTypeDto>' _entityClass='BaitTypeDto.class'/> + <BeanComboBox id='baitType' constructorParams='this' + genericType='ReferentialReference<BaitTypeDto>' + _entityClass='BaitTypeDto.class'/> </cell> </row> @@ -219,7 +227,9 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JLabel id='baitSettingStatusLabel'/> </cell> <cell anchor='east' weightx="1" fill="both" columns="2"> - <BeanComboBox id='baitSettingStatus' constructorParams='this' genericType='ReferentialReference<BaitSettingStatusDto>' _entityClass='BaitSettingStatusDto.class'/> + <BeanComboBox id='baitSettingStatus' constructorParams='this' + genericType='ReferentialReference<BaitSettingStatusDto>' + _entityClass='BaitSettingStatusDto.class'/> </cell> </row> @@ -229,7 +239,9 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JLabel id='baitHaulingStatusLabel'/> </cell> <cell anchor='east' weightx="1" fill="both" columns="2"> - <BeanComboBox id='baitHaulingStatus' constructorParams='this' genericType='ReferentialReference<BaitHaulingStatusDto>' _entityClass='BaitHaulingStatusDto.class'/> + <BeanComboBox id='baitHaulingStatus' constructorParams='this' + genericType='ReferentialReference<BaitHaulingStatusDto>' + _entityClass='BaitHaulingStatusDto.class'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java index 20b7a17..56cab3e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java @@ -54,7 +54,7 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.10 */ -public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { +public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, BranchlineUI> { /** Logger */ private static final Log log = LogFactory.getLog(BranchlineUIHandler.class); @@ -131,11 +131,6 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { } @Override - public BranchlineUI getUi() { - return (BranchlineUI) super.getUi(); - } - - @Override protected boolean computeCanWrite(ObserveSwingDataSource source) { return source.canWriteData(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx index 660ba58..c9eb46d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx @@ -18,8 +18,9 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='SetLonglineDetailCompositionDto' - contentTitle='{n("observe.content.longlineDetailComposition.title")}'> +<fr.ird.observe.application.swing.ui.content.ContentUI + superGenericType='SetLonglineDetailCompositionDto, LonglineDetailCompositionUI' + contentTitle='{n("observe.content.longlineDetailComposition.title")}'> <import> fr.ird.observe.application.swing.ObserveSwingApplicationContext @@ -31,7 +32,6 @@ org.jdesktop.swingx.JXTable - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue static org.nuiton.i18n.I18n.n </import> @@ -59,7 +59,8 @@ <SetLonglineDetailCompositionDto id='bean'/> <!-- validator --> - <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto' + <BeanValidator id='validator' autoField='true' + beanClass='fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto' errorTableModel='{getErrorTableModel()}' context='ui-update-longlineDetailComposition'> </BeanValidator> @@ -172,7 +173,8 @@ <Table fill="both" constraints='BorderLayout.NORTH'> <row> <cell weightx="1" fill="both" weighty="1"> - <BranchlineUI id="branchlineDetailUI" constructorParams="ObserveSwingApplicationContext.get().getMainUI()"/> + <BranchlineUI id="branchlineDetailUI" + constructorParams="ObserveSwingApplicationContext.get().getMainUI()"/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java index d7d03d7..7875656 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java @@ -74,7 +74,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.8 */ -public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLonglineDetailCompositionDto> { +public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLonglineDetailCompositionDto, LonglineDetailCompositionUI> { static final String SECTION_TEMPLATES_EDITOR = "sectionTemplatesEditor"; @@ -234,11 +234,6 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } @Override - public LonglineDetailCompositionUI getUi() { - return (LonglineDetailCompositionUI) super.getUi(); - } - - @Override public LonglineDetailCompositionUIModel getModel() { return (LonglineDetailCompositionUIModel) super.getModel(); } @@ -332,54 +327,6 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong tabPane.setChangeSelectedIndex(tabbedPaneWillChanged); tabPane.addChangeListener(tabbedPaneChanged); - getUi().setFocusCycleRoot(true); - getUi().setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - int selectedIndex = getUi().getFishingOperationTabPane().getSelectedIndex(); - if (selectedIndex == 2) { - if (aComponent.equals(getUi().getBranchlineDetailUI().getTopType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(getUi().getBranchlineDetailUI().getHookType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - int selectedIndex = getUi().getFishingOperationTabPane().getSelectedIndex(); - if (selectedIndex == 2) { - int subSelectedIndex = getUi().getBranchlineDetailUI().getFishingOperationTabPane().getSelectedIndex(); - switch (subSelectedIndex) { - case 0: - return getUi().getBranchlineDetailUI().getTopType(); - case 1: - return getUi().getBranchlineDetailUI().getHookType(); - } - } - return super.getFirstComponent(aContainer); - } - - @Override - public Component getLastComponent(Container aContainer) { - - if (getUi().getSave().isEnabled()) { - return getUi().getSave(); - } - if (getUi().getReset().isEnabled()) { - return getUi().getReset(); - } - int selectedIndex = getUi().getFishingOperationTabPane().getSelectedIndex(); - if (selectedIndex == 2) { - getUi().getBranchlineDetailUI().getComment2(); - } - return super.getLastComponent(aContainer); - } - }); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx index ecc74e3..91de3f7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx @@ -18,8 +18,9 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='SetLonglineGlobalCompositionDto' - contentTitle='{n("observe.content.longlineGlobalComposition.title")}'> +<fr.ird.observe.application.swing.ui.content.ContentUI + superGenericType='SetLonglineGlobalCompositionDto, LonglineGlobalCompositionUI' + contentTitle='{n("observe.content.longlineGlobalComposition.title")}'> <import> fr.ird.observe.application.swing.ObserveSwingApplicationContext @@ -61,7 +62,8 @@ <SetLonglineGlobalCompositionDto id='bean'/> <!-- validator --> - <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto' + <BeanValidator id='validator' autoField='true' + beanClass='fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto' errorTableModel='{getErrorTableModel()}' context='ui-update-globalComposition'> </BeanValidator> @@ -112,7 +114,9 @@ <Table fill='both' constraints='BorderLayout.NORTH'> <row> <cell weighty="1" weightx="1"> - <FilterableDoubleList id='mitigationType' genericType='ReferentialReference<MitigationTypeDto>' _entityClass='MitigationTypeDto.class'/> + <FilterableDoubleList id='mitigationType' + genericType='ReferentialReference<MitigationTypeDto>' + _entityClass='MitigationTypeDto.class'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java index 4d2ced8..a9d5ded 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java @@ -54,7 +54,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.8 */ -public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLonglineGlobalCompositionDto> { +public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLonglineGlobalCompositionDto, LonglineGlobalCompositionUI> { /** Logger */ private static final Log log = LogFactory.getLog(LonglineGlobalCompositionUIHandler.class); @@ -64,11 +64,6 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong } @Override - public LonglineGlobalCompositionUI getUi() { - return (LonglineGlobalCompositionUI) super.getUi(); - } - - @Override protected boolean computeCanWrite(ObserveSwingDataSource source) { return source.canWriteData(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx index 8345b48..0fd6436 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx @@ -20,7 +20,8 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='SetLonglineDto' contentTitle='{n("observe.content.setLongline.title")}'> +<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='SetLonglineDto, SetLonglineUI' + contentTitle='{n("observe.content.setLongline.title")}'> <import> fr.ird.observe.services.dto.CommentableDto @@ -39,13 +40,10 @@ fr.ird.observe.application.swing.ui.util.BooleanEditor jaxx.runtime.swing.editor.NumberEditor - org.nuiton.jaxx.widgets.datetime.TimeEditor jaxx.runtime.swing.editor.bean.BeanComboBox org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor org.nuiton.jaxx.widgets.datetime.DateTimeEditor - org.jdesktop.swingx.JXDatePicker - org.apache.commons.lang3.BooleanUtils java.awt.Dimension @@ -171,7 +169,9 @@ <JLabel id='settingShapeLabel'/> </cell> <cell columns="3" fill="both"> - <BeanComboBox id='settingShape' constructorParams='this' genericType='ReferentialReference<SettingShapeDto>' _entityClass='SettingShapeDto.class'/> + <BeanComboBox id='settingShape' constructorParams='this' + genericType='ReferentialReference<SettingShapeDto>' + _entityClass='SettingShapeDto.class'/> </cell> </row> <!-- setting vessel speed --> @@ -261,7 +261,9 @@ <JLabel id='lineTypeLabel'/> </cell> <cell columns="3"> - <BeanComboBox id='lineType' constructorParams='this' genericType='ReferentialReference<LineTypeDto>' _entityClass='LineTypeDto.class'/> + <BeanComboBox id='lineType' constructorParams='this' + genericType='ReferentialReference<LineTypeDto>' + _entityClass='LineTypeDto.class'/> </cell> </row> <!-- weighted swivels --> @@ -306,7 +308,9 @@ <JLabel id='lightsticksTypeLabel'/> </cell> <cell columns="3"> - <BeanComboBox id='lightsticksType' constructorParams='this' genericType='ReferentialReference<LightsticksTypeDto>' _entityClass='LightsticksTypeDto.class'/> + <BeanComboBox id='lightsticksType' constructorParams='this' + genericType='ReferentialReference<LightsticksTypeDto>' + _entityClass='LightsticksTypeDto.class'/> </cell> </row> <!-- lightsticks color --> @@ -315,7 +319,9 @@ <JLabel id='lightsticksColorLabel'/> </cell> <cell columns="3"> - <BeanComboBox id='lightsticksColor' constructorParams='this' genericType='ReferentialReference<LightsticksColorDto>' _entityClass='LightsticksColorDto.class'/> + <BeanComboBox id='lightsticksColor' constructorParams='this' + genericType='ReferentialReference<LightsticksColorDto>' + _entityClass='LightsticksColorDto.class'/> </cell> </row> <!-- monitored --> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java index 02c0a18..fab54cd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java @@ -49,10 +49,7 @@ import org.nuiton.jaxx.widgets.gis.CoordinateFormat; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditorModel; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; -import java.awt.Component; -import java.awt.Container; import java.beans.PropertyChangeListener; import java.util.HashSet; import java.util.Set; @@ -65,7 +62,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto> { +public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto, SetLonglineUI> { /** Logger */ private static final Log log = LogFactory.getLog(SetLonglineUIHandler.class); @@ -102,11 +99,6 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto> { } @Override - public SetLonglineUI getUi() { - return (SetLonglineUI) super.getUi(); - } - - @Override protected boolean computeCanWrite(ObserveSwingDataSource source) { return source.canWriteData(); } @@ -155,42 +147,6 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto> { getUi().getHaulingStartCoordinates().getModel().addPropertyChangeListener(CoordinatesEditorModel.PROPERTY_FORMAT, onCoordinateFormatChangedListener); getUi().getHaulingEndCoordinates().getModel().addPropertyChangeListener(CoordinatesEditorModel.PROPERTY_FORMAT, onCoordinateFormatChangedListener); - getUi().setFocusCycleRoot(true); - getUi().setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { - - @Override - public Component getFirstComponent(Container aContainer) { - int selectedIndex = getUi().getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - return getUi().getHomeId(); - case 1: - return getUi().getSettingShape(); - case 2: - return getUi().getHaulingDirectionSameAsSetting(); - } - return super.getFirstComponent(aContainer); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getUi().getDelete(); - } - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(getUi().getHomeId())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(getUi().getHaulingDirectionSameAsSetting())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(getUi().getSettingShape().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - }); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx index 256be32..cde2155 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx @@ -20,8 +20,9 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='FloatingObjectTransmittingBuoyDto' - contentTitle='{n("observe.content.floatingObjectTransmittingBuoyOperation.title")}'> +<fr.ird.observe.application.swing.ui.content.ContentUI + superGenericType='FloatingObjectTransmittingBuoyDto, FloatingObjectTransmittingBuoyOperationUI' + contentTitle='{n("observe.content.floatingObjectTransmittingBuoyOperation.title")}'> <import> fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto @@ -34,7 +35,6 @@ fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction - fr.ird.observe.application.swing.ui.content.ContentUIModel jaxx.runtime.swing.editor.bean.BeanComboBox java.awt.Dimension @@ -59,18 +59,12 @@ <TransmittingBuoyDto id='transmittingBuoy2' initializer='new TransmittingBuoyDto()'/> <!-- validator --> - <BeanValidator id='validator' - autoField='true' - beanClass='fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto' - errorTableModel='{getErrorTableModel()}' - context='ui-update-objectOperation'> + <BeanValidator id='validator' errorTableModel='{getErrorTableModel()}' context='ui-update-objectOperation' + beanClass='fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto' autoField='true'> </BeanValidator> - <BeanValidator id='validatorBalise1' - beanClass='fr.ird.observe.services.dto.seine.TransmittingBuoyDto' - errorTableModel='{getErrorTableModel()}' - parentValidator='{validator}' - context='ui-update'> + <BeanValidator id='validatorBalise1' beanClass='fr.ird.observe.services.dto.seine.TransmittingBuoyDto' + errorTableModel='{getErrorTableModel()}' parentValidator='{validator}' context='ui-update'> <field name="transmittingBuoyType" component="transmittingBuoyType1"/> <field name="transmittingBuoyOperation" component="transmittingBuoyOperation1"/> <field name="ownership" component="ownership1"/> @@ -78,11 +72,8 @@ <field name="country" component="country1"/> </BeanValidator> - <BeanValidator id='validatorBalise2' - beanClass='fr.ird.observe.services.dto.seine.TransmittingBuoyDto' - errorTableModel='{getErrorTableModel()}' - parentValidator='{validator}' - context='ui-update'> + <BeanValidator id='validatorBalise2' beanClass='fr.ird.observe.services.dto.seine.TransmittingBuoyDto' + errorTableModel='{getErrorTableModel()}' parentValidator='{validator}' context='ui-update'> <field name="transmittingBuoyType" component="transmittingBuoyType2"/> <field name="transmittingBuoyOperation" component="transmittingBuoyOperation2"/> <field name="ownership" component="ownership2"/> @@ -101,8 +92,7 @@ <JLabel id='typeOperationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='typeOperation' - genericType='TypeTransmittingBuoyOperation' + <EnumEditor id='typeOperation' genericType='TypeTransmittingBuoyOperation' constructorParams='TypeTransmittingBuoyOperation.class' onItemStateChanged='if(event.getStateChange()==ItemEvent.SELECTED && model.isEditing()) { getHandler().changeTypeOperation(typeOperation.getSelectedItem(), true); model.setModified(true); }'/> </cell> @@ -111,10 +101,8 @@ <JPanel id="transmittingBuoys" constraints="BorderLayout.CENTER"/> - <JScrollPane id='comment' constraints="BorderLayout.SOUTH" - onFocusGained='comment2.requestFocus()'> - <JTextArea id='comment2' - onKeyReleased='getBean().setComment(comment2.getText())'/> + <JScrollPane id='comment' constraints="BorderLayout.SOUTH" onFocusGained='comment2.requestFocus()'> + <JTextArea id='comment2' onKeyReleased='getBean().setComment(comment2.getText())'/> </JScrollPane> </JPanel> @@ -171,7 +159,8 @@ <JLabel id='country1Label'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='country1' constructorParams='this' genericType='ReferentialReference<CountryDto>' _entityClass='CountryDto.class'/> + <BeanComboBox id='country1' constructorParams='this' genericType='ReferentialReference<CountryDto>' + _entityClass='CountryDto.class'/> </cell> </row> <row> @@ -179,8 +168,7 @@ <JLabel id='code1Label'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='code1' - onKeyReleased='transmittingBuoy1.setCode(code1.getText())'/> + <JTextField id='code1' onKeyReleased='transmittingBuoy1.setCode(code1.getText())'/> </cell> </row> <row> @@ -188,8 +176,7 @@ <JLabel id='brand1Label'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='brand1' - onKeyReleased='transmittingBuoy1.setBrand(brand1.getText())'/> + <JTextField id='brand1' onKeyReleased='transmittingBuoy1.setBrand(brand1.getText())'/> </cell> </row> </Table> @@ -220,8 +207,7 @@ <JLabel id='ownership2Label'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='ownership2' - constructorParams='Ownership.class' + <EnumEditor id='ownership2' constructorParams='Ownership.class' onItemStateChanged='transmittingBuoy2.setOwnership((Ownership) ownership2.getSelectedItem())'/> </cell> </row> @@ -230,7 +216,8 @@ <JLabel id='country2Label'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='country2' constructorParams='this' genericType='ReferentialReference<CountryDto>' _entityClass='CountryDto.class'/> + <BeanComboBox id='country2' constructorParams='this' genericType='ReferentialReference<CountryDto>' + _entityClass='CountryDto.class'/> </cell> </row> <row> @@ -238,8 +225,7 @@ <JLabel id='code2Label'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='code2' - onKeyReleased='transmittingBuoy2.setCode(code2.getText())'/> + <JTextField id='code2' onKeyReleased='transmittingBuoy2.setCode(code2.getText())'/> </cell> </row> <row> @@ -247,8 +233,7 @@ <JLabel id='brand2Label'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='brand2' - onKeyReleased='transmittingBuoy2.setBrand(brand2.getText())'/> + <JTextField id='brand2' onKeyReleased='transmittingBuoy2.setBrand(brand2.getText())'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java index 8e4a2c3..6f46841 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java @@ -47,10 +47,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JPanel; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.SwingUtilities; -import java.awt.Component; -import java.awt.Container; import java.awt.GridLayout; import java.util.ArrayList; import java.util.Collection; @@ -62,7 +59,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIHandler<FloatingObjectTransmittingBuoyDto> { +public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIHandler<FloatingObjectTransmittingBuoyDto, FloatingObjectTransmittingBuoyOperationUI> { /** Logger */ private static final Log log = LogFactory.getLog(FloatingObjectTransmittingBuoyOperationUIHandler.class); @@ -72,11 +69,6 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } @Override - public FloatingObjectTransmittingBuoyOperationUI getUi() { - return (FloatingObjectTransmittingBuoyOperationUI) super.getUi(); - } - - @Override public FloatingObjectTransmittingBuoyOperationUIModel getModel() { return (FloatingObjectTransmittingBuoyOperationUIModel) super.getModel(); } @@ -105,41 +97,6 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } @Override - public void initUI() { - super.initUI(); - - FloatingObjectTransmittingBuoyOperationUI ui = getUi(); - - ui.setFocusCycleRoot(true); - ui.setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - - if (aComponent.equals(ui.getTypeOperation())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - return ui.getTypeOperation(); - } - - @Override - public Component getLastComponent(Container aContainer) { - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - if (ui.getReset().isEnabled()) { - return ui.getReset(); - } - return ui.getComment2(); - } - }); - } - - @Override public void openUI() { super.openUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx index d149fb1..47721bb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx @@ -20,7 +20,8 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='FloatingObjectDto' contentTitle='{n("observe.content.floatingObject.title")}'> +<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='FloatingObjectDto, FloatingObjectUI' + contentTitle='{n("observe.content.floatingObject.title")}'> <import> fr.ird.observe.services.dto.seine.FloatingObjectDto @@ -52,9 +53,8 @@ <FloatingObjectDto id='bean'/> <!-- validator --> - <BeanValidator id='validator' autoField='true' context='ui-create' - beanClass='fr.ird.observe.services.dto.seine.FloatingObjectDto' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validator' autoField='true' context='ui-create' errorTableModel='{getErrorTableModel()}' + beanClass='fr.ird.observe.services.dto.seine.FloatingObjectDto'/> <!-- formulaire --> <JPanel id="body" layout='{new BorderLayout()}'> @@ -64,7 +64,9 @@ <JLabel id='objectOperationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='objectOperation' constructorParams='this' genericType='ReferentialReference<ObjectOperationDto>' _entityClass='ObjectOperationDto.class'/> + <BeanComboBox id='objectOperation' constructorParams='this' + genericType='ReferentialReference<ObjectOperationDto>' + _entityClass='ObjectOperationDto.class'/> </cell> </row> <row> @@ -72,7 +74,8 @@ <JLabel id='objectTypeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='objectType' constructorParams='this' genericType='ReferentialReference<ObjectTypeDto>' _entityClass='ObjectTypeDto.class'/> + <BeanComboBox id='objectType' constructorParams='this' genericType='ReferentialReference<ObjectTypeDto>' + _entityClass='ObjectTypeDto.class'/> </cell> </row> <row> @@ -80,7 +83,8 @@ <JLabel id='objectFateLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='objectFate' constructorParams='this' genericType='ReferentialReference<ObjectFateDto>' _entityClass='ObjectFateDto.class'/> + <BeanComboBox id='objectFate' constructorParams='this' genericType='ReferentialReference<ObjectFateDto>' + _entityClass='ObjectFateDto.class'/> </cell> </row> <row> @@ -93,10 +97,8 @@ </row> <row> <cell columns='2' fill="both" weighty="0.7"> - <JScrollPane id='comment' - onFocusGained='comment2.requestFocus()'> - <JTextArea id='comment2' - onKeyReleased='getBean().setComment(comment2.getText())'/> + <JScrollPane id='comment' onFocusGained='comment2.requestFocus()'> + <JTextArea id='comment2' onKeyReleased='getBean().setComment(comment2.getText())'/> </JScrollPane> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java index 582a5b4..e4335b9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java @@ -41,17 +41,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.LayoutFocusTraversalPolicy; -import java.awt.Component; -import java.awt.Container; - import static org.nuiton.i18n.I18n.t; /** * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto> { +public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, FloatingObjectUI> { /** Logger */ private static final Log log = LogFactory.getLog(FloatingObjectUIHandler.class); @@ -61,11 +57,6 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto> } @Override - public FloatingObjectUI getUi() { - return (FloatingObjectUI) super.getUi(); - } - - @Override protected boolean computeCanWrite(ObserveSwingDataSource source) { return source.canWriteData(); } @@ -100,40 +91,6 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto> } @Override - public void initUI() { - super.initUI(); - - FloatingObjectUI ui = getUi(); - - ui.setFocusCycleRoot(true); - ui.setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getObjectOperation().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - return ui.getObjectOperation(); - } - - @Override - public Component getLastComponent(Container aContainer) { - if (ui.getDelete().isVisible() && ui.getDelete().isEnabled()) { - return ui.getDelete(); - } - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - return ui.getReset(); - } - }); - } - - @Override public void openUI() { super.openUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUI.jaxx index 8bb0f6e..638dc60 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUI.jaxx @@ -20,7 +20,8 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='SetSeineDto' contentTitle='{n("observe.content.setSeine.title")}'> +<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='SetSeineDto, SetSeineUI' + contentTitle='{n("observe.content.setSeine.title")}'> <import> fr.ird.observe.services.dto.CommentableDto @@ -38,8 +39,6 @@ org.nuiton.jaxx.widgets.datetime.DateTimeEditor - org.jdesktop.swingx.JXDatePicker - java.awt.Dimension static fr.ird.observe.application.swing.ui.UIHelper.getStringValue @@ -93,7 +92,8 @@ <JLabel id='reasonForNullSetLabel'/> </cell> <cell anchor='east' fill='both'> - <BeanComboBox id='reasonForNullSet' genericType='ReferentialReference<ReasonForNullSetDto>' _entityClass='ReasonForNullSetDto.class' constructorParams='this'/> + <BeanComboBox id='reasonForNullSet' genericType='ReferentialReference<ReasonForNullSetDto>' + _entityClass='ReasonForNullSetDto.class' constructorParams='this'/> </cell> </row> <row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java index 3b2a5a6..ec01a12 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java @@ -50,12 +50,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.JComponent; -import javax.swing.JSpinner; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; -import java.awt.Component; -import java.awt.Container; import java.beans.PropertyChangeListener; import java.util.Date; import java.util.HashSet; @@ -67,7 +62,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { +public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto, SetSeineUI> { /** Logger */ private static final Log log = LogFactory.getLog(SetSeineUIHandler.class); @@ -94,11 +89,6 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { }; } - @Override - public SetSeineUI getUi() { - return (SetSeineUI) super.getUi(); - } - public String updateTypeValue(SchoolType schoolType) { if (schoolType == null) { return t("observe.content.setSeine.schoolType.not.fill"); @@ -152,48 +142,6 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { ui.getEndPursingTimeStamp().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); ui.getEndSetTimeStamp().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); - ui.setFocusCycleRoot(true); - ui.setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.getParent().equals(ui.getStartTime().getHourEditor().getEditor())) { - return getLastComponent(aContainer); - } - case 1: - if (aComponent.equals(ui.getSchoolThickness().getTextField())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - JComponent editor = ui.getStartTime().getHourEditor().getEditor(); - return ((JSpinner.DateEditor) editor).getTextField(); - case 1: - return ui.getSchoolThickness(); - } - return super.getFirstComponent(aContainer); - } - - @Override - public Component getLastComponent(Container aContainer) { - if (ui.getDelete().isVisible() && ui.getDelete().isEnabled()) { - return ui.getDelete(); - } - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - return ui.getReset(); - } - }); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx index b40b058..f0091a0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx @@ -21,7 +21,7 @@ --> <fr.ird.observe.application.swing.ui.content.ContentUI - abstract='true' superGenericType='E' + abstract='true' superGenericType='E, U' genericType='E extends IdDto, C extends DataDto, U extends ContentListUI<E,C, U>'> <import> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java index a2efb7f..d98dabe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java @@ -61,7 +61,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.5 */ -public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U extends ContentListUI<E, C, U>> extends ContentUIHandler<E> { +public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U extends ContentListUI<E, C, U>> extends ContentUIHandler<E, U> { /** Logger */ private static final Log log = LogFactory.getLog(ContentListUIHandler.class); @@ -89,11 +89,6 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U } @Override - public U getUi() { - return (U) super.getUi(); - } - - @Override public final ContentListUIModel<E, C> getModel() { return (ContentListUIModel<E, C>) super.getModel(); } @@ -110,53 +105,6 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U ListCellRenderer renderer2 = new EntityListCellRenderer(renderer, treeHelper); getUi().getList().setCellRenderer(renderer2); - getUi().setFocusCycleRoot(true); - getUi().setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() { - - private List<JComponent> actions; - - @Override - public Component getFirstComponent(Container aContainer) { - return getUi().getList(); - } - - public List<JComponent> getActions() { - if (actions == null) { - - actions = new ArrayList<>(); - actions.add(getUi().getGotoSelectedChild()); - actions.add(getUi().getReopenChild()); - actions.add(getUi().getCloseChild()); - actions.add(getUi().getGotoOpenChild()); - actions.add(getUi().getGotoOpenChild2()); - actions.add(getUi().getCreateChild()); - for (Component component : getUi().getExtraActions().getComponents()) { - if (component instanceof JButton) { - actions.add((JComponent) component); - } - } - actions.add(getUi().getMoveSelectedChildren()); - - } - List<JComponent> result = new ArrayList<>(actions); - Collections.reverse(result); - return result; - } - - @Override - public Component getLastComponent(Container aContainer) { - Optional<JComponent> optional = getActions().stream().filter(a -> a.isEnabled() && a.isVisible()).findFirst(); - return optional.isPresent() ? optional.get() : super.getLastComponent(aContainer); - } - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(getUi().getList())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - }); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java index 8e13d88..56536bd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java @@ -24,14 +24,13 @@ package fr.ird.observe.application.swing.ui.content.list.impl.seine; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; -import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; +import fr.ird.observe.application.swing.ui.content.ContentMode; +import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.service.data.seine.ActivitySeineService; -import fr.ird.observe.application.swing.ui.content.ContentMode; -import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx index ba5ebcd..bc7195b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx @@ -21,7 +21,7 @@ --> <fr.ird.observe.application.swing.ui.content.ContentUI - abstract='true' superGenericType='E' + abstract='true' superGenericType='E, U' genericType='E extends IdDto, U extends ContentOpenableUI<E, U>'> <import> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java index 491671c..bb95dae 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java @@ -39,16 +39,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.JComponent; -import java.awt.FocusTraversalPolicy; - import static org.nuiton.i18n.I18n.t; /** * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public abstract class ContentOpenableUIHandler<E extends IdDto, U extends ContentOpenableUI<E, U>> extends ContentUIHandler<E> { +public abstract class ContentOpenableUIHandler<E extends IdDto, U extends ContentOpenableUI<E, U>> extends ContentUIHandler<E, U> { protected static final String POSITION_OPENABLE = "positionOpenable"; @@ -67,21 +64,6 @@ public abstract class ContentOpenableUIHandler<E extends IdDto, U extends Conten protected abstract boolean obtainCanReopen(boolean create); - - public void initUI() { - - super.initUI(); - ((JComponent) ui).setFocusCycleRoot(true); - ((JComponent) ui).setFocusTraversalPolicy(createFocusTraversalPolicy(getUi())); - } - - protected abstract FocusTraversalPolicy createFocusTraversalPolicy(U ui); - - @Override - public U getUi() { - return (U) super.getUi(); - } - @Override public ContentOpenableUIModel<E> getModel() { return (ContentOpenableUIModel<E>) super.getModel(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java index b0fbc96..23fb43f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java @@ -40,11 +40,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.SwingUtilities; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -76,38 +72,6 @@ class ActivityLonglineUIHandler extends ContentOpenableUIHandler<ActivityLonglin } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(ActivityLonglineUI ui) { - return new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getTimeStamp().getDayDateEditor().getEditor())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); - } - return ui.getDelete(); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getComponentAfter(Container aContainer, Component aComponent) { - if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { - - // retour au début - return ui.getTimeStamp().getDayDateEditor().getEditor(); - } - if (aComponent.equals(ui.getCloseAndCreate())) { - - // retour au début - return ui.getTimeStamp().getDayDateEditor().getEditor(); - } - return super.getComponentAfter(aContainer, aComponent); - } - }; - } - - @Override protected boolean doOpenData() { boolean result = getOpenDataManager().canOpenActivityLongline(getSelectedParentId()); if (result) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUIHandler.java index 1ea6413..9e6dea6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUIHandler.java @@ -45,11 +45,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; import javax.swing.JTabbedPane; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.SwingUtilities; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.Date; import java.util.LinkedList; @@ -78,44 +74,6 @@ class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto,Tri n("observe.content.tripLongline.message.not.open")); } -// @Override -// public TripLonglineUI getUi() { -// return (TripLonglineUI) super.getUi(); -// } - - - @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(TripLonglineUI ui) { - return new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getTripType().getCombobox().getEditor().getEditorComponent())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); - } - return ui.getDelete(); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getComponentAfter(Container aContainer, Component aComponent) { - if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { - - // retour au début - return ui.getTripType(); - } - if (aComponent.equals(ui.getCloseAndCreate())) { - - // retour au début - return ui.getTripType(); - } - return super.getComponentAfter(aContainer, aComponent); - } - }; - } - @Override public boolean doCloseData() { boolean result = getOpenDataManager().isOpenTripLongline(getSelectedId()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java index de4ee78..381b4aa 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java @@ -43,14 +43,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.JComponent; -import javax.swing.JSpinner; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.SwingUtilities; import javax.swing.event.TableModelListener; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.HashSet; import java.util.Set; @@ -83,61 +77,6 @@ class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySeineDto, } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(ActivitySeineUI ui) { - return new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.getParent().equals(ui.getTime().getHourEditor().getEditor())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); - } - return ui.getDelete(); - } - break; - case 1: - if (aComponent.equals(ui.getVesselSpeed().getTextField())) { - return getLastComponent(aContainer); - } - case 2: - if (aComponent.equals(ui.getObservedSystem().getUniverseList())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - JComponent editor = ui.getTime().getHourEditor().getEditor(); - return ((JSpinner.DateEditor) editor).getTextField(); - case 1: - return ui.getVesselSpeed(); - case 2: return ui.getObservedSystem().getUniverseList(); - } - return super.getFirstComponent(aContainer); - } - - @Override - public Component getLastComponent(Container aContainer) { - if (getModel().isCreatingMode()) { - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - return ui.getReset(); - } else - return ui.getCloseAndCreate(); - } - }; - } - - @Override protected void prepareValidationContext() { super.prepareValidationContext(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java index b911436..6196f15 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java @@ -45,10 +45,6 @@ import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JOptionPane; -import javax.swing.LayoutFocusTraversalPolicy; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.Date; import static org.nuiton.i18n.I18n.n; @@ -71,38 +67,6 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> { } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(RouteUI ui) { - return new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getDate().getEditor())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); - } - return ui.getDelete(); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getComponentAfter(Container aContainer, Component aComponent) { - if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { - - // retour au début - return ui.getDate(); - } - if (aComponent.equals(ui.getCloseAndCreate())) { - - // retour au début - return ui.getDate(); - } - return super.getComponentAfter(aContainer, aComponent); - } - }; - } - - @Override protected ContentMode getContentMode(DataContext dataContext) { String routeId = getSelectedId(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUIHandler.java index 7a31c57..f2ef463 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -85,38 +85,6 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto, TripSein } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(TripSeineUI ui) { - return new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getCaptain().getCombobox().getEditor().getEditorComponent())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); - } - return ui.getDelete(); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getComponentAfter(Container aContainer, Component aComponent) { - if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { - - // retour au début - return ui.getCaptain(); - } - if (aComponent.equals(ui.getCloseAndCreate())) { - - // retour au début - return ui.getCaptain(); - } - return super.getComponentAfter(aContainer, aComponent); - } - }; - } - - @Override public void initUI() { super.initUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentI18nReferenceUI.jaxx similarity index 54% copy from application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUI.jaxx copy to application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentI18nReferenceUI.jaxx index 4001742..70df810 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentI18nReferenceUI.jaxx @@ -20,70 +20,21 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='VesselActivitySeineDto'> - - <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> +<ContentReferenceUI abstract='true' superGenericType='E, U' + genericType='E extends I18nReferentialDto, U extends ContentI18nReferenceUI<E, U>'> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus - fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel + fr.ird.observe.services.dto.referential.I18nReferentialDto + static org.nuiton.i18n.I18n.t static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n - </import> - - <!-- validator --> - <BeanValidator id='validator' autoField='true' context='ui-create' errorTableModel='{getErrorTableModel()}' - beanClass='fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto'/> - - <!-- model --> - <VesselActivitySeineUIModel id='model'/> - - <!-- edit bean --> - <VesselActivitySeineDto id='bean'/> - - <Table id='editTable'> - - <!-- uri --> - <row> - <cell anchor="west"> - <JLabel id='uriLabel' styleClass='unique'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='uri' styleClass='unique' onKeyReleased='getBean().setUri(uri.getText())'/> - </cell> - </row> - <!-- code / status --> - <row> - <cell anchor="west"> - <JLabel id='codeStatusLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> - </JPanel> - </cell> - </row> + </import> - <!-- needComment --> - <row> - <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> - </cell> - </row> - <!-- allowFad --> - <row> - <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='allowFad' onItemStateChanged='getBean().setAllowFad(allowFad.isSelected())'/> - </cell> - </row> - </Table> + <script> + @Override + public E getBean() { return (E) super.getBean(); } + </script> <Table id='editI18nTable'> <row> @@ -143,4 +94,5 @@ </cell> </row> </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + +</ContentReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentI18nReferenceUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentI18nReferenceUI.jcss new file mode 100644 index 0000000..a4ef0b7 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentI18nReferenceUI.jcss @@ -0,0 +1,71 @@ +#label1Label { + text:"observe.common.label1"; + labelFor:{label1}; +} + +#label1 { + text:{getStringValue(getBean().getLabel1())}; +} + +#label2Label { + text:"observe.common.label2"; + labelFor:{label2}; +} + +#label2 { + text:{getStringValue(getBean().getLabel2())}; +} + +#label3Label { + text:"observe.common.label3"; + labelFor:{label3}; +} + +#label3 { + text:{getStringValue(getBean().getLabel3())}; +} + +#label4Label { + text:"observe.common.label4"; + labelFor:{label4}; +} + +#label4 { + text:{getStringValue(getBean().getLabel4())}; +} + +#label5Label { + text:"observe.common.label5"; + labelFor:{label5}; +} + +#label5 { + text:{getStringValue(getBean().getLabel5())}; +} + +#label6Label { + text:"observe.common.label6"; + labelFor:{label6}; +} + +#label6 { + text:{getStringValue(getBean().getLabel6())}; +} + +#label7Label { + text:"observe.common.label7"; + labelFor:{label7}; +} + +#label7 { + text:{getStringValue(getBean().getLabel7())}; +} + +#label8Label { + text:"observe.common.label8"; + labelFor:{label8}; +} + +#label8 { + text:{getStringValue(getBean().getLabel8())}; +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jaxx index 9933a45..7bf35bf 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jaxx @@ -20,10 +20,9 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI abstract='true' - superGenericType='E' +<fr.ird.observe.application.swing.ui.content.ContentUI abstract='true' superGenericType='E, U' contentTitle='{t("observe.type.management", t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(bean.getClass())))}' - genericType='E extends ReferentialDto'> + genericType='E extends ReferentialDto, U extends ContentReferenceUI<E, U>'> <import> fr.ird.observe.services.dto.referential.ReferentialDto @@ -40,13 +39,15 @@ javax.swing.DefaultListModel javax.swing.ListSelectionModel javax.swing.JTable + javax.swing.JTextField javax.swing.UIManager javax.swing.table.TableCellRenderer static org.nuiton.i18n.I18n.t </import> - <java.lang.String id='pluralTypeI18nKey' initializer='t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(bean.getClass()))'/> + <java.lang.String id='pluralTypeI18nKey' + initializer='t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(bean.getClass()))'/> <java.lang.String id='typeI18nKey' initializer='t(ObserveI18nDecoratorHelper.getTypeI18nKey(bean.getClass()))'/> <java.lang.String id='listText' initializer='t("observe.type.list", pluralTypeI18nKey)'/> @@ -58,7 +59,9 @@ <ContentReferenceUIModel id='model' genericType='E'/> - <ContentReferenceUIHandler id='handler' genericType='E' constructorParams='this'/> + <ReferentialDto id='bean'/> + + <ContentReferenceUIHandler id='handler' genericType='E, U' constructorParams='(U) this'/> <BlockingLayerUI id='editKeyTableLayerUI'/> @@ -72,6 +75,8 @@ public static final String DETAIL_VIEW = "detailView"; public abstract SwingValidator<E> getValidator(); +public abstract JTextField getUri(); + public void decorateUniqueKeyTable(JTable table, TableCellRenderer renderer, JScrollPane pane) { @@ -98,12 +103,11 @@ viewLayout.addLayoutComponent(editView, DETAIL_VIEW); </JScrollPane> </JPanel> - <Table id="editView" insets="0" weightx="1" fill="both" - constraints="DETAIL_VIEW"> + <Table id="editView" insets="0" weightx="1" fill="both" constraints="DETAIL_VIEW"> <row> <cell anchor='north'> <!-- pour les autres propriétés du référentiel à editer --> - <Table id='editTable' fill='both' insets="1"/> + <Table id='editTable'/> </cell> </row> <row> @@ -131,12 +135,6 @@ viewLayout.addLayoutComponent(editView, DETAIL_VIEW); </Table> </cell> </row> - <!--row> - <cell weighty="1" anchor='north'> - <javax.swing.Box.Filler id='filler' - constructorParams='UIHelper.newMinDimension(), UIHelper.newMinDimension(), UIHelper.newMaxXDimension()'/> - </cell> - </row--> </Table> </JPanel> @@ -164,8 +162,7 @@ viewLayout.addLayoutComponent(editView, DETAIL_VIEW); </row> <row> <cell> - <Table id="detailActions" fill='both' insets="1,4,1,1" - visible='{model.isEditing()}'> + <Table id="detailActions" fill='both' insets="1,4,1,1" visible='{model.isEditing()}'> <row> <cell fill="both" weightx="1"> <Table fill="both" weightx="1" insets="1" visible='{!model.isReadingMode()}'> @@ -186,7 +183,6 @@ viewLayout.addLayoutComponent(editView, DETAIL_VIEW); <row> <cell fill="both" weightx="1"> <JButton id='backToList' onActionPerformed='getHandler().backToList()'/> - <!--onActionPerformed='getHandelr().backToList();if (!model.isModified() || fr.ird.observe.application.swing.ui.content.ContentUIHandler.checkEdit(this)) { stopEdit(); }'/--> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jcss index 47ea585..e325e6d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jcss @@ -103,6 +103,7 @@ #reset{ _observeAction:"ResetEditUIAction.ACTION_NAME"; enabled:{model.isModified()}; + visible:{model.isUpdatingMode()}; } #save { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java index 62ccbc2..c04f2f5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java @@ -93,23 +93,23 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ContentReferenceUIHandler<E extends ReferentialDto> extends ContentUIHandler<E> { +public class ContentReferenceUIHandler<E extends ReferentialDto, U extends ContentReferenceUI<E, U>> extends ContentUIHandler<E, U> { /** Logger */ private static final Log log = LogFactory.getLog(ContentReferenceUIHandler.class); private final Runnable revalidate; - private final ReferentialContentUIInitializer<E, ContentReferenceUI<E>> uiInitializer; + private final ReferentialContentUIInitializer<E, U> uiInitializer; - public ContentReferenceUIHandler(ContentReferenceUI<E> ui) { + public ContentReferenceUIHandler(U ui) { super(ui, null, null); uiInitializer = new ReferentialContentUIInitializer<>(ui); revalidate = () -> { // revalidate ui layout - ContentReferenceUI<E> ui1 = getUi(); + ContentReferenceUI<E, U> ui1 = getUi(); Container parent = ui1.getParent(); if (parent == null) { @@ -230,11 +230,6 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content } @Override - public ContentReferenceUI<E> getUi() { - return (ContentReferenceUI<E>) super.getUi(); - } - - @Override public ContentReferenceUIModel<E> getModel() { return getUi().getModel(); } @@ -367,7 +362,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content type = t(type); String message = t("observe.message.show.usages", type, decorator.toString(bean)); - ContentReferenceUI<E> ui = getUi(); + ContentReferenceUI<E, U> ui = getUi(); UsagesUI usagesUI = new UsagesUI(ui); usagesUI.init(message, null, null, usages, null); @@ -390,12 +385,13 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content uiInitializer.initUI(); - ContentReferenceUI<E> ui = getUi(); + U ui = getUi(); ui.getViewLayout().addPropertyChangeListener(CardLayout2Ext.SELECTED_PROPERTY_NAME, evt -> SwingUtilities.invokeLater(revalidate)); -// UIHelper.getLayer(ui.getEditKeyTable()).setUI(ui.getEditKeyTableLayerUI()); + ObserveSwingApplicationContext.get().getFocusManager().setFocusTraversalPolicy(ui); + } @Override @@ -410,7 +406,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content // Chargement des données updateUiWithReferenceSetsFromModel(); - ContentReferenceUI<E> ui = getUi(); + ContentReferenceUI<E, U> ui = getUi(); if (I18nReferentialDto.class.isAssignableFrom(model.getBeanType())) { // on met en gras le libelle selectionne en base @@ -455,7 +451,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content super.updateToolbarActions(); // on ajoute les deux actions showUsages et showUniqueKeys - ContentReferenceUI<E> ui = getUi(); + ContentReferenceUI<E, U> ui = getUi(); JToolBar toolBar = ui.getTitleRightToolBar(); toolBar.add(ui.getShowUniqueKeys(), 2); // toolBar.add(ui.getShowTechnicalInformations(), 2); @@ -465,7 +461,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content @Override public void startEditUI(String... binding) { - ContentReferenceUI<E> ui = getUi(); + U ui = getUi(); ContentReferenceUIModel<E> model = getModel(); @@ -549,7 +545,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content void createUI() { - ContentReferenceUI<E> ui = getUi(); + ContentReferenceUI<E, U> ui = getUi(); // force le mode creation getModel().setMode(ContentMode.CREATE); @@ -582,7 +578,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content public void stopEditUI() { super.stopEditUI(); - ContentReferenceUI<E> ui = getUi(); + U ui = getUi(); ContentReferenceUIModel<E> model = getModel(); if (model.getMode() != ContentMode.READ) { @@ -730,7 +726,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content @Override protected boolean doDelete(E bean) { - ContentReferenceUI<E> ui = getUi(); + ContentReferenceUI<E, U> ui = getUi(); ContentReferenceUIModel<E> model = getModel(); if (log.isInfoEnabled()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUI.jaxx index 595cce2..3326f7c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUI.jaxx @@ -20,11 +20,7 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI - superGenericType='ProgramDto' - - > - +<fr.ird.observe.application.swing.ui.content.ContentUI superGenericType='ProgramDto, ReferenceHomeUI'> <import> fr.ird.observe.services.dto.referential.ProgramDto fr.ird.observe.application.swing.ui.content.ContentMode @@ -34,7 +30,6 @@ <ReferenceHomeUIHandler id='handler' constructorParams='this'/> - <Table id='body' fill='both' weighty="1"> <row weighty="1" weightx="1"> <cell> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUIHandler.java index 30bfc5e..1739471 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUIHandler.java @@ -24,9 +24,9 @@ package fr.ird.observe.application.swing.ui.content.ref; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; +import fr.ird.observe.services.dto.referential.ProgramDto; /** * Created on 9/28/14. @@ -34,7 +34,7 @@ import fr.ird.observe.application.swing.ui.content.ContentUIHandler; * @author Tony Chemit - chemit@codelutin.com * @since XXX */ -public class ReferenceHomeUIHandler extends ContentUIHandler<ProgramDto> { +public class ReferenceHomeUIHandler extends ContentUIHandler<ProgramDto, ReferenceHomeUI> { public ReferenceHomeUIHandler(ReferenceHomeUI ui) { super(ui, null, null); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUIModel.java index bd0b3a0..197b62e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferenceHomeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref; * #L% */ -import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.application.swing.ui.content.ContentUIModel; +import fr.ird.observe.services.dto.referential.ProgramDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferentialContentUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferentialContentUIInitializer.java index c99ad10..67db91f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferentialContentUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ReferentialContentUIInitializer.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref; * #L% */ -import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.application.swing.ui.content.ContentUIInitializer; +import fr.ird.observe.services.dto.referential.ReferentialDto; /** * Created on 11/28/14. @@ -31,12 +31,9 @@ import fr.ird.observe.application.swing.ui.content.ContentUIInitializer; * @author Tony Chemit - chemit@codelutin.com * @since 3.9 */ -public class ReferentialContentUIInitializer<E extends ReferentialDto, UI extends ContentReferenceUI<E>> extends ContentUIInitializer<E, UI> { +public class ReferentialContentUIInitializer<E extends ReferentialDto, U extends ContentReferenceUI<E, U>> extends ContentUIInitializer<E, U> { -// /** Logger. */ -// private static final Log log = LogFactory.getLog(ReferentialContentUIInitializer.class); - - public ReferentialContentUIInitializer(UI ui) { + public ReferentialContentUIInitializer(U ui) { super(ui); } @@ -50,8 +47,4 @@ public class ReferentialContentUIInitializer<E extends ReferentialDto, UI extend } -// protected Decorator<ReferenceDto> getDecorator(Class<? extends ReferentialDto> dtoClass) { -// return ObserveSwingApplicationContext.get().getDecorator(ReferenceDto.class, dtoClass.getSimpleName()); -// } - } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/UniqueKeyTableModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/UniqueKeyTableModel.java index f7fd9d6..54ca68b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/UniqueKeyTableModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/UniqueKeyTableModel.java @@ -21,8 +21,8 @@ */ package fr.ird.observe.application.swing.ui.content.ref; -import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import javax.swing.table.AbstractTableModel; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/CountryUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/CountryUI.jaxx index cef1e33..b96eac0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/CountryUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/CountryUI.jaxx @@ -20,25 +20,21 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='CountryDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='CountryDto, CountryUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.CountryDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.CountryDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <CountryUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' constraints='BorderLayout.WEST'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -81,8 +75,7 @@ <JLabel id='iso2CodeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='iso2Code' - onKeyReleased='getBean().setIso2Code(iso2Code.getText())'/> + <JTextField id='iso2Code' onKeyReleased='getBean().setIso2Code(iso2Code.getText())'/> </cell> </row> @@ -92,84 +85,16 @@ <JLabel id='iso3CodeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='iso3Code' - onKeyReleased='getBean().setIso3Code(iso3Code.getText())'/> + <JTextField id='iso3Code' onKeyReleased='getBean().setIso3Code(iso3Code.getText())'/> </cell> </row> <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/CountryUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/CountryUIModel.java index d5ab75a..45a9049 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/CountryUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/CountryUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.CountryDto; /** * Created on 9/27/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/FpaZoneUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/FpaZoneUI.jaxx index 1b73d4d..7d05e3d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/FpaZoneUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/FpaZoneUI.jaxx @@ -20,20 +20,17 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='FpaZoneDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='FpaZoneDto, FpaZoneUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.FpaZoneDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel org.jdesktop.swingx.JXDatePicker static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> @@ -67,12 +64,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -80,8 +75,7 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> @@ -92,80 +86,11 @@ </cell> <cell anchor='west' weightx="1" fill="both"> <JPanel layout='{new GridLayout()}'> - <JXDatePicker id='startDate' - onActionPerformed='getBean().setStartDate(startDate.getDate())'/> - <JXDatePicker id='endDate' - onActionPerformed='getBean().setEndDate(endDate.getDate())'/> + <JXDatePicker id='startDate' onActionPerformed='getBean().setStartDate(startDate.getDate())'/> + <JXDatePicker id='endDate' onActionPerformed='getBean().setEndDate(endDate.getDate())'/> </JPanel> </cell> </row> </Table> - - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/FpaZoneUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/FpaZoneUIModel.java index 4ebdbee..493abcb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/FpaZoneUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/FpaZoneUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.FpaZoneDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.FpaZoneDto; /** * Created on 9/27/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicTypeUI.jaxx index 88f145d..4d594c9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicTypeUI.jaxx @@ -20,25 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='GearCaracteristicTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='GearCaracteristicTypeDto, GearCaracteristicTypeUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <GearCaracteristicTypeUIModel id='model'/> @@ -54,7 +51,7 @@ <JLabel id="uriLabel"/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='uri' onKeyReleased='getBean().setUri(uri.getText())'/> + <JTextField id='uri'/> </cell> </row> @@ -65,12 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,77 +73,9 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicTypeUIModel.java index 2456d74..eace8f9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto; /** * Created on 3/23/15. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicUI.jaxx index 5b56c3b..694d0d5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicUI.jaxx @@ -20,29 +20,26 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='GearCaracteristicDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='GearCaracteristicDto, GearCaracteristicUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.GearCaracteristicDto fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel jaxx.runtime.swing.editor.bean.BeanComboBox static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.GearCaracteristicDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <GearCaracteristicUIModel id='model'/> @@ -69,12 +66,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -82,8 +77,7 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> @@ -93,7 +87,9 @@ <JLabel id='gearCaracteristicTypeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='gearCaracteristicType' constructorParams='this' genericType='ReferentialReference<GearCaracteristicTypeDto>' _entityClass='GearCaracteristicTypeDto.class'/> + <BeanComboBox id='gearCaracteristicType' constructorParams='this' + genericType='ReferentialReference<GearCaracteristicTypeDto>' + _entityClass='GearCaracteristicTypeDto.class'/> </cell> </row> @@ -109,71 +105,4 @@ </Table> - - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicUIModel.java index 1aef09d..2a90e56 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearCaracteristicUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.GearCaracteristicDto; /** * Created on 3/23/15. @@ -42,7 +42,7 @@ public class GearCaracteristicUIModel extends ContentReferenceUIModel<GearCaract GearCaracteristicDto.PROPERTY_UNIT, }, new String[]{GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE + SUFFIX_SELECTED_ITEM, - GearCaracteristicDto.PROPERTY_UNIT + SUFFIX_TEXT} + GearCaracteristicDto.PROPERTY_UNIT + SUFFIX_TEXT} ); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUI.jaxx index 868b64e..88dbab2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUI.jaxx @@ -18,30 +18,27 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='GearDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='GearDto, GearUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> + <style source="../ContentI18nReferenceUI.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.GearDto fr.ird.observe.services.dto.referential.GearCaracteristicDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel org.nuiton.jaxx.widgets.select.FilterableDoubleList java.util.Collection static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus + static org.nuiton.i18n.I18n.t </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' - beanClass='fr.ird.observe.services.dto.referential.GearDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.GearDto' + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <GearUIModel id='model'/> @@ -76,12 +73,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' constraints='BorderLayout.WEST'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUI.jcss index f33ae6e..d94bbd7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUI.jcss @@ -30,10 +30,6 @@ icon:{getHandler().getErrorIconIfFalse(model.isGearCaracteristicTabValid())}; } -#editI18nTable2 { - border:{new TitledBorder(t("observe.common.libelles"))}; -} - #gearCaracteristicPane { verticalScrollBarPolicy:{JScrollPane.VERTICAL_SCROLLBAR_NEVER}; horizontalScrollBarPolicy:{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUIHandler.java index b0a5b11..82a8e69 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUIHandler.java @@ -22,10 +22,9 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ +import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.nuiton.validator.NuitonValidatorScope; @@ -40,12 +39,12 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.16 */ -public class GearUIHandler extends ContentReferenceUIHandler<GearDto> { +public class GearUIHandler extends ContentReferenceUIHandler<GearDto, GearUI> { // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener; - public GearUIHandler(ContentReferenceUI<GearDto> ui) { + public GearUIHandler(GearUI ui) { super(ui); computeTabValidStateListener = e -> { @@ -75,7 +74,7 @@ public class GearUIHandler extends ContentReferenceUIHandler<GearDto> { SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); computeTabValidState(errorTableModel); - ((GearUI) getUi()).getTabPane().setSelectedIndex(0); + getUi().getTabPane().setSelectedIndex(0); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUIModel.java index c2ed0ee..905780c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/GearUIModel.java @@ -23,8 +23,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; */ import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.GearDto; import java.util.Set; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/HarbourUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/HarbourUI.jaxx index f73746c..6ceb806 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/HarbourUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/HarbourUI.jaxx @@ -20,29 +20,26 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='HarbourDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='HarbourDto, HarbourUI'> <style source="ReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.HarbourDto fr.ird.observe.services.dto.referential.CountryDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel jaxx.runtime.swing.editor.bean.BeanComboBox org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' context='ui-create' - beanClass='fr.ird.observe.services.dto.referential.HarbourDto' - errorTableModel='{getErrorTableModel()}'> + <BeanValidator id='validator' autoField='true' context='ui-create' errorTableModel='{getErrorTableModel()}' + beanClass='fr.ird.observe.services.dto.referential.HarbourDto'> <field name='longitude' component='coordinates'/> <field name='latitude' component='coordinates'/> @@ -76,12 +73,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -112,7 +107,8 @@ <JLabel id='countryLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='country' constructorParams='this' genericType='ReferentialReference<CountryDto>' _entityClass='CountryDto.class'/> + <BeanComboBox id='country' constructorParams='this' genericType='ReferentialReference<CountryDto>' + _entityClass='CountryDto.class'/> </cell> </row> @@ -130,8 +126,7 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/HarbourUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/HarbourUIModel.java index 8de4bed..46c6732 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/HarbourUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/HarbourUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.HarbourDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.HarbourDto; /** * Created on 1/7/15. @@ -38,17 +38,17 @@ public class HarbourUIModel extends ContentReferenceUIModel<HarbourDto> { public HarbourUIModel() { super(HarbourDto.class, new String[]{HarbourDto.PROPERTY_NAME, - HarbourDto.PROPERTY_COUNTRY, - HarbourDto.PROPERTY_LOCODE, - HarbourDto.PROPERTY_LATITUDE, - HarbourDto.PROPERTY_LONGITUDE, - HarbourDto.PROPERTY_QUADRANT}, + HarbourDto.PROPERTY_COUNTRY, + HarbourDto.PROPERTY_LOCODE, + HarbourDto.PROPERTY_LATITUDE, + HarbourDto.PROPERTY_LONGITUDE, + HarbourDto.PROPERTY_QUADRANT}, new String[]{HarbourUI.BINDING_COUNTRY_SELECTED_ITEM, - HarbourUI.BINDING_HARBOUR_NAME_TEXT, - HarbourUI.BINDING_LOCODE_TEXT, - HarbourUI.BINDING_COORDINATES_LATITUDE, - HarbourUI.BINDING_COORDINATES_LONGITUDE, - HarbourUI.BINDING_COORDINATES_QUADRANT} + HarbourUI.BINDING_HARBOUR_NAME_TEXT, + HarbourUI.BINDING_LOCODE_TEXT, + HarbourUI.BINDING_COORDINATES_LATITUDE, + HarbourUI.BINDING_COORDINATES_LONGITUDE, + HarbourUI.BINDING_COORDINATES_QUADRANT} ); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/I18nReferenceEntity.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/I18nReferenceEntity.jcss deleted file mode 100644 index aa2e74e..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/I18nReferenceEntity.jcss +++ /dev/null @@ -1,92 +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% - */ -#label1Label { - text:"observe.common.label1"; - labelFor:{label1}; -} - -#label1 { - text:{getStringValue(bean.getLabel1())}; -} - -#label2Label { - text:"observe.common.label2"; - labelFor:{label2}; -} - -#label2 { - text:{getStringValue(bean.getLabel2())}; -} - -#label3Label { - text:"observe.common.label3"; - labelFor:{label3}; -} - -#label3 { - text:{getStringValue(bean.getLabel3())}; -} - -#label4Label { - text:"observe.common.label4"; - labelFor:{label4}; -} - -#label4 { - text:{getStringValue(bean.getLabel4())}; -} - -#label5Label { - text:"observe.common.label5"; - labelFor:{label5}; -} - -#label5 { - text:{getStringValue(bean.getLabel5())}; -} - -#label6Label { - text:"observe.common.label6"; - labelFor:{label6}; -} - -#label6 { - text:{getStringValue(bean.getLabel6())}; -} - -#label7Label { - text:"observe.common.label7"; - labelFor:{label7}; -} - -#label7 { - text:{getStringValue(bean.getLabel7())}; -} - -#label8Label { - text:"observe.common.label8"; - labelFor:{label8}; -} - -#label8 { - text:{getStringValue(bean.getLabel8())}; -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthLengthParameterUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthLengthParameterUI.jaxx index 860bf89..e61e3b3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthLengthParameterUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthLengthParameterUI.jaxx @@ -20,17 +20,16 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='LengthLengthParameterDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI + superGenericType='LengthLengthParameterDto, LengthLengthParameterUI'> <style source="ReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.SizeMeasureTypeDto fr.ird.observe.services.dto.referential.LengthLengthParameterDto fr.ird.observe.application.swing.ui.UIHelper - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel jaxx.runtime.swing.editor.NumberEditor jaxx.runtime.swing.editor.bean.BeanComboBox @@ -40,7 +39,7 @@ javax.swing.table.TableCellRenderer static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthLengthParameterUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthLengthParameterUIHandler.java index b0a645b..e1d91d4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthLengthParameterUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthLengthParameterUIHandler.java @@ -22,7 +22,6 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.services.dto.referential.LengthLengthParameterDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -40,12 +39,12 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class LengthLengthParameterUIHandler extends ContentReferenceUIHandler<LengthLengthParameterDto> { +public class LengthLengthParameterUIHandler extends ContentReferenceUIHandler<LengthLengthParameterDto, LengthLengthParameterUI> { // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener; - public LengthLengthParameterUIHandler(ContentReferenceUI<LengthLengthParameterDto> ui) { + public LengthLengthParameterUIHandler(LengthLengthParameterUI ui) { super(ui); computeTabValidStateListener = e -> { @@ -75,7 +74,7 @@ public class LengthLengthParameterUIHandler extends ContentReferenceUIHandler<Le SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); computeTabValidState(errorTableModel); - ((LengthLengthParameterUI) getUi()).getTabPane().setSelectedIndex(0); + getUi().getTabPane().setSelectedIndex(0); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUI.jaxx index f6bf375..082a22b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUI.jaxx @@ -20,12 +20,12 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='LengthWeightParameterDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI + superGenericType='LengthWeightParameterDto, LengthWeightParameterUI'> <style source="ReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.SexDto fr.ird.observe.services.dto.referential.SizeMeasureTypeDto @@ -33,7 +33,6 @@ fr.ird.observe.services.dto.referential.OceanDto fr.ird.observe.services.dto.referential.LengthWeightParameterDto fr.ird.observe.application.swing.ui.UIHelper - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel jaxx.runtime.swing.editor.NumberEditor jaxx.runtime.swing.editor.bean.BeanComboBox @@ -45,7 +44,7 @@ javax.swing.table.TableCellRenderer static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUIHandler.java index 096cbd3..f059032 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUIHandler.java @@ -22,10 +22,9 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ +import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.nuiton.validator.NuitonValidatorScope; @@ -40,12 +39,12 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.11 */ -public class LengthWeightParameterUIHandler extends ContentReferenceUIHandler<LengthWeightParameterDto> { +public class LengthWeightParameterUIHandler extends ContentReferenceUIHandler<LengthWeightParameterDto, LengthWeightParameterUI> { // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener; - public LengthWeightParameterUIHandler(ContentReferenceUI<LengthWeightParameterDto> ui) { + public LengthWeightParameterUIHandler(LengthWeightParameterUI ui) { super(ui); computeTabValidStateListener = e -> { @@ -75,7 +74,7 @@ public class LengthWeightParameterUIHandler extends ContentReferenceUIHandler<Le SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); computeTabValidState(errorTableModel); - ((LengthWeightParameterUI) getUi()).getTabPane().setSelectedIndex(0); + getUi().getTabPane().setSelectedIndex(0); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUIModel.java index 49a61c1..5f0395a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/LengthWeightParameterUIModel.java @@ -23,9 +23,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; */ import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; -import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; import java.util.Set; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/NeedCommentReferenceEntity.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/NeedCommentReferenceEntity.jcss deleted file mode 100644 index 9c6fe5d..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/NeedCommentReferenceEntity.jcss +++ /dev/null @@ -1,25 +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% - */ -#needComment { - text:"observe.common.needComment"; - selected:{bean.isNeedComment()}; -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OceanUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OceanUI.jaxx index 1811267..6078bbc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OceanUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OceanUI.jaxx @@ -20,25 +20,21 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='OceanDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='OceanDto, OceanUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.OceanDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' - beanClass='fr.ird.observe.services.dto.referential.OceanDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.OceanDto' + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <OceanUIModel id='model'/> @@ -54,8 +50,7 @@ <JLabel id='uriLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='uri' - onKeyReleased='getBean().setUri(uri.getText())'/> + <JTextField id='uri' onKeyReleased='getBean().setUri(uri.getText())'/> </cell> </row> @@ -66,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -79,76 +72,9 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OceanUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OceanUIModel.java index 32d1e6c..37fba7f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OceanUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OceanUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.OceanDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.OceanDto; /** * Created on 9/27/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OrganismUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OrganismUI.jaxx index 33022f7..bc3034d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OrganismUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OrganismUI.jaxx @@ -20,22 +20,20 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='OrganismDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='OrganismDto, OrganismUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.OrganismDto fr.ird.observe.services.dto.referential.CountryDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel jaxx.runtime.swing.editor.bean.BeanComboBox static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> @@ -58,8 +56,7 @@ <JLabel id='uriLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='uri' - onKeyReleased='getBean().setUri(uri.getText())'/> + <JTextField id='uri' onKeyReleased='getBean().setUri(uri.getText())'/> </cell> </row> @@ -70,12 +67,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -86,7 +81,8 @@ <JLabel id='countryLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='country' constructorParams='this' genericType='ReferentialReference<CountryDto>' _entityClass='CountryDto.class'/> + <BeanComboBox id='country' constructorParams='this' genericType='ReferentialReference<CountryDto>' + _entityClass='CountryDto.class'/> </cell> </row> @@ -96,84 +92,18 @@ <JLabel id='descriptionLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='description' - onKeyReleased='getBean().setDescription(description.getText())'/> + <JTextField id='description' onKeyReleased='getBean().setDescription(description.getText())'/> </cell> </row> <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OrganismUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OrganismUIModel.java index 1b5ba0d..c67a242 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OrganismUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/OrganismUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.OrganismDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.OrganismDto; /** * Created on 9/27/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/PersonUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/PersonUI.jaxx index 7f699e5..fb36489 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/PersonUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/PersonUI.jaxx @@ -20,7 +20,7 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='PersonDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='PersonDto, PersonUI'> <style source="ReferenceEntity.jcss"/> @@ -30,7 +30,6 @@ fr.ird.observe.services.dto.referential.PersonDto fr.ird.observe.services.dto.referential.CountryDto fr.ird.observe.application.swing.ui.UIHelper - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel javax.swing.JTable javax.swing.JScrollPane @@ -39,7 +38,7 @@ jaxx.runtime.swing.editor.bean.BeanComboBox static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> @@ -71,7 +70,7 @@ public void decorateUniqueKeyTable(JTable table, <JLabel id='uriLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='uri' onKeyReleased='getBean().setUri(uri.getText())'/> + <JTextField id='uri'/> </cell> </row> @@ -82,12 +81,10 @@ public void decorateUniqueKeyTable(JTable table, </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -120,15 +117,15 @@ public void decorateUniqueKeyTable(JTable table, <JLabel id='countryLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='country' constructorParams='this' genericType='ReferentialReference<CountryDto>' _entityClass='CountryDto.class'/> + <BeanComboBox id='country' constructorParams='this' genericType='ReferentialReference<CountryDto>' + _entityClass='CountryDto.class'/> </cell> </row> <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/PersonUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/PersonUIModel.java index 93fb9aa..5fb4e96 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/PersonUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/PersonUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.PersonDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.PersonDto; /** * Created on 9/27/14. @@ -48,12 +48,12 @@ public class PersonUIModel extends ContentReferenceUIModel<PersonDto> { }, new String[]{PersonDto.PROPERTY_CODE}, new String[]{PersonUI.BINDING_CODE_TEXT, - PersonUI.BINDING_FIRST_NAME_TEXT, - PersonUI.BINDING_LAST_NAME_TEXT, - PersonUI.BINDING_CAPTAIN_SELECTED, - PersonUI.BINDING_OBSERVER_SELECTED, - PersonUI.BINDING_DATA_ENTRY_OPERATOR_SELECTED, - PersonUI.BINDING_COUNTRY_SELECTED_ITEM, + PersonUI.BINDING_FIRST_NAME_TEXT, + PersonUI.BINDING_LAST_NAME_TEXT, + PersonUI.BINDING_CAPTAIN_SELECTED, + PersonUI.BINDING_OBSERVER_SELECTED, + PersonUI.BINDING_DATA_ENTRY_OPERATOR_SELECTED, + PersonUI.BINDING_COUNTRY_SELECTED_ITEM, } ); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUI.jaxx index 9592915..9fc60ad 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUI.jaxx @@ -20,10 +20,10 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ProgramDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ProgramDto, ProgramUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> + <style source="../ContentI18nReferenceUI.jcss"/> <import> fr.ird.observe.services.dto.constants.ReferenceStatus @@ -31,7 +31,6 @@ fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.ProgramDto fr.ird.observe.services.dto.referential.OrganismDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel fr.ird.observe.application.swing.ui.content.ref.impl.ProgramObservationEnum jaxx.runtime.swing.editor.bean.BeanComboBox @@ -41,12 +40,13 @@ java.awt.Dimension static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' context='ui-create' - beanClass='fr.ird.observe.services.dto.referential.ProgramDto' errorTableModel='{getErrorTableModel()}'/> + beanClass='fr.ird.observe.services.dto.referential.ProgramDto' + errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ProgramUIModel id='model'/> @@ -83,10 +83,9 @@ <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> <JTextField id='code' constraints='BorderLayout.WEST' onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -210,9 +209,8 @@ <JLabel id='nonTargetObservationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='nonTargetObservation' + <EnumEditor id='nonTargetObservation' genericType='ProgramObservationEnum' constructorParams='ProgramObservationEnum.class, getConfig().getNonTargetObservation()' - genericType='ProgramObservationEnum' onItemStateChanged='getBean().setNonTargetObservation(nonTargetObservation.getSelectedIndex())'/> </cell> @@ -223,9 +221,8 @@ <JLabel id='targetDiscardsObservationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='targetDiscardsObservation' + <EnumEditor id='targetDiscardsObservation' genericType='ProgramObservationEnum' constructorParams='ProgramObservationEnum.class, getConfig().getTargetDiscardsObservation()' - genericType='ProgramObservationEnum' onItemStateChanged='getBean().setTargetDiscardsObservation(targetDiscardsObservation.getSelectedIndex())'/> </cell> </row> @@ -236,9 +233,8 @@ <JLabel id='samplesObservationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='samplesObservation' + <EnumEditor id='samplesObservation' genericType='ProgramObservationEnum' constructorParams='ProgramObservationEnum.class, getConfig().getSamplesObservation()' - genericType='ProgramObservationEnum' onItemStateChanged='getBean().setSamplesObservation(samplesObservation.getSelectedIndex())'/> </cell> </row> @@ -248,9 +244,8 @@ <JLabel id='objectsObservationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='objectsObservation' + <EnumEditor id='objectsObservation' genericType='ProgramObservationEnum' constructorParams='ProgramObservationEnum.class, getConfig().getObjectsObservation()' - genericType='ProgramObservationEnum' onItemStateChanged='getBean().setObjectsObservation(objectsObservation.getSelectedIndex())'/> </cell> </row> @@ -261,9 +256,8 @@ <JLabel id='detailledActivitiesObservationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='detailledActivitiesObservation' + <EnumEditor id='detailledActivitiesObservation' genericType='ProgramObservationEnum' constructorParams='ProgramObservationEnum.class, getConfig().getDetailledActivitiesObservation()' - genericType='ProgramObservationEnum' onItemStateChanged='getBean().setDetailledActivitiesObservation(detailledActivitiesObservation.getSelectedIndex())'/> </cell> </row> @@ -273,9 +267,8 @@ <JLabel id='mammalsObservationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='mammalsObservation' + <EnumEditor id='mammalsObservation' genericType='ProgramObservationEnum' constructorParams='ProgramObservationEnum.class, getConfig().getMammalsObservation()' - genericType='ProgramObservationEnum' onItemStateChanged='getBean().setMammalsObservation(mammalsObservation.getSelectedIndex())'/> </cell> </row> @@ -286,9 +279,8 @@ <JLabel id='birdsObservationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='birdsObservation' + <EnumEditor id='birdsObservation' genericType='ProgramObservationEnum' constructorParams='ProgramObservationEnum.class, getConfig().getBirdsObservation()' - genericType='ProgramObservationEnum' onItemStateChanged='getBean().setBirdsObservation(birdsObservation.getSelectedIndex())'/> </cell> </row> @@ -298,9 +290,8 @@ <JLabel id='baitObservationLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='baitObservation' + <EnumEditor id='baitObservation' genericType='ProgramObservationEnum' constructorParams='ProgramObservationEnum.class, getConfig().getBaitObservation()' - genericType='ProgramObservationEnum' onItemStateChanged='getBean().setBaitObservation(baitObservation.getSelectedIndex())'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUI.jcss index 2facc2a..e6cc669 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUI.jcss @@ -30,10 +30,6 @@ icon:{getHandler().getErrorIconIfFalse(model.isObservationsTabValid())}; } -#editI18nTable2 { - border:{new TitledBorder(t("observe.common.libelles"))}; -} - #organismLabel { text:"observe.common.organism"; labelFor:{organism}; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUIHandler.java index 70cc7d4..37d44e3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUIHandler.java @@ -22,10 +22,9 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ +import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.nuiton.validator.NuitonValidatorScope; @@ -40,12 +39,12 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.11 */ -public class ProgramUIHandler extends ContentReferenceUIHandler<ProgramDto> { +public class ProgramUIHandler extends ContentReferenceUIHandler<ProgramDto, ProgramUI> { // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener; - public ProgramUIHandler(ContentReferenceUI<ProgramDto> ui) { + public ProgramUIHandler(ProgramUI ui) { super(ui); computeTabValidStateListener = e -> { @@ -75,7 +74,7 @@ public class ProgramUIHandler extends ContentReferenceUIHandler<ProgramDto> { SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); computeTabValidState(errorTableModel); - ((ProgramUI) getUi()).getTabPane().setSelectedIndex(0); + getUi().getTabPane().setSelectedIndex(0); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUIModel.java index d323339..a620993 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ProgramUIModel.java @@ -23,8 +23,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; */ import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.ProgramDto; import java.util.Set; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ReferenceEntity.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ReferenceEntity.jcss index 46dde16..797fcf8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ReferenceEntity.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ReferenceEntity.jcss @@ -19,6 +19,9 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ +#editI18nTable2 { + border:{new TitledBorder(t("observe.common.libelles"))}; +} #code { text:{bean.getCode()}; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SexUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SexUI.jaxx index 86bb1f1..9c11fc1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SexUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SexUI.jaxx @@ -20,25 +20,20 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SexDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='SexDto, SexUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.SexDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' - beanClass='fr.ird.observe.services.dto.referential.SexDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.SexDto' + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <SexUIModel id='model'/> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,77 +71,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> + <Table id='editI18nTable'/> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SexUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SexUIModel.java index 5f11177..6d05e9e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SexUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SexUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.SexDto; /** * Created on 9/27/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ShipOwnerUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ShipOwnerUI.jaxx index 32df01c..329b92c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ShipOwnerUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/ShipOwnerUI.jaxx @@ -18,29 +18,24 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ShipOwnerDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ShipOwnerDto, ShipOwnerUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.ShipOwnerDto fr.ird.observe.services.dto.referential.CountryDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel jaxx.runtime.swing.editor.bean.BeanComboBox static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' - beanClass='fr.ird.observe.services.dto.referential.ShipOwnerDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.ShipOwnerDto' + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ShipOwnerUIModel id='model'/> @@ -67,10 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -98,8 +93,7 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SizeMeasureTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SizeMeasureTypeUI.jaxx index 78cbdf1..aa0738f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SizeMeasureTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SizeMeasureTypeUI.jaxx @@ -19,19 +19,16 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SizeMeasureTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='SizeMeasureTypeDto, SizeMeasureTypeUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.SizeMeasureTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> @@ -65,12 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +73,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SizeMeasureTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SizeMeasureTypeUIModel.java index 1d44fb3..58e77b6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SizeMeasureTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SizeMeasureTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesGroupUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesGroupUI.jaxx index 4d875fb..5fdaf13 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesGroupUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesGroupUI.jaxx @@ -20,27 +20,23 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SpeciesGroupDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='SpeciesGroupDto, SpeciesGroupUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.SpeciesGroupDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel jaxx.runtime.swing.editor.NumberEditor static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' - beanClass='fr.ird.observe.services.dto.referential.SpeciesGroupDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.SpeciesGroupDto' + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <SpeciesGroupUIModel id='model'/> @@ -67,12 +63,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -80,77 +74,12 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesGroupUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesGroupUIModel.java index db22fb9..54daa17 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesGroupUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesGroupUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.SpeciesGroupDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.SpeciesGroupDto; /** * Created on 9/27/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUI.jaxx index d3f353e..4f84b55 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUI.jaxx @@ -19,19 +19,18 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SpeciesListDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI + superGenericType='SpeciesListDto, SpeciesListUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> + <style source="../ContentI18nReferenceUI.jcss"/> <import> fr.ird.observe.services.dto.referential.ReferentialReference - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.SpeciesListDto fr.ird.observe.services.dto.referential.SpeciesDto fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - jaxx.runtime.swing.editor.bean.BeanComboBox org.nuiton.jaxx.widgets.select.FilterableDoubleList javax.swing.DefaultListModel @@ -40,14 +39,13 @@ java.util.Collection static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus + static org.nuiton.i18n.I18n.t </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' - beanClass='fr.ird.observe.services.dto.referential.SpeciesListDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.SpeciesListDto' + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <SpeciesListUIModel id='model'/> @@ -82,12 +80,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' constraints='BorderLayout.WEST'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -175,8 +171,7 @@ <row> <cell weightx="1" weighty="1"> <JScrollPane id='speciesPane' layout='{new GridLayout(1,1)}'> - <FilterableDoubleList id='species' - genericType='ReferentialReference<SpeciesDto>' + <FilterableDoubleList id='species' genericType='ReferentialReference<SpeciesDto>' _entityClass='SpeciesDto.class'/> </JScrollPane> </cell> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUI.jcss index 326c992..e0b9f0f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUI.jcss @@ -30,10 +30,6 @@ icon:{getHandler().getErrorIconIfFalse(model.isSpeciesTabValid())}; } -#editI18nTable2 { - border:{new TitledBorder(t("observe.common.libelles"))}; -} - #speciesPane { verticalScrollBarPolicy:{JScrollPane.VERTICAL_SCROLLBAR_NEVER}; horizontalScrollBarPolicy:{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUIHandler.java index a3d5d04..8abdfac 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUIHandler.java @@ -22,10 +22,9 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ +import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SpeciesListDto; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.nuiton.validator.NuitonValidatorScope; @@ -40,12 +39,12 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.11 */ -public class SpeciesListUIHandler extends ContentReferenceUIHandler<SpeciesListDto> { +public class SpeciesListUIHandler extends ContentReferenceUIHandler<SpeciesListDto, SpeciesListUI> { // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener; - public SpeciesListUIHandler(ContentReferenceUI<SpeciesListDto> ui) { + public SpeciesListUIHandler(SpeciesListUI ui) { super(ui); computeTabValidStateListener = e -> { @@ -75,7 +74,7 @@ public class SpeciesListUIHandler extends ContentReferenceUIHandler<SpeciesListD SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); computeTabValidState(errorTableModel); - ((SpeciesListUI) getUi()).getTabPane().setSelectedIndex(0); + getUi().getTabPane().setSelectedIndex(0); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUIModel.java index 6d40cf8..88449a2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesListUIModel.java @@ -23,8 +23,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; */ import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.SpeciesListDto; import java.util.Set; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUI.jaxx index 9278e6e..3578be0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUI.jaxx @@ -20,14 +20,13 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SpeciesDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SpeciesDto, SpeciesUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> + <style source="../ContentI18nReferenceUI.jcss"/> <import> fr.ird.observe.services.dto.referential.ReferentialReference - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.SpeciesDto fr.ird.observe.services.dto.referential.SpeciesGroupDto fr.ird.observe.services.dto.referential.OceanDto @@ -40,12 +39,11 @@ java.util.Collection static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' - beanClass='fr.ird.observe.services.dto.referential.SpeciesDto' + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.SpeciesDto' context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> @@ -81,11 +79,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' constraints='BorderLayout.WEST'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUI.jcss index a34bafc..fd0d503 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUI.jcss @@ -30,10 +30,6 @@ icon:{getHandler().getErrorIconIfFalse(model.isOtherTabValid())}; } -#editI18nTable2 { - border:{new TitledBorder(t("observe.common.libelles"))}; -} - #homeIdFAOWormsIdLabel { font-style:"italic"; text:"observe.common.homeIdFAOWormsId"; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUIHandler.java index 1c90b1c..7d61a13 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUIHandler.java @@ -22,10 +22,9 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ +import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.nuiton.validator.NuitonValidatorScope; @@ -40,12 +39,12 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.11 */ -public class SpeciesUIHandler extends ContentReferenceUIHandler<SpeciesDto> { +public class SpeciesUIHandler extends ContentReferenceUIHandler<SpeciesDto, SpeciesUI> { // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener; - public SpeciesUIHandler(ContentReferenceUI<SpeciesDto> ui) { + public SpeciesUIHandler(SpeciesUI ui) { super(ui); computeTabValidStateListener = e -> { @@ -75,7 +74,7 @@ public class SpeciesUIHandler extends ContentReferenceUIHandler<SpeciesDto> { SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); computeTabValidState(errorTableModel); - ((SpeciesUI) getUi()).getTabPane().setSelectedIndex(0); + getUi().getTabPane().setSelectedIndex(0); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUIModel.java index e272fa1..4e6f1a0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/SpeciesUIModel.java @@ -23,8 +23,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; */ import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.SpeciesDto; import java.util.Set; @@ -77,16 +77,16 @@ public class SpeciesUIModel extends ContentReferenceUIModel<SpeciesDto> { public SpeciesUIModel() { super(SpeciesDto.class, new String[]{SpeciesDto.PROPERTY_SPECIES_GROUP, - SpeciesDto.PROPERTY_OCEAN, - SpeciesDto.PROPERTY_SIZE_MEASURE_TYPE, - SpeciesDto.PROPERTY_MIN_LENGTH, - SpeciesDto.PROPERTY_MAX_LENGTH, - SpeciesDto.PROPERTY_MIN_WEIGHT, - SpeciesDto.PROPERTY_MAX_WEIGHT, - SpeciesDto.PROPERTY_HOME_ID, - SpeciesDto.PROPERTY_FAO_CODE, - SpeciesDto.PROPERTY_WORMS_ID, - SpeciesDto.PROPERTY_SCIENTIFIC_LABEL}, + SpeciesDto.PROPERTY_OCEAN, + SpeciesDto.PROPERTY_SIZE_MEASURE_TYPE, + SpeciesDto.PROPERTY_MIN_LENGTH, + SpeciesDto.PROPERTY_MAX_LENGTH, + SpeciesDto.PROPERTY_MIN_WEIGHT, + SpeciesDto.PROPERTY_MAX_WEIGHT, + SpeciesDto.PROPERTY_HOME_ID, + SpeciesDto.PROPERTY_FAO_CODE, + SpeciesDto.PROPERTY_WORMS_ID, + SpeciesDto.PROPERTY_SCIENTIFIC_LABEL}, new String[]{ SpeciesDto.PROPERTY_SPECIES_GROUP + SUFFIX_SELECTED_ITEM, SpeciesDto.PROPERTY_SIZE_MEASURE_TYPE + SUFFIX_SELECTED_ITEM, diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselSizeCategoryUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselSizeCategoryUI.jaxx index f15862b..6aef844 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselSizeCategoryUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselSizeCategoryUI.jaxx @@ -20,25 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='VesselSizeCategoryDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI + superGenericType='VesselSizeCategoryDto, VesselSizeCategoryUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.VesselSizeCategoryDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.VesselSizeCategoryDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <VesselSizeCategoryUIModel id='model'/> @@ -65,12 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,8 +73,7 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> @@ -92,8 +86,7 @@ <JLabel id='gaugeLabelLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='gaugeLabel' - onKeyReleased='getBean().setGaugeLabel(gaugeLabel.getText())'/> + <JTextField id='gaugeLabel' onKeyReleased='getBean().setGaugeLabel(gaugeLabel.getText())'/> </cell> </row> @@ -103,8 +96,7 @@ <JLabel id='capacityLabelLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='capacityLabel' - onKeyReleased='getBean().setCapacityLabel(capacityLabel.getText())'/> + <JTextField id='capacityLabel' onKeyReleased='getBean().setCapacityLabel(capacityLabel.getText())'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselSizeCategoryUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselSizeCategoryUIModel.java index 1b6570e..c43260b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselSizeCategoryUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselSizeCategoryUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.VesselSizeCategoryDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.VesselSizeCategoryDto; /** * Created on 9/27/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselTypeUI.jaxx index f045afd..389649f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselTypeUI.jaxx @@ -20,25 +20,20 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='VesselTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='VesselTypeDto, VesselTypeUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.VesselTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' - beanClass='fr.ird.observe.services.dto.referential.VesselTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.VesselTypeDto' + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <VesselTypeUIModel id='model'/> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,8 +71,7 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> @@ -151,4 +143,4 @@ </cell> </row> </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselTypeUIModel.java index d8a6ee1..cf38b3a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.VesselTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.VesselTypeDto; /** * Created on 9/27/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUI.jaxx index 34f72f3..2e578a1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUI.jaxx @@ -20,20 +20,18 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='VesselDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='VesselDto, VesselUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> + <style source="../ContentI18nReferenceUI.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.VesselDto fr.ird.observe.services.dto.referential.VesselSizeCategoryDto fr.ird.observe.services.dto.referential.CountryDto fr.ird.observe.services.dto.referential.VesselTypeDto fr.ird.observe.services.dto.referential.ShipOwnerDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel jaxx.runtime.swing.editor.NumberEditor jaxx.runtime.swing.editor.bean.BeanComboBox @@ -41,12 +39,12 @@ org.jdesktop.swingx.JXDatePicker static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> - <BeanValidator id='validator' autoField='true' context='ui-create' - beanClass='fr.ird.observe.services.dto.referential.VesselDto' errorTableModel='{getErrorTableModel()}'/> + <BeanValidator id='validator' autoField='true' context='ui-create' errorTableModel='{getErrorTableModel()}' + beanClass='fr.ird.observe.services.dto.referential.VesselDto'/> <!-- model --> <VesselUIModel id='model'/> @@ -94,10 +92,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' constraints='BorderLayout.WEST'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -108,7 +106,9 @@ <JLabel id='vesselTypeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='vesselType' constructorParams='this' genericType='ReferentialReference<VesselTypeDto>' _entityClass='VesselTypeDto.class'/> + <BeanComboBox id='vesselType' constructorParams='this' + genericType='ReferentialReference<VesselTypeDto>' + _entityClass='VesselTypeDto.class'/> </cell> </row> @@ -118,7 +118,9 @@ <JLabel id='vesselSizeCategoryLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='vesselSizeCategory' constructorParams='this' genericType='ReferentialReference<VesselSizeCategoryDto>' _entityClass='VesselSizeCategoryDto.class'/> + <BeanComboBox id='vesselSizeCategory' constructorParams='this' + genericType='ReferentialReference<VesselSizeCategoryDto>' + _entityClass='VesselSizeCategoryDto.class'/> </cell> </row> @@ -128,7 +130,8 @@ <JLabel id='flagCountryLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='flagCountry' constructorParams='this' genericType='ReferentialReference<CountryDto>' _entityClass='CountryDto.class'/> + <BeanComboBox id='flagCountry' constructorParams='this' + genericType='ReferentialReference<CountryDto>' _entityClass='CountryDto.class'/> </cell> </row> @@ -331,7 +334,8 @@ <JLabel id='radioCallSignIdLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='radioCallSignId' onKeyReleased='getBean().setRadioCallSignId(radioCallSignId.getText())'/> + <JTextField id='radioCallSignId' + onKeyReleased='getBean().setRadioCallSignId(radioCallSignId.getText())'/> </cell> </row> @@ -351,7 +355,9 @@ <JLabel id='shipOwnerLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='shipOwner' constructorParams='this' genericType='ReferentialReference<ShipOwnerDto>' _entityClass='ShipOwnerDto.class'/> + <BeanComboBox id='shipOwner' constructorParams='this' + genericType='ReferentialReference<ShipOwnerDto>' + _entityClass='ShipOwnerDto.class'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUI.jcss index 25f573e..6a91ab7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUI.jcss @@ -30,10 +30,6 @@ icon:{getHandler().getErrorIconIfFalse(model.isOtherTabValid())}; } -#editI18nTable2 { - border:{new TitledBorder(t("observe.common.libelles"))}; -} - #codeStatusLabel { font-style:"italic"; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUIHandler.java index e09a56a..4b9aaa6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/VesselUIHandler.java @@ -22,10 +22,9 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ +import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.VesselDto; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.nuiton.validator.NuitonValidatorScope; @@ -40,12 +39,12 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.11 */ -public class VesselUIHandler extends ContentReferenceUIHandler<VesselDto> { +public class VesselUIHandler extends ContentReferenceUIHandler<VesselDto, VesselUI> { // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener; - public VesselUIHandler(ContentReferenceUI<VesselDto> ui) { + public VesselUIHandler(VesselUI ui) { super(ui); computeTabValidStateListener = e -> { @@ -75,7 +74,7 @@ public class VesselUIHandler extends ContentReferenceUIHandler<VesselDto> { SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); computeTabValidState(errorTableModel); - ((VesselUI) getUi()).getTabPane().setSelectedIndex(0); + getUi().getTabPane().setSelectedIndex(0); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/WeightMeasureTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/WeightMeasureTypeUI.jaxx index 856a689..070cc93 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/WeightMeasureTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/WeightMeasureTypeUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='WeightMeasureTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='WeightMeasureTypeDto, WeightMeasureTypeUI'> <style source="ReferenceEntity.jcss"/> - <style source="I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.WeightMeasureTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.WeightMeasureTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <WeightMeasureTypeUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' constraints='BorderLayout.WEST'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,9 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/WeightMeasureTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/WeightMeasureTypeUIModel.java index c086bee..fb10fd3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/WeightMeasureTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/WeightMeasureTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl; * #L% */ -import fr.ird.observe.services.dto.referential.WeightMeasureTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.WeightMeasureTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitHaulingStatusUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitHaulingStatusUI.jaxx index bb5d9d8..0b9b779 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitHaulingStatusUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitHaulingStatusUI.jaxx @@ -17,26 +17,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='BaitHaulingStatusDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='BaitHaulingStatusDto, BaitHaulingStatusUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <BaitHaulingStatusUIModel id='model'/> @@ -63,12 +59,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -76,76 +70,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitHaulingStatusUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitHaulingStatusUIModel.java index f55b8d4..6278c1c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitHaulingStatusUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitHaulingStatusUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitSettingStatusUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitSettingStatusUI.jaxx index 9dbca8f..48df2fa 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitSettingStatusUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitSettingStatusUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='BaitSettingStatusDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='BaitSettingStatusDto, BaitSettingStatusUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <BaitSettingStatusUIModel id='model'/> @@ -54,7 +50,7 @@ <JLabel id='uriLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='uri' onKeyReleased='getBean().setUri(uri.getText())'/> + <JTextField id='uri'/> </cell> </row> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitSettingStatusUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitSettingStatusUIModel.java index 8bdfadf..003f410 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitSettingStatusUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitSettingStatusUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitTypeUI.jaxx index 78e0e64..1e5d5fd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitTypeUI.jaxx @@ -19,26 +19,21 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='BaitTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='BaitTypeDto, BaitTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.BaitTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.BaitTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <BaitTypeUIModel id='model'/> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +71,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitTypeUIModel.java index 1c908ab..ff3e2c6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/BaitTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/CatchFateLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/CatchFateLonglineUI.jaxx index 6b6743f..199438b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/CatchFateLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/CatchFateLonglineUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='CatchFateLonglineDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='CatchFateLonglineDto, CatchFateLonglineUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <CatchFateLonglineUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/CatchFateLonglineUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/CatchFateLonglineUIModel.java index 4409231..ee2b09a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/CatchFateLonglineUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/CatchFateLonglineUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/EncounterTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/EncounterTypeUI.jaxx index 00bd34f..46ca0b6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/EncounterTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/EncounterTypeUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='EncounterTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='EncounterTypeDto, EncounterTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.EncounterTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.EncounterTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <EncounterTypeUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/EncounterTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/EncounterTypeUIModel.java index e7156fe..e95c0c0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/EncounterTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/EncounterTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HealthnessUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HealthnessUI.jaxx index 43ecd3f..332eba0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HealthnessUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HealthnessUI.jaxx @@ -19,26 +19,21 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='HealthnessDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='HealthnessDto, HealthnessUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.HealthnessDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.HealthnessDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <HealthnessUIModel id='model'/> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +71,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HealthnessUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HealthnessUIModel.java index 1a0b826..b3778ef 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HealthnessUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HealthnessUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.HealthnessDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.HealthnessDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookPositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookPositionUI.jaxx index 5eac718..15aed6d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookPositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookPositionUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='HookPositionDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='HookPositionDto, HookPositionUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.HookPositionDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.HookPositionDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <HookPositionUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookPositionUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookPositionUIModel.java index ed68a57..e35b3e1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookPositionUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookPositionUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.HookPositionDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.HookPositionDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookSizeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookSizeUI.jaxx index 473f19a..dccabc5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookSizeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookSizeUI.jaxx @@ -19,26 +19,21 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='HookSizeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='HookSizeDto, HookSizeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.HookSizeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.HookSizeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <HookSizeUIModel id='model'/> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +71,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookSizeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookSizeUIModel.java index 4347f23..9307c2b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookSizeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookSizeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.HookSizeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.HookSizeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookTypeUI.jaxx index 65eee0a..4e91df0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookTypeUI.jaxx @@ -19,26 +19,21 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='HookTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='HookTypeDto, HookTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.HookTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.HookTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <HookTypeUIModel id='model'/> @@ -54,7 +49,7 @@ <JLabel id='uriLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='uri' onKeyReleased='getBean().setUri(uri.getText())'/> + <JTextField id='uri'/> </cell> </row> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +71,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookTypeUIModel.java index e6a4dc2..a06e8a0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/HookTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.HookTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.HookTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemHorizontalPositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemHorizontalPositionUI.jaxx index 1c7adf8..4929a1a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemHorizontalPositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemHorizontalPositionUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ItemHorizontalPositionDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='ItemHorizontalPositionDto, ItemHorizontalPositionUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ItemHorizontalPositionUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemHorizontalPositionUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemHorizontalPositionUIModel.java index 72ae8c0..693411e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemHorizontalPositionUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemHorizontalPositionUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemVerticalPositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemVerticalPositionUI.jaxx index a8fddc1..3abd920 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemVerticalPositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemVerticalPositionUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ItemVerticalPositionDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='ItemVerticalPositionDto, ItemVerticalPositionUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ItemVerticalPositionUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemVerticalPositionUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemVerticalPositionUIModel.java index 4f884fb..a0bda66 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemVerticalPositionUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/ItemVerticalPositionUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksColorUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksColorUI.jaxx index 1d88979..933ec4c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksColorUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksColorUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='LightsticksColorDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='LightsticksColorDto, LightsticksColorUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.LightsticksColorDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.LightsticksColorDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <LightsticksColorUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksColorUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksColorUIModel.java index 1f06a5e..15cdb34 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksColorUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksColorUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.LightsticksColorDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.LightsticksColorDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksTypeUI.jaxx index 99291e0..d01bda7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksTypeUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='LightsticksTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='LightsticksTypeDto, LightsticksTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <LightsticksTypeUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksTypeUIModel.java index bb9081c..865d234 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LightsticksTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LineTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LineTypeUI.jaxx index 262c476..d35c383 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LineTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LineTypeUI.jaxx @@ -19,26 +19,21 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='LineTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='LineTypeDto, LineTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.LineTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.LineTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <LineTypeUIModel id='model'/> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +71,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LineTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LineTypeUIModel.java index 48d52a3..066861f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LineTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/LineTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.LineTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.LineTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MaturityStatusUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MaturityStatusUI.jaxx index f2c2b77..5801c90 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MaturityStatusUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MaturityStatusUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='MaturityStatusDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='MaturityStatusDto, MaturityStatusUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.MaturityStatusDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.MaturityStatusDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <MaturityStatusUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -84,8 +78,7 @@ <JPanel id='lowerValueUpperValuePanel' layout='{new GridLayout()}'> <JTextField id='lowerValue' constraints='BorderLayout.WEST' onKeyReleased='getBean().setLowerValue(lowerValue.getText())'/> - <JTextField id='upperValue' - onKeyReleased='getBean().setUpperValue(upperValue.getText())'/> + <JTextField id='upperValue' onKeyReleased='getBean().setUpperValue(upperValue.getText())'/> </JPanel> </cell> @@ -94,76 +87,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MaturityStatusUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MaturityStatusUIModel.java index 07b6001..2079f84 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MaturityStatusUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MaturityStatusUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.MaturityStatusDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.MaturityStatusDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MitigationTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MitigationTypeUI.jaxx index 6003981..7cdb3ac 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MitigationTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MitigationTypeUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='MitigationTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='MitigationTypeDto, MitigationTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.MitigationTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.MitigationTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <MitigationTypeUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MitigationTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MitigationTypeUIModel.java index 5b4de40..e56e4e1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MitigationTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/MitigationTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.MitigationTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.MitigationTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorBrandUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorBrandUI.jaxx index 7905fb7..3f59ad0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorBrandUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorBrandUI.jaxx @@ -19,26 +19,21 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SensorBrandDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SensorBrandDto, SensorBrandUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.SensorBrandDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.SensorBrandDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <SensorBrandUIModel id='model'/> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -89,8 +82,7 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorBrandUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorBrandUIModel.java index 9d8eb62..c678936 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorBrandUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorBrandUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorDataFormatUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorDataFormatUI.jaxx index b224407..474c1a0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorDataFormatUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorDataFormatUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SensorDataFormatDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='SensorDataFormatDto, SensorDataFormatUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <SensorDataFormatUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorDataFormatUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorDataFormatUIModel.java index 5808676..46507c1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorDataFormatUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorDataFormatUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorTypeUI.jaxx index d78ad39..9ae58a3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorTypeUI.jaxx @@ -19,26 +19,21 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SensorTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='SensorTypeDto, SensorTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.SensorTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.SensorTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <SensorTypeUIModel id='model'/> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +71,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorTypeUIModel.java index fe323ee..becce40 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SensorTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SettingShapeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SettingShapeUI.jaxx index 1daf410..a626e70 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SettingShapeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SettingShapeUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SettingShapeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='SettingShapeDto, SettingShapeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.SettingShapeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.SettingShapeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <SettingShapeUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SettingShapeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SettingShapeUIModel.java index 82d853c..007dcd3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SettingShapeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/SettingShapeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.SettingShapeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.SettingShapeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/StomacFullnessUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/StomacFullnessUI.jaxx index be305a1..4f30fd2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/StomacFullnessUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/StomacFullnessUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='StomacFullnessDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='StomacFullnessDto, StomacFullnessUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.StomacFullnessDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.StomacFullnessDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <StomacFullnessUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/StomacFullnessUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/StomacFullnessUIModel.java index ceacb38..f1dc559 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/StomacFullnessUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/StomacFullnessUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.StomacFullnessDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.StomacFullnessDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/TripTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/TripTypeUI.jaxx index d875087..f67287e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/TripTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/TripTypeUI.jaxx @@ -19,26 +19,21 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='TripTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='TripTypeDto, TripTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.TripTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.TripTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <TripTypeUIModel id='model'/> @@ -65,12 +60,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +71,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/TripTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/TripTypeUIModel.java index d4bf281..caca218 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/TripTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/TripTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.TripTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.TripTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/VesselActivityLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/VesselActivityLonglineUI.jaxx index 3a121bf..a9c170d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/VesselActivityLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/VesselActivityLonglineUI.jaxx @@ -19,26 +19,22 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='VesselActivityLonglineDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='VesselActivityLonglineDto, VesselActivityLonglineUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <VesselActivityLonglineUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/VesselActivityLonglineUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/VesselActivityLonglineUIModel.java index f6205d3..d723cfb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/VesselActivityLonglineUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/longline/VesselActivityLonglineUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.longline; * #L% */ -import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/DetectionModeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/DetectionModeUI.jaxx index 048f97c..8850249 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/DetectionModeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/DetectionModeUI.jaxx @@ -20,26 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='DetectionModeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='DetectionModeDto, DetectionModeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.DetectionModeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel - static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.DetectionModeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <DetectionModeUIModel id='model'/> @@ -66,12 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -79,76 +73,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/DetectionModeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/DetectionModeUIModel.java index fbfe989..114305f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/DetectionModeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/DetectionModeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.DetectionModeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.DetectionModeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectFateUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectFateUI.jaxx index cf3b142..80206ad 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectFateUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectFateUI.jaxx @@ -20,25 +20,21 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ObjectFateDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='ObjectFateDto, ObjectFateUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.ObjectFateDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.ObjectFateDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ObjectFateUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +72,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectFateUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectFateUIModel.java index bcb9953..e09610b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectFateUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectFateUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.ObjectFateDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.ObjectFateDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectOperationUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectOperationUI.jaxx index 1567268..e5c5689 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectOperationUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectOperationUI.jaxx @@ -20,25 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ObjectOperationDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='ObjectOperationDto, ObjectOperationUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.ObjectOperationDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.ObjectOperationDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ObjectOperationUIModel id='model'/> @@ -55,7 +52,7 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JTextField id='uri' - onKeyReleased='getBean().setUri(uri.getText())'/> + /> </cell> </row> @@ -66,12 +63,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -79,76 +74,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectOperationUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectOperationUIModel.java index a3bf544..b1d2a39 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectOperationUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectOperationUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectTypeUI.jaxx index ee88b98..269f1d7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectTypeUI.jaxx @@ -20,25 +20,21 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ObjectTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='ObjectTypeDto, ObjectTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.ObjectTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.ObjectTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ObjectTypeUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,77 +72,12 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectTypeUIModel.java index 5bd023f..899115d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObjectTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.ObjectTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.ObjectTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObservedSystemUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObservedSystemUI.jaxx index b688c79..2538fb2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObservedSystemUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObservedSystemUI.jaxx @@ -20,26 +20,23 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ObservedSystemDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='ObservedSystemDto, ObservedSystemUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.constants.seine.SchoolType fr.ird.observe.services.dto.referential.seine.ObservedSystemDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.ObservedSystemDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <fr.ird.observe.application.swing.ui.content.ref.impl.seine.ObservedSystemUIModel id='model'/> @@ -66,12 +63,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -82,8 +77,7 @@ <JLabel id='schoolTypeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <EnumEditor id='schoolType' constructorParams='SchoolType.class' - genericType='SchoolType' + <EnumEditor id='schoolType' constructorParams='SchoolType.class' genericType='SchoolType' onItemStateChanged='getBean().setSchoolType((SchoolType)schoolType.getSelectedItem())'/> </cell> </row> @@ -91,76 +85,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObservedSystemUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObservedSystemUIModel.java index adeb613..f6642d5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObservedSystemUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ObservedSystemUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.ObservedSystemDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.ObservedSystemDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForDiscardUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForDiscardUI.jaxx index 1011c99..c9be5d6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForDiscardUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForDiscardUI.jaxx @@ -20,25 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ReasonForDiscardDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='ReasonForDiscardDto, ReasonForDiscardUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ReasonForDiscardUIModel id='model'/> @@ -55,7 +52,7 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JTextField id='uri' - onKeyReleased='getBean().setUri(uri.getText())'/> + /> </cell> </row> @@ -66,12 +63,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -79,76 +74,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForDiscardUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForDiscardUIModel.java index 61eac01..619e2b5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForDiscardUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForDiscardUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNoFishingUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNoFishingUI.jaxx index e5daf7b..1712d93 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNoFishingUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNoFishingUI.jaxx @@ -20,26 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ReasonForNoFishingDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='ReasonForNoFishingDto, ReasonForNoFishingUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.ReasonForNoFishingDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> - <BeanValidator id='validator' - autoField='true' + <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.ReasonForNoFishingDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ReasonForNoFishingUIModel id='model'/> @@ -55,7 +51,7 @@ <JLabel id='uriLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='uri' onKeyReleased='getBean().setUri(uri.getText())'/> + <JTextField id='uri'/> </cell> </row> @@ -66,12 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -79,76 +73,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNoFishingUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNoFishingUIModel.java index c400ccc..66413ad 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNoFishingUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNoFishingUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.ReasonForNoFishingDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.ReasonForNoFishingDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNullSetUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNullSetUI.jaxx index 0fd5072..9aad190 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNullSetUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNullSetUI.jaxx @@ -20,25 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='ReasonForNullSetDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='ReasonForNullSetDto, ReasonForNullSetUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <ReasonForNullSetUIModel id='model'/> @@ -65,12 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +73,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNullSetUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNullSetUIModel.java index 3164469..5101423 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNullSetUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/ReasonForNullSetUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesFateUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesFateUI.jaxx index 2e99322..55b594b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesFateUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesFateUI.jaxx @@ -20,19 +20,17 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SpeciesFateDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='SpeciesFateDto, SpeciesFateUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.SpeciesFateDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel fr.ird.observe.application.swing.ui.util.BooleanEditor static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> @@ -64,10 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' constraints='BorderLayout.WEST'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -91,62 +89,6 @@ </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesStatusUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesStatusUI.jaxx index c74045a..6c2c906 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesStatusUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesStatusUI.jaxx @@ -20,25 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SpeciesStatusDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='SpeciesStatusDto, SpeciesStatusUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <SpeciesStatusUIModel id='model'/> @@ -65,12 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +73,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesStatusUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesStatusUIModel.java index f4bef7f..4ec416b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesStatusUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SpeciesStatusUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SurroundingActivityUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SurroundingActivityUI.jaxx index 68f391a..b481dce 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SurroundingActivityUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SurroundingActivityUI.jaxx @@ -20,25 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='SurroundingActivityDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='SurroundingActivityDto, SurroundingActivityUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.SurroundingActivityDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.SurroundingActivityDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <SurroundingActivityUIModel id='model'/> @@ -65,12 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,76 +73,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SurroundingActivityUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SurroundingActivityUIModel.java index 6d8f795..ba53d38 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SurroundingActivityUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/SurroundingActivityUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.SurroundingActivityDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.SurroundingActivityDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyOperationUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyOperationUI.jaxx index 1515d82..fd9eb37 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyOperationUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyOperationUI.jaxx @@ -20,25 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='TransmittingBuoyOperationDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='TransmittingBuoyOperationDto, TransmittingBuoyOperationUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <fr.ird.observe.application.swing.ui.content.ref.impl.seine.TransmittingBuoyOperationUIModel id='model'/> @@ -55,7 +52,7 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JTextField id='uri' - onKeyReleased='getBean().setUri(uri.getText())'/> + /> </cell> </row> @@ -66,12 +63,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -79,76 +74,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyOperationUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyOperationUIModel.java index cef733e..f051946 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyOperationUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyOperationUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyTypeUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyTypeUI.jaxx index 15c8e81..258229f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyTypeUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyTypeUI.jaxx @@ -20,25 +20,22 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='TransmittingBuoyTypeDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='TransmittingBuoyTypeDto, TransmittingBuoyTypeUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <TransmittingBuoyTypeUIModel id='model'/> @@ -65,12 +62,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -78,77 +73,11 @@ <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> + <Table id='editI18nTable'/> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyTypeUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyTypeUIModel.java index 72235f1..ecda282 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyTypeUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/TransmittingBuoyTypeUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUI.jaxx index 4001742..ec6cb22 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUI.jaxx @@ -20,18 +20,16 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='VesselActivitySeineDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='VesselActivitySeineDto, VesselActivitySeineUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> @@ -52,7 +50,7 @@ <JLabel id='uriLabel' styleClass='unique'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='uri' styleClass='unique' onKeyReleased='getBean().setUri(uri.getText())'/> + <JTextField id='uri' styleClass='unique'/> </cell> </row> @@ -63,10 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' constraints='BorderLayout.WEST'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -85,62 +83,6 @@ </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUIModel.java index 7739bcb..15f4c07 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/VesselActivitySeineUIModel.java @@ -22,9 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; -import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; +import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WeightCategoryUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WeightCategoryUI.jaxx index 73459af..934b014 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WeightCategoryUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WeightCategoryUI.jaxx @@ -20,18 +20,16 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='WeightCategoryDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI + superGenericType='WeightCategoryDto, WeightCategoryUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.seine.WeightCategoryDto fr.ird.observe.services.dto.referential.SpeciesDto fr.ird.observe.application.swing.ui.UIHelper - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel jaxx.runtime.swing.editor.bean.BeanComboBox @@ -40,14 +38,13 @@ javax.swing.table.TableCellRenderer static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.WeightCategoryDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <WeightCategoryUIModel id='model'/> @@ -99,12 +96,10 @@ public void decorateUniqueKeyTable(JTable table, </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -112,76 +107,11 @@ public void decorateUniqueKeyTable(JTable table, <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> + <Table id='editI18nTable'/> + +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WeightCategoryUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WeightCategoryUIModel.java index f4ef697..13c32e4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WeightCategoryUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WeightCategoryUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WindUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WindUI.jaxx index 354a26b..75b3b24 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WindUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WindUI.jaxx @@ -20,25 +20,21 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI superGenericType='WindDto'> +<fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI superGenericType='WindDto, WindUI'> <style source="../ReferenceEntity.jcss"/> - <style source="../I18nReferenceEntity.jcss"/> <import> - fr.ird.observe.services.dto.constants.ReferenceStatus fr.ird.observe.services.dto.referential.seine.WindDto - fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel static fr.ird.observe.application.swing.ui.UIHelper.getStringValue - static org.nuiton.i18n.I18n.n + fr.ird.observe.services.dto.constants.ReferenceStatus </import> <!-- validator --> <BeanValidator id='validator' autoField='true' beanClass='fr.ird.observe.services.dto.referential.seine.WindDto' - context='ui-create' - errorTableModel='{getErrorTableModel()}'/> + context='ui-create' errorTableModel='{getErrorTableModel()}'/> <!-- model --> <WindUIModel id='model'/> @@ -65,12 +61,10 @@ </cell> <cell anchor='east' weightx="1" fill="both"> <JPanel id='codeStatusPanel' layout='{new BorderLayout()}'> - <JTextField id='code' constraints='BorderLayout.WEST' - onKeyReleased='getBean().setCode(code.getText())'/> - <EnumEditor id='status' constraints='BorderLayout.CENTER' - constructorParams='ReferenceStatus.class' - genericType='ReferenceStatus' - onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())'/> + <JTextField id='code' onKeyReleased='getBean().setCode(code.getText())'/> + <EnumEditor id='status' constructorParams='ReferenceStatus.class' genericType='ReferenceStatus' + onItemStateChanged='getBean().setStatus((ReferenceStatus)status.getSelectedItem())' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -81,8 +75,7 @@ <JLabel id='speedRangeLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='speedRange' - onKeyReleased='getBean().setSpeedRange(speedRange.getText())'/> + <JTextField id='speedRange' onKeyReleased='getBean().setSpeedRange(speedRange.getText())'/> </cell> </row> @@ -92,85 +85,18 @@ <JLabel id='waveHeightLabel'/> </cell> <cell anchor='east' weightx="1" fill="both"> - <JTextField id='waveHeight' - onKeyReleased='getBean().setWaveHeight(waveHeight.getText())'/> + <JTextField id='waveHeight' onKeyReleased='getBean().setWaveHeight(waveHeight.getText())'/> </cell> </row> <!-- needComment --> <row> <cell anchor='east' weightx="1" fill="both" columns="2"> - <JCheckBox id='needComment' - onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> + <JCheckBox id='needComment' onItemStateChanged='getBean().setNeedComment(needComment.isSelected())'/> </cell> </row> </Table> - <Table id='editI18nTable'> - <row> - <cell anchor="west"> - <JLabel id='label1Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label1' - onKeyReleased='getBean().setLabel1(label1.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label2Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label2' - onKeyReleased='getBean().setLabel2(label2.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label3Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label3' - onKeyReleased='getBean().setLabel3(label3.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label4Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label4' - onKeyReleased='getBean().setLabel4(label4.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label5Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label5' - onKeyReleased='getBean().setLabel5(label5.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label6Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label6' - onKeyReleased='getBean().setLabel6(label6.getText())'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='label7Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label7' - onKeyReleased='getBean().setLabel7(label7.getText())'/> - </cell> - <cell anchor="west"> - <JLabel id='label8Label'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JTextField id='label8' - onKeyReleased='getBean().setLabel8(label8.getText())'/> - </cell> - </row> - </Table> + <Table id='editI18nTable'/> -</fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI> +</fr.ird.observe.application.swing.ui.content.ref.ContentI18nReferenceUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WindUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WindUIModel.java index a637ce5..e021968 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WindUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/impl/seine/WindUIModel.java @@ -22,8 +22,8 @@ package fr.ird.observe.application.swing.ui.content.ref.impl.seine; * #L% */ -import fr.ird.observe.services.dto.referential.seine.WindDto; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIModel; +import fr.ird.observe.services.dto.referential.seine.WindDto; /** * Created on 9/28/14. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx index 58e3cdd..1a201e0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx @@ -22,7 +22,7 @@ <fr.ird.observe.application.swing.ui.content.ContentUI abstract='true' - superGenericType='E' implements="fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI<E, D, U>" + superGenericType='E, U' implements="fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI<E, D, U>" genericType='E extends IdDto, D extends IdDto, U extends ContentTableUI<E, D, U>'> <import> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java index 86c660f..84eb829 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java @@ -44,7 +44,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; @@ -54,8 +53,6 @@ import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.FocusTraversalPolicy; import java.awt.Rectangle; import java.beans.PropertyChangeListener; import java.io.Serializable; @@ -71,7 +68,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U extends ContentTableUI<E, D, U>> extends ContentUIHandler<E> { +public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U extends ContentTableUI<E, D, U>> extends ContentUIHandler<E, U> { /** Logger */ private static final Log log = LogFactory.getLog(ContentTableUIHandler.class); @@ -135,11 +132,6 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U return (ContentTableUIModel<E, D>) super.getModel(); } - @Override - public U getUi() { - return (U) super.getUi(); - } - public final D getTableEditBean() { return getModel().getTableEditBean(); } @@ -220,8 +212,6 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U protected abstract void loadEditBean(String beanId); - protected abstract FocusTraversalPolicy createFocusTraversalPolicy(U ui); - @Override public void initUI() { @@ -229,31 +219,6 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U uiInitializer.initUI(); getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM, evt -> updateUiWithReferenceSetsFromModel()); - ((JComponent) ui).setFocusCycleRoot(true); - ((JComponent) ui).setFocusTraversalPolicy(createFocusTraversalPolicy(getUi())); - } - - - protected Component getDefaultLastComponent(U ui, Component optionalComponent) { - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - if (ui.getReset().isEnabled()) { - return ui.getReset(); - } - if (optionalComponent != null) { - return optionalComponent; - } - if (ui.getDeleteEntry().isVisible() && ui.getDeleteEntry().isEnabled()) { - return ui.getDeleteEntry(); - } - if (ui.getSaveNewEntry().isVisible() && ui.getSaveNewEntry().isEnabled()) { - return ui.getSaveNewEntry(); - } - if (ui.getResetNewEntry().isVisible() && ui.getResetNewEntry().isEnabled()) { - return ui.getResetNewEntry(); - } - return ui.getResetEntry(); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ObserveContentTableUI.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ObserveContentTableUI.java index 951482a..dd87e0d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ObserveContentTableUI.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ObserveContentTableUI.java @@ -22,12 +22,14 @@ package fr.ird.observe.application.swing.ui.content.table; * #L% */ -import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.application.swing.ui.content.ObserveContentUI; +import fr.ird.observe.services.dto.IdDto; import jaxx.runtime.swing.BlockingLayerUI; import jaxx.runtime.validator.swing.SwingValidator; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.JTable; +import javax.swing.ListSelectionModel; /** * Created on 10/5/14. @@ -35,7 +37,7 @@ import javax.swing.*; * @author Tony Chemit - chemit@codelutin.com * @since XXX */ -public interface ObserveContentTableUI<E extends IdDto, D extends IdDto, U extends ContentTableUI<E,D, U>> extends ObserveContentUI<E> { +public interface ObserveContentTableUI<E extends IdDto, D extends IdDto, U extends ContentTableUI<E, D, U>> extends ObserveContentUI<E, U> { ContentTableUIHandler<E, D, U> getHandler(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java index 13377c4..644a4d1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java @@ -23,20 +23,18 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; */ import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.services.dto.longline.BaitsCompositionDto; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; -import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.FocusTraversalPolicy; - import static org.nuiton.i18n.I18n.n; /** @@ -55,11 +53,6 @@ public class BaitsCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(BaitsCompositionUI ui) { - return null; - } - - @Override protected void onSelectedRowChanged(int editingRow, BaitsCompositionDto bean, boolean create) { if (getTableModel().isEditable()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java index a0d947c..852d0a1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java @@ -23,20 +23,18 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; */ import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.services.dto.longline.BranchlinesCompositionDto; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.services.dto.referential.longline.HookSizeDto; import fr.ird.observe.services.dto.referential.longline.HookTypeDto; -import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.FocusTraversalPolicy; - import static org.nuiton.i18n.I18n.n; /** @@ -55,11 +53,6 @@ public class BranchlinesCompositionUIHandler extends ContentTableUIHandler<SetLo } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(BranchlinesCompositionUI ui) { - return null; - } - - @Override protected void onSelectedRowChanged(int editingRow, BranchlinesCompositionDto bean, boolean create) { if (getTableModel().isEditable()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java index 2ed9f6d..3146d7a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -76,12 +76,8 @@ import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.beans.PropertyChangeListener; import java.util.Calendar; import java.util.Collection; @@ -177,84 +173,6 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(CatchLonglineUI ui) { - return new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (getTableModel().isCreate()) { - if (aComponent.equals(ui.getAcquisitionModeIndividual())) { - return getLastComponent(aContainer); - } - } else { - if (aComponent.equals(ui.getSection().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } - - case 1: - if (aComponent.equals(ui.getDepredated())) { - return getLastComponent(aContainer); - } - case 2: - if (aComponent.equals(ui.getStomacFullness().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - case 5: - if (aComponent.equals(ui.getDepthRecorder())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (getTableModel().isCreate()) { - return ui.getAcquisitionModeIndividual(); - } else { - return ui.getSection(); - } - case 1: - return ui.getDepredated(); - case 2: - return ui.getStomacFullness(); - case 5: - return ui.getDepthRecorder(); - } - return super.getFirstComponent(aContainer); - } - - @Override - public Component getLastComponent(Container aContainer) { - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - if (ui.getReset().isEnabled()) { - return ui.getReset(); - } - if (ui.getDeleteEntry().isEnabled()) { - return ui.getDeleteEntry(); - } - if (ui.getSaveNewEntry().isEnabled()) { - return ui.getSaveNewEntry(); - } - if (ui.getResetEntry().isEnabled()) { - return ui.getResetEntry(); - } - - return super.getLastComponent(aContainer); - } - }; - } - - @Override public void openUI() { if (log.isInfoEnabled()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIHandler.java index 59063c5..76f9700 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/EncounterUIHandler.java @@ -43,11 +43,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.LinkedList; import java.util.Set; @@ -80,36 +76,6 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineEn } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(EncounterUI ui) { - return new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getEncounterType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - return ui.getEncounterType(); - } - - @Override - public Component getLastComponent(Container aContainer) { - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - if (ui.getReset().isEnabled()) { - return ui.getReset(); - } - return ui.getComment2(); - } - }; - } - - @Override protected void initTableUI(DefaultTableCellRenderer renderer) { JTable table = getUi().getTable(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java index c402d38..56b3624 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java @@ -23,19 +23,17 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; */ import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.services.dto.longline.FloatlinesCompositionDto; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.services.dto.referential.longline.LineTypeDto; -import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.FocusTraversalPolicy; - import static org.nuiton.i18n.I18n.n; /** @@ -54,11 +52,6 @@ public class FloatlinesCompositionUIHandler extends ContentTableUIHandler<SetLon } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(FloatlinesCompositionUI ui) { - return null; - } - - @Override protected void onSelectedRowChanged(int editingRow, FloatlinesCompositionDto bean, boolean create) { if (getTableModel().isEditable()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java index 13a708d..13b9f91 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java @@ -57,12 +57,8 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.awt.GridBagConstraints; import java.awt.Insets; import java.beans.PropertyChangeListener; @@ -104,40 +100,6 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(GearUseFeaturesLonglineUI ui) { - - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getGear().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - return ui.getGear(); - } - return super.getFirstComponent(aContainer); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(ui, null); - } - }; - - } - - @Override public GearUseFeaturesLonglineUIModel getModel() { return (GearUseFeaturesLonglineUIModel) super.getModel(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java index e3e2c88..266d1e8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java @@ -55,11 +55,6 @@ public class HooksCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(HooksCompositionUI ui) { - return null; - } - - @Override protected void onSelectedRowChanged(int editingRow, HooksCompositionDto bean, boolean create) { if (getTableModel().isEditable()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java index b1bd29b..a3cdf99 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java @@ -232,36 +232,6 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineS ActivityLonglineSensorUsedHelper.copyActivityLonglineSensorUsedDto(form.getObject(), getBean()); } - @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(SensorUsedUI ui) { - return new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getSensorType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - return ui.getSensorType(); - } - - @Override - public Component getLastComponent(Container aContainer) { - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - if (ui.getReset().isEnabled()) { - return ui.getReset(); - } - return ui.getComment2(); - } - }; - } - protected ActivityLongLineSensorUsedService getActivityLonglineSensorUsedService() { return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLongLineSensorUsedService(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java index 1617795..b0fa06a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java @@ -54,12 +54,9 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; @@ -208,79 +205,6 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(TdrUI ui) { - return new LayoutFocusTraversalPolicy() { - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - int selectedIndex = ui.getEditTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getHomeId())) { - return getLastComponent(aContainer); - } - case 1: - if (aComponent.equals(ui.getSection().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - case 2: - if (aComponent.equals(ui.getEnableTimestamp())) { - return getLastComponent(aContainer); - } - case 3: - if (aComponent.equals(ui.getFishingStartDepth())) { - return getLastComponent(aContainer); - } - case 4: - if (aComponent.equals(ui.getSpecies().getUniverseList())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - int selectedIndex = ui.getEditTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - return ui.getHomeId(); - case 1: - return ui.getSection(); - case 2: - return ui.getEnableTimestamp(); - case 3: - return ui.getFishingStartDepth(); - case 4: - return ui.getSpecies().getUniverseList(); - } - return super.getFirstComponent(aContainer); - } - - @Override - public Component getLastComponent(Container aContainer) { - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - if (ui.getReset().isEnabled()) { - return ui.getReset(); - } - if (ui.getDeleteEntry().isEnabled()) { - return ui.getDeleteEntry(); - } - if (ui.getSaveNewEntry().isEnabled()) { - return ui.getSaveNewEntry(); - } - if (ui.getResetEntry().isEnabled()) { - return ui.getResetEntry(); - } - - return super.getLastComponent(aContainer); - } - }; - } - - @Override public void openUI() { if (log.isInfoEnabled()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java index 932488b..06f1bda 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java @@ -45,8 +45,8 @@ import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; import fr.ird.observe.services.dto.seine.TripSeineGearUseHelper; -import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.services.service.data.seine.TripSeineGearUseService; +import fr.ird.observe.services.service.referential.ReferentialService; import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; @@ -57,12 +57,8 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.awt.GridBagConstraints; import java.awt.Insets; import java.beans.PropertyChangeListener; @@ -104,56 +100,6 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(GearUseFeaturesSeineUI ui) { - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getGear().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - return ui.getGear(); - } - return super.getFirstComponent(aContainer); - } - - @Override - public Component getLastComponent(Container aContainer) { - if (ui.getSave().isEnabled()) { - return ui.getSave(); - } - if (ui.getReset().isEnabled()) { - return ui.getReset(); - } - if (ui.getDeleteEntry().isVisible() && ui.getDeleteEntry().isEnabled()) { - return ui.getDeleteEntry(); - } - if (ui.getSaveNewEntry().isVisible() && ui.getSaveNewEntry().isEnabled()) { - return ui.getSaveNewEntry(); - } - if (ui.getResetNewEntry().isVisible() && ui.getResetNewEntry().isEnabled()) { - return ui.getResetNewEntry(); - } - if (ui.getResetEntry().isEnabled()) { - return ui.getResetEntry(); - } - return super.getLastComponent(aContainer); - } - }; - } - - @Override public GearUseFeaturesSeineUIModel getModel() { return (GearUseFeaturesSeineUIModel) super.getModel(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIHandler.java index ee42d6e..4968380 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetCatchUIHandler.java @@ -51,11 +51,7 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Collection; @@ -131,29 +127,6 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTa }; } - @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(NonTargetCatchUI ui) { - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - return ui.getSpecies(); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(ui, null); - } - }; - } - public String getCatchWeightDataTip(NonTargetCatchComputedValueSource computed) { String result; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java index aa464d0..efb230b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java @@ -46,11 +46,7 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -74,36 +70,6 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(NonTargetSampleUI ui) { - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getAcquisitionModeEffectif())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent()) && !ui.getAcquisitionModeEffectif().isEnabled()) { - return super.getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - if (ui.getAcquisitionModeEffectif().isEnabled()) { - return ui.getAcquisitionModeEffectif(); - } - return ui.getSizeMeasureType(); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(ui, ui.getComment2()); - } - }; - - } - - @Override public void resetIsWeightComputed() { getTableEditBean().setIsWeightComputed(false); getUi().getWeight().grabFocus(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java index da0e421..611678b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java @@ -23,6 +23,8 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -35,19 +37,13 @@ import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesHelper; import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; -import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.services.service.data.seine.ObjectObservedSpeciesService; -import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; +import fr.ird.observe.services.service.referential.ReferentialService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.LinkedList; import java.util.Set; @@ -68,29 +64,6 @@ public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<Floati } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(ObjectObservedSpeciesUI ui) { - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - return ui.getSpecies(); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(ui, ui.getComment2()); - } - }; - } - - @Override protected String getEditBeanIdToLoad() { return getDataContext().getSelectedFloatingObjectId(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java index 272ac1d..9a52183 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java @@ -23,6 +23,8 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -33,19 +35,13 @@ import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateHelper; import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; -import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.services.service.data.seine.ObjectSchoolEstimateService; -import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; +import fr.ird.observe.services.service.referential.ReferentialService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.LinkedList; import java.util.Set; @@ -67,29 +63,6 @@ public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<Floatin } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(ObjectSchoolEstimateUI ui) { - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - return ui.getSpecies(); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(ui, ui.getComment2()); - } - }; - } - - @Override protected void onSelectedRowChanged(int editingRow, ObjectSchoolEstimateDto bean, boolean create) { if (getTableModel().isEditable()) { if (log.isDebugEnabled()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIHandler.java index a663687..62b0afe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/SchoolEstimateUIHandler.java @@ -43,11 +43,7 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.Collections; import java.util.LinkedList; @@ -71,35 +67,6 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoo } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(SchoolEstimateUI ui) { - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getTotalWeight().getTextField()) && !ui.getSpecies().isEnabled()) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - if (ui.getSpecies().isEnabled()) { - return ui.getSpecies(); - } - return ui.getTotalWeight(); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(ui, ui.getComment2()); - } - }; - } - - @Override protected String getEditBeanIdToLoad() { return getDataContext().getSelectedSetId(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIHandler.java index d722d51..33a17bb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetCatchUIHandler.java @@ -51,11 +51,7 @@ import org.nuiton.decorator.Decorator; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.Collection; import java.util.Collections; import java.util.LinkedList; @@ -79,35 +75,6 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCa } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(TargetCatchUI ui) { - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getCatchWeight().getTextField()) && !ui.getSpecies().isEnabled()) { - return super.getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - if (ui.getSpecies().isEnabled()) { - return ui.getSpecies(); - } - return ui.getCatchWeight(); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(ui, ui.getTargetCatchCompositionEstimatedByObserver()); - } - }; - } - - @Override public void initUI() { super.initUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java index d9bceb4..a8469c7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java @@ -52,11 +52,7 @@ import org.nuiton.decorator.Decorator; import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -82,35 +78,6 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineT } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(TargetDiscardCatchUI ui) { - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getCatchWeight().getTextField()) && !ui.getSpecies().isEnabled()) { - return super.getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - if (ui.getSpecies().isEnabled()) { - return ui.getSpecies(); - } - return ui.getCatchWeight(); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(ui, ui.getTargetDiscardCatchCompositionEstimatedByObserver()); - } - }; - } - - @Override public void initUI() { super.initUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java index 20ff998..8525acb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java @@ -45,11 +45,7 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JTable; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.Component; -import java.awt.Container; -import java.awt.FocusTraversalPolicy; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedList; @@ -82,35 +78,6 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD } @Override - protected FocusTraversalPolicy createFocusTraversalPolicy(TargetSampleUI ui) { - return new LayoutFocusTraversalPolicy() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(ui.getAcquisitionModeEffectif())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent()) && !ui.getAcquisitionModeEffectif().isEnabled()) { - return super.getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { - if (ui.getAcquisitionModeEffectif().isEnabled()) { - return ui.getAcquisitionModeEffectif(); - } - return ui.getSizeMeasureType(); - } - - @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(ui, ui.getComment2()); - } - }; - } - - @Override public void resetIsWeightComputed() { getTableEditBean().setIsWeightComputed(false); getUi().getWeight().grabFocus(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveNavigationTreeShowPopupAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveNavigationTreeShowPopupAction.java index 8a39c71..3c4b1a5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveNavigationTreeShowPopupAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveNavigationTreeShowPopupAction.java @@ -251,7 +251,7 @@ public class ObserveNavigationTreeShowPopupAction { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); DataContext dataContext = applicationContext.getDataContext(); - ContentUI<?> selectedContentUI = applicationContext.getContentUIManager().getSelectedContentUI(); + ContentUI<?, ?> selectedContentUI = applicationContext.getContentUIManager().getSelectedContentUI(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); boolean closeActionEnabled = false; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 946b44c4142e6dbe164fdaf19893c1883596e643 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 10 11:56:57 2016 +0100 Ajout de raccourci clavier sur les actions des formulaires --- .../swing/ObserveSwingApplicationContext.java | 96 +++---------- .../application/swing/ui/ObserveMainUIHandler.java | 7 - .../ui/actions/shared/AbstractContentUIAction.java | 31 ++++ .../swing/ui/actions/shared/AbstractUIAction.java | 97 ++++++++++--- .../ui/actions/shared/CancelCreateUIAction.java | 20 ++- .../ui/actions/shared/CloseAndCreateUIAction.java | 114 +++++++-------- .../swing/ui/actions/shared/CloseOpenUIAction.java | 158 +++++---------------- .../ui/actions/shared/DeleteDataUIAction.java | 11 +- .../ui/actions/shared/DeleteReferenceUIAction.java | 25 ++-- .../actions/shared/DeleteTableEntryUIAction.java | 28 ++++ .../swing/ui/actions/shared/GoDownUIAction.java | 5 +- .../swing/ui/actions/shared/GoUpUIAction.java | 5 +- .../shared/MoveActivityLonglinesUIAction.java | 62 ++++---- .../actions/shared/MoveActivitySeinesUIAction.java | 57 ++++---- .../ui/actions/shared/MoveRoutesUIAction.java | 5 +- .../swing/ui/actions/shared/MoveTripsUIAction.java | 5 +- .../ui/actions/shared/NewTableEntryUIAction.java | 29 ++++ .../swing/ui/actions/shared/ReOpenUIAction.java | 50 +++---- .../swing/ui/actions/shared/ResetEditUIAction.java | 16 +-- .../ui/actions/shared/ResetTableEntryUIAction.java | 39 +++++ .../swing/ui/actions/shared/SaveEditUIAction.java | 13 +- .../ui/actions/shared/SaveTableEntryUIAction.java | 39 +++++ .../ui/actions/shared/SelectNodeUIAction.java | 3 +- .../ui/actions/shared/SelectOpenNodeUIAction.java | 11 +- .../application/swing/ui/content/ContentUI.jaxx | 2 +- .../swing/ui/content/ContentUIBlockingLayerUI.java | 113 +++++++++++++++ .../swing/ui/content/ContentUIInitializer.java | 28 +--- .../swing/ui/content/ObserveActionMap.java | 74 ++++++++++ .../swing/ui/content/open/ContentOpenableUI.jcss | 4 + .../swing/ui/content/table/ContentTableUI.jaxx | 23 ++- .../swing/ui/content/table/ContentTableUI.jcss | 31 ++-- .../ui/content/table/ContentTableUIHandler.java | 3 + .../content/table/ContentTableUIInitializer.java | 9 +- 33 files changed, 726 insertions(+), 487 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java index 1ed8e6b..9162cbc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java @@ -28,24 +28,7 @@ import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationCon import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.CancelCreateUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.CloseAndCreateUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.CloseOpenUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.DeleteDataUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.DeleteReferenceUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.GoDownUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.GoUpUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.MoveActivityLonglinesUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.MoveActivitySeinesUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.MoveRoutesUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.MoveTripLonglinesUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.MoveTripSeinesUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.ReOpenUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction; -import fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction; +import fr.ird.observe.application.swing.ui.content.ObserveActionMap; import fr.ird.observe.application.swing.ui.content.ContentUIManager; import fr.ird.observe.application.swing.ui.content.ObserveFocusManager; import fr.ird.observe.application.swing.validation.ValidationContext; @@ -63,7 +46,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.h2.tools.Server; -import javax.swing.ActionMap; import java.io.Closeable; import java.io.IOException; import java.util.Arrays; @@ -131,7 +113,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im VALIDATION_CONTEXT("Validation context", ValidationContext.class), MAIN_UI("Main UI", ObserveMainUI.class), ACTIONS("Command line Actions", ObserveCLAction.class), - ACTION_MAP("UI Actions", ActionMap.class), + ACTION_MAP("UI Actions", ObserveActionMap.class), H2_SERVER_MODE("H2 Server mode", Boolean.class), H2_SERVER("H2 Server", Server.class), H2_WEBSERVER("H2 Web server", Server.class), @@ -184,13 +166,6 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im private boolean closed; /** - * Un drapeau pour activer sur les connections le support JMX. - * - * @since 2.2 - */ - private boolean useJMX; - - /** * Récupération du contexte applicatif. * * @return l'instance partagé du contexte. @@ -238,10 +213,6 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im // - Read //------------------------------------------- - public boolean isUseJMX() { - return useJMX; - } - /** * @return {@code true} si le context applicatif a été fermé (et est donc * passé dans la méthode {@link #close()}, {@code false} autrement. @@ -306,7 +277,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im return NODE_TO_RESELECT.get(); } - public ActionMap getActionMap() { + public ObserveActionMap getActionMap() { return ACTION_MAP.get(); } @@ -338,10 +309,6 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im // - Write //------------------------------------------- - public void setUseJMX(boolean useJMX) { - this.useJMX = useJMX; - } - public void setNodesToReselect(String[] paths) { if (paths == null) { NODE_TO_RESELECT.remove(); @@ -361,6 +328,12 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im public void setMainUI(ObserveMainUI ui) { MAIN_UI.set(ui); + + ObserveActionMap actionMap = new ObserveActionMap(ui); + ui.getRootPane().setActionMap(actionMap); + + ACTION_MAP.set(actionMap); + } public void removeMainUI() { @@ -371,34 +344,6 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im H2_SERVER_MODE.remove(); } - - public void registerShareActions() { - - ObserveMainUI ui = getMainUI(); - ActionMap actionMap = ui.getRootPane().getActionMap(); - - ACTION_MAP.set(actionMap); - - registerMainAction(actionMap, new SelectOpenNodeUIAction(ui)); - registerMainAction(actionMap, new SelectNodeUIAction(ui)); - registerMainAction(actionMap, new GoUpUIAction(ui)); - registerMainAction(actionMap, new GoDownUIAction(ui)); - registerMainAction(actionMap, new ReOpenUIAction(ui)); - registerMainAction(actionMap, new CloseOpenUIAction(ui)); - registerMainAction(actionMap, new CloseAndCreateUIAction(ui)); - registerMainAction(actionMap, new CancelCreateUIAction(ui)); - registerMainAction(actionMap, new ResetEditUIAction(ui)); - registerMainAction(actionMap, new SaveEditUIAction(ui)); - registerMainAction(actionMap, new DeleteDataUIAction(ui)); - registerMainAction(actionMap, new DeleteReferenceUIAction(ui)); - registerMainAction(actionMap, new MoveTripLonglinesUIAction(ui)); - registerMainAction(actionMap, new MoveTripSeinesUIAction(ui)); - registerMainAction(actionMap, new MoveRoutesUIAction(ui)); - registerMainAction(actionMap, new MoveActivitySeinesUIAction(ui)); - registerMainAction(actionMap, new MoveActivityLonglinesUIAction(ui)); - - } - //------------------------------------------- // - Locks //------------------------------------------- @@ -469,21 +414,12 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im super.finalize(); } - private void registerMainAction(ActionMap actionMap, AbstractUIAction action) { - String actionId = action.getActionId(); - if (log.isInfoEnabled()) { - log.info("Register UI action " + actionId); - } - actionMap.put(actionId, action); - } - -// private ObjectName createMBean(DataSource source) throws MalformedObjectNameException { -// Hashtable<String, String> tb = new Hashtable<String, String>(); -// tb.put("type", "statistics"); -// String name = source.getLabel(); -// tb.put("sessionFactory", name.replaceAll(":", "_")); -// // MBean object name -// ObjectName on = new ObjectName("hibernate", tb); -// return on; +// private void registerMainAction(ActionMap actionMap, AbstractUIAction action) { +// String actionId = action.getActionId(); +// if (log.isInfoEnabled()) { +// log.info("Register UI action " + actionId); +// } +// actionMap.put(actionId, action); // } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java index b5e3d9c..f57b911 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java @@ -242,13 +242,6 @@ public class ObserveMainUIHandler { // set fullscreen propery on main ui ui.getGraphicsConfiguration().getDevice().setFullScreenWindow(config.isFullScreen() ? ui : null); - // on enregistre les actions communes à toutes les écrans d'édition - // les bouttons utilisant ces actions seront automatiquement - // chargés (à partir des actions) lors de l'ouverture des ui - // et mis à jour - - context.registerShareActions(); - new ObserveNavigationTreeShowPopupAction(treeHelper, ui.getNavigationScrollPane(), ui.getNavigationPopup()); return ui; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractContentUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractContentUIAction.java new file mode 100644 index 0000000..309f5eb --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractContentUIAction.java @@ -0,0 +1,31 @@ +package fr.ird.observe.application.swing.ui.actions.shared; + +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.content.ContentUI; + +import java.awt.event.ActionEvent; + +/** + * Created on 10/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public abstract class AbstractContentUIAction extends AbstractUIAction { + + + public AbstractContentUIAction(ObserveMainUI mainUI, String actionCommandKey, String label, String shortDescription, String actionIcon, String acceleratorKey) { + super(mainUI, actionCommandKey, label, shortDescription, actionIcon, acceleratorKey); + } + + protected abstract void actionPerformed(ContentUI<?, ?> contentUI); + + @Override + public final void actionPerformed(ActionEvent e) { + if (!canExecuteAction(e)) { + return; + } + ContentUI<?, ?> contentUI = getContentUI(e); + actionPerformed(contentUI); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java index ea9f4cd..99fa5f1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java @@ -27,6 +27,8 @@ import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import jaxx.runtime.SwingUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import javax.swing.AbstractAction; import javax.swing.AbstractButton; @@ -34,6 +36,7 @@ import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JPopupMenu; import javax.swing.JTree; +import javax.swing.KeyStroke; import javax.swing.tree.TreePath; import java.awt.event.ActionEvent; import java.util.Objects; @@ -50,42 +53,80 @@ public abstract class AbstractUIAction extends AbstractAction { private static final long serialVersionUID = 1L; - private final ObserveMainUI mainUI; + /** Logger */ + private static final Log log = LogFactory.getLog(AbstractUIAction.class); + + public static final String EDITOR = "editor"; - private final String actionId; + private final ObserveMainUI mainUI; public AbstractUIAction(ObserveMainUI mainUI, - String actionId, + String actionCommandKey, String label, String shortDescription, - String actionIcon) { + String actionIcon, + String acceleratorKey) { super(t(label), SwingUtil.getUIManagerActionIcon(actionIcon)); - this.actionId = actionId; + putValue(ACTION_COMMAND_KEY, actionCommandKey); this.mainUI = mainUI; - putValue(SHORT_DESCRIPTION, t(shortDescription)); + if (acceleratorKey != null) { + + KeyStroke keyStroke = KeyStroke.getKeyStroke(acceleratorKey); + Objects.requireNonNull(keyStroke, "KeyStroke invalide: " + acceleratorKey); + putValue(ACCELERATOR_KEY, keyStroke); + + String acceleratorStr = " (" + keyStroke.toString().replace(" pressed ", " + ") + ")"; + + putValue(NAME, t(label) + acceleratorStr); + putValue(SHORT_DESCRIPTION, t(shortDescription) + acceleratorStr); + } else { + + putValue(SHORT_DESCRIPTION, t(shortDescription)); + } } - public ObserveMainUI getMainUI() { - return mainUI; + public KeyStroke getAcceleratorKey() { + return (KeyStroke) getValue(ACCELERATOR_KEY); } - public String getActionId() { - return actionId; + public String getActionCommandKey() { + return (String) getValue(ACTION_COMMAND_KEY); + } + + public ObserveMainUI getMainUI() { + return mainUI; } public void initAction(ContentUI<?, ?> ui, AbstractButton editor) { editor.setAction(this); - editor.putClientProperty("mainUI", mainUI); + editor.putClientProperty("ui", ui); + putValue(EDITOR, editor); + KeyStroke keyStroke = getAcceleratorKey(); + if (keyStroke != null) { + String actionCommandKey = getActionCommandKey(); +// ui.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(keyStroke, actionCommandKey); + ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(keyStroke, actionCommandKey); + ui.getActionMap().put(actionCommandKey, this); + } } public void updateAction(ContentUI<?, ?> ui, AbstractButton editor) { - editor.putClientProperty("ui", ui); String tip = (String) editor.getClientProperty("toolTipText"); if (tip != null) { + KeyStroke keyStroke = getAcceleratorKey(); + if (keyStroke != null) { + String acceleratorStr = " (" + keyStroke.toString().replace(" pressed ", " + ") + ")"; + tip += acceleratorStr; + } editor.setToolTipText(tip); } String text = (String) editor.getClientProperty("text"); if (text != null) { + KeyStroke keyStroke = getAcceleratorKey(); + if (keyStroke != null) { + String acceleratorStr = " (" + keyStroke.toString().replace(" pressed ", " + ") + ")"; + text += acceleratorStr; + } editor.setText(text); } String actionIcon = (String) editor.getClientProperty("actionIcon"); @@ -95,9 +136,23 @@ public abstract class AbstractUIAction extends AbstractAction { } } - public static boolean isOpenActivityNodeCollapsed(JTree tree, - ObserveTreeHelper treeHelper, - DataContext dataContext) { + + protected boolean canExecuteAction(ActionEvent e) { + JComponent editor = getEditor(); + if (!(editor.isVisible() && editor.isEnabled())) { + if (log.isInfoEnabled()) { + log.info("Disabled action: " + getActionCommandKey() + " :: " + this); + } + return false; + } + return true; + } + + private JComponent getEditor() { + return (JComponent) getValue(EDITOR); + } + + public static boolean isOpenActivityNodeCollapsed(JTree tree, ObserveTreeHelper treeHelper, DataContext dataContext) { // on regarde si le noeud de l'activity ouverte est collapsé @@ -114,10 +169,17 @@ public abstract class AbstractUIAction extends AbstractAction { return tree.isCollapsed(activityPath); } - protected ContentUI<?, ?> getContentUI(ActionEvent e) { JComponent c = (JComponent) e.getSource(); - ContentUI<?, ?> ui = (ContentUI<?, ?>) c.getClientProperty("ui"); + ContentUI<?, ?> ui; + + if (c instanceof ContentUI) { + ui = (ContentUI<?, ?>) c; + } else if (c.getParent() instanceof ContentUI) { + ui = (ContentUI<?, ?>) c.getParent(); + } else { + ui = (ContentUI<?, ?>) c.getClientProperty("ui"); + } Objects.requireNonNull(ui, "could not find client property ui on component" + c); return ui; } @@ -128,5 +190,4 @@ public abstract class AbstractUIAction extends AbstractAction { Objects.requireNonNull(ui, "could not find client property popup on component" + c); return ui; } - } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java index 3bf739c..5fa99df 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java @@ -25,9 +25,6 @@ import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; - import static org.nuiton.i18n.I18n.n; /** @@ -37,7 +34,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class CancelCreateUIAction extends AbstractUIAction { +public class CancelCreateUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -48,17 +45,16 @@ public class CancelCreateUIAction extends AbstractUIAction { ACTION_NAME, n("observe.action.cancel"), n("observe.action.cancel.create.tip"), - "cancel" + "cancel", + "ctrl pressed R" ); } @Override - public void actionPerformed(final ActionEvent e) { - SwingUtilities.invokeLater(() -> { - ContentUI<?, ?> ui = getContentUI(e); - ui.stopEdit(); - ObserveNode parentNode = ui.getTreeHelper().removeNode(ui.getTreeHelper().getSelectedNode()); - ui.getTreeHelper().selectNode(parentNode); - }); + protected void actionPerformed(ContentUI<?, ?> ui) { + ui.stopEdit(); + ObserveNode parentNode = ui.getTreeHelper().removeNode(ui.getTreeHelper().getSelectedNode()); + ui.getTreeHelper().selectNode(parentNode); } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java index f26a4af..90b9118 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java @@ -34,9 +34,7 @@ import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import javax.swing.JTree; -import javax.swing.SwingUtilities; import javax.swing.tree.TreePath; -import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n.n; @@ -46,7 +44,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.5 */ -public class CloseAndCreateUIAction extends AbstractUIAction { +public class CloseAndCreateUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -57,90 +55,88 @@ public class CloseAndCreateUIAction extends AbstractUIAction { ACTION_NAME, n("observe.content.action.closeAndCreate"), n("observe.content.action.closeAndCreate.tip"), - "add" + "add", + "ctrl pressed N" ); } @Override - public void actionPerformed(final ActionEvent e) { + protected void actionPerformed(ContentUI<?, ?> ui) { - SwingUtilities.invokeLater(() -> { - ContentUI<?, ?> ui = getContentUI(e); + if (ui instanceof ContentOpenableUI) { + ((ContentOpenableUI<?, ?>) ui).closeAndCreateData(); + return; + } - if (ui instanceof ContentOpenableUI) { - ((ContentOpenableUI<?, ?>) ui).closeAndCreateData(); - return; - } - - if (ui instanceof ActivitySeinesUI) { - - // cas particulier pour l'écran des activitys + if (ui instanceof ActivitySeinesUI) { - JTree tree = getMainUI().getNavigation(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + // cas particulier pour l'écran des activitys - boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, treeHelper, getMainUI().getDataContext()); + JTree tree = getMainUI().getNavigation(); + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(ActivitySeineDto.class); + boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, treeHelper, getMainUI().getDataContext()); - // on conserve le path de l'activity - TreePath path = tree.getSelectionPath(); + // selection du noeud de l'activity ouverte + treeHelper.selectOpenNode(ActivitySeineDto.class); - // recuperation de l'écran associé - ActivitySeineUI selectedUI = (ActivitySeineUI) - ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + // on conserve le path de l'activity + TreePath path = tree.getSelectionPath(); - // fermeture de l'activity et création d'une nouvelle - selectedUI.closeAndCreateData(); + // recuperation de l'écran associé + ActivitySeineUI selectedUI = (ActivitySeineUI) + ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); - if (wasCollapsed) { + // fermeture de l'activity et création d'une nouvelle + selectedUI.closeAndCreateData(); - // on ferme le noeud de l'activity (qui a ete ouvert - // lors de la selection de celle-ci) - tree.collapsePath(path); - } + if (wasCollapsed) { - return; + // on ferme le noeud de l'activity (qui a ete ouvert + // lors de la selection de celle-ci) + tree.collapsePath(path); } - if (ui instanceof ActivityLonglinesUI) { + return; + } - // cas particulier pour l'écran des activitys + if (ui instanceof ActivityLonglinesUI) { - JTree tree = getMainUI().getNavigation(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + // cas particulier pour l'écran des activitys - boolean wasCollapsed = isOpenActivityNodeCollapsed( - tree, - treeHelper, - getMainUI().getDataContext() - ); + JTree tree = getMainUI().getNavigation(); + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(ActivityLonglineDto.class); + boolean wasCollapsed = isOpenActivityNodeCollapsed( + tree, + treeHelper, + getMainUI().getDataContext() + ); - // on conserve le path de l'activity - TreePath path = tree.getSelectionPath(); + // selection du noeud de l'activity ouverte + treeHelper.selectOpenNode(ActivityLonglineDto.class); - // recuperation de l'écran associé - ActivityLonglineUI selectedUI = (ActivityLonglineUI) - ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + // on conserve le path de l'activity + TreePath path = tree.getSelectionPath(); - // fermeture de l'activity et création d'une nouvelle - selectedUI.closeAndCreateData(); + // recuperation de l'écran associé + ActivityLonglineUI selectedUI = (ActivityLonglineUI) + ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); - if (wasCollapsed) { + // fermeture de l'activity et création d'une nouvelle + selectedUI.closeAndCreateData(); - // on ferme le noeud de l'activity (qui a ete ouvert - // lors de la selection de celle-ci) - tree.collapsePath(path); - } + if (wasCollapsed) { - return; + // on ferme le noeud de l'activity (qui a ete ouvert + // lors de la selection de celle-ci) + tree.collapsePath(path); } - throw new IllegalStateException("Can not come here!"); - }); + return; + } + + throw new IllegalStateException("Can not come here!"); } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java index fbdab1d..dd838ac 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java @@ -34,7 +34,6 @@ import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n.n; @@ -44,7 +43,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class CloseOpenUIAction extends AbstractUIAction { +public class CloseOpenUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -55,127 +54,48 @@ public class CloseOpenUIAction extends AbstractUIAction { ACTION_NAME, n("observe.action.close.open"), n("observe.action.close.open.tip"), - "close" + "close", + "ctrl pressed C" ); } @Override - public void actionPerformed(final ActionEvent e) { - - SwingUtilities.invokeLater(() -> { - ContentUI<?, ?> ui = getContentUI(e); - - if (ui instanceof ContentOpenableUI) { - ((ContentOpenableUI<?, ?>) ui).closeData(); - return; - } - - ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - - if (ui instanceof TripSeinesUI) { - String higherOpenId = applicationContext.getDataContext().getOpenTripSeineId(); - closeData(applicationContext, ui, higherOpenId); - return; - } - if (ui instanceof RoutesUI) { - String higherOpenId = applicationContext.getDataContext().getOpenRouteId(); - closeData(applicationContext, ui, higherOpenId); - return; - } - if (ui instanceof ActivitySeinesUI) { - String higherOpenId = applicationContext.getDataContext().getOpenActivitySeineId(); - closeData(applicationContext, ui, higherOpenId); - return; - } - - if (ui instanceof TripLonglinesUI) { - String higherOpenId = applicationContext.getDataContext().getOpenTripLonglineId(); - closeData(applicationContext, ui, higherOpenId); - return; - } - if (ui instanceof ActivityLonglinesUI) { - String higherOpenId = applicationContext.getDataContext().getOpenActivityLonglineId(); - closeData(applicationContext, ui, higherOpenId); - return; - } - -// if (ui instanceof ActivitySeinesUI) { -// -// // cas particulier pour l'écran des activités -// -// JTree tree = getMainUI().getNavigation(); -// ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); -// -// // recuperation du noeud courant (activitys) -// ObserveNode node = treeHelper.getSelectedNode(); -// -// boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, treeHelper, getMainUI().getDataContext()); -// -// // selection du noeud de l'activity ouverte -// treeHelper.selectOpenNode(ActivitySeineDto.class); -// -// // on conserve le path de l'activity -// TreePath path = tree.getSelectionPath(); -// -// // recuperation de l'écran associé -// ActivitySeineUI selectedUI = (ActivitySeineUI) -// applicationContext.getContentUIManager().getSelectedContentUI(); -// -// // fermeture de l'activity -// selectedUI.closeData(); -// -// if (wasCollapsed) { -// -// // on ferme le noeud de l'activity (qui a ete ouvert -// // lors de la selection de celle-ci) -// tree.collapsePath(path); -// } -// -// // retour sur le noeud des activitys -// treeHelper.selectNode(node); -// -// return; -// } -// -// if (ui instanceof ActivityLonglinesUI) { -// -// // cas particulier pour l'écran des activités -// -// JTree tree = getMainUI().getNavigation(); -// ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); -// -// // recuperation du noeud courant (activitys) -// ObserveNode node = treeHelper.getSelectedNode(); -// -// boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, treeHelper, getMainUI().getDataContext()); -// -// // selection du noeud de l'activity ouverte -// treeHelper.selectOpenNode(ActivityLonglineDto.class); -// -// // on conserve le path de l'activité -// TreePath path = tree.getSelectionPath(); -// -// // recuperation de l'écran associé -// ActivityLonglineUI selectedUI = (ActivityLonglineUI) -// applicationContext.getContentUIManager().getSelectedContentUI(); -// -// // fermeture de l'activité -// selectedUI.closeData(); -// -// if (wasCollapsed) { -// -// // on ferme le noeud de l'activité (qui a ete ouvert lors de la selection de celle-ci) -// tree.collapsePath(path); -// } -// -// // retour sur le noeud des activités -// treeHelper.selectNode(node); -// -// return; -// } - - throw new IllegalStateException("Can not come here!"); - }); + protected void actionPerformed(ContentUI<?, ?> ui) { + if (ui instanceof ContentOpenableUI) { + ((ContentOpenableUI<?, ?>) ui).closeData(); + return; + } + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + + if (ui instanceof TripSeinesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenTripSeineId(); + closeData(applicationContext, ui, higherOpenId); + return; + } + if (ui instanceof RoutesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenRouteId(); + closeData(applicationContext, ui, higherOpenId); + return; + } + if (ui instanceof ActivitySeinesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenActivitySeineId(); + closeData(applicationContext, ui, higherOpenId); + return; + } + + if (ui instanceof TripLonglinesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenTripLonglineId(); + closeData(applicationContext, ui, higherOpenId); + return; + } + if (ui instanceof ActivityLonglinesUI) { + String higherOpenId = applicationContext.getDataContext().getOpenActivityLonglineId(); + closeData(applicationContext, ui, higherOpenId); + return; + } + + throw new IllegalStateException("Can not come here!"); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java index 9f49e16..29f16b0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java @@ -25,7 +25,6 @@ import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n.n; @@ -36,7 +35,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class DeleteDataUIAction extends AbstractUIAction { +public class DeleteDataUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -47,23 +46,23 @@ public class DeleteDataUIAction extends AbstractUIAction { ACTION_NAME, n("observe.action.delete"), n("observe.action.delete.tip"), - "delete" + "delete", + "ctrl pressed X" ); } @Override - public void actionPerformed(final ActionEvent e) { - + protected void actionPerformed(ContentUI<?, ?> contentUI) { getMainUI().setBusy(true); SwingUtilities.invokeLater(() -> { try { - ContentUI<?, ?> contentUI = getContentUI(e); contentUI.delete(); } finally { getMainUI().setBusy(false); } }); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java index 4733b95..6d1eac7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java @@ -24,9 +24,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; -import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; - import static org.nuiton.i18n.I18n.n; /** @@ -36,7 +33,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class DeleteReferenceUIAction extends AbstractUIAction { +public class DeleteReferenceUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -47,19 +44,19 @@ public class DeleteReferenceUIAction extends AbstractUIAction { ACTION_NAME, n("observe.action.delete"), n("observe.action.delete.tip"), - "delete" + "delete", + "ctrl pressed X" ); } @Override - public void actionPerformed(final ActionEvent e) { - SwingUtilities.invokeLater(() -> { - try { - ContentUI<?, ?> ui = getContentUI(e); - ui.delete(); - } finally { - getMainUI().setBusy(false); - } - }); + protected void actionPerformed(ContentUI<?, ?> ui) { + getMainUI().setBusy(true); + try { + ui.delete(); + } finally { + getMainUI().setBusy(false); + } } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteTableEntryUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteTableEntryUIAction.java new file mode 100644 index 0000000..ab78e22 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteTableEntryUIAction.java @@ -0,0 +1,28 @@ +package fr.ird.observe.application.swing.ui.actions.shared; + +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; + +/** + * Created on 10/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class DeleteTableEntryUIAction extends AbstractContentUIAction { + + public static final String ACTION_NAME = "deleteTableEntry"; + + public DeleteTableEntryUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "", "", "delete", "ctrl pressed X"); + } + + @Override + protected void actionPerformed(ContentUI<?, ?> ui) { + + ContentTableUI<?, ?, ?> contentUI = (ContentTableUI<?, ?, ?>) ui; + contentUI.getHandler().removeSelectedRow(contentUI.getTableModel().getSelectedRow()); + + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java index 7fa5a03..4220ac5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java @@ -58,12 +58,13 @@ public class GoDownUIAction extends AbstractUIAction { ACTION_NAME, n("observe.action.goDown"), n("observe.action.goDown.tip"), - "go-down" + "go-down", + null ); } @Override - public void actionPerformed(final ActionEvent e) { + public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(() -> { JComponent c = (JComponent) e.getSource(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java index 13624d4..db7b648 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java @@ -59,12 +59,13 @@ public class GoUpUIAction extends AbstractUIAction { ACTION_NAME, n("observe.action.goUp"), n("observe.action.goUp.tip"), - "go-up" + "go-up", + null ); } @Override - public void actionPerformed(final ActionEvent e) { + public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(() -> { JComponent c = (JComponent) e.getSource(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java index 7976691..796ec5f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java @@ -40,8 +40,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JOptionPane; -import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -55,7 +53,7 @@ import static org.nuiton.i18n.I18n.t; * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public class MoveActivityLonglinesUIAction extends AbstractUIAction { +public class MoveActivityLonglinesUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -71,48 +69,44 @@ public class MoveActivityLonglinesUIAction extends AbstractUIAction { ACTION_NAME, n("observe.content.action.move.activities.longline"), n("observe.content.action.move.activities.longline.tip"), - "move-activities" + "move-activities", + null ); } @Override - public void actionPerformed(final ActionEvent e) { - - SwingUtilities.invokeLater(() -> { - ContentUI<?, ?> ui = getContentUI(e); - if (!(ui instanceof ActivityLonglinesUI)) { - throw new IllegalStateException("Can not come here!"); - } - ActivityLonglinesUI activityLonglinesUI = (ActivityLonglinesUI) ui; - + protected void actionPerformed(ContentUI<?, ?> ui) { + if (!(ui instanceof ActivityLonglinesUI)) { + throw new IllegalStateException("Can not come here!"); + } + ActivityLonglinesUI activityLonglinesUI = (ActivityLonglinesUI) ui; - // get current triplongline id - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - ObserveNode oldActivitiesNode = treeHelper.getSelectedNode(); - ObserveNode oldTripLonglineNode = oldActivitiesNode.getParent(); - // choose the new tripLongline - String tripLonglineId = chooseNewTripLongline(ui, oldTripLonglineNode); + // get current triplongline id + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + ObserveNode oldActivitiesNode = treeHelper.getSelectedNode(); + ObserveNode oldTripLonglineNode = oldActivitiesNode.getParent(); - if (tripLonglineId != null) { + // choose the new tripLongline + String tripLonglineId = chooseNewTripLongline(ui, oldTripLonglineNode); - if (log.isInfoEnabled()) { - log.info("Will move activities to trip: " + tripLonglineId); - } - // change the tripLongline of the selected activities - List<DataReference<ActivityLonglineDto>> selectedDatas = activityLonglinesUI.getModel().getSelectedDatas(); - List<String> activityIds = selectedDatas.stream() - .map(DataReference.ID_FUNCTION) - .collect(Collectors.toList()); - ActivityLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); -// List<Integer> positions = - service.moveActivityLonglinesToTripLongline(activityIds, tripLonglineId); + if (tripLonglineId != null) { - // update the tree - updateTree(oldActivitiesNode, tripLonglineId, activityIds); + if (log.isInfoEnabled()) { + log.info("Will move activities to trip: " + tripLonglineId); } + // change the tripLongline of the selected activities + List<DataReference<ActivityLonglineDto>> selectedDatas = activityLonglinesUI.getModel().getSelectedDatas(); + List<String> activityIds = selectedDatas.stream() + .map(DataReference.ID_FUNCTION) + .collect(Collectors.toList()); + ActivityLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); +// List<Integer> positions = + service.moveActivityLonglinesToTripLongline(activityIds, tripLonglineId); - }); + // update the tree + updateTree(oldActivitiesNode, tripLonglineId, activityIds); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java index 622cff2..dca5e7d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java @@ -39,8 +39,6 @@ import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.service.data.seine.ActivitySeineService; import javax.swing.JOptionPane; -import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -54,7 +52,7 @@ import static org.nuiton.i18n.I18n.t; * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public class MoveActivitySeinesUIAction extends AbstractUIAction { +public class MoveActivitySeinesUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -65,42 +63,39 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { ACTION_NAME, n("observe.content.action.move.activities.seine"), n("observe.content.action.move.activities.seine.tip"), - "move-activities" + "move-activities", + null ); } @Override - public void actionPerformed(final ActionEvent e) { + protected void actionPerformed(ContentUI<?, ?> ui) { - SwingUtilities.invokeLater(() -> { - ContentUI<?, ?> ui = getContentUI(e); - if (!(ui instanceof ActivitySeinesUI)) { - throw new IllegalStateException("Can not come here!"); - } + if (!(ui instanceof ActivitySeinesUI)) { + throw new IllegalStateException("Can not come here!"); + } - // get current route id - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - ObserveNode oldActivitiesNode = treeHelper.getSelectedNode(); - ObserveNode oldRouteNode = oldActivitiesNode.getParent(); - - // choose the new route - String routeId = chooseNewRoute(ui, oldRouteNode); - - if (routeId != null) { - // change the route of the selected activities - List<DataReference<ActivitySeineDto>> selectedDatas = ((ActivitySeinesUIModel) ui.getModel()).getSelectedDatas(); - List<String> activityIds = selectedDatas.stream() - .map(DataReference.ID_FUNCTION) - .collect(Collectors.toList()); - ActivitySeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); - List<Integer> positions = service.moveActivitySeinesToRoute(activityIds, routeId); - - // update the tree - updateTree(oldActivitiesNode, routeId, activityIds); - } + // get current route id + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + ObserveNode oldActivitiesNode = treeHelper.getSelectedNode(); + ObserveNode oldRouteNode = oldActivitiesNode.getParent(); + + // choose the new route + String routeId = chooseNewRoute(ui, oldRouteNode); - }); + if (routeId != null) { + // change the route of the selected activities + List<DataReference<ActivitySeineDto>> selectedDatas = ((ActivitySeinesUIModel) ui.getModel()).getSelectedDatas(); + List<String> activityIds = selectedDatas.stream() + .map(DataReference.ID_FUNCTION) + .collect(Collectors.toList()); + ActivitySeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); + List<Integer> positions = service.moveActivitySeinesToRoute(activityIds, routeId); + + // update the tree + updateTree(oldActivitiesNode, routeId, activityIds); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java index 8fd275b..e2bdf49 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java @@ -65,12 +65,13 @@ public class MoveRoutesUIAction extends AbstractUIAction { ACTION_NAME, n("observe.content.action.move.routes"), n("observe.content.action.move.routes.tip"), - "move-routes" + "move-routes", + null ); } @Override - public void actionPerformed(final ActionEvent e) { + public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(() -> { JComponent c = (JComponent) e.getSource(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java index e118785..043fb8d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java @@ -68,12 +68,13 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractUIAct actionName, n("observe.content.action.move.trips"), n("observe.content.action.move.trips.tip"), - "move-trips" + "move-trips", + null ); } @Override - public void actionPerformed(final ActionEvent e) { + public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(() -> { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/NewTableEntryUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/NewTableEntryUIAction.java new file mode 100644 index 0000000..f0e129c --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/NewTableEntryUIAction.java @@ -0,0 +1,29 @@ +package fr.ird.observe.application.swing.ui.actions.shared; + +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; + +/** + * Created on 10/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NewTableEntryUIAction extends AbstractContentUIAction { + + + public static final String ACTION_NAME = "newTableEntry"; + + public NewTableEntryUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "", "", "add", "ctrl pressed N"); + } + + @Override + protected void actionPerformed(ContentUI<?, ?> ui) { + ContentTableUI<?, ?, ?> contentUI = (ContentTableUI<?, ?, ?>) ui; + contentUI.getTableModel().addNewEntry(); + + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java index 0a8a161..b122bf9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java @@ -30,9 +30,6 @@ import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.services.dto.DataReference; -import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; - import static org.nuiton.i18n.I18n.n; /** @@ -42,7 +39,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ReOpenUIAction extends AbstractUIAction { +public class ReOpenUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -53,42 +50,41 @@ public class ReOpenUIAction extends AbstractUIAction { ACTION_NAME, n("observe.content.action.reopen"), n("observe.content.action.reopen.tip"), - "reopen" + "reopen", + "ctrl pressed O" ); } @Override - public void actionPerformed(final ActionEvent e) { - SwingUtilities.invokeLater(() -> { - ContentUI<?, ?> ui = getContentUI(e); + protected void actionPerformed(ContentUI<?, ?> ui) { - ContentOpenableUI<?, ?> openUI; + ContentOpenableUI<?, ?> openUI; - if (ui instanceof ContentOpenableUI<?, ?>) { + if (ui instanceof ContentOpenableUI<?, ?>) { - openUI = (ContentOpenableUI<?, ?>) ui; - } else if (ui instanceof ContentListUI<?, ?, ?>) { + openUI = (ContentOpenableUI<?, ?>) ui; + } else if (ui instanceof ContentListUI<?, ?, ?>) { - DataReference<?> selectedData = ((ContentListUI<?, ?, ?>) ui).getSelectedData(); + DataReference<?> selectedData = ((ContentListUI<?, ?, ?>) ui).getSelectedData(); - String id = selectedData.getId(); + String id = selectedData.getId(); - ObserveTreeHelper treeHelper = ui.getTreeHelper(); - ObserveNode selectedNode = treeHelper.getSelectedNode(); - ObserveNode node = treeHelper.findNode(selectedNode, id); + ObserveTreeHelper treeHelper = ui.getTreeHelper(); + ObserveNode selectedNode = treeHelper.getSelectedNode(); + ObserveNode node = treeHelper.findNode(selectedNode, id); - treeHelper.selectNode(node); + treeHelper.selectNode(node); - openUI = (ContentOpenableUI<?, ?>) - ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + openUI = (ContentOpenableUI<?, ?>) + ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); - } else { - throw new IllegalStateException("The action " + ACTION_NAME + " can not be executed from ui " + ui); - } + } else { + throw new IllegalStateException("The action " + ACTION_NAME + " can not be executed from ui " + ui); + } - if (openUI != null) { - openUI.openData(); - } - }); + if (openUI != null) { + openUI.openData(); + } } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java index 274ee60..da7a884 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java @@ -24,9 +24,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; -import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; - import static org.nuiton.i18n.I18n.n; /** @@ -36,7 +33,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class ResetEditUIAction extends AbstractUIAction { +public class ResetEditUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -47,15 +44,14 @@ public class ResetEditUIAction extends AbstractUIAction { ACTION_NAME, n("observe.content.action.reset"), n("observe.content.action.reset.tip"), - "revert" + "revert", + "ctrl pressed R" ); } @Override - public void actionPerformed(final ActionEvent e) { - SwingUtilities.invokeLater(() -> { - ContentUI<?, ?> contentUI = getContentUI(e); - contentUI.resetEdit(); - }); + protected void actionPerformed(ContentUI<?, ?> contentUI) { + contentUI.resetEdit(); } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetTableEntryUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetTableEntryUIAction.java new file mode 100644 index 0000000..a0c8bdd --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetTableEntryUIAction.java @@ -0,0 +1,39 @@ +package fr.ird.observe.application.swing.ui.actions.shared; + +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; + +/** + * Created on 10/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ResetTableEntryUIAction extends AbstractContentUIAction { + + public static final String ACTION_NAME = "resetTableEntry"; + + public ResetTableEntryUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "", "", "revert", "ctrl shift pressed R"); + } + + @Override + protected void actionPerformed(ContentUI<?, ?> ui) { + + ContentTableUI<?, ?, ?> contentUI = (ContentTableUI<?, ?, ?>) ui; + + if (contentUI.getTableModel().isCreate()) { + + // reset new entry + contentUI.getTableModel().doRemoveRow(contentUI.getTableModel().getSelectedRow(), true); + + } else { + + // reset existing entry + contentUI.getTableModel().resetEditBean(); + + } + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java index 25b4a7a..04ad480 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java @@ -36,7 +36,7 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 1.4 */ -public class SaveEditUIAction extends AbstractUIAction { +public class SaveEditUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -47,15 +47,14 @@ public class SaveEditUIAction extends AbstractUIAction { ACTION_NAME, n("observe.action.save"), n("observe.action.save.tip"), - ACTION_NAME + ACTION_NAME, + "ctrl pressed S" ); } @Override - public void actionPerformed(final ActionEvent e) { - SwingUtilities.invokeLater(() -> { - ContentUI<?, ?> contentUI = getContentUI(e); - contentUI.save(true); - }); + protected void actionPerformed(ContentUI<?, ?> contentUI) { + contentUI.save(true); } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveTableEntryUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveTableEntryUIAction.java new file mode 100644 index 0000000..469e349 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveTableEntryUIAction.java @@ -0,0 +1,39 @@ +package fr.ird.observe.application.swing.ui.actions.shared; + +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; + +/** + * Created on 10/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SaveTableEntryUIAction extends AbstractContentUIAction { + + public static final String ACTION_NAME = "saveTableEntry"; + + public SaveTableEntryUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "", "", "revert", "ctrl shift pressed S"); + } + + @Override + protected void actionPerformed(ContentUI<?, ?> content) { + ContentTableUI<?, ?, ?> contentUI = (ContentTableUI<?, ?, ?>) content; + + if (contentUI.getTableModel().isCreate()) { + + // save new entry + contentUI.getTableModel().updateRowFromEditBean(); + + } else { + + // save existing entry + contentUI.getTableModel().updateRowFromEditBean(); + + } + + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectNodeUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectNodeUIAction.java index 0a1e5a7..3fd936f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectNodeUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectNodeUIAction.java @@ -49,7 +49,8 @@ public class SelectNodeUIAction extends AbstractUIAction { ACTION_NAME, n("observe.action.selectNode"), n("observe.action.selectNode.tip"), - "go-jump" + "go-jump", + null ); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java index bc36961..616273c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java @@ -41,12 +41,19 @@ public class SelectOpenNodeUIAction extends AbstractUIAction { private static final long serialVersionUID = 1L; public SelectOpenNodeUIAction(ObserveMainUI mainUI) { - super(mainUI, ACTION_NAME, "<NONE>", "<NONE>", "go-down"); + super(mainUI, + ACTION_NAME, + "<NONE>", + "<NONE>", + "go-down", + null); } @Override public void actionPerformed(ActionEvent e) { - + if (!canExecuteAction(e)) { + return; + } JComponent c = (JComponent) e.getSource(); Class<?> type = (Class<?>) c.getClientProperty("type"); Objects.requireNonNull(type, "could not find client property type on component" + c); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx index 9b002c3..de045dc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx @@ -76,7 +76,7 @@ <String id='contentTitle' javaBean='null'/> - <BlockingLayerUI id='blockLayerUI'/> + <ContentUIBlockingLayerUI id='blockLayerUI' constructorParams="this"/> <script><![CDATA[ public Object getSelectedBean(JComboBox combo) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java new file mode 100644 index 0000000..e60fbfe --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java @@ -0,0 +1,113 @@ +package fr.ird.observe.application.swing.ui.content; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; +import jaxx.runtime.swing.BlockingLayerUI; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.jxlayer.JXLayer; + +import javax.swing.Action; +import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.JComponent; +import javax.swing.KeyStroke; +import javax.swing.SwingUtilities; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; +import java.util.Objects; +import java.util.Set; + +/** + * Created on 09/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ContentUIBlockingLayerUI extends BlockingLayerUI { + + /** Logger */ + private static final Log log = LogFactory.getLog(ContentUIBlockingLayerUI.class); + + private static final Set<Integer> GLOBAL_KEY_CODES = ImmutableSet.of( + KeyEvent.VK_F1, + KeyEvent.VK_F2, + KeyEvent.VK_F3, + KeyEvent.VK_F4, + KeyEvent.VK_F5, + KeyEvent.VK_F6, + KeyEvent.VK_F7, + KeyEvent.VK_F8 + ); + + private final ContentUI ui; + + public ContentUIBlockingLayerUI(ContentUI ui) { + this.ui = ui; + } + + @Override + protected void processKeyEvent(KeyEvent e, JXLayer<? extends JComponent> l) { + + InputMap inputMap = ui.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + ActionMap actionMap = ui.getActionMap(); + + boolean consumed = false; + + if (e.isControlDown() && e.getKeyChar() != '\uFFFF') { + + KeyStroke keyStroke = KeyStroke.getKeyStroke("ctrl pressed " + (char) e.getKeyCode()); + + if (keyStroke == null) { + super.processKeyEvent(e, l); + return; + } + consumed = doAction(keyStroke, inputMap, actionMap); + } + + if (!consumed && !e.isControlDown() && !e.isShiftDown() && !e.isAltDown() && !e.isAltGraphDown() + && !e.isMetaDown() && GLOBAL_KEY_CODES.contains(e.getKeyCode())) { + + KeyStroke keyStroke = KeyStroke.getKeyStroke("pressed " + (char) e.getKeyCode()); + + if (keyStroke == null) { + super.processKeyEvent(e, l); + return; + } + + consumed = doAction(keyStroke, inputMap, actionMap); + } + + if (consumed) { + e.consume(); + } else { + super.processKeyEvent(e, l); + } + + } + + protected boolean doAction(KeyStroke keyStroke, InputMap inputMap, ActionMap actionMap) { + + String actionName = (String) inputMap.get(keyStroke); + if (actionName != null) { + + Action action = actionMap.get(actionName); + + JComponent editor = (JComponent) action.getValue(AbstractUIAction.EDITOR); + Objects.requireNonNull(editor, "No editor on action: " + action); + if (editor.isVisible() && editor.isEnabled()) { + + if (log.isInfoEnabled()) { + log.info("Found action: " + action.getValue(Action.NAME) + " for keyStroke: " + keyStroke); + } + SwingUtilities.invokeLater(() -> action.actionPerformed(new ActionEvent(ui, 0, (String) action.getValue(Action.NAME)))); + return true; + } else { + if (log.isInfoEnabled()) { + log.info("Found disabled action: " + action.getValue(Action.NAME) + " for keyStroke: " + keyStroke); + } + } + } + return false; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java index 97ac366..bf5e7c1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java @@ -37,7 +37,6 @@ import fr.ird.observe.application.swing.validation.ObserveSwingValidator; import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -72,7 +71,6 @@ import org.nuiton.util.DateUtil; import javax.swing.AbstractAction; import javax.swing.AbstractButton; import javax.swing.Action; -import javax.swing.ActionMap; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JComponent; @@ -105,6 +103,7 @@ import java.util.Date; import java.util.EnumSet; import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Set; import static org.nuiton.i18n.I18n.t; @@ -196,17 +195,13 @@ public class ContentUIInitializer<E extends IdDto, UI extends ContentUI<E, UI>> } - protected Form<E> getFormDto() { - return ui.getModel().getForm(); - } - public void initUI() { if (log.isDebugEnabled()) { log.debug("ui " + getClass()); } - ActionMap actionMap = ObserveSwingApplicationContext.get().getActionMap(); + ObserveActionMap actionMap = ObserveSwingApplicationContext.get().getActionMap(); // initialisation des éditeurs @@ -315,13 +310,10 @@ public class ContentUIInitializer<E extends IdDto, UI extends ContentUI<E, UI>> } protected void init(UI ui, ObserveSwingValidator<?> validator) { - SwingValidatorUtil.listenValidatorContextNameAndRefreshFields( - validator, - (JAXXValidator) ui - ); + SwingValidatorUtil.listenValidatorContextNameAndRefreshFields(validator, (JAXXValidator) ui); } - protected void init(ActionMap actionMap, AbstractButton editor) { + protected void init(ObserveActionMap actionMap, AbstractButton editor) { String actionId = (String) editor.getClientProperty(OBSERVE_ACTION); if (actionId == null) { // le boutton n'est pas commun @@ -336,20 +328,14 @@ public class ContentUIInitializer<E extends IdDto, UI extends ContentUI<E, UI>> // on a trouve une action commune AbstractUIAction action = (AbstractUIAction) actionMap.get(actionId); - - if (action == null) { - - // l'action n'est pas enregistrée - throw new IllegalStateException( - "action [" + actionId + "] not found for ui " + - ui.getClass().getName()); - } + Objects.requireNonNull(action, "action [" + actionId + "] not found for ui " + ui.getClass().getName()); if (log.isDebugEnabled()) { log.debug("init common action " + actionId); } - action.initAction(null, editor); + action.initAction(ui, editor); + } protected void init(NumberEditor editor) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java new file mode 100644 index 0000000..c59c0e2 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java @@ -0,0 +1,74 @@ +package fr.ird.observe.application.swing.ui.content; + +import com.google.common.collect.ImmutableMap; +import fr.ird.observe.application.swing.ObserveSwingTechnicalException; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; +import org.apache.commons.beanutils.ConstructorUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.reflections.Reflections; + +import javax.swing.Action; +import javax.swing.ActionMap; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Modifier; +import java.util.Set; + +/** + * Created on 10/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ObserveActionMap extends ActionMap { + + /** Logger */ + private static final Log log = LogFactory.getLog(ObserveActionMap.class); + + private final ObserveMainUI ui; + + private final ImmutableMap<String, Class<? extends AbstractUIAction>> mapping; + + public ObserveActionMap(ObserveMainUI ui) { + this.ui = ui; + Set<Class<? extends AbstractUIAction>> actionTypes = new Reflections("fr.ird.observe.application.swing.ui.actions.shared").getSubTypesOf(AbstractUIAction.class); + + ImmutableMap.Builder<String, Class<? extends AbstractUIAction>> mappingBuilder = ImmutableMap.builder(); + for (Class<? extends AbstractUIAction> actionType : actionTypes) { + + if (Modifier.isAbstract(actionType.getModifiers())) { + continue; + } + + try { + String actionId = (String) actionType.getDeclaredField("ACTION_NAME").get(null); + mappingBuilder.put(actionId, actionType); + } catch (IllegalAccessException | NoSuchFieldException e) { + throw new ObserveSwingTechnicalException("Can't find ACTION_NAME field on action: " + actionType.getName()); + } + + } + + mapping = mappingBuilder.build(); + } + + @Override + public Action get(Object key) { + Class<? extends AbstractUIAction> actionType = mapping.get(key); + if (actionType == null) { + + return super.get(key); + } + + try { + if (log.isInfoEnabled()) { + log.info("Create action: " + key + ", type: " + actionType.getName()); + } + return ConstructorUtils.invokeConstructor(actionType, ui); + } catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { + throw new ObserveSwingTechnicalException("Hum, can't creation action for type: " + actionType.getName(), e); + } + + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jcss index e75656d..2626b6e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jcss @@ -53,14 +53,18 @@ #reopen { _observeAction:{ReOpenUIAction.ACTION_NAME}; visible:{model.isReadingMode() && model.isCanReopen()}; + enabled:{model.isReadingMode() && model.isCanReopen()}; + } #close { _observeAction:{CloseOpenUIAction.ACTION_NAME}; visible:{model.isUpdatingMode()}; + enabled:{model.isUpdatingMode()}; } #closeAndCreate { _observeAction:{CloseAndCreateUIAction.ACTION_NAME}; visible:{model.isUpdatingMode()}; + enabled:{model.isUpdatingMode()}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx index 1a201e0..4809b9e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx @@ -28,6 +28,10 @@ <import> fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.shared.NewTableEntryUIAction + fr.ird.observe.application.swing.ui.actions.shared.ResetTableEntryUIAction + fr.ird.observe.application.swing.ui.actions.shared.SaveTableEntryUIAction + fr.ird.observe.application.swing.ui.actions.shared.DeleteTableEntryUIAction jaxx.runtime.swing.BlockingLayerUI jaxx.runtime.validator.swing.SwingValidator @@ -40,6 +44,7 @@ javax.swing.UIManager static org.nuiton.i18n.I18n.n + static org.nuiton.i18n.I18n.t </import> @@ -133,33 +138,27 @@ public abstract SwingValidator<D> getValidatorTable(); <row> <cell weightx='1'> <!-- ajouter une nouvelle entrée --> - <JButton id='newEntry' - onActionPerformed='getTableModel().addNewEntry()'/> + <JButton id='newEntry'/> </cell> <cell weightx='1'> <!-- annuler la création d'une nouvelle entrée (en mode creation) --> - <JButton id='resetNewEntry' - onActionPerformed='getTableModel().doRemoveRow(getTableModel().getSelectedRow(), true)'/> + <JButton id='resetNewEntry'/> </cell> <cell weightx='1'> <!-- réinitialiser l'entrée en cours d'édition (en mode mise a jour) --> - <JButton id='resetEntry' - onActionPerformed='getHandler().resetEditBean()'/> + <JButton id='resetEntry'/> </cell> <cell weightx='1'> <!-- sauver dans le tableau l'entrée en cours d'édition (en mode mise a jour)--> - <JButton id='saveEntry' - onActionPerformed='getTableModel().updateRowFromEditBean()'/> + <JButton id='saveEntry'/> </cell> <cell weightx='1'> <!-- sauver dans le tableau la nouvelle entrée (en mode creation) --> - <JButton id='saveNewEntry' - onActionPerformed='getTableModel().updateRowFromEditBean()'/> + <JButton id='saveNewEntry'/> </cell> <cell weightx='1'> <!-- supprimer l'entrée courante dans le tableau (en mode mise a jour)--> - <JButton id='deleteEntry' - onActionPerformed='getHandler().removeSelectedRow(getTableModel().getSelectedRow())'/> + <JButton id='deleteEntry'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jcss index 904fa75..05ca7ee 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jcss @@ -73,47 +73,52 @@ } #newEntry { - text:{getNewEntryText()}; - toolTipText:{getNewEntryTip()}; - actionIcon:"add"; + _observeAction:{NewTableEntryUIAction.ACTION_NAME}; + _text:{t(getNewEntryText())}; + _toolTipText:{t(getNewEntryTip())}; visible:{tableModel.isEditable() && !tableModel.isCreate()}; } #resetNewEntry{ - text:{getResetNewEntryText()}; - toolTipText:{getResetNewEntryTip()}; + _observeAction:{ResetTableEntryUIAction.ACTION_NAME}; + _text:{t(getResetNewEntryText())}; + _toolTipText:{t(getResetNewEntryTip())}; actionIcon:"revert"; enabled:true; visible:{tableModel.isEditable() && tableModel.isCreate()}; } #resetEntry { - text:{getResetEntryText()}; - toolTipText:{getResetEntryTip()}; + _observeAction:{ResetTableEntryUIAction.ACTION_NAME}; + _text:{t(getResetEntryText())}; + _toolTipText:{t(getResetEntryTip())}; actionIcon:"revert"; enabled:{model.isCanResetRow()}; visible:{tableModel.isEditable() && !tableModel.isEmpty() && !tableModel.isCreate()}; } #saveEntry{ - text:{getSaveEntryText()}; - toolTipText:{getSaveEntryTip()}; + _observeAction:{SaveTableEntryUIAction.ACTION_NAME}; + _text:{t(getSaveEntryText())}; + _toolTipText:{t(getSaveEntryTip())}; actionIcon:"save"; visible:{tableModel.isEditable() && !tableModel.isEmpty() && !tableModel.isCreate()}; enabled:{model.isCanSaveRow()}; } #saveNewEntry { - text:{getSaveNewEntryText()}; - toolTipText:{getSaveNewEntryTip()}; + _observeAction:{SaveTableEntryUIAction.ACTION_NAME}; + _text:{t(getSaveNewEntryText())}; + _toolTipText:{t(getSaveNewEntryTip())}; actionIcon:"add"; visible:{tableModel.isEditable() && !tableModel.isEmpty() && tableModel.isCreate()}; enabled:{model.isCanSaveRow()}; } #deleteEntry { - text:{getDeleteEntryText()}; - toolTipText:{getDeleteEntryTip()}; + _observeAction:{DeleteTableEntryUIAction.ACTION_NAME}; + _text:{t(getDeleteEntryText())}; + _toolTipText:{t(getDeleteEntryTip())}; actionIcon:"delete"; visible:{tableModel.isEditable() && !tableModel.isEmpty() && !tableModel.isCreate()}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java index 84eb829..45838e3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java @@ -219,6 +219,9 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U uiInitializer.initUI(); getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM, evt -> updateUiWithReferenceSetsFromModel()); + + ObserveSwingApplicationContext.get().getFocusManager().setFocusTraversalPolicy(ui); + } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java index 93105a3..55c22b6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java @@ -22,16 +22,16 @@ package fr.ird.observe.application.swing.ui.content.table; * #L% */ -import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.application.swing.ui.content.ObserveActionMap; import fr.ird.observe.application.swing.ui.content.ContentUIInitializer; import fr.ird.observe.application.swing.ui.util.BooleanEditor; +import fr.ird.observe.services.dto.IdDto; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.bean.JavaBeanObjectUtil; import javax.swing.AbstractButton; -import javax.swing.ActionMap; import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JTextArea; @@ -71,7 +71,7 @@ public class ContentTableUIInitializer<E extends IdDto, D extends IdDto, UI exte return ui.getModel(); } - protected ContentTableUIHandler<E, D, UI> getHandler() { + protected ContentTableUIHandler<E, D, UI> getHandler() { return ui.getHandler(); } @@ -167,8 +167,7 @@ public class ContentTableUIInitializer<E extends IdDto, D extends IdDto, UI exte } @Override - protected void init(ActionMap actionMap, - AbstractButton editor) { + protected void init(ObserveActionMap actionMap, AbstractButton editor) { super.init(actionMap, editor); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 21627b9f7346371f9eb7a846cf8169f9c3ad9b84 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 10 12:12:03 2016 +0100 clean code + ne plus étendre l'arbre automatiquement --- .../observe/application/swing/ui/ObserveMainUIHandler.java | 13 ++----------- .../swing/ui/tree/NavigationTreeSelectionModel.java | 3 +-- .../application/swing/ui/tree/ObserveTreeHelper.java | 13 ++----------- 3 files changed, 5 insertions(+), 24 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java index f57b911..78fa0bc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java @@ -409,15 +409,6 @@ public class ObserveMainUIHandler { return false; } - public boolean rejectMode(ObserveUIMode mode, ObserveUIMode... modes) { - for (ObserveUIMode m : modes) { - if (m.equals(mode)) { - return false; - } - } - return true; - } - public boolean acceptLocale(Locale l, String expected) { return l != null && l.toString().equals(expected); } @@ -429,7 +420,7 @@ public class ObserveMainUIHandler { return ObserveSwingApplicationContext.get().getMainUI(); } - protected void $afterCompleteSetup(final ObserveMainUI ui) { + protected void $afterCompleteSetup(ObserveMainUI ui) { // bad binding, force value ui.getStopH2WebServer().setEnabled(false); @@ -473,7 +464,7 @@ public class ObserveMainUIHandler { } }; - ui.getTreeHelper().setUI(ui.getNavigation(), true, true, listener, veteobableTreeWillExpand); + ui.getTreeHelper().setUI(ui.getNavigation(), false, false, listener, veteobableTreeWillExpand); SwingValidatorUtil.installUI(ui.getErrorTable(), new ObserveValidatorMessageTableRenderer()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/NavigationTreeSelectionModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/NavigationTreeSelectionModel.java index a2322e6..92cca8e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/NavigationTreeSelectionModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/NavigationTreeSelectionModel.java @@ -38,8 +38,7 @@ import javax.swing.tree.TreePath; public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel { /** Logger */ - static private final Log log = - LogFactory.getLog(NavigationTreeSelectionModel.class); + static private final Log log = LogFactory.getLog(NavigationTreeSelectionModel.class); private static final long serialVersionUID = 1L; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java index 2d4204a..e2e103a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java @@ -117,16 +117,14 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { return null; } TreeCellRenderer r = t.getCellRenderer(); - return (AbstractObserveTreeCellRenderer) - (r instanceof AbstractObserveTreeCellRenderer ? r : null); + return (AbstractObserveTreeCellRenderer) (r instanceof AbstractObserveTreeCellRenderer ? r : null); } public TreeModel createEmptyModel() { setDataSource(null); - ObserveNode node = - new ObserveNode(n("observe.message.db.none.loaded"), false); + ObserveNode node = new ObserveNode(n("observe.message.db.none.loaded"), false); return createModel(node); } @@ -577,13 +575,6 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { @Override protected ObserveDataProvider getDataProvider() { - // if (provider == null) { -// ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); -// if (source != null) { -// provider = new ObserveDataProvider(source); -// setDataProvider(provider); -// } -// } return (ObserveDataProvider) super.getDataProvider(); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 8357698a5edcfa54ce08177117fbc421690be78b Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 13 20:13:56 2016 +0100 meilleure gestion du faction, réusinage des actions, ajout des actions globales --- .../CoordinateLatitudeDtoFieldValidator.java | 4 + .../CoordinateLongitudeDtoFieldValidator.java | 4 + .../application/swing/ui/BorderFocusListener.java | 50 ++ .../application/swing/ui/ObserveMainUI.jaxx | 4 +- .../application/swing/ui/ObserveMainUI.jcss | 6 +- .../application/swing/ui/ObserveMainUIHandler.java | 32 +- .../AbstractContentUIAction.java | 3 +- .../{shared => content}/CancelCreateUIAction.java | 3 +- .../CloseAndCreateUIAction.java | 3 +- .../{shared => content}/CloseOpenUIAction.java | 5 +- .../ui/actions/content/CreateOpenUIAction.java | 29 + .../{shared => content}/DeleteDataUIAction.java | 3 +- .../DeleteReferenceUIAction.java | 3 +- .../DeleteTableEntryUIAction.java | 3 +- .../MoveActivityLonglinesUIAction.java | 2 +- .../MoveActivitySeinesUIAction.java | 3 +- .../{shared => content}/MoveRoutesUIAction.java | 57 +- .../MoveTripLonglinesUIAction.java | 3 +- .../MoveTripSeinesUIAction.java | 3 +- .../{shared => content}/MoveTripsUIAction.java | 43 +- .../{shared => content}/NewTableEntryUIAction.java | 3 +- .../{shared => content}/ReOpenUIAction.java | 5 +- .../{shared => content}/ResetEditUIAction.java | 15 +- .../ResetTableEntryUIAction.java | 3 +- .../{shared => content}/SaveEditUIAction.java | 6 +- .../SaveTableEntryUIAction.java | 3 +- .../ui/actions/global/AbstractGlobalUIAction.java | 18 + .../actions/global/ChangeFocusGlobalUIAction.java | 60 ++ .../actions/global/DeleteDataGlobalUIAction.java | 45 + .../actions/global/NewNextDataGlobalUIAction.java | 45 + .../global/OpenCloseDataGlobalUIAction.java | 76 ++ .../ui/actions/global/ResetDataGlobalUIAction.java | 38 + .../ui/actions/global/SaveDataGlobalUIAction.java | 38 + .../swing/ui/actions/shared/AbstractUIAction.java | 21 +- .../application/swing/ui/content/Common.jcss | 4 + .../application/swing/ui/content/ContentUI.jcss | 2 + .../swing/ui/content/ContentUIBlockingLayerUI.java | 10 +- .../swing/ui/content/ContentUIHandler.java | 69 +- .../swing/ui/content/ContentUIInitializer.java | 7 + .../swing/ui/content/ContentUIManager.java | 54 +- .../swing/ui/content/ObserveActionMap.java | 54 +- .../swing/ui/content/ObserveFocusManager.java | 943 +++++++-------------- .../impl/longline/LonglineDetailCompositionUI.jaxx | 4 +- .../impl/longline/LonglineGlobalCompositionUI.jaxx | 4 +- .../ui/content/impl/longline/SetLonglineUI.jaxx | 8 +- .../FloatingObjectTransmittingBuoyOperationUI.jaxx | 4 +- .../ui/content/impl/seine/FloatingObjectUI.jaxx | 8 +- .../swing/ui/content/impl/seine/SetSeineUI.jaxx | 8 +- .../swing/ui/content/list/ContentListUI.jaxx | 7 +- .../swing/ui/content/list/ContentListUI.jcss | 2 +- .../ui/content/list/ContentListUIHandler.java | 13 +- .../list/impl/longline/ActivityLonglinesUI.jaxx | 9 +- .../list/impl/longline/ActivityLonglinesUI.jcss | 7 +- .../content/list/impl/longline/CommonListUI.jcss | 4 + .../list/impl/longline/TripLonglinesUI.jaxx | 3 +- .../list/impl/longline/TripLonglinesUI.jcss | 8 +- .../content/list/impl/seine/ActivitySeinesUI.jaxx | 6 +- .../ui/content/list/impl/seine/CommonListUI.jcss | 4 + .../swing/ui/content/list/impl/seine/RoutesUI.jaxx | 2 +- .../ui/content/list/impl/seine/TripSeinesUI.jaxx | 2 +- .../swing/ui/content/open/ContentOpenableUI.jaxx | 19 +- .../swing/ui/content/open/ContentOpenableUI.jcss | 9 +- .../open/impl/longline/ActivityLonglineUI.jaxx | 2 +- .../content/open/impl/longline/TripLonglineUI.jaxx | 2 +- .../content/open/impl/seine/ActivitySeineUI.jaxx | 2 +- .../swing/ui/content/ref/ContentReferenceUI.jaxx | 6 +- .../ui/content/ref/ContentReferenceUIHandler.java | 2 +- .../swing/ui/content/table/CommonTable.jcss | 4 + .../swing/ui/content/table/ContentTableUI.jaxx | 12 +- .../ui/content/table/ContentTableUIHandler.java | 4 +- .../table/impl/longline/SensorUsedUIHandler.java | 6 +- .../content/table/impl/longline/TdrUIHandler.java | 6 +- .../swing/ui/tree/ObserveTreeHelper.java | 3 +- 73 files changed, 1121 insertions(+), 841 deletions(-) diff --git a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLatitudeDtoFieldValidator.java b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLatitudeDtoFieldValidator.java index 597c669..86de2b7 100644 --- a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLatitudeDtoFieldValidator.java +++ b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLatitudeDtoFieldValidator.java @@ -62,6 +62,10 @@ public class CoordinateLatitudeDtoFieldValidator extends FieldValidatorSupport { Map<String, CoordinatesEditor> map = (Map<String, CoordinatesEditor>) getFieldValue("coordinatesEditors", object); CoordinatesEditor coordinatesEditor = map.get(editorName); + //FIXME une validation est lancé dans l'ui alors que l'on ne devrait pas et on a pas ce composant alors + if (coordinatesEditor == null) { + return; + } Objects.requireNonNull(coordinatesEditor, "can't find editor named " + editorName); CoordinateFormat format = coordinatesEditor.getModel().getFormat(); diff --git a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLongitudeDtoFieldValidator.java b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLongitudeDtoFieldValidator.java index c94fe60..4c51cab 100644 --- a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLongitudeDtoFieldValidator.java +++ b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLongitudeDtoFieldValidator.java @@ -62,6 +62,10 @@ public class CoordinateLongitudeDtoFieldValidator extends FieldValidatorSupport Map<String, CoordinatesEditor> map = (Map<String, CoordinatesEditor>) getFieldValue("coordinatesEditors", object); CoordinatesEditor coordinatesEditor = map.get(editorName); + //FIXME une validation est lancé dans l'ui alors que l'on ne devrait pas et on a pas ce composant alors + if (coordinatesEditor == null) { + return; + } Objects.requireNonNull(coordinatesEditor, "can't find editor named " + editorName); CoordinateFormat format = coordinatesEditor.getModel().getFormat(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/BorderFocusListener.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/BorderFocusListener.java new file mode 100644 index 0000000..c064f1b --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/BorderFocusListener.java @@ -0,0 +1,50 @@ +package fr.ird.observe.application.swing.ui; + +import javax.swing.JComponent; +import javax.swing.border.Border; +import javax.swing.border.LineBorder; +import java.awt.Color; +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; + +/** + * Created on 10/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class BorderFocusListener implements FocusListener { + + private final Border defaultBorder; + private final JComponent container2; + private final Border focusBorder; + private final JComponent container; + private boolean enabled; + + public BorderFocusListener(ObserveMainUI mainUI) { + this.container = mainUI.getNavigationView(); + this.defaultBorder = container.getBorder(); + this.container2 = mainUI.getSplitpane2(); + this.focusBorder = new LineBorder(Color.blue, 3, true); + } + + @Override + public void focusGained(FocusEvent e) { + if (enabled) { + container.setBorder(focusBorder); + container2.setBorder(defaultBorder); + } + } + + @Override + public void focusLost(FocusEvent e) { + if (enabled) { + container.setBorder(defaultBorder); + container2.setBorder(focusBorder); + } + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx index 271c367..22ce441 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx @@ -35,7 +35,7 @@ fr.ird.observe.services.dto.seine.TripSeineDto fr.ird.observe.services.dto.constants.ReferentialLocale - fr.ird.observe.application.swing.ui.actions.shared.ReOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction fr.ird.observe.application.swing.ui.admin.AdminStep fr.ird.observe.application.swing.ui.actions.ChangeStorageAction @@ -341,4 +341,6 @@ void $afterCompleteSetup() { <!-- status message bar --> <StatusMessagePanel id='status' constraints="BorderLayout.SOUTH"/> + <BorderFocusListener id="borderFocusListener" constructorParams='this'/> + </JFrame> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss index 877da9e..0172c0b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss @@ -50,15 +50,15 @@ JSplitPane { // trip menu #navigationOpenAction { - action: {new fr.ird.observe.application.swing.ui.actions.shared.ReOpenUIAction(this)}; + action: {new fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction(this)}; } #navigationCloseAction { - action: {new fr.ird.observe.application.swing.ui.actions.shared.CloseOpenUIAction(this)}; + action: {new fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction(this)}; } #navigationDeleteAction { - action: {new fr.ird.observe.application.swing.ui.actions.shared.DeleteDataUIAction(this)}; + action: {new fr.ird.observe.application.swing.ui.actions.content.DeleteDataUIAction(this)}; } #menuFile { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java index 78fa0bc..bdb3cad 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java @@ -31,7 +31,6 @@ import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.ContentUIManager; import fr.ird.observe.application.swing.ui.content.ContentUIModel; -import fr.ird.observe.application.swing.ui.content.ObserveContentUI; import fr.ird.observe.application.swing.ui.tree.ObserveNavigationTreeShowPopupAction; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; @@ -50,6 +49,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; import javax.swing.Icon; +import javax.swing.JComponent; import javax.swing.SwingUtilities; import javax.swing.event.TreeExpansionEvent; import javax.swing.event.TreeSelectionEvent; @@ -58,6 +58,8 @@ import javax.swing.event.TreeWillExpandListener; import javax.swing.tree.ExpandVetoException; import javax.swing.tree.TreePath; import java.awt.Cursor; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -101,7 +103,7 @@ public class ObserveMainUIHandler { ContentUIManager manager = ui.getContentUIManager(); // obtain the ui type to show - Class<? extends ObserveContentUI<?, ?>> uiClass = manager.convertNodeToContentUI(node); + Class<? extends ContentUI<?, ?>> uiClass = manager.convertNodeToContentUI(node); if (log.isDebugEnabled()) { log.debug("new selected path = " + node + ", ui = " + uiClass); } @@ -132,7 +134,7 @@ public class ObserveMainUIHandler { } } - public void doOpencontent(ObserveMainUI ui, TreePath path, Class<? extends ObserveContentUI<?, ?>> uiClass) { + public void doOpencontent(ObserveMainUI ui, TreePath path, Class<? extends ContentUI<?, ?>> uiClass) { ContentUIManager manager = ui.getContentUIManager(); @@ -157,8 +159,11 @@ public class ObserveMainUIHandler { DataContext context = ui.getDataContext(); context.populateSelectedIds(selectedIds); + BorderFocusListener borderFocusListener = ui.getBorderFocusListener(); + borderFocusListener.setEnabled(false); + // on recherche l'ui (voir si elle existe déjà) - ObserveContentUI<?, ?> content = manager.getContent(uiClass); + ContentUI<?, ?> content = manager.getContent(uiClass); if (content == null) { @@ -167,6 +172,8 @@ public class ObserveMainUIHandler { // on ouvre l'écran manager.openContent(content); + + SwingUtilities.invokeLater(() -> borderFocusListener.setEnabled(true)); } /** @@ -476,6 +483,23 @@ public class ObserveMainUIHandler { Boolean newvalue = (Boolean) evt.getNewValue(); updateBusyState(ui, newvalue != null && newvalue); }); + + ui.getNavigation().addFocusListener(ui.getBorderFocusListener()); + ui.getNavigation().addMouseListener(new MouseAdapter() { + @Override + public void mouseEntered(MouseEvent e) { + ((JComponent) e.getSource()).grabFocus(); + } + }); + ui.getSplitpane2().addMouseListener(new MouseAdapter() { + @Override + public void mouseEntered(MouseEvent e) { + if (log.isInfoEnabled()) { + log.info("grab getSplitpane2 focus: " + e); + } + ((JComponent) e.getSource()).grabFocus(); + } + }); } protected void updateBusyState(ObserveMainUI ui, boolean busy) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractContentUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/AbstractContentUIAction.java similarity index 86% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractContentUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/AbstractContentUIAction.java index 309f5eb..b9853e5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractContentUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/AbstractContentUIAction.java @@ -1,6 +1,7 @@ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import java.awt.event.ActionEvent; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java similarity index 92% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java index 5fa99df..e415500 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CancelCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java @@ -19,9 +19,10 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java similarity index 97% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java index 90b9118..c774930 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseAndCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java @@ -19,10 +19,11 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseOpenUIAction.java similarity index 95% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseOpenUIAction.java index dd838ac..d2c6a43 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/CloseOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseOpenUIAction.java @@ -19,10 +19,11 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; @@ -60,7 +61,7 @@ public class CloseOpenUIAction extends AbstractContentUIAction { } @Override - protected void actionPerformed(ContentUI<?, ?> ui) { + public void actionPerformed(ContentUI<?, ?> ui) { if (ui instanceof ContentOpenableUI) { ((ContentOpenableUI<?, ?>) ui).closeData(); return; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CreateOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CreateOpenUIAction.java new file mode 100644 index 0000000..cbb1df8 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CreateOpenUIAction.java @@ -0,0 +1,29 @@ +package fr.ird.observe.application.swing.ui.actions.content; + +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.list.ContentListUI; + +/** + * Created on 11/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class CreateOpenUIAction extends AbstractContentUIAction { + + public static final String ACTION_NAME = "createOpen"; + + public CreateOpenUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "<NONE>", "<NONE>", "add", "ctrl pressed N"); + } + + @Override + protected void actionPerformed(ContentUI<?, ?> contentUI) { + + if (contentUI instanceof ContentListUI) { + ContentListUI ui = (ContentListUI) contentUI; + ui.getHandler().addChild(); + } + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteDataUIAction.java similarity index 92% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteDataUIAction.java index 29f16b0..10327c0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteDataUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteDataUIAction.java @@ -19,9 +19,10 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import javax.swing.SwingUtilities; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteReferenceUIAction.java similarity index 92% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteReferenceUIAction.java index 6d1eac7..e205d04 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteReferenceUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteReferenceUIAction.java @@ -19,9 +19,10 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import static org.nuiton.i18n.I18n.n; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteTableEntryUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteTableEntryUIAction.java similarity index 84% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteTableEntryUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteTableEntryUIAction.java index ab78e22..b69ceef 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/DeleteTableEntryUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/DeleteTableEntryUIAction.java @@ -1,6 +1,7 @@ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivityLonglinesUIAction.java similarity index 99% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivityLonglinesUIAction.java index 796ec5f..4fdeed0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivityLonglinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivityLonglinesUIAction.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivitySeinesUIAction.java similarity index 98% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivitySeinesUIAction.java index dca5e7d..26a9630 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveActivitySeinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivitySeinesUIAction.java @@ -19,13 +19,14 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUIModel; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveRoutesUIAction.java similarity index 79% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveRoutesUIAction.java index e2bdf49..7abe582 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveRoutesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveRoutesUIAction.java @@ -19,13 +19,14 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; @@ -37,10 +38,7 @@ import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.data.seine.RouteService; -import javax.swing.JComponent; import javax.swing.JOptionPane; -import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -54,7 +52,7 @@ import static org.nuiton.i18n.I18n.t; * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public class MoveRoutesUIAction extends AbstractUIAction { +public class MoveRoutesUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -71,41 +69,32 @@ public class MoveRoutesUIAction extends AbstractUIAction { } @Override - public void actionPerformed(ActionEvent e) { + protected void actionPerformed(ContentUI<?, ?> ui) { - SwingUtilities.invokeLater(() -> { - JComponent c = (JComponent) e.getSource(); - ContentUI<?, ?> ui = (ContentUI<?, ?>) c.getClientProperty("ui"); - if (ui == null) { - throw new IllegalStateException("could not find client property ui on component" + c); - } - - if (!(ui instanceof RoutesUI)) { - throw new IllegalStateException("Can not come here!"); - } - - RoutesUI theUi = (RoutesUI) ui; + if (!(ui instanceof RoutesUI)) { + throw new IllegalStateException("Can not come here!"); + } - // get current tripseine id - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - ObserveNode oldRoutesNode = treeHelper.getSelectedNode(); - ObserveNode oldTripSeineNode = oldRoutesNode.getParent(); + RoutesUI theUi = (RoutesUI) ui; - // choose the new tripseine - String tripSeineId = chooseNewTripSeine(theUi, oldTripSeineNode); + // get current tripseine id + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + ObserveNode oldRoutesNode = treeHelper.getSelectedNode(); + ObserveNode oldTripSeineNode = oldRoutesNode.getParent(); - if (tripSeineId != null) { - // change the tripseine of the selected routes - List<DataReference<RouteDto>> selectedDatas = theUi.getModel().getSelectedDatas(); - List<String> routeIds = selectedDatas.stream().map(DataReference.ID_FUNCTION).collect(Collectors.toList()); - RouteService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); - List<Integer> positions = service.moveRoutesToTripSeine(routeIds, tripSeineId); + // choose the new tripseine + String tripSeineId = chooseNewTripSeine(theUi, oldTripSeineNode); - // update the tree - updateTree(oldRoutesNode, tripSeineId, routeIds); - } + if (tripSeineId != null) { + // change the tripseine of the selected routes + List<DataReference<RouteDto>> selectedDatas = theUi.getModel().getSelectedDatas(); + List<String> routeIds = selectedDatas.stream().map(DataReference.ID_FUNCTION).collect(Collectors.toList()); + RouteService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); + List<Integer> positions = service.moveRoutesToTripSeine(routeIds, tripSeineId); - }); + // update the tree + updateTree(oldRoutesNode, tripSeineId, routeIds); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripLonglinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripLonglinesUIAction.java similarity index 95% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripLonglinesUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripLonglinesUIAction.java index bff6c8d..8aabffd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripLonglinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripLonglinesUIAction.java @@ -1,4 +1,4 @@ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; /*- * #%L @@ -24,6 +24,7 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.MoveTripsUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUIModel; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripSeinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripSeinesUIAction.java similarity index 95% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripSeinesUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripSeinesUIAction.java index 4988af1..bca7be6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripSeinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripSeinesUIAction.java @@ -1,4 +1,4 @@ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; /*- * #%L @@ -24,6 +24,7 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.MoveTripsUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUIModel; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java similarity index 83% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java index 043fb8d..c4f73bc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/MoveTripsUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; @@ -37,8 +37,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JOptionPane; -import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -52,7 +50,7 @@ import static org.nuiton.i18n.I18n.t; * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractUIAction { +public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractContentUIAction { private static final long serialVersionUID = 1L; @@ -74,33 +72,28 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractUIAct } @Override - public void actionPerformed(ActionEvent e) { + protected void actionPerformed(ContentUI<?, ?> ui) { - SwingUtilities.invokeLater(() -> { + checkUIClass(ui); - ContentUI<?, ?> ui = getContentUI(e); - checkUIClass(ui); - - // get current program id - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - ObserveNode oldProgramNode = treeHelper.getSelectedNode(); - String oldProgramId = oldProgramNode.getId(); + // get current program id + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + ObserveNode oldProgramNode = treeHelper.getSelectedNode(); + String oldProgramId = oldProgramNode.getId(); - // choose the new program - String programId = chooseNewProgram(ui, oldProgramId); + // choose the new program + String programId = chooseNewProgram(ui, oldProgramId); - if (programId != null) { + if (programId != null) { - // change the program of the selected trips - List<DataReference<T>> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); - List<String> tripIds = selectedDatas.stream().map(DataReference.ID_FUNCTION).collect(Collectors.toList()); - List<Integer> positions = getPositions(tripIds, programId); + // change the program of the selected trips + List<DataReference<T>> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); + List<String> tripIds = selectedDatas.stream().map(DataReference.ID_FUNCTION).collect(Collectors.toList()); + List<Integer> positions = getPositions(tripIds, programId); - // update the tree - updateTree(ui, oldProgramNode, oldProgramId, programId, tripIds, positions); - } - - }); + // update the tree + updateTree(ui, oldProgramNode, oldProgramId, programId, tripIds, positions); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/NewTableEntryUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/NewTableEntryUIAction.java similarity index 83% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/NewTableEntryUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/NewTableEntryUIAction.java index f0e129c..17fe4f7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/NewTableEntryUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/NewTableEntryUIAction.java @@ -1,6 +1,7 @@ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ReOpenUIAction.java similarity index 93% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ReOpenUIAction.java index b122bf9..b96e700 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ReOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ReOpenUIAction.java @@ -19,10 +19,11 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.ContentListUI; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; @@ -56,7 +57,7 @@ public class ReOpenUIAction extends AbstractContentUIAction { } @Override - protected void actionPerformed(ContentUI<?, ?> ui) { + public void actionPerformed(ContentUI<?, ?> ui) { ContentOpenableUI<?, ?> openUI; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java similarity index 74% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java index da7a884..b922346 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetEditUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java @@ -19,10 +19,12 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import static org.nuiton.i18n.I18n.n; @@ -50,8 +52,15 @@ public class ResetEditUIAction extends AbstractContentUIAction { } @Override - protected void actionPerformed(ContentUI<?, ?> contentUI) { - contentUI.resetEdit(); + protected void actionPerformed(ContentUI<?, ?> ui) { + + if (ui.getModel().isCreatingMode()) { + ui.stopEdit(); + ObserveNode parentNode = ui.getTreeHelper().removeNode(ui.getTreeHelper().getSelectedNode()); + ui.getTreeHelper().selectNode(parentNode); + } else { + ui.resetEdit(); + } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetTableEntryUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetTableEntryUIAction.java similarity index 87% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetTableEntryUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetTableEntryUIAction.java index a0c8bdd..ce0291b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/ResetTableEntryUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetTableEntryUIAction.java @@ -1,6 +1,7 @@ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveEditUIAction.java similarity index 91% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveEditUIAction.java index 04ad480..597e6ce 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveEditUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveEditUIAction.java @@ -19,14 +19,12 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; -import javax.swing.SwingUtilities; -import java.awt.event.ActionEvent; - import static org.nuiton.i18n.I18n.n; /** diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveTableEntryUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveTableEntryUIAction.java similarity index 87% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveTableEntryUIAction.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveTableEntryUIAction.java index 469e349..018a011 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SaveTableEntryUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveTableEntryUIAction.java @@ -1,6 +1,7 @@ -package fr.ird.observe.application.swing.ui.actions.shared; +package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/AbstractGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/AbstractGlobalUIAction.java new file mode 100644 index 0000000..a2df2d9 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/AbstractGlobalUIAction.java @@ -0,0 +1,18 @@ +package fr.ird.observe.application.swing.ui.actions.global; + +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; + +/** + * Created on 11/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public abstract class AbstractGlobalUIAction extends AbstractUIAction { + + protected AbstractGlobalUIAction(ObserveMainUI mainUI, String actionId, String acceleratorKey) { + super(mainUI, actionId, "<NONE>", "<NONE>", "reset", acceleratorKey); + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ChangeFocusGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ChangeFocusGlobalUIAction.java new file mode 100644 index 0000000..a88b96a --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ChangeFocusGlobalUIAction.java @@ -0,0 +1,60 @@ +package fr.ird.observe.application.swing.ui.actions.global; + +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.JComponent; +import javax.swing.JTree; +import javax.swing.SwingUtilities; +import java.awt.FocusTraversalPolicy; +import java.awt.event.ActionEvent; + +/** + * Created on 11/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ChangeFocusGlobalUIAction extends AbstractGlobalUIAction { + + /** Logger */ + private static final Log log = LogFactory.getLog(ChangeFocusGlobalUIAction.class); + + public static final String ACTION_NAME = "focusOnTreeGlobal"; + + public ChangeFocusGlobalUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "pressed F1"); + } + + @Override + public void actionPerformed(ActionEvent e) { + JTree navigation = getMainUI().getNavigation(); + + JComponent focusComponent; + if (navigation.isFocusOwner()) { + if (log.isInfoEnabled()) { + log.info("Focus to content"); + } + ContentUI<?, ?> contentUI = getContentUI(e); + FocusTraversalPolicy focusTraversalPolicy = contentUI.getFocusTraversalPolicy(); + focusComponent = (JComponent) focusTraversalPolicy.getFirstComponent(contentUI); +// if (focusComponent instanceof JList) { +// JList jList = (JList) focusComponent; +// if (jList.getModel().getSize() > 0) { +// jList.setSelectedIndex(0); +// } +// jList.requestFocusInWindow(); +// } + + } else { + if (log.isInfoEnabled()) { + log.info("Focus to navigation"); + } + focusComponent = navigation; + } + + SwingUtilities.invokeLater(focusComponent::requestFocusInWindow); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/DeleteDataGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/DeleteDataGlobalUIAction.java new file mode 100644 index 0000000..60a64a6 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/DeleteDataGlobalUIAction.java @@ -0,0 +1,45 @@ +package fr.ird.observe.application.swing.ui.actions.global; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.global.AbstractGlobalUIAction; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; + +import javax.swing.JButton; +import java.awt.event.ActionEvent; + +/** + * Created on 11/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class DeleteDataGlobalUIAction extends AbstractGlobalUIAction { + + public static final String ACTION_NAME = "deleteDataGlobal"; + + public DeleteDataGlobalUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "pressed F6"); + } + + + @Override + public void actionPerformed(ActionEvent e) { + + ContentUI<?, ?> contentUI = ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + + JButton button; + if (contentUI instanceof ContentTableUI) { + ContentTableUI ui = (ContentTableUI) contentUI; + button = ui.getDeleteEntry(); + } else { + button = (JButton) contentUI.getObjectById("delete"); + } + if (button != null) { + button.getAction().actionPerformed(e); + } + + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/NewNextDataGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/NewNextDataGlobalUIAction.java new file mode 100644 index 0000000..3b9f2e1 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/NewNextDataGlobalUIAction.java @@ -0,0 +1,45 @@ +package fr.ird.observe.application.swing.ui.actions.global; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.global.AbstractGlobalUIAction; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.list.ContentListUI; +import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; +import fr.ird.observe.application.swing.ui.content.table.ContentTableUI; + +import java.awt.event.ActionEvent; + +/** + * Created on 11/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NewNextDataGlobalUIAction extends AbstractGlobalUIAction { + + public static final String ACTION_NAME = "newNextGlobal"; + + public NewNextDataGlobalUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "pressed F4"); + } + + @Override + public void actionPerformed(ActionEvent e) { + + ContentUI<?, ?> contentUI = ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + + if (contentUI instanceof ContentListUI) { + ContentListUI ui = (ContentListUI) contentUI; + ui.getCreateChild().getAction().actionPerformed(e); + } else if (contentUI instanceof ContentOpenableUI) { + ContentOpenableUI ui = (ContentOpenableUI) contentUI; + ui.getCloseAndCreate().getAction().actionPerformed(e); + } else if (contentUI instanceof ContentTableUI) { + ContentTableUI ui = (ContentTableUI) contentUI; + ui.getNewEntry().getAction().actionPerformed(e); + } + + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/OpenCloseDataGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/OpenCloseDataGlobalUIAction.java new file mode 100644 index 0000000..8c59d34 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/OpenCloseDataGlobalUIAction.java @@ -0,0 +1,76 @@ +package fr.ird.observe.application.swing.ui.actions.global; + +import fr.ird.observe.application.swing.ObserveOpenDataManager; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction; +import fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.list.ContentListUI; +import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; + +import java.awt.event.ActionEvent; +import java.util.Objects; + +/** + * Created on 11/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class OpenCloseDataGlobalUIAction extends AbstractGlobalUIAction { + + public static final String ACTION_NAME = "openCloseDataGlobal"; + + private final ReOpenUIAction openAction; + private final CloseOpenUIAction closeAction; + + public OpenCloseDataGlobalUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "pressed F3"); + openAction = new ReOpenUIAction(mainUI); + closeAction = new CloseOpenUIAction(mainUI); + } + + @Override + public void actionPerformed(ActionEvent e) { + ContentUI<?, ?> contentUI = ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + + if (contentUI instanceof ContentListUI) { + ContentListUI ui = (ContentListUI) contentUI; + + if (ui.getReopenChild().isEnabled()) { + + // on réouvre + openAction.actionPerformed(ui); + } else if (ui.getCloseChild().isEnabled()) { + + // on ferme + closeAction.actionPerformed(ui); + + } + + return; + } + + if (contentUI.getModel().isCreatingMode() || !(contentUI instanceof ContentOpenableUI)) { + return; + } + + // le seul cas où on peut intervenir (sur un ecran open et pas en mode création) + + String currentId = contentUI.getModel().getBean().getId(); + Objects.requireNonNull(currentId); + + ObserveOpenDataManager openDataManager = ObserveSwingApplicationContext.get().getOpenDataManager(); + + boolean isOpened = openDataManager.isOpen(currentId); + + if (isOpened) { + closeAction.actionPerformed(contentUI); + } else { + openAction.actionPerformed(contentUI); + } + + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ResetDataGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ResetDataGlobalUIAction.java new file mode 100644 index 0000000..75492b6 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ResetDataGlobalUIAction.java @@ -0,0 +1,38 @@ +package fr.ird.observe.application.swing.ui.actions.global; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.global.AbstractGlobalUIAction; +import fr.ird.observe.application.swing.ui.content.ContentUI; + +import javax.swing.JButton; +import java.awt.event.ActionEvent; + +/** + * Created on 11/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ResetDataGlobalUIAction extends AbstractGlobalUIAction { + + public static final String ACTION_NAME = "resetDataGlobal"; + + public ResetDataGlobalUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "pressed F7"); + } + + + @Override + public void actionPerformed(ActionEvent e) { + + ContentUI<?, ?> contentUI = ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + + JButton button = (JButton) contentUI.getObjectById("reset"); + if (button != null) { + button.getAction().actionPerformed(e); + } + + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/SaveDataGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/SaveDataGlobalUIAction.java new file mode 100644 index 0000000..64869a4 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/SaveDataGlobalUIAction.java @@ -0,0 +1,38 @@ +package fr.ird.observe.application.swing.ui.actions.global; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.global.AbstractGlobalUIAction; +import fr.ird.observe.application.swing.ui.content.ContentUI; + +import javax.swing.JButton; +import java.awt.event.ActionEvent; + +/** + * Created on 11/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SaveDataGlobalUIAction extends AbstractGlobalUIAction { + + public static final String ACTION_NAME = "saveDataGlobal"; + + public SaveDataGlobalUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, "pressed F5"); + } + + + @Override + public void actionPerformed(ActionEvent e) { + + ContentUI<?, ?> contentUI = ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + + JButton button = (JButton) contentUI.getObjectById("save"); + if (button != null) { + button.getAction().actionPerformed(e); + } + + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java index 99fa5f1..251cac4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.application.swing.ui.actions.shared; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; @@ -139,13 +140,13 @@ public abstract class AbstractUIAction extends AbstractAction { protected boolean canExecuteAction(ActionEvent e) { JComponent editor = getEditor(); - if (!(editor.isVisible() && editor.isEnabled())) { - if (log.isInfoEnabled()) { - log.info("Disabled action: " + getActionCommandKey() + " :: " + this); - } - return false; + if ((editor == null || (editor.isVisible() && editor.isEnabled()))) { + return true; + } + if (log.isInfoEnabled()) { + log.info("Disabled action: " + getActionCommandKey() + " :: " + this); } - return true; + return false; } private JComponent getEditor() { @@ -154,7 +155,7 @@ public abstract class AbstractUIAction extends AbstractAction { public static boolean isOpenActivityNodeCollapsed(JTree tree, ObserveTreeHelper treeHelper, DataContext dataContext) { - // on regarde si le noeud de l'activity ouverte est collapsé + // on regarde si le noeud de l'activité ouverte est collapsé ObserveNode node = treeHelper.getSelectedNode(); @@ -173,6 +174,8 @@ public abstract class AbstractUIAction extends AbstractAction { JComponent c = (JComponent) e.getSource(); ContentUI<?, ?> ui; + //FIXME On devrait peut-être toujours se baser sur le contentui manager + //FIXME et ne plus rien attacher aux editeurs ? if (c instanceof ContentUI) { ui = (ContentUI<?, ?>) c; } else if (c.getParent() instanceof ContentUI) { @@ -180,7 +183,9 @@ public abstract class AbstractUIAction extends AbstractAction { } else { ui = (ContentUI<?, ?>) c.getClientProperty("ui"); } - Objects.requireNonNull(ui, "could not find client property ui on component" + c); + if (ui == null) { + ui = ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); + } return ui; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/Common.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/Common.jcss index f3e4867..643d755 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/Common.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/Common.jcss @@ -20,6 +20,10 @@ * #L% */ +JButton { + _protectFocus:true; +} + TimeEditor { bean:{bean}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jcss index 9edb264..2d23bbe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jcss @@ -36,6 +36,7 @@ #actionDown { _observeAction:{GoDownUIAction.ACTION_NAME}; + _protectFocus:true; } #actionUpPane { @@ -44,6 +45,7 @@ #actionUp { _observeAction:{GoUpUIAction.ACTION_NAME}; + _protectFocus:true; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java index e60fbfe..5101388 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java @@ -15,7 +15,6 @@ import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; -import java.util.Objects; import java.util.Set; /** @@ -49,7 +48,7 @@ public class ContentUIBlockingLayerUI extends BlockingLayerUI { @Override protected void processKeyEvent(KeyEvent e, JXLayer<? extends JComponent> l) { - InputMap inputMap = ui.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + InputMap inputMap = ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); ActionMap actionMap = ui.getActionMap(); boolean consumed = false; @@ -65,10 +64,10 @@ public class ContentUIBlockingLayerUI extends BlockingLayerUI { consumed = doAction(keyStroke, inputMap, actionMap); } - if (!consumed && !e.isControlDown() && !e.isShiftDown() && !e.isAltDown() && !e.isAltGraphDown() + if (!consumed && e.getID() == KeyEvent.KEY_PRESSED && !e.isControlDown() && !e.isShiftDown() && !e.isAltDown() && !e.isAltGraphDown() && !e.isMetaDown() && GLOBAL_KEY_CODES.contains(e.getKeyCode())) { - KeyStroke keyStroke = KeyStroke.getKeyStroke("pressed " + (char) e.getKeyCode()); + KeyStroke keyStroke = KeyStroke.getKeyStroke(e.getKeyCode(), 0); if (keyStroke == null) { super.processKeyEvent(e, l); @@ -94,8 +93,7 @@ public class ContentUIBlockingLayerUI extends BlockingLayerUI { Action action = actionMap.get(actionName); JComponent editor = (JComponent) action.getValue(AbstractUIAction.EDITOR); - Objects.requireNonNull(editor, "No editor on action: " + action); - if (editor.isVisible() && editor.isEnabled()) { + if (editor == null || (editor.isVisible() && editor.isEnabled())) { if (log.isInfoEnabled()) { log.info("Found action: " + action.getValue(Action.NAME) + " for keyStroke: " + keyStroke); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java index f19ecba..d5d0443 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java @@ -244,17 +244,17 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U return wasClosed; } - public static <E extends IdDto, U extends ContentUI<E,U>> void addMessage(U ui, NuitonValidatorScope scope, String fieldName, String message) { + public static <E extends IdDto, U extends ContentUI<E, U>> void addMessage(U ui, NuitonValidatorScope scope, String fieldName, String message) { SwingValidatorMessageTableModel model = ui.getErrorTableModel(); model.addMessages(ui, fieldName, scope, message); } - public static <E extends IdDto, U extends ContentUI<E,U>>void removeAllMessages(U ui, NuitonValidatorScope scope, String fieldName) { + public static <E extends IdDto, U extends ContentUI<E, U>> void removeAllMessages(U ui, NuitonValidatorScope scope, String fieldName) { SwingValidatorMessageTableModel model = ui.getErrorTableModel(); model.removeMessages(ui, fieldName, scope); } - protected static <E extends IdDto, U extends ContentUI<E,U>> void removeAllMessages(U ui) { + protected static <E extends IdDto, U extends ContentUI<E, U>> void removeAllMessages(U ui) { SwingValidatorMessageTableModel model = ui.getErrorTableModel(); model.removeMessages(ui, null); } @@ -303,7 +303,59 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM, evt -> updateUiWithReferenceSetsFromModel()); - ObserveSwingApplicationContext.get().getFocusManager().setFocusTraversalPolicy(ui); + ObserveSwingApplicationContext.get().getFocusManager().installFocusTraversalPolicy(ui); + +// addFocusabelOnForm(); + + } + + protected void addFocusabelOnForm() { + getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_MODE, evt -> updateFocusable((ContentMode) evt.getNewValue())); + updateFocusable(ContentMode.READ); + } + + public void updateFocusable(ContentMode newMode) { + if (newMode == null) { + return; + } + switch (newMode) { + case CREATE: + case UPDATE: + ui.get$objectMap().values().stream().filter(o -> o instanceof JComponent).forEach(o -> { + JComponent component = (JComponent) o; + if (BooleanUtils.isTrue((Boolean) component.getClientProperty("protectFocus"))) { + return; + } + if (component instanceof BeanComboBox) { + BeanComboBox beanComboBox = (BeanComboBox) component; + component = beanComboBox.getCombobox(); + } + Boolean focusable = (Boolean) component.getClientProperty("_focusable"); + component.setFocusable(BooleanUtils.isTrue(focusable)); + + }); + break; + case READ: + + // remove all focusables + ui.get$objectMap().values().stream().filter(o -> o instanceof JComponent).forEach(o -> { + JComponent component = (JComponent) o; + if (BooleanUtils.isTrue((Boolean) component.getClientProperty("protectFocus"))) { + return; + } + if (component instanceof BeanComboBox) { + BeanComboBox beanComboBox = (BeanComboBox) component; + component = beanComboBox.getCombobox(); + } + boolean focusable = component.isFocusable(); + if (focusable) { + component.putClientProperty("_focusable", true); + component.setFocusable(false); + } + + }); + break; + } } public void openUI() { @@ -324,8 +376,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U // suppression des messages de validation removeAllMessages(ui); ObserveTreeHelper treeHelper = getTreeHelper(ui); - AbstractObserveTreeCellRenderer render = - treeHelper.getTreeCellRenderer(); + AbstractObserveTreeCellRenderer render = treeHelper.getTreeCellRenderer(); ObserveNode node = treeHelper.getSelectedNode(); if (ContentReferenceUIHandler.class.isAssignableFrom(getClass())) { node = node.getParent(); @@ -333,6 +384,12 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U ui.setContentIcon(render.getNavigationIcon(node)); updateActions(); + + JComponent firstComponent = (JComponent) ui.getFocusTraversalPolicy().getFirstComponent(ui); + if (log.isInfoEnabled()) { + log.info("Grab focus on first component: " + firstComponent); + } + firstComponent.grabFocus(); } public Icon getErrorIconIfFalse(boolean valid) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java index bf5e7c1..6d15481 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIInitializer.java @@ -207,6 +207,9 @@ public class ContentUIInitializer<E extends IdDto, UI extends ContentUI<E, UI>> Set<String> doNotBlockComponentIds = new HashSet<>(); + ui.getActionMap().setParent(actionMap); + ui.setInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW ,ObserveSwingApplicationContext.get().getMainUI().getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)); + for (String name : ui.get$objectMap().keySet()) { Object o = ui.getObjectById(name); @@ -493,6 +496,10 @@ public class ContentUIInitializer<E extends IdDto, UI extends ContentUI<E, UI>> } editor.setFormat(ObserveSwingApplicationContext.get().getConfig().getCoordinateFormat()); editor.init(); + editor.getDmdFormat().setFocusable(false); + editor.getDmsFormat().setFocusable(false); + editor.getDdFormat().setFocusable(false); + } protected void init(JTextField editor) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java index 1e70471..0182303 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java @@ -99,7 +99,11 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JPanel; +import javax.swing.JTree; +import javax.swing.SwingUtilities; import java.awt.Component; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import java.lang.reflect.Constructor; import java.util.Map; import java.util.TreeMap; @@ -121,7 +125,7 @@ public class ContentUIManager { /** Logger */ static private final Log log = LogFactory.getLog(ContentUIManager.class); - private final Map<String, Class<? extends ObserveContentUI<?, ?>>> mapping; + private final Map<String, Class<? extends ContentUI<?, ?>>> mapping; public ContentUIManager() { @@ -191,7 +195,7 @@ public class ContentUIManager { } - public Class<? extends ObserveContentUI<?, ?>> convertNodeToContentUI(ObserveNode node) { + public Class<? extends ContentUI<?, ?>> convertNodeToContentUI(ObserveNode node) { if (log.isDebugEnabled()) { log.debug("Entrer for node = " + node); } @@ -230,7 +234,7 @@ public class ContentUIManager { return mapping.get(mappingKey); } - public <U extends ObserveContentUI<?, ?>> U getContent(Class<U> uiClass) { + public <U extends ContentUI<?, ?>> U getContent(Class<U> uiClass) { CardLayout2 layout = getLayout(); JPanel layoutContent = getLayoutContent(); @@ -250,7 +254,7 @@ public class ContentUIManager { return content; } - public <U extends ObserveContentUI<?, ?>> U createContent(Class<U> uiClass) { + public <U extends ContentUI<?, ?>> U createContent(Class<U> uiClass) { String constraints = uiClass.getName(); @@ -271,14 +275,33 @@ public class ContentUIManager { try { // ajout du content dans son parent - getLayoutContent().add((JComponent) result, constraints); - + getLayoutContent().add(result, constraints); if (log.isDebugEnabled()) { log.debug("Add new content [" + constraints + "] : " + result.getClass().getName()); } // initialisation du content result.init(); + result.addMouseListener(new MouseAdapter() { + @Override + public void mouseEntered(MouseEvent e) { + if (log.isInfoEnabled()) { + log.info("grab enter focus: " + e); + } + ((JComponent) e.getSource()).grabFocus(); + } + + @Override + public void mouseMoved(MouseEvent e) { + if (!((JComponent) e.getSource()).isFocusOwner()) { + if (log.isInfoEnabled()) { + log.info("grab moved focus: " + e); + } + ((JComponent) e.getSource()).grabFocus(); + } + } + }); + return result; } catch (Exception e) { @@ -286,12 +309,7 @@ public class ContentUIManager { } } - public ObserveContentUI<?, ?> getCurrentContent() { - return (ObserveContentUI<?, ?>) - getLayout().getVisibleComponent(getLayoutContent()); - } - - public void openContent(ObserveContentUI<?, ?> content) { + public void openContent(ContentUI<?, ?> content) { String constraints = content.getClass().getName(); @@ -299,12 +317,15 @@ public class ContentUIManager { log.debug("Will open ui [" + constraints + "] : " + content.getClass()); } + JTree navigation = getMainUI().getNavigation(); + boolean focusOnNavigation = navigation.isFocusOwner(); + // on ouvre l'ui try { content.open(); ObserveSwingSessionHelper swingSessionHelper = ObserveSwingApplicationContext.get().getSwingSessionHelper(); - swingSessionHelper.addComponent((Component) content, true); + swingSessionHelper.addComponent(content, true); swingSessionHelper.save(); } catch (Exception e) { @@ -314,6 +335,11 @@ public class ContentUIManager { // on affiche l'ui quoi qu'il arrive ? getLayout().show(getLayoutContent(), constraints); } + + if (focusOnNavigation) { + SwingUtilities.invokeLater(navigation::grabFocus); + } + } public void close() { @@ -409,7 +435,7 @@ public class ContentUIManager { if (log.isDebugEnabled()) { log.debug("Add key: " + key + " → " + contentClass.getName()); } - mapping.put(key, (Class<? extends ContentUI<?, ?>>) contentClass); + mapping.put(key, (Class) contentClass); } private String getMappingKey(String prefix, Class<?> klass, String context) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java index c59c0e2..71556dd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java @@ -3,6 +3,7 @@ package fr.ird.observe.application.swing.ui.content; import com.google.common.collect.ImmutableMap; import fr.ird.observe.application.swing.ObserveSwingTechnicalException; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.global.AbstractGlobalUIAction; import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; import org.apache.commons.beanutils.ConstructorUtils; import org.apache.commons.logging.Log; @@ -11,6 +12,8 @@ import org.reflections.Reflections; import javax.swing.Action; import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.JComponent; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Modifier; import java.util.Set; @@ -27,40 +30,82 @@ public class ObserveActionMap extends ActionMap { private static final Log log = LogFactory.getLog(ObserveActionMap.class); private final ObserveMainUI ui; - private final ImmutableMap<String, Class<? extends AbstractUIAction>> mapping; + private final ImmutableMap<String, ? extends AbstractGlobalUIAction> globalActions; public ObserveActionMap(ObserveMainUI ui) { this.ui = ui; - Set<Class<? extends AbstractUIAction>> actionTypes = new Reflections("fr.ird.observe.application.swing.ui.actions.shared").getSubTypesOf(AbstractUIAction.class); + Set<Class<? extends AbstractUIAction>> actionTypes = new Reflections("fr.ird.observe.application.swing.ui.actions").getSubTypesOf(AbstractUIAction.class); + + InputMap inputMap = ui.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); ImmutableMap.Builder<String, Class<? extends AbstractUIAction>> mappingBuilder = ImmutableMap.builder(); + ImmutableMap.Builder<String, AbstractGlobalUIAction> globalActionsBuilder = ImmutableMap.builder(); for (Class<? extends AbstractUIAction> actionType : actionTypes) { if (Modifier.isAbstract(actionType.getModifiers())) { continue; } + String actionId; try { - String actionId = (String) actionType.getDeclaredField("ACTION_NAME").get(null); - mappingBuilder.put(actionId, actionType); + actionId = (String) actionType.getDeclaredField("ACTION_NAME").get(null); } catch (IllegalAccessException | NoSuchFieldException e) { throw new ObserveSwingTechnicalException("Can't find ACTION_NAME field on action: " + actionType.getName()); } + if (AbstractGlobalUIAction.class.isAssignableFrom(actionType)) { + + // action globale + Class<? extends AbstractGlobalUIAction> globalActionType = (Class) actionType; + if (log.isInfoEnabled()) { + log.info("Register global action: " + actionId + " - type: " + globalActionType.getName()); + } + AbstractGlobalUIAction globalUIAction = newAction(actionId, globalActionType); + globalActionsBuilder.put(actionId, globalUIAction); + inputMap.put(globalUIAction.getAcceleratorKey(), actionId); + + } else { + + // action simple + if (log.isInfoEnabled()) { + log.info("Register action: " + actionId + " - type: " + actionType.getName()); + } + mappingBuilder.put(actionId, actionType); + + } + } mapping = mappingBuilder.build(); + globalActions = globalActionsBuilder.build(); + } @Override public Action get(Object key) { + + AbstractGlobalUIAction globalUIAction = globalActions.get(key); + if (globalUIAction != null) { + return globalUIAction; + } + Class<? extends AbstractUIAction> actionType = mapping.get(key); if (actionType == null) { return super.get(key); } + return newAction((String) key, actionType); + + } + + public ImmutableMap<String, ? extends AbstractGlobalUIAction> getGlobalActions() { + return globalActions; + } + + private <A extends AbstractUIAction> A newAction(String key, Class<A> actionType) { + try { if (log.isInfoEnabled()) { log.info("Create action: " + key + ", type: " + actionType.getName()); @@ -71,4 +116,5 @@ public class ObserveActionMap extends ActionMap { } } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java index c649f10..c5c28fe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java @@ -7,6 +7,12 @@ import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectTran import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectUI; import fr.ird.observe.application.swing.ui.content.impl.seine.SetSeineUI; import fr.ird.observe.application.swing.ui.content.list.ContentListUI; +import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; +import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; +import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; +import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; +import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUI; +import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; import fr.ird.observe.application.swing.ui.content.open.impl.longline.ActivityLonglineUI; import fr.ird.observe.application.swing.ui.content.open.impl.longline.TripLonglineUI; import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; @@ -37,6 +43,10 @@ import fr.ird.observe.application.swing.ui.content.table.impl.seine.SchoolEstima import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetCatchUI; import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetDiscardCatchUI; import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetSampleUI; +import jaxx.runtime.swing.editor.NumberEditor; +import jaxx.runtime.swing.editor.bean.BeanComboBox; +import org.jdesktop.swingx.JXDatePicker; +import org.nuiton.jaxx.widgets.select.FilterableDoubleList; import javax.swing.JButton; import javax.swing.JComponent; @@ -61,12 +71,9 @@ public class ObserveFocusManager { private final ImmutableMap<Class<? extends ContentUI>, ObserveLayoutFocusTraversalPolicy> policies; - public <U extends ContentUI> void setFocusTraversalPolicy(U ui) { + public <U extends ContentUI> void installFocusTraversalPolicy(U ui) { Objects.requireNonNull(ui); Class<? extends ContentUI> uiClass = ui.getClass(); - if (ui instanceof ContentListUI) { - uiClass = ContentListUI.class; - } ObserveLayoutFocusTraversalPolicy policy = policies.get(uiClass); if (policy == null && ui instanceof ContentReferenceUI) { uiClass = ContentReferenceUI.class; @@ -86,22 +93,7 @@ public class ObserveFocusManager { builder.put(LonglineDetailCompositionUI.class, new ObserveLayoutFocusTraversalPolicy<LonglineDetailCompositionUI>() { @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - LonglineDetailCompositionUI ui = getUi(); - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - if (selectedIndex == 2) { - if (aComponent.equals(ui.getBranchlineDetailUI().getTopType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getBranchlineDetailUI().getHookType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { LonglineDetailCompositionUI ui = getUi(); int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); if (selectedIndex == 2) { @@ -117,8 +109,7 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { - + protected Component getLastComponentForEdit(Container aContainer) { LonglineDetailCompositionUI ui = getUi(); if (ui.getSave().isEnabled()) { return ui.getSave(); @@ -132,12 +123,13 @@ public class ObserveFocusManager { } return super.getLastComponent(aContainer); } + }); builder.put(SetLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<SetLonglineUI>() { @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { SetLonglineUI ui = getUi(); int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -152,42 +144,20 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { return getUi().getDelete(); } - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - SetLonglineUI ui = getUi(); - if (aComponent.equals(ui.getHomeId())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getHaulingDirectionSameAsSetting())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getSettingShape().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } }); builder.put(FloatingObjectTransmittingBuoyOperationUI.class, new ObserveLayoutFocusTraversalPolicy<FloatingObjectTransmittingBuoyOperationUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - - if (aComponent.equals(getUi().getTypeOperation())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { return getUi().getTypeOperation(); } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { FloatingObjectTransmittingBuoyOperationUI ui = getUi(); if (ui.getSave().isEnabled()) { return ui.getSave(); @@ -201,25 +171,9 @@ public class ObserveFocusManager { }); builder.put(SetSeineUI.class, new ObserveLayoutFocusTraversalPolicy<SetSeineUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - SetSeineUI ui = getUi(); - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.getParent().equals(ui.getStartTime().getHourEditor().getEditor())) { - return getLastComponent(aContainer); - } - case 1: - if (aComponent.equals(ui.getSchoolThickness().getTextField())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { SetSeineUI ui = getUi(); int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -233,7 +187,7 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { SetSeineUI ui = getUi(); if (ui.getDelete().isVisible() && ui.getDelete().isEnabled()) { return ui.getDelete(); @@ -243,25 +197,18 @@ public class ObserveFocusManager { } return ui.getReset(); } + }); builder.put(FloatingObjectUI.class, new ObserveLayoutFocusTraversalPolicy<FloatingObjectUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - FloatingObjectUI ui = getUi(); - if (aComponent.equals(ui.getObjectOperation().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { return getUi().getObjectOperation(); } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { FloatingObjectUI ui = getUi(); if (ui.getDelete().isVisible() && ui.getDelete().isEnabled()) { return ui.getDelete(); @@ -271,145 +218,75 @@ public class ObserveFocusManager { } return ui.getReset(); } - }); - - builder.put(ContentListUI.class, new ObserveLayoutFocusTraversalPolicy<ContentListUI>() { - - private List<JComponent> actions; - - @Override - public Component getFirstComponent(Container aContainer) { - return getUi().getList(); - } - - public List<JComponent> getActions() { - if (actions == null) { - - actions = new ArrayList<>(); - actions.add(getUi().getGotoSelectedChild()); - actions.add(getUi().getReopenChild()); - actions.add(getUi().getCloseChild()); - actions.add(getUi().getGotoOpenChild()); - actions.add(getUi().getGotoOpenChild2()); - actions.add(getUi().getCreateChild()); - for (Component component : getUi().getExtraActions().getComponents()) { - if (component instanceof JButton) { - actions.add((JComponent) component); - } - } - actions.add(getUi().getMoveSelectedChildren()); - - } - List<JComponent> result = new ArrayList<>(actions); - Collections.reverse(result); - return result; - } - - @Override - public Component getLastComponent(Container aContainer) { - Optional<JComponent> optional = getActions().stream().filter(a -> a.isEnabled() && a.isVisible()).findFirst(); - return optional.isPresent() ? optional.get() : super.getLastComponent(aContainer); - } - - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(getUi().getList())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } }); + builder.put(TripSeinesUI.class, new ContentListUIObserveLayoutFocusTraversalPolicy()); + builder.put(RoutesUI.class, new ContentListUIObserveLayoutFocusTraversalPolicy()); + builder.put(ActivitySeinesUI.class, new ContentListUIObserveLayoutFocusTraversalPolicy()); + builder.put(TripLonglinesUI.class, new ContentListUIObserveLayoutFocusTraversalPolicy()); + builder.put(ActivityLonglinesUI.class, new ContentListUIObserveLayoutFocusTraversalPolicy()); + builder.put(TripLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<TripLonglineUI>() { @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { + protected Component getFirstComponentForEdit(Container aContainer) { TripLonglineUI ui = getUi(); - if (aComponent.equals(ui.getTripType().getCombobox().getEditor().getEditorComponent())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); + if (ui.getModel().isReadingMode()) { + if (ui.getReopen().isVisible()) { + return ui.getReopen(); } - return ui.getDelete(); + if (ui.getActionUp().isEnabled()) { + return ui.getActionUp(); + } + return ui.getActionDown(); } - return super.getComponentBefore(aContainer, aComponent); + return ui.getTripType(); } @Override - public Component getComponentAfter(Container aContainer, Component aComponent) { + protected Component getLastComponentForEdit(Container aContainer) { TripLonglineUI ui = getUi(); - if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { - - // retour au début - return ui.getTripType(); + if (ui.getCloseAndCreate().isVisible() && ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); } - if (aComponent.equals(ui.getCloseAndCreate())) { - - // retour au début - return ui.getTripType(); + if (ui.getDelete().isVisible() && ui.getDelete().isEnabled()) { + return ui.getDelete(); } - return super.getComponentAfter(aContainer, aComponent); + if (ui.getModel().isReadingMode()) { + if (ui.getReopen().isVisible()) { + return ui.getReopen(); + } + if (ui.getActionDown().isEnabled()) { + return ui.getActionDown(); + } + return ui.getActionUp(); + } + return ui.getActionUp(); } + }); builder.put(ActivityLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<ActivityLonglineUI>() { @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - ActivityLonglineUI ui = getUi(); - if (aComponent.equals(ui.getTimeStamp().getDayDateEditor().getEditor())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); - } - return ui.getDelete(); - } - return super.getComponentBefore(aContainer, aComponent); + protected Component getFirstComponentForEdit(Container aContainer) { + return getUi().getTimeStamp().getDayDateEditor(); } @Override - public Component getComponentAfter(Container aContainer, Component aComponent) { + protected Component getLastComponentForEdit(Container aContainer) { ActivityLonglineUI ui = getUi(); - if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { - - // retour au début - return ui.getTimeStamp().getDayDateEditor().getEditor(); - } - if (aComponent.equals(ui.getCloseAndCreate())) { - - // retour au début - return ui.getTimeStamp().getDayDateEditor().getEditor(); + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); } - return super.getComponentAfter(aContainer, aComponent); + return ui.getDelete(); } + }); builder.put(ActivitySeineUI.class, new ObserveLayoutFocusTraversalPolicy<ActivitySeineUI>() { @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - ActivitySeineUI ui = getUi(); - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.getParent().equals(ui.getTime().getHourEditor().getEditor())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); - } - return ui.getDelete(); - } - break; - case 1: - if (aComponent.equals(ui.getVesselSpeed().getTextField())) { - return getLastComponent(aContainer); - } - case 2: - if (aComponent.equals(ui.getObservedSystem().getUniverseList())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { ActivitySeineUI ui = getUi(); int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -425,7 +302,7 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { ActivitySeineUI ui = getUi(); if (ui.getModel().isCreatingMode()) { if (ui.getSave().isEnabled()) { @@ -435,99 +312,47 @@ public class ObserveFocusManager { } else return ui.getCloseAndCreate(); } + }); builder.put(TripSeineUI.class, new ObserveLayoutFocusTraversalPolicy<TripSeineUI>() { @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - TripSeineUI ui = getUi(); - if (aComponent.equals(ui.getCaptain().getCombobox().getEditor().getEditorComponent())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); - } - return ui.getDelete(); - } - return super.getComponentBefore(aContainer, aComponent); + protected Component getFirstComponentForEdit(Container aContainer) { + return getUi().getCaptain(); } @Override - public Component getComponentAfter(Container aContainer, Component aComponent) { + protected Component getLastComponentForEdit(Container aContainer) { TripSeineUI ui = getUi(); - if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { - - // retour au début - return ui.getCaptain(); - } - if (aComponent.equals(ui.getCloseAndCreate())) { - - // retour au début - return ui.getCaptain(); + if (!ui.getCloseAndCreate().isEnabled()) { + return ui.getDelete(); } - return super.getComponentAfter(aContainer, aComponent); + return ui.getCloseAndCreate(); } + }); + builder.put(RouteUI.class, new ObserveLayoutFocusTraversalPolicy<RouteUI>() { @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - RouteUI ui = getUi(); - if (aComponent.equals(ui.getDate().getEditor())) { - if (ui.getCloseAndCreate().isEnabled()) { - return ui.getCloseAndCreate(); - } - return ui.getDelete(); - } - return super.getComponentBefore(aContainer, aComponent); + protected Component getFirstComponentForEdit(Container aContainer) { + return getUi().getDate(); } @Override - public Component getComponentAfter(Container aContainer, Component aComponent) { + protected Component getLastComponentForEdit(Container aContainer) { RouteUI ui = getUi(); - if (!ui.getCloseAndCreate().isEnabled() && aComponent.equals(ui.getDelete())) { - - // retour au début - return ui.getDate(); - } - if (aComponent.equals(ui.getCloseAndCreate())) { - - // retour au début - return ui.getDate(); + if (ui.getCloseAndCreate().isEnabled()) { + return ui.getCloseAndCreate(); } - return super.getComponentAfter(aContainer, aComponent); + return ui.getDelete(); } + }); builder.put(TdrUI.class, new ObserveLayoutFocusTraversalPolicy<TdrUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - TdrUI ui = getUi(); - int selectedIndex = ui.getEditTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getHomeId())) { - return getLastComponent(aContainer); - } - case 1: - if (aComponent.equals(ui.getSection().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - case 2: - if (aComponent.equals(ui.getEnableTimestamp())) { - return getLastComponent(aContainer); - } - case 3: - if (aComponent.equals(ui.getFishingStartDepth())) { - return getLastComponent(aContainer); - } - case 4: - if (aComponent.equals(ui.getSpecies().getUniverseList())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { TdrUI ui = getUi(); int selectedIndex = ui.getEditTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -546,7 +371,7 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { TdrUI ui = getUi(); if (ui.getSave().isEnabled()) { return ui.getSave(); @@ -566,24 +391,18 @@ public class ObserveFocusManager { return super.getLastComponent(aContainer); } + + }); builder.put(SensorUsedUI.class, new ObserveLayoutFocusTraversalPolicy<SensorUsedUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - SensorUsedUI ui = getUi(); - if (aComponent.equals(ui.getSensorType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { return getUi().getSensorType(); } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { SensorUsedUI ui = getUi(); if (ui.getSave().isEnabled()) { return ui.getSave(); @@ -593,23 +412,11 @@ public class ObserveFocusManager { } return ui.getComment2(); } + }); builder.put(GearUseFeaturesLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<GearUseFeaturesLonglineUI>() { @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - GearUseFeaturesLonglineUI ui = getUi(); - int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getGear().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { GearUseFeaturesLonglineUI ui = getUi(); int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -620,27 +427,20 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(getUi(), null); + protected Component getLastComponentForEdit(Container aContainer) { + return getTableDefaultLastComponent(getUi(), null); } + }); builder.put(EncounterUI.class, new ObserveLayoutFocusTraversalPolicy<EncounterUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - EncounterUI ui = getUi(); - if (aComponent.equals(ui.getEncounterType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { return getUi().getEncounterType(); } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { EncounterUI ui = getUi(); if (ui.getSave().isEnabled()) { return ui.getSave(); @@ -650,42 +450,12 @@ public class ObserveFocusManager { } return ui.getComment2(); } + }); builder.put(CatchLonglineUI.class, new ObserveLayoutFocusTraversalPolicy<CatchLonglineUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - CatchLonglineUI ui = getUi(); - int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (ui.getTableModel().isCreate()) { - if (aComponent.equals(ui.getAcquisitionModeIndividual())) { - return getLastComponent(aContainer); - } - } else { - if (aComponent.equals(ui.getSection().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } - - case 1: - if (aComponent.equals(ui.getDepredated())) { - return getLastComponent(aContainer); - } - case 2: - if (aComponent.equals(ui.getStomacFullness().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - case 5: - if (aComponent.equals(ui.getDepthRecorder())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { CatchLonglineUI ui = getUi(); int selectedIndex = ui.getFishingOperationTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -706,25 +476,15 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(getUi(), null); + protected Component getLastComponentForEdit(Container aContainer) { + return getTableDefaultLastComponent(getUi(), null); } + }); builder.put(TargetSampleUI.class, new ObserveLayoutFocusTraversalPolicy<TargetSampleUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - TargetSampleUI ui = getUi(); - if (aComponent.equals(ui.getAcquisitionModeEffectif())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent()) && !ui.getAcquisitionModeEffectif().isEnabled()) { - return super.getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { TargetSampleUI ui = getUi(); if (ui.getAcquisitionModeEffectif().isEnabled()) { return ui.getAcquisitionModeEffectif(); @@ -733,27 +493,16 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { TargetSampleUI ui = getUi(); - return getDefaultLastComponent(ui, ui.getComment2()); + return getTableDefaultLastComponent(ui, ui.getComment2()); } + }); builder.put(TargetDiscardCatchUI.class, new ObserveLayoutFocusTraversalPolicy<TargetDiscardCatchUI>() { @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - TargetDiscardCatchUI ui = getUi(); - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getCatchWeight().getTextField()) && !ui.getSpecies().isEnabled()) { - return super.getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } - - @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { TargetDiscardCatchUI ui = getUi(); if (ui.getSpecies().isEnabled()) { return ui.getSpecies(); @@ -762,26 +511,16 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { TargetDiscardCatchUI ui = getUi(); - return getDefaultLastComponent(ui, ui.getTargetDiscardCatchCompositionEstimatedByObserver()); + return getTableDefaultLastComponent(ui, ui.getTargetDiscardCatchCompositionEstimatedByObserver()); } + }); builder.put(TargetCatchUI.class, new ObserveLayoutFocusTraversalPolicy<TargetCatchUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - TargetCatchUI ui = getUi(); - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getCatchWeight().getTextField()) && !ui.getSpecies().isEnabled()) { - return super.getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { TargetCatchUI ui = getUi(); if (ui.getSpecies().isEnabled()) { return ui.getSpecies(); @@ -790,26 +529,16 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { TargetCatchUI ui = getUi(); - return getDefaultLastComponent(ui, ui.getTargetCatchCompositionEstimatedByObserver()); + return getTableDefaultLastComponent(ui, ui.getTargetCatchCompositionEstimatedByObserver()); } + }); builder.put(SchoolEstimateUI.class, new ObserveLayoutFocusTraversalPolicy<SchoolEstimateUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - SchoolEstimateUI ui = getUi(); - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getTotalWeight().getTextField()) && !ui.getSpecies().isEnabled()) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { SchoolEstimateUI ui = getUi(); if (ui.getSpecies().isEnabled()) { return ui.getSpecies(); @@ -818,69 +547,44 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { SchoolEstimateUI ui = getUi(); - return getDefaultLastComponent(ui, ui.getComment2()); + return getTableDefaultLastComponent(ui, ui.getComment2()); } }); builder.put(ObjectSchoolEstimateUI.class, new ObserveLayoutFocusTraversalPolicy<ObjectSchoolEstimateUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(getUi().getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { return getUi().getSpecies(); } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { ObjectSchoolEstimateUI ui = getUi(); - return getDefaultLastComponent(ui, ui.getComment2()); + return getTableDefaultLastComponent(ui, ui.getComment2()); } }); builder.put(ObjectObservedSpeciesUI.class, new ObserveLayoutFocusTraversalPolicy<ObjectObservedSpeciesUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(getUi().getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { return getUi().getSpecies(); } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { ObjectObservedSpeciesUI ui = getUi(); - return getDefaultLastComponent(ui, ui.getComment2()); + return getTableDefaultLastComponent(ui, ui.getComment2()); } }); builder.put(NonTargetSampleUI.class, new ObserveLayoutFocusTraversalPolicy<NonTargetSampleUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - NonTargetSampleUI ui = getUi(); - if (aComponent.equals(ui.getAcquisitionModeEffectif())) { - return getLastComponent(aContainer); - } - if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent()) && !ui.getAcquisitionModeEffectif().isEnabled()) { - return super.getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { NonTargetSampleUI ui = getUi(); if (ui.getAcquisitionModeEffectif().isEnabled()) { return ui.getAcquisitionModeEffectif(); @@ -889,48 +593,29 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { NonTargetSampleUI ui = getUi(); - return getDefaultLastComponent(ui, ui.getComment2()); + return getTableDefaultLastComponent(ui, ui.getComment2()); } }); builder.put(NonTargetCatchUI.class, new ObserveLayoutFocusTraversalPolicy<NonTargetCatchUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(getUi().getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { return getUi().getSpecies(); } @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(getUi(), null); + protected Component getLastComponentForEdit(Container aContainer) { + return getTableDefaultLastComponent(getUi(), null); } }); builder.put(GearUseFeaturesSeineUI.class, new ObserveLayoutFocusTraversalPolicy<GearUseFeaturesSeineUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - GearUseFeaturesSeineUI ui = getUi(); - int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getGear().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { GearUseFeaturesSeineUI ui = getUi(); int selectedIndex = ui.getGearUseFeaturesTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -941,55 +626,42 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { - return getDefaultLastComponent(getUi(), null); + protected Component getLastComponentForEdit(Container aContainer) { + return getTableDefaultLastComponent(getUi(), null); } + }); builder.put(ContentReferenceUI.class, new ObserveLayoutFocusTraversalPolicy<ContentReferenceUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - if (aComponent.equals(getUi().getUri())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { return getUi().getUri(); } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { return getUi().getBackToList(); } - }); - builder.put(ReferenceHomeUI.class, new ObserveLayoutFocusTraversalPolicy<ReferenceHomeUI>()); + }); - builder.put(VesselUI.class, new ObserveLayoutFocusTraversalPolicy<VesselUI>() { + builder.put(ReferenceHomeUI.class, new ObserveLayoutFocusTraversalPolicy<ReferenceHomeUI>() { @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - VesselUI ui = getUi(); - int selectedIndex = ui.getTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getKeelCode().getTextField())) { - return getLastComponent(aContainer); - } - break; - case 1: - if (aComponent.equals(ui.getLength().getTextField())) { - return getLastComponent(aContainer); - } - break; - } + protected Component getFirstComponentForEdit(Container aContainer) { + return null; + } - return super.getComponentBefore(aContainer, aComponent); + @Override + protected Component getLastComponentForEdit(Container aContainer) { + return null; } + }); + + builder.put(VesselUI.class, new ObserveLayoutFocusTraversalPolicy<VesselUI>() { + @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { VesselUI ui = getUi(); int selectedIndex = ui.getTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -1002,34 +674,16 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { return getUi().getBackToList(); } + }); builder.put(SpeciesUI.class, new ObserveLayoutFocusTraversalPolicy<SpeciesUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - SpeciesUI ui = getUi(); - int selectedIndex = ui.getTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getUri())) { - return getLastComponent(aContainer); - } - break; - case 1: - if (aComponent.equals(ui.getSizeMeasureType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - break; - } - - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { SpeciesUI ui = getUi(); int selectedIndex = ui.getTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -1042,34 +696,16 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { return getUi().getBackToList(); } + }); builder.put(SpeciesListUI.class, new ObserveLayoutFocusTraversalPolicy<SpeciesListUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - SpeciesListUI ui = getUi(); - int selectedIndex = ui.getTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getUri())) { - return getLastComponent(aContainer); - } - break; - case 1: - if (aComponent.equals(ui.getSpecies().getUniverseList())) { - return getLastComponent(aContainer); - } - break; - } - - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { SpeciesListUI ui = getUi(); int selectedIndex = ui.getTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -1082,34 +718,16 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { return getUi().getBackToList(); } + }); builder.put(ProgramUI.class, new ObserveLayoutFocusTraversalPolicy<ProgramUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - ProgramUI ui = getUi(); - int selectedIndex = ui.getTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getUri())) { - return getLastComponent(aContainer); - } - break; - case 1: - if (aComponent.equals(ui.getNonTargetObservation())) { - return getLastComponent(aContainer); - } - break; - } - - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { ProgramUI ui = getUi(); int selectedIndex = ui.getTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -1122,41 +740,16 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { return getUi().getBackToList(); } + }); builder.put(LengthWeightParameterUI.class, new ObserveLayoutFocusTraversalPolicy<LengthWeightParameterUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - LengthWeightParameterUI ui = getUi(); - int selectedIndex = ui.getTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (ui.getModel().isCreatingMode()) { - if (aComponent.equals(ui.getSex().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } else { - - if (aComponent.equals(ui.getStartDate().getEditor())) { - return getLastComponent(aContainer); - } - } - break; - case 1: - if (aComponent.equals(ui.getCoefficients())) { - return getLastComponent(aContainer); - } - break; - } - - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { LengthWeightParameterUI ui = getUi(); int selectedIndex = ui.getTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -1174,41 +767,16 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { return getUi().getBackToList(); } + }); builder.put(LengthLengthParameterUI.class, new ObserveLayoutFocusTraversalPolicy<LengthLengthParameterUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - LengthLengthParameterUI ui = getUi(); - int selectedIndex = ui.getTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (ui.getModel().isCreatingMode()) { - if (aComponent.equals(ui.getInputSizeMeasureType().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - } else { - - if (aComponent.equals(ui.getUri())) { - return getLastComponent(aContainer); - } - } - break; - case 1: - if (aComponent.equals(ui.getCoefficients())) { - return getLastComponent(aContainer); - } - break; - } - - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { LengthLengthParameterUI ui = getUi(); int selectedIndex = ui.getTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -1226,34 +794,16 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { return getUi().getBackToList(); } + }); builder.put(GearUI.class, new ObserveLayoutFocusTraversalPolicy<GearUI>() { - @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - GearUI ui = getUi(); - int selectedIndex = ui.getTabPane().getSelectedIndex(); - switch (selectedIndex) { - case 0: - if (aComponent.equals(ui.getUri())) { - return getLastComponent(aContainer); - } - break; - case 1: - if (aComponent.equals(ui.getGearCaracteristic().getUniverseList())) { - return getLastComponent(aContainer); - } - break; - } - - return super.getComponentBefore(aContainer, aComponent); - } @Override - public Component getFirstComponent(Container aContainer) { + protected Component getFirstComponentForEdit(Container aContainer) { GearUI ui = getUi(); int selectedIndex = ui.getTabPane().getSelectedIndex(); switch (selectedIndex) { @@ -1266,38 +816,41 @@ public class ObserveFocusManager { } @Override - public Component getLastComponent(Container aContainer) { + protected Component getLastComponentForEdit(Container aContainer) { return getUi().getBackToList(); } }); builder.put(WeightCategoryUI.class, new ObserveLayoutFocusTraversalPolicy<WeightCategoryUI>() { + @Override - public Component getComponentBefore(Container aContainer, Component aComponent) { - WeightCategoryUI ui = getUi(); - if (aComponent.equals(ui.getSpecies().getCombobox().getEditor().getEditorComponent())) { - return getLastComponent(aContainer); - } - return super.getComponentBefore(aContainer, aComponent); + protected Component getFirstComponentForEdit(Container aContainer) { + return getUi().getSpecies(); } @Override - public Component getFirstComponent(Container aContainer) { - return getUi().getSpecies(); + protected Component getLastComponentForEdit(Container aContainer) { + return getUi().getBackToList(); } @Override - public Component getLastComponent(Container aContainer) { + protected Component getFirstComponentForRead(Container aContainer) { return getUi().getBackToList(); } + + @Override + protected Component getLastComponentForRead(Container aContainer) { + return getUi().getBackToList(); + } + }); policies = builder.build(); } - public static class ObserveLayoutFocusTraversalPolicy<U extends ContentUI> extends LayoutFocusTraversalPolicy { + public static abstract class ObserveLayoutFocusTraversalPolicy<U extends ContentUI> extends LayoutFocusTraversalPolicy { private Supplier<U> uiSupplier; @@ -1309,7 +862,101 @@ public class ObserveFocusManager { return uiSupplier.get(); } - protected <UU extends ContentTableUI> Component getDefaultLastComponent(UU ui, Component optionalComponent) { + protected abstract Component getFirstComponentForEdit(Container aContainer); + + protected abstract Component getLastComponentForEdit(Container aContainer); + + protected Component getFirstComponentForRead(Container aContainer) { + if (getUi() instanceof ContentOpenableUI) { + ContentOpenableUI ui = (ContentOpenableUI) getUi(); + if (ui.getReopen().isEnabled() && ui.getReopen().isVisible()) { + return ui.getReopen(); + } + } else if (getUi() instanceof ContentReferenceUI) { + ContentReferenceUI ui = (ContentReferenceUI) getUi(); + return ui.getBackToList(); + } + if (getUi().getActionUp().isEnabled()) { + return getUi().getActionUp(); + } + return getUi().getActionDown(); + } + + protected Component getLastComponentForRead(Container aContainer) { + if (getUi() instanceof ContentOpenableUI) { + ContentOpenableUI ui = (ContentOpenableUI) getUi(); + if (ui.getReopen().isEnabled() && ui.getReopen().isVisible()) { + return ui.getReopen(); + } + } else if (getUi() instanceof ContentReferenceUI) { + ContentReferenceUI ui = (ContentReferenceUI) getUi(); + return ui.getBackToList(); + + } + if (getUi().getActionDown().isEnabled()) { + return getUi().getActionDown(); + } + return getUi().getActionUp(); + } + + @Override + public final Component getComponentAfter(Container aContainer, Component aComponent) { + Component lastComponent = getLastComponent(aContainer); + lastComponent = getRealFocusComponent(lastComponent); + if (aComponent.equals(lastComponent)) { + return getFirstComponent(aContainer); + } + return super.getComponentAfter(aContainer, aComponent); + } + + @Override + public final Component getComponentBefore(Container aContainer, Component aComponent) { + + Component firstComponent = getFirstComponent(aContainer); + firstComponent = getRealFocusComponent(firstComponent); + if (aComponent.equals(firstComponent)) { + return getLastComponent(aContainer); + } + return super.getComponentBefore(aContainer, aComponent); + } + + protected Component getRealFocusComponent(Component firstComponent) { + if (firstComponent instanceof BeanComboBox) { + BeanComboBox component = (BeanComboBox) firstComponent; + firstComponent = component.getCombobox().getEditor().getEditorComponent(); + } else if (firstComponent instanceof JSpinner) { + JSpinner component = (JSpinner) firstComponent; + firstComponent = component.getEditor(); + } else if (firstComponent instanceof NumberEditor) { + NumberEditor component = (NumberEditor) firstComponent; + firstComponent = component.getTextField(); + } else if (firstComponent instanceof JXDatePicker) { + JXDatePicker component = (JXDatePicker) firstComponent; + firstComponent = component.getEditor(); + } else if (firstComponent instanceof FilterableDoubleList) { + FilterableDoubleList component = (FilterableDoubleList) firstComponent; + firstComponent = component.getUniverseList(); + } + return firstComponent; + } + + @Override + public final Component getFirstComponent(Container aContainer) { + if (getUi().getModel().isReadingMode()) { + return getFirstComponentForRead(aContainer); + } + return getFirstComponentForEdit(aContainer); + } + + @Override + public final Component getLastComponent(Container aContainer) { + if (getUi().getModel().isReadingMode()) { + return getLastComponentForRead(aContainer); + } + return getLastComponentForEdit(aContainer); + } + + protected <UU extends ContentTableUI> Component getTableDefaultLastComponent(UU ui, Component optionalComponent) { if (ui.getSave().isEnabled()) { return ui.getSave(); } @@ -1334,4 +981,54 @@ public class ObserveFocusManager { } + private static class ContentListUIObserveLayoutFocusTraversalPolicy extends ObserveLayoutFocusTraversalPolicy<ContentListUI> { + + private List<JComponent> actions; + + @Override + protected Component getFirstComponentForEdit(Container aContainer) { + return getUi().getList(); + } + + @Override + protected Component getLastComponentForEdit(Container aContainer) { + Optional<JComponent> optional = getActions().stream().filter(a -> a.isEnabled() && a.isVisible()).findFirst(); + return optional.isPresent() ? optional.get() : null; + } + + @Override + protected Component getFirstComponentForRead(Container aContainer) { + return getUi().getList(); + } + + @Override + protected Component getLastComponentForRead(Container aContainer) { + Optional<JComponent> optional = getActions().stream().filter(a -> a.isEnabled() && a.isVisible()).findFirst(); + return optional.isPresent() ? optional.get() : null; + } + + public List<JComponent> getActions() { + if (actions == null) { + + actions = new ArrayList<>(); + actions.add(getUi().getGotoSelectedChild()); + actions.add(getUi().getReopenChild()); + actions.add(getUi().getCloseChild()); + actions.add(getUi().getGotoOpenChild()); + actions.add(getUi().getGotoOpenChild2()); + actions.add(getUi().getCreateChild()); + for (Component component : getUi().getExtraActions().getComponents()) { + if (component instanceof JButton) { + actions.add((JComponent) component); + } + } + actions.add(getUi().getMoveSelectedChildren()); + + } + List<JComponent> result = new ArrayList<>(actions); + Collections.reverse(result); + return result; + } + + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx index c9eb46d..f3a398a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx @@ -25,8 +25,8 @@ <import> fr.ird.observe.application.swing.ObserveSwingApplicationContext fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction fr.ird.observe.application.swing.ui.util.JVetoableTabbedPane diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx index 91de3f7..372a383 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx @@ -28,8 +28,8 @@ fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.longline.MitigationTypeDto - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction fr.ird.observe.application.swing.ui.content.table.impl.longline.BaitsCompositionUI fr.ird.observe.application.swing.ui.content.table.impl.longline.BaitsCompositionUIModel fr.ird.observe.application.swing.ui.content.table.impl.longline.BranchlinesCompositionUI diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx index 0fd6436..36225bd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUI.jaxx @@ -32,10 +32,10 @@ fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto fr.ird.observe.services.dto.referential.longline.LightsticksColorDto - fr.ird.observe.application.swing.ui.actions.shared.CancelCreateUIAction - fr.ird.observe.application.swing.ui.actions.shared.DeleteDataUIAction - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.content.CancelCreateUIAction + fr.ird.observe.application.swing.ui.actions.content.DeleteDataUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction fr.ird.observe.application.swing.ui.content.ContentUIModel fr.ird.observe.application.swing.ui.util.BooleanEditor diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx index cde2155..8bfa13f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx @@ -33,8 +33,8 @@ fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction jaxx.runtime.swing.editor.bean.BeanComboBox java.awt.Dimension diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx index 47721bb..ae8fae4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx @@ -29,10 +29,10 @@ fr.ird.observe.services.dto.referential.seine.ObjectFateDto fr.ird.observe.services.dto.referential.seine.ObjectOperationDto fr.ird.observe.services.dto.referential.seine.ObjectTypeDto - fr.ird.observe.application.swing.ui.actions.shared.CancelCreateUIAction - fr.ird.observe.application.swing.ui.actions.shared.DeleteDataUIAction - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.content.CancelCreateUIAction + fr.ird.observe.application.swing.ui.actions.content.DeleteDataUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction jaxx.runtime.swing.editor.NumberEditor jaxx.runtime.swing.editor.bean.BeanComboBox diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUI.jaxx index 638dc60..784199b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUI.jaxx @@ -28,10 +28,10 @@ fr.ird.observe.services.dto.seine.SetSeineDto fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto - fr.ird.observe.application.swing.ui.actions.shared.CancelCreateUIAction - fr.ird.observe.application.swing.ui.actions.shared.DeleteDataUIAction - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.content.CancelCreateUIAction + fr.ird.observe.application.swing.ui.actions.content.DeleteDataUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction fr.ird.observe.application.swing.ui.util.BooleanEditor jaxx.runtime.swing.editor.NumberEditor diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx index f0091a0..349a395 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx @@ -25,8 +25,9 @@ genericType='E extends IdDto, C extends DataDto, U extends ContentListUI<E,C, U>'> <import> - fr.ird.observe.application.swing.ui.actions.shared.CloseOpenUIAction - fr.ird.observe.application.swing.ui.actions.shared.ReOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.CreateOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction fr.ird.observe.services.dto.IdDto @@ -104,7 +105,7 @@ public final List<DataReference<C>> getSelectedDatas() { <JButton id='gotoOpenChild2'/> </cell> <cell> - <JButton id='createChild' onActionPerformed='getHandler().addChild()'/> + <JButton id='createChild'/> </cell> </row> <row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss index 1ea4dae..03a4753 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss @@ -68,8 +68,8 @@ } #createChild { - actionIcon:"add"; visible:{model.isCreatingMode()}; + _observeAction:{CreateOpenUIAction.ACTION_NAME}; } #moveSelectedChildren { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java index d98dabe..915a071 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java @@ -40,20 +40,14 @@ import org.apache.commons.logging.LogFactory; import javax.swing.DefaultListCellRenderer; import javax.swing.Icon; import javax.swing.JButton; -import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JList; -import javax.swing.LayoutFocusTraversalPolicy; import javax.swing.ListCellRenderer; import javax.swing.SwingUtilities; import java.awt.Color; import java.awt.Component; -import java.awt.Container; import java.awt.event.MouseEvent; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import java.util.Optional; import static org.nuiton.i18n.I18n.t; @@ -108,6 +102,11 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U } @Override + protected void addFocusabelOnForm() { + // pas besoin de gérer le focus, pas de formulaire + } + + @Override public final void openUI() { super.openUI(); @@ -176,7 +175,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U getUi().getShowTechnicalInformations().setEnabled(false); } - void addChild() { + public void addChild() { addChild(getModel().getChildType()); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx index 89140dc..b2e3ddb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx @@ -28,10 +28,10 @@ <import> fr.ird.observe.services.dto.longline.ActivityLonglineDto fr.ird.observe.services.dto.longline.TripLonglineDto - fr.ird.observe.application.swing.ui.actions.shared.CloseAndCreateUIAction - fr.ird.observe.application.swing.ui.actions.shared.CloseOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.CloseAndCreateUIAction + fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction - fr.ird.observe.application.swing.ui.actions.shared.MoveActivityLonglinesUIAction + fr.ird.observe.application.swing.ui.actions.content.MoveActivityLonglinesUIAction static org.nuiton.i18n.I18n.n </import> @@ -59,9 +59,6 @@ <!-- extra actions --> <Table id='extraActions' fill="both" weightx="1" insets='2'> <row> - <cell weightx="0.5" fill="both"> - <JButton id='close'/> - </cell> <cell weightx="0.5"> <JButton id='closeAndCreate'/> </cell> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jcss index e53824b..ed15846 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jcss @@ -31,16 +31,15 @@ } #createChild { - text:"observe.content.action.activity"; - toolTipText:"observe.content.action.activity.tip"; + _text:{t("observe.content.action.activity")}; + _toolTipText:{t("observe.content.action.activity.tip")}; } #extraActions { visible:{model.isUpdatingMode() && getDataContext().isOpenActivity()}; } -#close { - _observeAction:{CloseOpenUIAction.ACTION_NAME}; +#closeChild { _toolTipText:{t("observe.action.close.activity.tip")}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/CommonListUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/CommonListUI.jcss index c1806f1..bfd407c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/CommonListUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/CommonListUI.jcss @@ -20,6 +20,10 @@ * #L% */ +JButton { + _protectFocus:true; +} + #model { enabled: true; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx index 4bfe978..0fbb378 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx @@ -28,9 +28,10 @@ fr.ird.observe.services.dto.longline.TripLonglineDto fr.ird.observe.services.dto.referential.ProgramDto fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction - fr.ird.observe.application.swing.ui.actions.shared.MoveTripLonglinesUIAction + fr.ird.observe.application.swing.ui.actions.content.MoveTripLonglinesUIAction static org.nuiton.i18n.I18n.n + static org.nuiton.i18n.I18n.t </import> <style source="CommonListUI.jcss"/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jcss index e61a170..eb85cca 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jcss @@ -31,13 +31,13 @@ } #createChild { - text:"observe.content.action.trip"; - toolTipText:"observe.content.action.trip.tip"; + _text:{t("observe.content.action.trip")}; + _toolTipText:{t("observe.content.action.trip.tip")}; } #moveSelectedChildren { - text:"observe.content.action.move.trips"; - toolTipText:"observe.content.action.move.trips.tip"; + _text:{t("observe.content.action.move.trips")}; + _toolTipText:{t("observe.content.action.move.trips.tip")}; _observeAction:{MoveTripLonglinesUIAction.ACTION_NAME}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx index 0a453d7..e81401b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx @@ -28,10 +28,10 @@ <import> fr.ird.observe.services.dto.seine.ActivitySeineDto fr.ird.observe.services.dto.seine.RouteDto - fr.ird.observe.application.swing.ui.actions.shared.CloseAndCreateUIAction - fr.ird.observe.application.swing.ui.actions.shared.CloseOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.CloseAndCreateUIAction + fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction - fr.ird.observe.application.swing.ui.actions.shared.MoveActivitySeinesUIAction + fr.ird.observe.application.swing.ui.actions.content.MoveActivitySeinesUIAction static org.nuiton.i18n.I18n.n </import> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/CommonListUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/CommonListUI.jcss index 2feab9c..fe34dfb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/CommonListUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/CommonListUI.jcss @@ -24,6 +24,10 @@ enabled: true; } +JButton { + _protectFocus:true; +} + .gotoOpenTrip { visible:{model.isUpdatingMode() && dataContext.isOpenTrip()}; _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx index bdc29a5..4a44aa8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx @@ -30,7 +30,7 @@ fr.ird.observe.services.dto.seine.TripSeineDto fr.ird.observe.services.dto.seine.RouteDto fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction - fr.ird.observe.application.swing.ui.actions.shared.MoveRoutesUIAction + fr.ird.observe.application.swing.ui.actions.content.MoveRoutesUIAction static org.nuiton.i18n.I18n.n </import> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx index 4701fef..3dcaa27 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx @@ -29,7 +29,7 @@ fr.ird.observe.services.dto.seine.RouteDto fr.ird.observe.services.dto.referential.ProgramDto fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction - fr.ird.observe.application.swing.ui.actions.shared.MoveTripSeinesUIAction + fr.ird.observe.application.swing.ui.actions.content.MoveTripSeinesUIAction static org.nuiton.i18n.I18n.n </import> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx index bc7195b..795e0cf 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jaxx @@ -27,13 +27,12 @@ <import> fr.ird.observe.services.dto.IdDto - fr.ird.observe.application.swing.ui.actions.shared.CancelCreateUIAction - fr.ird.observe.application.swing.ui.actions.shared.CloseAndCreateUIAction - fr.ird.observe.application.swing.ui.actions.shared.CloseOpenUIAction - fr.ird.observe.application.swing.ui.actions.shared.DeleteDataUIAction - fr.ird.observe.application.swing.ui.actions.shared.ReOpenUIAction - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.content.CloseAndCreateUIAction + fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.DeleteDataUIAction + fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction javax.swing.SwingConstants @@ -67,9 +66,6 @@ <cell fill="both"> <Table id='editActions' fill="both" weightx="1" insets='2'> <row> - <cell weightx="0.5" fill="both"> - <JButton id='cancel'/> - </cell> <cell weightx="0.5"> <JButton id='reset'/> </cell> @@ -85,8 +81,7 @@ </row> <row insets='0'> <cell fill='both'> - <Table id='extraActions' fill="both" weightx="1" insets='2' - visible='{model.isUpdatingMode()}'/> + <Table id='extraActions' fill="both" weightx="1" insets='2' visible='{model.isUpdatingMode()}'/> </cell> </row> <row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jcss index 2626b6e..f1255cc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUI.jcss @@ -24,15 +24,10 @@ visible:{!model.isReadingMode()}; } -#cancel { - _observeAction:{CancelCreateUIAction.ACTION_NAME}; - visible:{model.isCreatingMode()}; -} - #reset { _observeAction:{ResetEditUIAction.ACTION_NAME}; - visible:{model.isUpdatingMode()}; - enabled:{model.isModified()}; + visible:{!model.isReadingMode()}; + enabled:{model.isCreatingMode() ? true : model.isModified()}; horizontalTextPosition:{SwingConstants.RIGHT}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUI.jaxx index 03c3ef9..46ee176 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUI.jaxx @@ -33,7 +33,7 @@ fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.FpaZoneDto fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto - fr.ird.observe.application.swing.ui.actions.shared.DeleteDataUIAction + fr.ird.observe.application.swing.ui.actions.content.DeleteDataUIAction jaxx.runtime.swing.editor.NumberEditor jaxx.runtime.swing.editor.bean.BeanComboBox diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jaxx index 5b71a2f..d7355eb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jaxx @@ -35,7 +35,7 @@ fr.ird.observe.services.dto.referential.PersonDto fr.ird.observe.services.dto.referential.OceanDto fr.ird.observe.services.dto.referential.longline.TripTypeDto - fr.ird.observe.application.swing.ui.actions.shared.DeleteDataUIAction + fr.ird.observe.application.swing.ui.actions.content.DeleteDataUIAction fr.ird.observe.application.swing.ui.util.tripMap.TripMapUI org.jdesktop.swingx.JXDatePicker diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUI.jaxx index 290eeef..360e22f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUI.jaxx @@ -39,7 +39,7 @@ fr.ird.observe.services.dto.referential.seine.DetectionModeDto fr.ird.observe.services.dto.referential.seine.WindDto - fr.ird.observe.application.swing.ui.actions.shared.DeleteDataUIAction + fr.ird.observe.application.swing.ui.actions.content.DeleteDataUIAction jaxx.runtime.swing.editor.NumberEditor jaxx.runtime.swing.editor.bean.BeanComboBox diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jaxx index 7bf35bf..35732ba 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUI.jaxx @@ -29,9 +29,9 @@ fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper fr.ird.observe.application.swing.ui.UIHelper - fr.ird.observe.application.swing.ui.actions.shared.DeleteReferenceUIAction - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.content.DeleteReferenceUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction jaxx.runtime.swing.editor.bean.BeanListHeader jaxx.runtime.validator.swing.SwingValidator diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java index c04f2f5..c0b7fa5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java @@ -390,7 +390,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto, U extends Conte ui.getViewLayout().addPropertyChangeListener(CardLayout2Ext.SELECTED_PROPERTY_NAME, evt -> SwingUtilities.invokeLater(revalidate)); - ObserveSwingApplicationContext.get().getFocusManager().setFocusTraversalPolicy(ui); + ObserveSwingApplicationContext.get().getFocusManager().installFocusTraversalPolicy(ui); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/CommonTable.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/CommonTable.jcss index 8901b79..64bb674 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/CommonTable.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/CommonTable.jcss @@ -26,6 +26,10 @@ JToolBar { opaque:false; } +JButton { + _protectFocus:true; +} + NumberEditor { bean: {tableEditBean}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx index 4809b9e..52661bb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx @@ -26,12 +26,12 @@ genericType='E extends IdDto, D extends IdDto, U extends ContentTableUI<E, D, U>'> <import> - fr.ird.observe.application.swing.ui.actions.shared.ResetEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction - fr.ird.observe.application.swing.ui.actions.shared.NewTableEntryUIAction - fr.ird.observe.application.swing.ui.actions.shared.ResetTableEntryUIAction - fr.ird.observe.application.swing.ui.actions.shared.SaveTableEntryUIAction - fr.ird.observe.application.swing.ui.actions.shared.DeleteTableEntryUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction + fr.ird.observe.application.swing.ui.actions.content.NewTableEntryUIAction + fr.ird.observe.application.swing.ui.actions.content.ResetTableEntryUIAction + fr.ird.observe.application.swing.ui.actions.content.SaveTableEntryUIAction + fr.ird.observe.application.swing.ui.actions.content.DeleteTableEntryUIAction jaxx.runtime.swing.BlockingLayerUI jaxx.runtime.validator.swing.SwingValidator diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java index 45838e3..097684e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java @@ -219,8 +219,10 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U uiInitializer.initUI(); getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM, evt -> updateUiWithReferenceSetsFromModel()); + getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_MODE, evt -> updateFocusable((ContentMode) evt.getNewValue())); + updateFocusable(ContentMode.READ); - ObserveSwingApplicationContext.get().getFocusManager().setFocusTraversalPolicy(ui); + ObserveSwingApplicationContext.get().getFocusManager().installFocusTraversalPolicy(ui); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java index a3cdf99..fcda169 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/SensorUsedUIHandler.java @@ -121,7 +121,7 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineS dataFile = getActivityLonglineSensorUsedService().getDataFile(getTableEditBean().getId()); } - int response = UIHelper.askUser((Component) ui, + int response = UIHelper.askUser(ui, t("observe.title.confirmReplace"), t("observe.content.sensorUsed.replace.data.message", dataFile.getName()), JOptionPane.WARNING_MESSAGE, @@ -135,7 +135,7 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineS } } - File file = UIHelper.chooseFile((Component) ui, + File file = UIHelper.chooseFile(ui, t("observe.content.choose.sensorUsed.title.importData"), t("observe.action.choose.sensorUsed.importData"), null); @@ -156,7 +156,7 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineS public void deleteData() { - int response = UIHelper.askUser((Component) ui, + int response = UIHelper.askUser(ui, t("observe.title.delete"), t("observe.content.sensorUsed.delete.data.message"), JOptionPane.WARNING_MESSAGE, diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java index b0fa06a..29f01c8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/TdrUIHandler.java @@ -278,7 +278,7 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt dataFile = getTdrService().getDataFile(getTableEditBean().getId()); } - int response = UIHelper.askUser((Component) ui, + int response = UIHelper.askUser(ui, t("observe.title.confirmReplace"), t("observe.content.tdr.replace.data.message", dataFile.getName()), JOptionPane.WARNING_MESSAGE, @@ -292,7 +292,7 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt } } - File file = UIHelper.chooseFile((Component) ui, + File file = UIHelper.chooseFile(ui, t("observe.content.choose.tdr.title.importData"), t("observe.action.choose.tdr.importData"), null); @@ -313,7 +313,7 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt public void deleteData() { - int response = UIHelper.askUser((Component) ui, + int response = UIHelper.askUser(ui, t("observe.title.delete"), t("observe.content.tdr.delete.data.message"), JOptionPane.WARNING_MESSAGE, diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java index e2e103a..711f93a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java @@ -71,6 +71,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTree; +import javax.swing.SwingUtilities; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeCellRenderer; import javax.swing.tree.TreeModel; @@ -378,7 +379,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } // navigation tree should acquire focus - tree.requestFocus(); + SwingUtilities.invokeLater(tree::grabFocus); } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 6035bd0df1eb1d03428e59561f1fab6607ba4388 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 14 09:11:25 2016 +0100 Ajout de Program.tripCount pour optimiser le chargement dans l'arbre de naigation --- .../observe/entities/referentiel/ProgramImpl.java | 16 +++++++++++++--- .../entities/referentiel/ProgramTopiaDao.java | 3 +++ entities/src/main/xmi/observe-common.zargo | Bin 45678 -> 45811 bytes .../ReferentialReferenceSetDefinitions.java | 3 ++- .../src/main/xmi/observe-services-dto-common.zargo | Bin 48945 -> 49022 bytes .../topia/binder/referential/ProgramBinder.java | 9 ++++++--- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramImpl.java b/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramImpl.java index 559da72..7cc5f0a 100644 --- a/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramImpl.java @@ -26,16 +26,26 @@ public class ProgramImpl extends ProgramAbstract { private static final long serialVersionUID = 3546129729498396258L; + /** Nombre de marées rattaché à ce programme. */ + private int tripCount; + @Override public String getGearTypePrefix() { - - return gearType==null?null:gearType.getPrefix(); - + return gearType == null ? null : gearType.getPrefix(); } // Nécessaire pour les binders, mais non utilisé2 @Override public void setGearTypePrefix(String gearTypePrefix) { + } + @Override + public int getTripCount() { + return tripCount; + } + + @Override + public void setTripCount(int tripCount) { + this.tripCount = tripCount; } } diff --git a/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramTopiaDao.java b/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramTopiaDao.java index 1d64a9c..3e7775a 100644 --- a/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramTopiaDao.java +++ b/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramTopiaDao.java @@ -73,6 +73,7 @@ public class ProgramTopiaDao extends AbstractProgramTopiaDao<Program> { " p.topiaId," + " p.gearType," + " p." + I18nReferenceEntities.getPropertyName(referenceLocale) + + "(select count(*) from observe_seine.trip t where t.program = p.id) + (select count(*) from observe_longline.trip t where t.program = p.id) "+ " FROM observe_common.program p" + " WHERE " + " p.topiaId = ?" + @@ -111,6 +112,8 @@ public class ProgramTopiaDao extends AbstractProgramTopiaDao<Program> { String label = set.getString(3); I18nReferenceEntities.setLabel(referenceLocale, program, label); + int tripCount = set.getInt(4); + program.setTripCount(tripCount); return program; } diff --git a/entities/src/main/xmi/observe-common.zargo b/entities/src/main/xmi/observe-common.zargo index 17d14db..c552da6 100644 Binary files a/entities/src/main/xmi/observe-common.zargo and b/entities/src/main/xmi/observe-common.zargo differ diff --git a/services-dto-reference/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java b/services-dto-reference/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java index 730e61c..7baf5fe 100644 --- a/services-dto-reference/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java +++ b/services-dto-reference/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java @@ -151,7 +151,8 @@ public enum ReferentialReferenceSetDefinitions { PROGRAM(newDefinitionBuilder(ProgramDto.class) .addProperty(GearType.class, ProgramDto.PROPERTY_GEAR_TYPE) - .addProperty(String.class, ProgramDto.PROPERTY_GEAR_TYPE_PREFIX)), + .addProperty(String.class, ProgramDto.PROPERTY_GEAR_TYPE_PREFIX) + .addProperty(int.class, ProgramDto.PROPERTY_TRIP_COUNT)), SEX(newDefaultDefinitionBuilder(SexDto.class)), diff --git a/services-dto/src/main/xmi/observe-services-dto-common.zargo b/services-dto/src/main/xmi/observe-services-dto-common.zargo index 9a4b98d..9a74931 100644 Binary files a/services-dto/src/main/xmi/observe-services-dto-common.zargo and b/services-dto/src/main/xmi/observe-services-dto-common.zargo differ diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ProgramBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ProgramBinder.java index 6f707dc..f6b8293 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ProgramBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ProgramBinder.java @@ -61,6 +61,7 @@ public class ProgramBinder extends ReferentialBinderSupport<Program, ProgramDto> entity.setStartDate(dto.getStartDate()); entity.setEndDate(dto.getEndDate()); entity.setComment(dto.getComment()); + entity.setTripCount(dto.getTripCount()); } @@ -85,7 +86,7 @@ public class ProgramBinder extends ReferentialBinderSupport<Program, ProgramDto> dto.setStartDate(entity.getStartDate()); dto.setEndDate(entity.getEndDate()); dto.setComment(entity.getComment()); - + dto.setTripCount(entity.getTripCount()); } @Override @@ -94,7 +95,8 @@ public class ProgramBinder extends ReferentialBinderSupport<Program, ProgramDto> return toReferentialReference(entity, getLabel(referentialLocale, entity), GEAR_TYPE_TO_DTO.apply(entity.getGearType()), - entity.getGearTypePrefix()); + entity.getGearTypePrefix(), + entity.getTripCount()); } @@ -104,7 +106,8 @@ public class ProgramBinder extends ReferentialBinderSupport<Program, ProgramDto> return toReferentialReference(dto, getLabel(referentialLocale, dto), dto.getGearType(), - dto.getGearTypePrefix()); + dto.getGearTypePrefix(), + dto.getTripCount()); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 090748a5234462aacc78d9d6bf1b77f94af25544 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 14 09:11:44 2016 +0100 Clean code --- .../swing/ui/tree/node/AbstrctReferenceNodeSupport.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java index 6478271..d818379 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java @@ -54,10 +54,6 @@ public abstract class AbstrctReferenceNodeSupport<E extends IdDto, R extends Abs protected abstract R fetchEntity(); - protected AbstrctReferenceNodeSupport(Class<E> internalClass, R entity) { - this(internalClass, entity, null); - } - protected AbstrctReferenceNodeSupport(Class<E> type, R entity, AbstractNodeChildLoador<?, ?> childLoador) { this(type, entity, null, childLoador); } @@ -88,15 +84,6 @@ public abstract class AbstrctReferenceNodeSupport<E extends IdDto, R extends Abs protected void loadEntity(ObserveDataProvider oProvider) { - //FIXME -// if (oProvider.getSelectionModel() != null) { -// -// if (log.isDebugEnabled()) { -// log.debug("try to get entity from selectionModel " + internalClass + " : " + id); -// } -// entity = (ReferenceDto<E>) oProvider.getSelectionModel().getEntityCache(id); -// } - if (entity == null) { if (log.isInfoEnabled()) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 67e39b8c06cbc283600afca2c872469edb7299c9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 14 09:12:23 2016 +0100 On repasse en sélection automatique sinon l'arbre ne se charge plus bien (en attendant de revoir l'API d'arbre) --- .../java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java index bdb3cad..b6d7b65 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java @@ -471,7 +471,7 @@ public class ObserveMainUIHandler { } }; - ui.getTreeHelper().setUI(ui.getNavigation(), false, false, listener, veteobableTreeWillExpand); + ui.getTreeHelper().setUI(ui.getNavigation(), true, true, listener, veteobableTreeWillExpand); SwingValidatorUtil.installUI(ui.getErrorTable(), new ObserveValidatorMessageTableRenderer()); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit ec6c26ced3320ffc19efdcb8771b6fd1bc9c940d Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 18 21:59:33 2016 +0100 Amélioration paquetage de binders --- .../topia/binder/BinderEngineInitializer.java | 230 ++++++++++----------- .../{ => longline}/ActivityLonglineBinder.java | 3 +- .../ActivityLonglineEncouterDtoBinder.java | 3 +- .../ActivityLonglineSensorUsedDtoBinder.java | 3 +- .../ActivityLonglineStubDtoBinder.java | 3 +- .../{ => longline}/BaitsCompositionBinder.java | 3 +- .../binder/data/{ => longline}/BasketBinder.java | 3 +- .../data/{ => longline}/BranchlineBinder.java | 3 +- .../BranchlinesCompositionBinder.java | 3 +- .../data/{ => longline}/CatchLonglineBinder.java | 3 +- .../data/{ => longline}/EncounterBinder.java | 3 +- .../FloatlinesCompositionBinder.java | 3 +- .../GearUseFeaturesLonglineBinder.java | 3 +- .../GearUseFeaturesMeasurementLonglineBinder.java | 3 +- .../{ => longline}/HooksCompositionBinder.java | 3 +- .../binder/data/{ => longline}/SectionBinder.java | 3 +- .../data/{ => longline}/SensorUsedBinder.java | 3 +- .../data/{ => longline}/SetLonglineBinder.java | 3 +- .../{ => longline}/SetLonglineCatchDtoBinder.java | 3 +- .../SetLonglineDetailCompositionDtoBinder.java | 3 +- .../SetLonglineGlobalCompositionDtoBinder.java | 3 +- .../{ => longline}/SetLonglineStubDtoBinder.java | 3 +- .../{ => longline}/SetLonglineTdrDtoBinder.java | 3 +- .../data/{ => longline}/SizeMeasureBinder.java | 3 +- .../binder/data/{ => longline}/TdrBinder.java | 3 +- .../TripLonglineActivityDtoBinder.java | 3 +- .../data/{ => longline}/TripLonglineBinder.java | 7 +- .../TripLonglineGearUseDtoBinder.java | 3 +- .../data/{ => longline}/WeightMeasureBinder.java | 3 +- .../data/{ => seine}/ActivitySeineBinder.java | 3 +- .../{ => seine}/ActivitySeineStubDtoBinder.java | 3 +- .../data/{ => seine}/FloatingObjectBinder.java | 3 +- .../FloatingObjectObservedSpeciesDtoBinder.java | 3 +- .../FloatingObjectSchoolEstimateDtoBinder.java | 3 +- .../FloatingObjectTransmittingBuoyDtoBinder.java | 3 +- .../GearUseFeaturesMeasurementSeineBinder.java | 3 +- .../{ => seine}/GearUseFeaturesSeineBinder.java | 3 +- .../data/{ => seine}/NonTargetCatchBinder.java | 3 +- .../data/{ => seine}/NonTargetLengthBinder.java | 3 +- .../data/{ => seine}/NonTargetSampleBinder.java | 3 +- .../{ => seine}/ObjectObservedSpeciesBinder.java | 3 +- .../{ => seine}/ObjectSchoolEstimateBinder.java | 3 +- .../topia/binder/data/{ => seine}/RouteBinder.java | 3 +- .../data/{ => seine}/RouteStubDtoBinder.java | 3 +- .../data/{ => seine}/SchoolEstimateBinder.java | 3 +- .../binder/data/{ => seine}/SetSeineBinder.java | 3 +- .../SetSeineNonTargetCatchDtoBinder.java | 3 +- .../SetSeineSchoolEstimateDtoBinder.java | 3 +- .../{ => seine}/SetSeineTargetCatchDtoBinder.java | 3 +- .../binder/data/{ => seine}/TargetCatchBinder.java | 3 +- .../data/{ => seine}/TargetLengthBinder.java | 3 +- .../data/{ => seine}/TargetSampleBinder.java | 3 +- .../data/{ => seine}/TransmittingBuoyBinder.java | 3 +- .../binder/data/{ => seine}/TripSeineBinder.java | 3 +- .../{ => seine}/TripSeineGearUseDtoBinder.java | 3 +- .../referential/{ => common}/CountryBinder.java | 3 +- .../referential/{ => common}/FpaZoneBinder.java | 3 +- .../referential/{ => common}/GearBinder.java | 3 +- .../{ => common}/GearCaracteristicBinder.java | 3 +- .../{ => common}/GearCaracteristicTypeBinder.java | 3 +- .../referential/{ => common}/HarbourBinder.java | 3 +- .../{ => common}/LengthLengthParameterBinder.java | 3 +- .../{ => common}/LengthWeightParameterBinder.java | 3 +- .../referential/{ => common}/OceanBinder.java | 3 +- .../referential/{ => common}/OrganismBinder.java | 3 +- .../referential/{ => common}/PersonBinder.java | 3 +- .../referential/{ => common}/ProgramBinder.java | 3 +- .../binder/referential/{ => common}/SexBinder.java | 3 +- .../referential/{ => common}/ShipOwnerBinder.java | 3 +- .../{ => common}/SizeMeasureTypeBinder.java | 3 +- .../referential/{ => common}/SpeciesBinder.java | 3 +- .../{ => common}/SpeciesGroupBinder.java | 3 +- .../{ => common}/SpeciesListBinder.java | 3 +- .../referential/{ => common}/VesselBinder.java | 3 +- .../{ => common}/VesselSizeCategoryBinder.java | 3 +- .../referential/{ => common}/VesselTypeBinder.java | 3 +- .../{ => common}/WeightMeasureTypeBinder.java | 3 +- .../{ => longline}/BaitHaulingStatusBinder.java | 3 +- .../{ => longline}/BaitSettingStatusBinder.java | 3 +- .../referential/{ => longline}/BaitTypeBinder.java | 3 +- .../{ => longline}/CatchFateLonglineBinder.java | 3 +- .../{ => longline}/EncounterTypeBinder.java | 3 +- .../{ => longline}/HealthnessBinder.java | 3 +- .../{ => longline}/HookPositionBinder.java | 3 +- .../referential/{ => longline}/HookSizeBinder.java | 3 +- .../referential/{ => longline}/HookTypeBinder.java | 3 +- .../ItemHorizontalPositionBinder.java | 3 +- .../{ => longline}/ItemVerticalPositionBinder.java | 3 +- .../{ => longline}/LightsticksColorBinder.java | 3 +- .../{ => longline}/LightsticksTypeBinder.java | 3 +- .../referential/{ => longline}/LineTypeBinder.java | 3 +- .../{ => longline}/MaturityStatusBinder.java | 3 +- .../{ => longline}/MitigationTypeBinder.java | 3 +- .../{ => longline}/SensorBrandBinder.java | 3 +- .../{ => longline}/SensorDataFormatBinder.java | 3 +- .../{ => longline}/SensorTypeBinder.java | 3 +- .../{ => longline}/SettingShapeBinder.java | 3 +- .../{ => longline}/StomacFullnessBinder.java | 3 +- .../referential/{ => longline}/TripTypeBinder.java | 3 +- .../VesselActivityLonglineBinder.java | 3 +- .../{ => seine}/DetectionModeBinder.java | 3 +- .../referential/{ => seine}/ObjectFateBinder.java | 3 +- .../{ => seine}/ObjectOperationBinder.java | 3 +- .../referential/{ => seine}/ObjectTypeBinder.java | 3 +- .../{ => seine}/ObservedSystemBinder.java | 3 +- .../{ => seine}/ReasonForDiscardBinder.java | 3 +- .../{ => seine}/ReasonForNoFishingBinder.java | 3 +- .../{ => seine}/ReasonForNullSetBinder.java | 3 +- .../referential/{ => seine}/SpeciesFateBinder.java | 3 +- .../{ => seine}/SpeciesStatusBinder.java | 3 +- .../{ => seine}/SurroundingActivityBinder.java | 3 +- .../TransmittingBuoyOperationBinder.java | 3 +- .../{ => seine}/TransmittingBuoyTypeBinder.java | 3 +- .../{ => seine}/VesselActivitySeineBinder.java | 3 +- .../{ => seine}/WeightCategoryBinder.java | 3 +- .../binder/referential/{ => seine}/WindBinder.java | 3 +- 116 files changed, 349 insertions(+), 230 deletions(-) diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/BinderEngineInitializer.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/BinderEngineInitializer.java index c3cd0dd..6b490a8 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/BinderEngineInitializer.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/BinderEngineInitializer.java @@ -242,121 +242,121 @@ import fr.ird.observe.services.dto.seine.TargetSampleDto; import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; -import fr.ird.observe.services.topia.binder.data.ActivityLonglineBinder; -import fr.ird.observe.services.topia.binder.data.ActivityLonglineEncouterDtoBinder; -import fr.ird.observe.services.topia.binder.data.ActivityLonglineSensorUsedDtoBinder; -import fr.ird.observe.services.topia.binder.data.ActivityLonglineStubDtoBinder; -import fr.ird.observe.services.topia.binder.data.ActivitySeineBinder; -import fr.ird.observe.services.topia.binder.data.ActivitySeineStubDtoBinder; -import fr.ird.observe.services.topia.binder.data.BaitsCompositionBinder; -import fr.ird.observe.services.topia.binder.data.BasketBinder; -import fr.ird.observe.services.topia.binder.data.BranchlineBinder; -import fr.ird.observe.services.topia.binder.data.BranchlinesCompositionBinder; -import fr.ird.observe.services.topia.binder.data.CatchLonglineBinder; -import fr.ird.observe.services.topia.binder.data.EncounterBinder; -import fr.ird.observe.services.topia.binder.data.FloatingObjectBinder; -import fr.ird.observe.services.topia.binder.data.FloatingObjectObservedSpeciesDtoBinder; -import fr.ird.observe.services.topia.binder.data.FloatingObjectSchoolEstimateDtoBinder; -import fr.ird.observe.services.topia.binder.data.FloatingObjectTransmittingBuoyDtoBinder; -import fr.ird.observe.services.topia.binder.data.FloatlinesCompositionBinder; -import fr.ird.observe.services.topia.binder.data.GearUseFeaturesLonglineBinder; -import fr.ird.observe.services.topia.binder.data.GearUseFeaturesMeasurementLonglineBinder; -import fr.ird.observe.services.topia.binder.data.GearUseFeaturesMeasurementSeineBinder; -import fr.ird.observe.services.topia.binder.data.GearUseFeaturesSeineBinder; -import fr.ird.observe.services.topia.binder.data.HooksCompositionBinder; -import fr.ird.observe.services.topia.binder.data.NonTargetCatchBinder; -import fr.ird.observe.services.topia.binder.data.NonTargetLengthBinder; -import fr.ird.observe.services.topia.binder.data.NonTargetSampleBinder; -import fr.ird.observe.services.topia.binder.data.ObjectObservedSpeciesBinder; -import fr.ird.observe.services.topia.binder.data.ObjectSchoolEstimateBinder; -import fr.ird.observe.services.topia.binder.data.RouteBinder; -import fr.ird.observe.services.topia.binder.data.RouteStubDtoBinder; -import fr.ird.observe.services.topia.binder.data.SchoolEstimateBinder; -import fr.ird.observe.services.topia.binder.data.SectionBinder; -import fr.ird.observe.services.topia.binder.data.SensorUsedBinder; -import fr.ird.observe.services.topia.binder.data.SetLonglineBinder; -import fr.ird.observe.services.topia.binder.data.SetLonglineCatchDtoBinder; -import fr.ird.observe.services.topia.binder.data.SetLonglineDetailCompositionDtoBinder; -import fr.ird.observe.services.topia.binder.data.SetLonglineGlobalCompositionDtoBinder; -import fr.ird.observe.services.topia.binder.data.SetLonglineStubDtoBinder; -import fr.ird.observe.services.topia.binder.data.SetLonglineTdrDtoBinder; -import fr.ird.observe.services.topia.binder.data.SetSeineBinder; -import fr.ird.observe.services.topia.binder.data.SetSeineNonTargetCatchDtoBinder; -import fr.ird.observe.services.topia.binder.data.SetSeineSchoolEstimateDtoBinder; -import fr.ird.observe.services.topia.binder.data.SetSeineTargetCatchDtoBinder; -import fr.ird.observe.services.topia.binder.data.SizeMeasureBinder; -import fr.ird.observe.services.topia.binder.data.TargetCatchBinder; -import fr.ird.observe.services.topia.binder.data.TargetLengthBinder; -import fr.ird.observe.services.topia.binder.data.TargetSampleBinder; -import fr.ird.observe.services.topia.binder.data.TdrBinder; -import fr.ird.observe.services.topia.binder.data.TransmittingBuoyBinder; -import fr.ird.observe.services.topia.binder.data.TripLonglineActivityDtoBinder; -import fr.ird.observe.services.topia.binder.data.TripLonglineBinder; -import fr.ird.observe.services.topia.binder.data.TripLonglineGearUseDtoBinder; -import fr.ird.observe.services.topia.binder.data.TripSeineBinder; -import fr.ird.observe.services.topia.binder.data.TripSeineGearUseDtoBinder; -import fr.ird.observe.services.topia.binder.data.WeightMeasureBinder; -import fr.ird.observe.services.topia.binder.referential.BaitHaulingStatusBinder; -import fr.ird.observe.services.topia.binder.referential.BaitSettingStatusBinder; -import fr.ird.observe.services.topia.binder.referential.BaitTypeBinder; -import fr.ird.observe.services.topia.binder.referential.CatchFateLonglineBinder; -import fr.ird.observe.services.topia.binder.referential.CountryBinder; -import fr.ird.observe.services.topia.binder.referential.DetectionModeBinder; -import fr.ird.observe.services.topia.binder.referential.EncounterTypeBinder; -import fr.ird.observe.services.topia.binder.referential.FpaZoneBinder; -import fr.ird.observe.services.topia.binder.referential.GearBinder; -import fr.ird.observe.services.topia.binder.referential.GearCaracteristicBinder; -import fr.ird.observe.services.topia.binder.referential.GearCaracteristicTypeBinder; -import fr.ird.observe.services.topia.binder.referential.HarbourBinder; -import fr.ird.observe.services.topia.binder.referential.HealthnessBinder; -import fr.ird.observe.services.topia.binder.referential.HookPositionBinder; -import fr.ird.observe.services.topia.binder.referential.HookSizeBinder; -import fr.ird.observe.services.topia.binder.referential.HookTypeBinder; -import fr.ird.observe.services.topia.binder.referential.ItemHorizontalPositionBinder; -import fr.ird.observe.services.topia.binder.referential.ItemVerticalPositionBinder; -import fr.ird.observe.services.topia.binder.referential.LengthLengthParameterBinder; -import fr.ird.observe.services.topia.binder.referential.LengthWeightParameterBinder; -import fr.ird.observe.services.topia.binder.referential.LightsticksColorBinder; -import fr.ird.observe.services.topia.binder.referential.LightsticksTypeBinder; -import fr.ird.observe.services.topia.binder.referential.LineTypeBinder; -import fr.ird.observe.services.topia.binder.referential.MaturityStatusBinder; -import fr.ird.observe.services.topia.binder.referential.MitigationTypeBinder; -import fr.ird.observe.services.topia.binder.referential.ObjectFateBinder; -import fr.ird.observe.services.topia.binder.referential.ObjectOperationBinder; -import fr.ird.observe.services.topia.binder.referential.ObjectTypeBinder; -import fr.ird.observe.services.topia.binder.referential.ObservedSystemBinder; -import fr.ird.observe.services.topia.binder.referential.OceanBinder; -import fr.ird.observe.services.topia.binder.referential.OrganismBinder; -import fr.ird.observe.services.topia.binder.referential.PersonBinder; -import fr.ird.observe.services.topia.binder.referential.ProgramBinder; -import fr.ird.observe.services.topia.binder.referential.ReasonForDiscardBinder; -import fr.ird.observe.services.topia.binder.referential.ReasonForNoFishingBinder; -import fr.ird.observe.services.topia.binder.referential.ReasonForNullSetBinder; -import fr.ird.observe.services.topia.binder.referential.SensorBrandBinder; -import fr.ird.observe.services.topia.binder.referential.SensorDataFormatBinder; -import fr.ird.observe.services.topia.binder.referential.SensorTypeBinder; -import fr.ird.observe.services.topia.binder.referential.SettingShapeBinder; -import fr.ird.observe.services.topia.binder.referential.SexBinder; -import fr.ird.observe.services.topia.binder.referential.ShipOwnerBinder; -import fr.ird.observe.services.topia.binder.referential.SizeMeasureTypeBinder; -import fr.ird.observe.services.topia.binder.referential.SpeciesBinder; -import fr.ird.observe.services.topia.binder.referential.SpeciesFateBinder; -import fr.ird.observe.services.topia.binder.referential.SpeciesGroupBinder; -import fr.ird.observe.services.topia.binder.referential.SpeciesListBinder; -import fr.ird.observe.services.topia.binder.referential.SpeciesStatusBinder; -import fr.ird.observe.services.topia.binder.referential.StomacFullnessBinder; -import fr.ird.observe.services.topia.binder.referential.SurroundingActivityBinder; -import fr.ird.observe.services.topia.binder.referential.TransmittingBuoyOperationBinder; -import fr.ird.observe.services.topia.binder.referential.TransmittingBuoyTypeBinder; -import fr.ird.observe.services.topia.binder.referential.TripTypeBinder; -import fr.ird.observe.services.topia.binder.referential.VesselActivityLonglineBinder; -import fr.ird.observe.services.topia.binder.referential.VesselActivitySeineBinder; -import fr.ird.observe.services.topia.binder.referential.VesselBinder; -import fr.ird.observe.services.topia.binder.referential.VesselSizeCategoryBinder; -import fr.ird.observe.services.topia.binder.referential.VesselTypeBinder; -import fr.ird.observe.services.topia.binder.referential.WeightCategoryBinder; -import fr.ird.observe.services.topia.binder.referential.WeightMeasureTypeBinder; -import fr.ird.observe.services.topia.binder.referential.WindBinder; +import fr.ird.observe.services.topia.binder.data.longline.ActivityLonglineBinder; +import fr.ird.observe.services.topia.binder.data.longline.ActivityLonglineEncouterDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.ActivityLonglineSensorUsedDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.ActivityLonglineStubDtoBinder; +import fr.ird.observe.services.topia.binder.data.seine.ActivitySeineBinder; +import fr.ird.observe.services.topia.binder.data.seine.ActivitySeineStubDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.BaitsCompositionBinder; +import fr.ird.observe.services.topia.binder.data.longline.BasketBinder; +import fr.ird.observe.services.topia.binder.data.longline.BranchlineBinder; +import fr.ird.observe.services.topia.binder.data.longline.BranchlinesCompositionBinder; +import fr.ird.observe.services.topia.binder.data.longline.CatchLonglineBinder; +import fr.ird.observe.services.topia.binder.data.longline.EncounterBinder; +import fr.ird.observe.services.topia.binder.data.seine.FloatingObjectBinder; +import fr.ird.observe.services.topia.binder.data.seine.FloatingObjectObservedSpeciesDtoBinder; +import fr.ird.observe.services.topia.binder.data.seine.FloatingObjectSchoolEstimateDtoBinder; +import fr.ird.observe.services.topia.binder.data.seine.FloatingObjectTransmittingBuoyDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.FloatlinesCompositionBinder; +import fr.ird.observe.services.topia.binder.data.longline.GearUseFeaturesLonglineBinder; +import fr.ird.observe.services.topia.binder.data.longline.GearUseFeaturesMeasurementLonglineBinder; +import fr.ird.observe.services.topia.binder.data.seine.GearUseFeaturesMeasurementSeineBinder; +import fr.ird.observe.services.topia.binder.data.seine.GearUseFeaturesSeineBinder; +import fr.ird.observe.services.topia.binder.data.longline.HooksCompositionBinder; +import fr.ird.observe.services.topia.binder.data.seine.NonTargetCatchBinder; +import fr.ird.observe.services.topia.binder.data.seine.NonTargetLengthBinder; +import fr.ird.observe.services.topia.binder.data.seine.NonTargetSampleBinder; +import fr.ird.observe.services.topia.binder.data.seine.ObjectObservedSpeciesBinder; +import fr.ird.observe.services.topia.binder.data.seine.ObjectSchoolEstimateBinder; +import fr.ird.observe.services.topia.binder.data.seine.RouteBinder; +import fr.ird.observe.services.topia.binder.data.seine.RouteStubDtoBinder; +import fr.ird.observe.services.topia.binder.data.seine.SchoolEstimateBinder; +import fr.ird.observe.services.topia.binder.data.longline.SectionBinder; +import fr.ird.observe.services.topia.binder.data.longline.SensorUsedBinder; +import fr.ird.observe.services.topia.binder.data.longline.SetLonglineBinder; +import fr.ird.observe.services.topia.binder.data.longline.SetLonglineCatchDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.SetLonglineDetailCompositionDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.SetLonglineGlobalCompositionDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.SetLonglineStubDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.SetLonglineTdrDtoBinder; +import fr.ird.observe.services.topia.binder.data.seine.SetSeineBinder; +import fr.ird.observe.services.topia.binder.data.seine.SetSeineNonTargetCatchDtoBinder; +import fr.ird.observe.services.topia.binder.data.seine.SetSeineSchoolEstimateDtoBinder; +import fr.ird.observe.services.topia.binder.data.seine.SetSeineTargetCatchDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.SizeMeasureBinder; +import fr.ird.observe.services.topia.binder.data.seine.TargetCatchBinder; +import fr.ird.observe.services.topia.binder.data.seine.TargetLengthBinder; +import fr.ird.observe.services.topia.binder.data.seine.TargetSampleBinder; +import fr.ird.observe.services.topia.binder.data.longline.TdrBinder; +import fr.ird.observe.services.topia.binder.data.seine.TransmittingBuoyBinder; +import fr.ird.observe.services.topia.binder.data.longline.TripLonglineActivityDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.TripLonglineBinder; +import fr.ird.observe.services.topia.binder.data.longline.TripLonglineGearUseDtoBinder; +import fr.ird.observe.services.topia.binder.data.seine.TripSeineBinder; +import fr.ird.observe.services.topia.binder.data.seine.TripSeineGearUseDtoBinder; +import fr.ird.observe.services.topia.binder.data.longline.WeightMeasureBinder; +import fr.ird.observe.services.topia.binder.referential.longline.BaitHaulingStatusBinder; +import fr.ird.observe.services.topia.binder.referential.longline.BaitSettingStatusBinder; +import fr.ird.observe.services.topia.binder.referential.longline.BaitTypeBinder; +import fr.ird.observe.services.topia.binder.referential.longline.CatchFateLonglineBinder; +import fr.ird.observe.services.topia.binder.referential.common.CountryBinder; +import fr.ird.observe.services.topia.binder.referential.seine.DetectionModeBinder; +import fr.ird.observe.services.topia.binder.referential.longline.EncounterTypeBinder; +import fr.ird.observe.services.topia.binder.referential.common.FpaZoneBinder; +import fr.ird.observe.services.topia.binder.referential.common.GearBinder; +import fr.ird.observe.services.topia.binder.referential.common.GearCaracteristicBinder; +import fr.ird.observe.services.topia.binder.referential.common.GearCaracteristicTypeBinder; +import fr.ird.observe.services.topia.binder.referential.common.HarbourBinder; +import fr.ird.observe.services.topia.binder.referential.longline.HealthnessBinder; +import fr.ird.observe.services.topia.binder.referential.longline.HookPositionBinder; +import fr.ird.observe.services.topia.binder.referential.longline.HookSizeBinder; +import fr.ird.observe.services.topia.binder.referential.longline.HookTypeBinder; +import fr.ird.observe.services.topia.binder.referential.longline.ItemHorizontalPositionBinder; +import fr.ird.observe.services.topia.binder.referential.longline.ItemVerticalPositionBinder; +import fr.ird.observe.services.topia.binder.referential.common.LengthLengthParameterBinder; +import fr.ird.observe.services.topia.binder.referential.common.LengthWeightParameterBinder; +import fr.ird.observe.services.topia.binder.referential.longline.LightsticksColorBinder; +import fr.ird.observe.services.topia.binder.referential.longline.LightsticksTypeBinder; +import fr.ird.observe.services.topia.binder.referential.longline.LineTypeBinder; +import fr.ird.observe.services.topia.binder.referential.longline.MaturityStatusBinder; +import fr.ird.observe.services.topia.binder.referential.longline.MitigationTypeBinder; +import fr.ird.observe.services.topia.binder.referential.seine.ObjectFateBinder; +import fr.ird.observe.services.topia.binder.referential.seine.ObjectOperationBinder; +import fr.ird.observe.services.topia.binder.referential.seine.ObjectTypeBinder; +import fr.ird.observe.services.topia.binder.referential.seine.ObservedSystemBinder; +import fr.ird.observe.services.topia.binder.referential.common.OceanBinder; +import fr.ird.observe.services.topia.binder.referential.common.OrganismBinder; +import fr.ird.observe.services.topia.binder.referential.common.PersonBinder; +import fr.ird.observe.services.topia.binder.referential.common.ProgramBinder; +import fr.ird.observe.services.topia.binder.referential.seine.ReasonForDiscardBinder; +import fr.ird.observe.services.topia.binder.referential.seine.ReasonForNoFishingBinder; +import fr.ird.observe.services.topia.binder.referential.seine.ReasonForNullSetBinder; +import fr.ird.observe.services.topia.binder.referential.longline.SensorBrandBinder; +import fr.ird.observe.services.topia.binder.referential.longline.SensorDataFormatBinder; +import fr.ird.observe.services.topia.binder.referential.longline.SensorTypeBinder; +import fr.ird.observe.services.topia.binder.referential.longline.SettingShapeBinder; +import fr.ird.observe.services.topia.binder.referential.common.SexBinder; +import fr.ird.observe.services.topia.binder.referential.common.ShipOwnerBinder; +import fr.ird.observe.services.topia.binder.referential.common.SizeMeasureTypeBinder; +import fr.ird.observe.services.topia.binder.referential.common.SpeciesBinder; +import fr.ird.observe.services.topia.binder.referential.seine.SpeciesFateBinder; +import fr.ird.observe.services.topia.binder.referential.common.SpeciesGroupBinder; +import fr.ird.observe.services.topia.binder.referential.common.SpeciesListBinder; +import fr.ird.observe.services.topia.binder.referential.seine.SpeciesStatusBinder; +import fr.ird.observe.services.topia.binder.referential.longline.StomacFullnessBinder; +import fr.ird.observe.services.topia.binder.referential.seine.SurroundingActivityBinder; +import fr.ird.observe.services.topia.binder.referential.seine.TransmittingBuoyOperationBinder; +import fr.ird.observe.services.topia.binder.referential.seine.TransmittingBuoyTypeBinder; +import fr.ird.observe.services.topia.binder.referential.longline.TripTypeBinder; +import fr.ird.observe.services.topia.binder.referential.longline.VesselActivityLonglineBinder; +import fr.ird.observe.services.topia.binder.referential.seine.VesselActivitySeineBinder; +import fr.ird.observe.services.topia.binder.referential.common.VesselBinder; +import fr.ird.observe.services.topia.binder.referential.common.VesselSizeCategoryBinder; +import fr.ird.observe.services.topia.binder.referential.common.VesselTypeBinder; +import fr.ird.observe.services.topia.binder.referential.seine.WeightCategoryBinder; +import fr.ird.observe.services.topia.binder.referential.common.WeightMeasureTypeBinder; +import fr.ird.observe.services.topia.binder.referential.seine.WindBinder; import java.util.Map; diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineBinder.java index 984f684..892fe1b 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -31,6 +31,7 @@ import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.referential.FpaZoneDto; import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineEncouterDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineEncouterDtoBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineEncouterDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineEncouterDtoBinder.java index 714bb3c..e1ef81a 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineEncouterDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineEncouterDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.ActivityLonglineEncounterDto; import fr.ird.observe.services.dto.longline.EncounterDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineSensorUsedDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineSensorUsedDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineSensorUsedDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineSensorUsedDtoBinder.java index f025200..42fd030 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineSensorUsedDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineSensorUsedDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.longline.SensorUsed; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; import fr.ird.observe.services.dto.longline.SensorUsedDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineStubDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineStubDtoBinder.java similarity index 93% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineStubDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineStubDtoBinder.java index 1d3d372..c27e9d3 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineStubDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/ActivityLonglineStubDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -25,6 +25,7 @@ package fr.ird.observe.services.topia.binder.data; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.ActivityLonglineStubDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BaitsCompositionBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BaitsCompositionBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BaitsCompositionBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BaitsCompositionBinder.java index 38a8268..93c7c8e 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BaitsCompositionBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BaitsCompositionBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -29,6 +29,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.BaitsCompositionDto; import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BasketBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BasketBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BasketBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BasketBinder.java index 29e040b..e2cd5de 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BasketBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BasketBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BranchlineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BranchlineBinder.java similarity index 97% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BranchlineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BranchlineBinder.java index 4a15d1d..62aa69b 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BranchlineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BranchlineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -38,6 +38,7 @@ import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; import fr.ird.observe.services.dto.referential.longline.HookSizeDto; import fr.ird.observe.services.dto.referential.longline.HookTypeDto; import fr.ird.observe.services.dto.referential.longline.LineTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BranchlinesCompositionBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BranchlinesCompositionBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BranchlinesCompositionBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BranchlinesCompositionBinder.java index 0d09b7f..d9ba0a9 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/BranchlinesCompositionBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/BranchlinesCompositionBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.referentiel.longline.LineType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.BranchlinesCompositionDto; import fr.ird.observe.services.dto.referential.longline.LineTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/CatchLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/CatchLonglineBinder.java similarity index 98% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/CatchLonglineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/CatchLonglineBinder.java index c04a6aa..1dda75c 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/CatchLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/CatchLonglineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -50,6 +50,7 @@ import fr.ird.observe.services.dto.referential.longline.HealthnessDto; import fr.ird.observe.services.dto.referential.longline.HookPositionDto; import fr.ird.observe.services.dto.referential.longline.MaturityStatusDto; import fr.ird.observe.services.dto.referential.longline.StomacFullnessDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/EncounterBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/EncounterBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/EncounterBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/EncounterBinder.java index 5ccc857..d7526c6 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/EncounterBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/EncounterBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -30,6 +30,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.EncounterDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatlinesCompositionBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/FloatlinesCompositionBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatlinesCompositionBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/FloatlinesCompositionBinder.java index 8af80fd..afd9317 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatlinesCompositionBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/FloatlinesCompositionBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.referentiel.longline.LineType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.FloatlinesCompositionDto; import fr.ird.observe.services.dto.referential.longline.LineTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/GearUseFeaturesLonglineBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesLonglineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/GearUseFeaturesLonglineBinder.java index b3534d5..8413dc8 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/GearUseFeaturesLonglineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -29,6 +29,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto; import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesMeasurementLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/GearUseFeaturesMeasurementLonglineBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesMeasurementLonglineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/GearUseFeaturesMeasurementLonglineBinder.java index bd4971e..9459bc5 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesMeasurementLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/GearUseFeaturesMeasurementLonglineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.referentiel.GearCaracteristic; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/HooksCompositionBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/HooksCompositionBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/HooksCompositionBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/HooksCompositionBinder.java index 6e59ba0..eb8aec9 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/HooksCompositionBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/HooksCompositionBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -29,6 +29,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.HooksCompositionDto; import fr.ird.observe.services.dto.referential.longline.HookSizeDto; import fr.ird.observe.services.dto.referential.longline.HookTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SectionBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SectionBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SectionBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SectionBinder.java index 512952f..ae06e84 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SectionBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SectionBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.SectionDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SensorUsedBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SensorUsedBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SensorUsedBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SensorUsedBinder.java index f85f267..532a6f3 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SensorUsedBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SensorUsedBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -32,6 +32,7 @@ import fr.ird.observe.services.dto.longline.SensorUsedDto; import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineBinder.java similarity index 98% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineBinder.java index 836bd0b..7638be2 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -34,6 +34,7 @@ import fr.ird.observe.services.dto.referential.longline.LightsticksColorDto; import fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto; import fr.ird.observe.services.dto.referential.longline.LineTypeDto; import fr.ird.observe.services.dto.referential.longline.SettingShapeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineCatchDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineCatchDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineCatchDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineCatchDtoBinder.java index 7d57323..3470ebb 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineCatchDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineCatchDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.CatchLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineDetailCompositionDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineDetailCompositionDtoBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineDetailCompositionDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineDetailCompositionDtoBinder.java index 948edad..3ce8e46 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineDetailCompositionDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineDetailCompositionDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineGlobalCompositionDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineGlobalCompositionDtoBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineGlobalCompositionDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineGlobalCompositionDtoBinder.java index f24ea20..72fd5f4 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineGlobalCompositionDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineGlobalCompositionDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -35,6 +35,7 @@ import fr.ird.observe.services.dto.longline.FloatlinesCompositionDto; import fr.ird.observe.services.dto.longline.HooksCompositionDto; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.services.dto.referential.longline.MitigationTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineStubDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineStubDtoBinder.java similarity index 93% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineStubDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineStubDtoBinder.java index 6199cd8..cbe19bf 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineStubDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineStubDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.longline.SetLongline; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineStubDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineTdrDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineTdrDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineTdrDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineTdrDtoBinder.java index f72c16a..a3d153d 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetLonglineTdrDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SetLonglineTdrDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.longline.Tdr; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; import fr.ird.observe.services.dto.longline.TdrDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SizeMeasureBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SizeMeasureBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SizeMeasureBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SizeMeasureBinder.java index ebe4223..45974e3 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SizeMeasureBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/SizeMeasureBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.referentiel.SizeMeasureType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.SizeMeasureDto; import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TdrBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TdrBinder.java similarity index 98% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TdrBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TdrBinder.java index 1fc1c7d..6457db6 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TdrBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TdrBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -40,6 +40,7 @@ import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto; import fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto; import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineActivityDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TripLonglineActivityDtoBinder.java similarity index 93% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineActivityDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TripLonglineActivityDtoBinder.java index b72648d..99e3618 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineActivityDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TripLonglineActivityDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -25,6 +25,7 @@ package fr.ird.observe.services.topia.binder.data; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.TripLonglineActivityDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TripLonglineBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TripLonglineBinder.java index 7ab3890..274589c 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TripLonglineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -41,6 +41,7 @@ import fr.ird.observe.services.dto.referential.PersonHelper; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.VesselDto; import fr.ird.observe.services.dto.referential.longline.TripTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. @@ -62,6 +63,7 @@ public class TripLonglineBinder extends DataBinderSupport<TripLongline, TripLong entity.setEndDate(dto.getEndDate()); entity.setTotalFishingOperationsNumber(dto.getTotalFishingOperationsNumber()); entity.setHomeId(dto.getHomeId()); + entity.setActivityCount(dto.getActivityCount()); entity.setTripType(toEntity(dto.getTripType(), TripType.class)); entity.setOcean(toEntity(dto.getOcean(), Ocean.class)); entity.setVessel(toEntity(dto.getVessel(), Vessel.class)); @@ -84,6 +86,7 @@ public class TripLonglineBinder extends DataBinderSupport<TripLongline, TripLong dto.setEndDate(entity.getEndDate()); dto.setTotalFishingOperationsNumber(entity.getTotalFishingOperationsNumber()); dto.setHomeId(entity.getHomeId()); + dto.setActivityCount(entity.getActivityCount()); dto.setTripType(toReferentialReference(referentialLocale, entity.getTripType(), TripTypeDto.class)); dto.setOcean(toReferentialReference(referentialLocale, entity.getOcean(), OceanDto.class)); dto.setVessel(toReferentialReference(referentialLocale, entity.getVessel(), VesselDto.class)); @@ -105,6 +108,7 @@ public class TripLonglineBinder extends DataBinderSupport<TripLongline, TripLong entity.getEndDate(), toEntityId(entity.getProgram()), toEntityId(entity.getTripType()), + entity.getActivityCount(), getLabel(referentialLocale, entity.getVessel()), entity.getObserverLabel()); @@ -118,6 +122,7 @@ public class TripLonglineBinder extends DataBinderSupport<TripLongline, TripLong dto.getEndDate(), toDtoId(dto.getProgram()), toDtoId(dto.getTripType()), + dto.getActivityCount(), getLabel(referentialLocale, dto.getVessel()), PersonHelper.getNames(dto.getObserver())); diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineGearUseDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TripLonglineGearUseDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineGearUseDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TripLonglineGearUseDtoBinder.java index 511adca..9b635f4 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineGearUseDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/TripLonglineGearUseDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineGearUseDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/WeightMeasureBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/WeightMeasureBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/WeightMeasureBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/WeightMeasureBinder.java index 1a64575..522103c 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/WeightMeasureBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/longline/WeightMeasureBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.longline; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.referentiel.WeightMeasureType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.WeightMeasureDto; import fr.ird.observe.services.dto.referential.WeightMeasureTypeDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ActivitySeineBinder.java similarity index 98% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ActivitySeineBinder.java index 9d8b2f7..357bd56 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ActivitySeineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -41,6 +41,7 @@ import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; import fr.ird.observe.services.dto.referential.seine.WindDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineStubDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ActivitySeineStubDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineStubDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ActivitySeineStubDtoBinder.java index 1afe325..c65dbff 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineStubDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ActivitySeineStubDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.ActivitySeineImpl; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.ActivitySeineStubDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectBinder.java index a8d98c2..0fa1c1e 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -32,6 +32,7 @@ import fr.ird.observe.services.dto.referential.seine.ObjectFateDto; import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; import fr.ird.observe.services.dto.referential.seine.ObjectTypeDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectObservedSpeciesDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectObservedSpeciesDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectObservedSpeciesDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectObservedSpeciesDtoBinder.java index be3f538..634b611 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectObservedSpeciesDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectObservedSpeciesDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.ObjectObservedSpecies; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectSchoolEstimateDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectSchoolEstimateDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectSchoolEstimateDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectSchoolEstimateDtoBinder.java index c7c6785..4bb1388 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectSchoolEstimateDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectSchoolEstimateDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.ObjectSchoolEstimate; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectTransmittingBuoyDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectTransmittingBuoyDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectTransmittingBuoyDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectTransmittingBuoyDtoBinder.java index 9147734..bee7e8f 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/FloatingObjectTransmittingBuoyDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/FloatingObjectTransmittingBuoyDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.TransmittingBuoy; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto; import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesMeasurementSeineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/GearUseFeaturesMeasurementSeineBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesMeasurementSeineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/GearUseFeaturesMeasurementSeineBinder.java index 9771c96..903d343 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesMeasurementSeineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/GearUseFeaturesMeasurementSeineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesSeineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/GearUseFeaturesSeineBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesSeineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/GearUseFeaturesSeineBinder.java index 8d1ab15..a8dccc8 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/GearUseFeaturesSeineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/GearUseFeaturesSeineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -29,6 +29,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetCatchBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/NonTargetCatchBinder.java similarity index 97% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetCatchBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/NonTargetCatchBinder.java index c2680ae..bc1b6f9 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetCatchBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/NonTargetCatchBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -32,6 +32,7 @@ import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; import fr.ird.observe.services.dto.seine.NonTargetCatchDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/NonTargetLengthBinder.java similarity index 97% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/NonTargetLengthBinder.java index 345dd31..3da0b22 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/NonTargetLengthBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -34,6 +34,7 @@ import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; import fr.ird.observe.services.dto.seine.NonTargetLengthDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetSampleBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/NonTargetSampleBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetSampleBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/NonTargetSampleBinder.java index e79c7bd..b0a2711 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetSampleBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/NonTargetSampleBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.NonTargetSample; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.NonTargetLengthDto; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ObjectObservedSpeciesBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ObjectObservedSpeciesBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ObjectObservedSpeciesBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ObjectObservedSpeciesBinder.java index 8aebff8..ecc47ba 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ObjectObservedSpeciesBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ObjectObservedSpeciesBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -29,6 +29,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ObjectSchoolEstimateBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ObjectSchoolEstimateBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ObjectSchoolEstimateBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ObjectSchoolEstimateBinder.java index e7a55ab..cf848f8 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ObjectSchoolEstimateBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/ObjectSchoolEstimateBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.ObjectSchoolEstimate; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/RouteBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/RouteBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/RouteBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/RouteBinder.java index 1df4fbb..c61b57e 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/RouteBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/RouteBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.ActivitySeineStubDto; import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/RouteStubDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/RouteStubDtoBinder.java similarity index 93% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/RouteStubDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/RouteStubDtoBinder.java index b728dbb..f0d8052 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/RouteStubDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/RouteStubDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -25,6 +25,7 @@ package fr.ird.observe.services.topia.binder.data; import fr.ird.observe.entities.seine.Route; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.RouteStubDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SchoolEstimateBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SchoolEstimateBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SchoolEstimateBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SchoolEstimateBinder.java index e99d0e2..c745309 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SchoolEstimateBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SchoolEstimateBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.SchoolEstimateDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineBinder.java similarity index 97% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineBinder.java index ee43a47..da1981a 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto; import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineNonTargetCatchDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineNonTargetCatchDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineNonTargetCatchDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineNonTargetCatchDtoBinder.java index 4987be7..1ad9b2c 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineNonTargetCatchDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineNonTargetCatchDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.NonTargetCatchDto; import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineSchoolEstimateDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineSchoolEstimateDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineSchoolEstimateDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineSchoolEstimateDtoBinder.java index 1fd732d..4b3f996 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineSchoolEstimateDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineSchoolEstimateDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.SchoolEstimateDto; import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineTargetCatchDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineTargetCatchDtoBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineTargetCatchDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineTargetCatchDtoBinder.java index 927dd66..e27a501 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/SetSeineTargetCatchDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/SetSeineTargetCatchDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.TargetCatch; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; import fr.ird.observe.services.dto.seine.TargetCatchDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TargetCatchBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TargetCatchBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TargetCatchBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TargetCatchBinder.java index 05a4f04..0b5b5c3 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TargetCatchBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TargetCatchBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -32,6 +32,7 @@ import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; import fr.ird.observe.services.dto.seine.TargetCatchDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TargetLengthBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TargetLengthBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TargetLengthBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TargetLengthBinder.java index 53f6b04..45ac4c1 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TargetLengthBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TargetLengthBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -32,6 +32,7 @@ import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.TargetLengthDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TargetSampleBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TargetSampleBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TargetSampleBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TargetSampleBinder.java index dc76971..9499780 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TargetSampleBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TargetSampleBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.TargetSample; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.TargetLengthDto; import fr.ird.observe.services.dto.seine.TargetSampleDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TransmittingBuoyBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TransmittingBuoyBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TransmittingBuoyBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TransmittingBuoyBinder.java index 3585c0a..0e1bf94 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TransmittingBuoyBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TransmittingBuoyBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -32,6 +32,7 @@ import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TripSeineBinder.java similarity index 97% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TripSeineBinder.java index a4ce727..049ed3f 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TripSeineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -39,6 +39,7 @@ import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.VesselDto; import fr.ird.observe.services.dto.seine.RouteStubDto; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineGearUseDtoBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TripSeineGearUseDtoBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineGearUseDtoBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TripSeineGearUseDtoBinder.java index b6fe587..5aef0c4 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineGearUseDtoBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/seine/TripSeineGearUseDtoBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.data; +package fr.ird.observe.services.topia.binder.data.seine; /*- * #%L @@ -27,6 +27,7 @@ import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/CountryBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/CountryBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/CountryBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/CountryBinder.java index 6e64840..072fc0a 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/CountryBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/CountryBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.Country; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/FpaZoneBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/FpaZoneBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/FpaZoneBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/FpaZoneBinder.java index 3c23944..cecef3e 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/FpaZoneBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/FpaZoneBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.FpaZone; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.FpaZoneDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/GearBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/GearBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/GearBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/GearBinder.java index a11839b..4bbed34 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/GearBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/GearBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/GearCaracteristicBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/GearCaracteristicBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/GearCaracteristicBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/GearCaracteristicBinder.java index a834761..390da52 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/GearCaracteristicBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/GearCaracteristicBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/GearCaracteristicTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/GearCaracteristicTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/GearCaracteristicTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/GearCaracteristicTypeBinder.java index 649908b..a61133f 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/GearCaracteristicTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/GearCaracteristicTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.GearCaracteristicType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HarbourBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/HarbourBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HarbourBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/HarbourBinder.java index df01bad..bd04214 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HarbourBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/HarbourBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.HarbourDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LengthLengthParameterBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/LengthLengthParameterBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LengthLengthParameterBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/LengthLengthParameterBinder.java index 4e1ec7b..40eccd2 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LengthLengthParameterBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/LengthLengthParameterBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.LengthLengthParameterDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LengthWeightParameterBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/LengthWeightParameterBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LengthWeightParameterBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/LengthWeightParameterBinder.java index c3b1201..00c0e57 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LengthWeightParameterBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/LengthWeightParameterBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -32,6 +32,7 @@ import fr.ird.observe.services.dto.referential.OceanDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/OceanBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/OceanBinder.java similarity index 93% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/OceanBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/OceanBinder.java index 4268349..c707a27 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/OceanBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/OceanBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.Ocean; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.OceanDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/OrganismBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/OrganismBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/OrganismBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/OrganismBinder.java index 65d48a2..4fcf30f 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/OrganismBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/OrganismBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.OrganismDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/PersonBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/PersonBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/PersonBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/PersonBinder.java index f6009e6..1213ed4 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/PersonBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/PersonBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.PersonDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ProgramBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/ProgramBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ProgramBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/ProgramBinder.java index f6b8293..a066813 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ProgramBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/ProgramBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.OrganismDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SexBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SexBinder.java similarity index 93% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SexBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SexBinder.java index 37dfc96..463e74d 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SexBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SexBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.Sex; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SexDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ShipOwnerBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/ShipOwnerBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ShipOwnerBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/ShipOwnerBinder.java index d67f7d2..8ad1302 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ShipOwnerBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/ShipOwnerBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.ShipOwnerDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 02/11/16. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SizeMeasureTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SizeMeasureTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SizeMeasureTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SizeMeasureTypeBinder.java index eaf8a1a..05ec508 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SizeMeasureTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SizeMeasureTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.SizeMeasureType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SpeciesBinder.java similarity index 96% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SpeciesBinder.java index b707f21..a5d55d1 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SpeciesBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -32,6 +32,7 @@ import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.SpeciesGroupDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesGroupBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SpeciesGroupBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesGroupBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SpeciesGroupBinder.java index c4aeb0e..3bf324f 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesGroupBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SpeciesGroupBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.SpeciesGroup; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SpeciesGroupDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesListBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SpeciesListBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesListBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SpeciesListBinder.java index 31db0e3..f7f8123 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesListBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/SpeciesListBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.SpeciesListDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/VesselBinder.java similarity index 97% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/VesselBinder.java index e5d22d2..d75f6f5 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/VesselBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -34,6 +34,7 @@ import fr.ird.observe.services.dto.referential.ShipOwnerDto; import fr.ird.observe.services.dto.referential.VesselDto; import fr.ird.observe.services.dto.referential.VesselSizeCategoryDto; import fr.ird.observe.services.dto.referential.VesselTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselSizeCategoryBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/VesselSizeCategoryBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselSizeCategoryBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/VesselSizeCategoryBinder.java index d684297..38a1baf 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselSizeCategoryBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/VesselSizeCategoryBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.VesselSizeCategory; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.VesselSizeCategoryDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/VesselTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/VesselTypeBinder.java index 8d33980..d266080 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/VesselTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.VesselType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.VesselTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/WeightMeasureTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/WeightMeasureTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/WeightMeasureTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/WeightMeasureTypeBinder.java index fabacb2..9e12cd7 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/WeightMeasureTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/common/WeightMeasureTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.common; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.WeightMeasureType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.WeightMeasureTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/BaitHaulingStatusBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/BaitHaulingStatusBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/BaitHaulingStatusBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/BaitHaulingStatusBinder.java index 6fab729..ceb1218 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/BaitHaulingStatusBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/BaitHaulingStatusBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/BaitSettingStatusBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/BaitSettingStatusBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/BaitSettingStatusBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/BaitSettingStatusBinder.java index 4f01526..4a98ea3 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/BaitSettingStatusBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/BaitSettingStatusBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.BaitSettingStatus; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/BaitTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/BaitTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/BaitTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/BaitTypeBinder.java index e108f82..27b5397 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/BaitTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/BaitTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.BaitType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/CatchFateLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/CatchFateLonglineBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/CatchFateLonglineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/CatchFateLonglineBinder.java index 4aadbc2..8d9e2cb 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/CatchFateLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/CatchFateLonglineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.CatchFateLongline; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/EncounterTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/EncounterTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/EncounterTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/EncounterTypeBinder.java index 585c54e..77d73b9 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/EncounterTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/EncounterTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.EncounterType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HealthnessBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HealthnessBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HealthnessBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HealthnessBinder.java index 4f2948d..b5d9c0d 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HealthnessBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HealthnessBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.Healthness; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.HealthnessDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HookPositionBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HookPositionBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HookPositionBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HookPositionBinder.java index 11fbaf1..1c3f3d1 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HookPositionBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HookPositionBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.HookPosition; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.HookPositionDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HookSizeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HookSizeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HookSizeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HookSizeBinder.java index ac5a620..18c36b8 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HookSizeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HookSizeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.HookSize; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.HookSizeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HookTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HookTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HookTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HookTypeBinder.java index 4257c61..d5222ca 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/HookTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/HookTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.HookType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.HookTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ItemHorizontalPositionBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/ItemHorizontalPositionBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ItemHorizontalPositionBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/ItemHorizontalPositionBinder.java index dd9ec3c..face512 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ItemHorizontalPositionBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/ItemHorizontalPositionBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.ItemHorizontalPosition; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ItemVerticalPositionBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/ItemVerticalPositionBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ItemVerticalPositionBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/ItemVerticalPositionBinder.java index 199f0f2..90b0b57 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ItemVerticalPositionBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/ItemVerticalPositionBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.ItemVerticalPosition; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LightsticksColorBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/LightsticksColorBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LightsticksColorBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/LightsticksColorBinder.java index 8b6e6d4..6953ca4 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LightsticksColorBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/LightsticksColorBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.LightsticksColor; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.LightsticksColorDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LightsticksTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/LightsticksTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LightsticksTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/LightsticksTypeBinder.java index 82c56be..6a7adf8 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LightsticksTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/LightsticksTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.LightsticksType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LineTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/LineTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LineTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/LineTypeBinder.java index aa192fb..59f7ff4 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/LineTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/LineTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.LineType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.LineTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/MaturityStatusBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/MaturityStatusBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/MaturityStatusBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/MaturityStatusBinder.java index c3c4a66..e1adb31 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/MaturityStatusBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/MaturityStatusBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.MaturityStatus; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.MaturityStatusDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/MitigationTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/MitigationTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/MitigationTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/MitigationTypeBinder.java index 5998284..ca226a9 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/MitigationTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/MitigationTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.MitigationType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.MitigationTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SensorBrandBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SensorBrandBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SensorBrandBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SensorBrandBinder.java index c2fa82f..e532d98 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SensorBrandBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SensorBrandBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.SensorBrand; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SensorDataFormatBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SensorDataFormatBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SensorDataFormatBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SensorDataFormatBinder.java index f34f179..b069a82 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SensorDataFormatBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SensorDataFormatBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.SensorDataFormat; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SensorTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SensorTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SensorTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SensorTypeBinder.java index 14cd606..4c0415a 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SensorTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SensorTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.SensorType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SettingShapeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SettingShapeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SettingShapeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SettingShapeBinder.java index b803697..5250f47 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SettingShapeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/SettingShapeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.SettingShape; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.SettingShapeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/StomacFullnessBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/StomacFullnessBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/StomacFullnessBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/StomacFullnessBinder.java index 8ae873b..9ce8dc9 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/StomacFullnessBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/StomacFullnessBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.StomacFullness; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.StomacFullnessDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/TripTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/TripTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/TripTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/TripTypeBinder.java index 596b206..a3d76d8 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/TripTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/TripTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.TripType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.TripTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselActivityLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/VesselActivityLonglineBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselActivityLonglineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/VesselActivityLonglineBinder.java index dac2cef..a475f3c 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselActivityLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/longline/VesselActivityLonglineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.longline; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.longline.VesselActivityLongline; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/DetectionModeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/DetectionModeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/DetectionModeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/DetectionModeBinder.java index 02505a3..0d97d81 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/DetectionModeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/DetectionModeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.DetectionMode; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.DetectionModeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObjectFateBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObjectFateBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObjectFateBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObjectFateBinder.java index 6990f45..64047b8 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObjectFateBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObjectFateBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.ObjectFate; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.ObjectFateDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObjectOperationBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObjectOperationBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObjectOperationBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObjectOperationBinder.java index ae6fe45..b312e70 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObjectOperationBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObjectOperationBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.ObjectOperation; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObjectTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObjectTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObjectTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObjectTypeBinder.java index ae7e9f4..869c771 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObjectTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObjectTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.ObjectType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.ObjectTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObservedSystemBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObservedSystemBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObservedSystemBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObservedSystemBinder.java index 91e60dc..ead7519 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ObservedSystemBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ObservedSystemBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.ObservedSystem; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.ObservedSystemDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ReasonForDiscardBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ReasonForDiscardBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ReasonForDiscardBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ReasonForDiscardBinder.java index bb87206..3468a2c 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ReasonForDiscardBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ReasonForDiscardBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.ReasonForDiscard; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ReasonForNoFishingBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ReasonForNoFishingBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ReasonForNoFishingBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ReasonForNoFishingBinder.java index a78af2e..ef828d7 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ReasonForNoFishingBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ReasonForNoFishingBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.ReasonForNoFishing; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.ReasonForNoFishingDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ReasonForNullSetBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ReasonForNullSetBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ReasonForNullSetBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ReasonForNullSetBinder.java index e4b0272..797d50f 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/ReasonForNullSetBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/ReasonForNullSetBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.ReasonForNullSet; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesFateBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/SpeciesFateBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesFateBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/SpeciesFateBinder.java index ba1d009..2680d85 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesFateBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/SpeciesFateBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.SpeciesFate; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesStatusBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/SpeciesStatusBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesStatusBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/SpeciesStatusBinder.java index 01a7ebe..8697e35 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesStatusBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/SpeciesStatusBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.SpeciesStatus; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SurroundingActivityBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/SurroundingActivityBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SurroundingActivityBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/SurroundingActivityBinder.java index 1c0838d..061f801 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SurroundingActivityBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/SurroundingActivityBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.SurroundingActivity; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.SurroundingActivityDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/TransmittingBuoyOperationBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/TransmittingBuoyOperationBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/TransmittingBuoyOperationBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/TransmittingBuoyOperationBinder.java index ea9218f..5624983 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/TransmittingBuoyOperationBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/TransmittingBuoyOperationBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/TransmittingBuoyTypeBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/TransmittingBuoyTypeBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/TransmittingBuoyTypeBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/TransmittingBuoyTypeBinder.java index bbadaa9..a2f1da1 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/TransmittingBuoyTypeBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/TransmittingBuoyTypeBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselActivitySeineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/VesselActivitySeineBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselActivitySeineBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/VesselActivitySeineBinder.java index 0de11b2..822d009 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/VesselActivitySeineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/VesselActivitySeineBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/WeightCategoryBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/WeightCategoryBinder.java similarity index 95% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/WeightCategoryBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/WeightCategoryBinder.java index a5aabaa..5966e3a 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/WeightCategoryBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/WeightCategoryBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/WindBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/WindBinder.java similarity index 94% rename from services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/WindBinder.java rename to services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/WindBinder.java index 2a0d8c3..4f8b6ac 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/WindBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/seine/WindBinder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.topia.binder.referential; +package fr.ird.observe.services.topia.binder.referential.seine; /*- * #%L @@ -26,6 +26,7 @@ import fr.ird.observe.entities.referentiel.seine.Wind; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.WindDto; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; /** * Created on 24/11/15. -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit fe96e92e9d3e3c9f7d0f22376623df49fc212c07 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 21 07:57:52 2016 +0100 refs #8429 : réusinage des arbres --- .../swing/decoration/DecoratorService.java | 8 +- .../ObserveSwingApplicationDataSourcesManager.java | 14 +- .../application/swing/ui/ObserveMainUI.jaxx | 31 +- .../application/swing/ui/ObserveMainUI.jcss | 5 - .../application/swing/ui/ObserveMainUIHandler.java | 168 +++-- .../swing/ui/actions/ReloadStorageAction.java | 7 +- .../ui/actions/content/CancelCreateUIAction.java | 9 +- .../ui/actions/content/CloseAndCreateUIAction.java | 41 +- .../ui/actions/content/CloseOpenUIAction.java | 15 +- .../content/MoveActivityLonglinesUIAction.java | 36 +- .../content/MoveActivitySeinesUIAction.java | 37 +- .../ui/actions/content/MoveRoutesUIAction.java | 37 +- .../ui/actions/content/MoveTripsUIAction.java | 35 +- .../swing/ui/actions/content/ReOpenUIAction.java | 13 +- .../ui/actions/content/ResetEditUIAction.java | 9 +- .../swing/ui/actions/shared/AbstractUIAction.java | 22 - .../swing/ui/actions/shared/GoDownUIAction.java | 34 +- .../swing/ui/actions/shared/GoUpUIAction.java | 19 +- .../ui/actions/shared/SelectNodeUIAction.java | 6 +- .../ui/actions/shared/SelectOpenNodeUIAction.java | 2 +- .../swing/ui/admin/AdminTabUIHandler.java | 74 +-- .../application/swing/ui/admin/AdminUIHandler.java | 31 + .../application/swing/ui/admin/AdminUIModel.java | 216 +++---- .../swing/ui/admin/config/ConfigUI.jaxx | 3 +- .../swing/ui/admin/config/ConfigUIHandler.java | 28 +- .../swing/ui/admin/config/SelectDataUI.jaxx | 40 +- .../swing/ui/admin/config/SelectDataUI.jcss | 19 +- .../ui/admin/consolidate/ConsolidateUIHandler.java | 44 +- .../swing/ui/admin/export/ExportModel.java | 65 +- .../swing/ui/admin/export/ExportUIHandler.java | 23 +- .../swing/ui/admin/report/ReportUIHandler.java | 26 +- .../admin/synchronize/data/DataSynchroModel.java | 40 +- .../data/DataSynchroSelectionTreeCellRenderer.java | 45 +- .../ui/admin/synchronize/data/DataSynchroUI.jaxx | 33 +- .../ui/admin/synchronize/data/DataSynchroUI.jcss | 22 - .../synchronize/data/DataSynchroUIHandler.java | 93 ++- .../referential/ng/ReferentialSynchroUI.jaxx | 4 - .../swing/ui/admin/validate/ValidateUI.jaxx | 4 +- .../swing/ui/admin/validate/ValidateUIHandler.java | 82 +-- .../application/swing/ui/content/ContentUI.jaxx | 3 - .../swing/ui/content/ContentUIHandler.java | 157 ++--- .../swing/ui/content/ContentUIManager.java | 224 +------ .../swing/ui/content/ObserveFocusManager.java | 2 + .../content/impl/longline/BranchlineUIHandler.java | 5 + .../LonglineGlobalCompositionUIHandler.java | 19 +- .../impl/longline/SetLonglineUIHandler.java | 10 +- .../impl/seine/FloatingObjectUIHandler.java | 10 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 10 +- .../ui/content/list/ContentListUIHandler.java | 46 +- .../ui/content/open/ContentOpenableUIHandler.java | 28 +- .../impl/longline/ActivityLonglineUIHandler.java | 4 +- .../open/impl/seine/ActivitySeineUIHandler.java | 4 +- .../ui/content/open/impl/seine/RouteUIHandler.java | 17 +- .../ui/content/ref/ContentReferenceUIHandler.java | 8 +- .../ui/content/table/ContentTableUIHandler.java | 11 +- .../impl/longline/BaitsCompositionUIHandler.java | 5 + .../longline/BranchlinesCompositionUIHandler.java | 5 + .../impl/longline/CatchLonglineUIHandler.java | 19 +- .../longline/FloatlinesCompositionUIHandler.java | 5 + .../impl/longline/HooksCompositionUIHandler.java | 5 + .../swing/ui/storage/ObstunaAdminAction.java | 53 +- .../swing/ui/storage/StorageBackupUILauncher.java | 30 +- .../swing/ui/storage/StorageUIHandler.java | 207 +++--- .../swing/ui/storage/StorageUILauncher.java | 198 +++--- .../swing/ui/storage/StorageUIModel.java | 105 ++- .../swing/ui/storage/tabs/ChooseDbModeUI.jcss | 2 +- .../swing/ui/storage/tabs/DataSelectionModel.java | 619 ------------------ .../swing/ui/storage/tabs/SelectDataUI.jaxx | 24 +- .../swing/ui/storage/tabs/SelectDataUI.jcss | 6 - .../swing/ui/storage/tabs/StorageTabUIHandler.java | 99 +-- .../ui/tree/DataSelectionTreeSelectionModel.java | 709 --------------------- .../ui/tree/NavigationTreeSelectionModel.java | 117 ---- .../swing/ui/tree/ObserveDataProvider.java | 83 --- .../tree/ObserveNavigationTreeShowPopupAction.java | 52 +- .../swing/ui/tree/ObserveTreeBridge.java | 142 ----- .../swing/ui/tree/ObserveTreeHelper.java | 625 ------------------ .../swing/ui/tree/ObserveTreeNodeSupport.java | 39 ++ .../actions/ChangeActivityRouteActionListener.java | 25 +- .../actions/ChangeActivityTripActionListener.java | 25 +- .../actions/ChangeRouteTripActionListener.java | 25 +- .../actions/ChangeTripProgramActionListener.java | 23 +- .../ui/tree/actions/NodeChangeActionListener.java | 36 +- .../ui/tree/loadors/AbstractNodeChildLoador.java | 95 --- .../loadors/ActivityLonglineNodeChildLoador.java | 109 ---- .../loadors/ActivityLonglinesNodeChildLoador.java | 64 -- .../tree/loadors/ActivitySeineNodeChildLoador.java | 97 --- .../loadors/ActivitySeinesNodeChildLoador.java | 66 -- .../loadors/FloatingObjectNodeChildLoador.java | 60 -- .../loadors/ProgramLonglineNodeChildLoador.java | 126 ---- .../tree/loadors/ProgramSeineNodeChildLoador.java | 119 ---- .../ui/tree/loadors/ReferenceNodeChildLoador.java | 80 --- .../swing/ui/tree/loadors/RootNodeChildLoador.java | 148 ----- .../ui/tree/loadors/RoutesNodeChildLoador.java | 70 -- .../tree/loadors/SetLonglineNodeChildLoador.java | 67 -- .../ui/tree/loadors/SetSeineNodeChildLoador.java | 76 --- .../MoveActivityLonglineNodeMenuPopulator.java | 29 +- .../menu/MoveActivitySeineNodeMenuPopulator.java | 29 +- .../swing/ui/tree/menu/MoveNodeMenuPopulator.java | 18 +- .../ui/tree/menu/MoveRouteNodeMenuPopulator.java | 29 +- .../ui/tree/menu/MoveTripNodeMenuPopulator.java | 41 +- .../swing/ui/tree/navigation/NavigationTree.java | 563 ++++++++++++++++ .../navigation/NavigationTreeCellRenderer.java | 208 ++++++ .../ui/tree/navigation/NavigationTreeModel.java | 83 +++ .../navigation/nodes/ClassNavigationTreeNode.java | 57 ++ .../nodes/NavigationTreeNodeSupport.java | 132 ++++ .../nodes/ReferenceNavigationTreeNodeSupport.java | 45 ++ .../navigation/nodes/RootNavigationTreeNode.java | 71 +++ .../nodes/StringNavigationTreeNodeSupport.java | 52 ++ .../ActivitiesLonglineNavigationTreeNode.java | 44 ++ .../ActivityLonglineNavigationTreeNode.java | 64 ++ .../longline/CatchLonglineNavigationTreeNode.java | 23 + .../EncounterLonglineNavigationTreeNode.java | 23 + .../GearUseFeaturesLonglineNavigationTreeNode.java | 23 + .../ProgramLonglineNavigationTreeNode.java | 47 ++ .../SensorUsedLonglineNavigationTreeNode.java | 23 + ...etailCompositionLonglineNavigationTreeNode.java | 23 + ...lobalCompositionLonglineNavigationTreeNode.java | 23 + .../longline/SetLonglineNavigationTreeNode.java | 38 ++ .../longline/TdrLonglineNavigationTreeNode.java | 23 + .../longline/TripLonglineNavigationTreeNode.java | 39 ++ .../referential/ReferentialNavigationTreeNode.java | 47 ++ .../ReferentialsNavigationTreeNode.java | 51 ++ .../seine/ActivitiesSeineNavigationTreeNode.java | 50 ++ .../seine/ActivitySeineNavigationTreeNode.java | 50 ++ ...cardedTargetCatchesSeineNavigationTreeNode.java | 23 + ...cardedTargetSamplesSeineNavigationTreeNode.java | 23 + .../FloatingObjectSeineNavigationTreeNode.java | 35 + .../GearUseFeaturesSeineNavigationTreeNode.java | 23 + .../KeptTargetCatchesSeineNavigationTreeNode.java | 23 + .../KeptTargetSamplesSeineNavigationTreeNode.java | 26 + .../NonTargetCatchesSeineNavigationTreeNode.java | 23 + .../NoneTargetSamplesSeineNavigationTreeNode.java | 23 + .../seine/ProgramSeineNavigationTreeNode.java | 48 ++ .../nodes/seine/RouteSeineNavigationTreeNode.java | 36 ++ .../nodes/seine/RoutesSeineNavigationTreeNode.java | 50 ++ .../SchoolEstimatesSeineNavigationTreeNode.java | 23 + .../nodes/seine/SetSeineNavigationTreeNode.java | 41 ++ .../nodes/seine/TripSeineNavigationTreeNode.java | 40 ++ .../ui/tree/node/AbstrctReferenceNodeSupport.java | 103 --- .../swing/ui/tree/node/ActivityLonglineNode.java | 52 -- .../swing/ui/tree/node/ActivitySeineNode.java | 52 -- .../ui/tree/node/DataReferenceNodeSupport.java | 98 --- .../ui/tree/node/FloatingObjectSeineNode.java | 52 -- .../swing/ui/tree/node/ObserveNode.java | 119 ---- .../swing/ui/tree/node/ProgramLonglineNode.java | 71 --- .../swing/ui/tree/node/ProgramSeineNode.java | 69 -- .../tree/node/ReferentialReferenceNodeSupport.java | 85 --- .../swing/ui/tree/node/RouteSeineNode.java | 49 -- .../swing/ui/tree/node/SetLonglineNode.java | 52 -- .../swing/ui/tree/node/SetSeineNode.java | 52 -- .../swing/ui/tree/node/TripLonglineNode.java | 50 -- .../swing/ui/tree/node/TripSeineNode.java | 62 -- .../renderer/AbstractObserveTreeCellRenderer.java | 434 ------------- .../renderer/DataSelectionTreeCellRenderer.java | 140 ---- .../tree/renderer/NavigationTreeCellRenderer.java | 101 --- .../swing/ui/tree/selection/SelectionTree.java | 164 +++++ .../tree/selection/SelectionTreeCellRenderer.java | 39 ++ .../ui/tree/selection/SelectionTreeHeader.jaxx | 43 ++ .../SelectionTreeHeader.jcss} | 47 +- .../tree/selection/SelectionTreeHeaderHandler.java | 96 +++ .../ui/tree/selection/SelectionTreeModel.java | 339 ++++++++++ .../selection/nodes/ProgramSelectionTreeNode.java | 85 +++ .../nodes/ReferenceSelectionTreeNodeSupport.java | 52 ++ .../nodes/ReferentialSelectionTreeNode.java | 51 ++ .../nodes/ReferentialsSelectionTreeNode.java | 86 +++ .../selection/nodes/RootSelectionTreeNode.java | 115 ++++ .../selection/nodes/SelectionTreeNodeSupport.java | 68 ++ .../nodes/TripLonglineSelectionTreeNode.java | 44 ++ .../nodes/TripSeineSelectionTreeNode.java | 45 ++ .../nodes/TripSelectionTreeNodeSupport.java | 27 + .../swing/ui/util/DecoratedNodeEntity.java | 6 +- .../ftl/dataSourceConnectionReport_en.ftl | 10 +- .../ftl/dataSourceConnectionReport_es.ftl | 10 +- .../ftl/dataSourceConnectionReport_fr.ftl | 10 +- .../i18n/application-swing_en_GB.properties | 2 + .../i18n/application-swing_es_ES.properties | 2 + .../i18n/application-swing_fr_FR.properties | 2 + .../entities/longline/TripLonglineImpl.java | 11 + .../entities/longline/TripLonglineTopiaDao.java | 7 +- .../entities/referentiel/ProgramTopiaDao.java | 124 ---- entities/src/main/xmi/observe-longline.zargo | Bin 93824 -> 93999 bytes .../dto/reference/DataReferenceSetDefinitions.java | 1 + .../services/dto/longline/TripLonglineHelper.java | 10 + .../services/dto/referential/ProgramHelper.java | 6 +- .../seine/VesselActivitySeineHelper.java | 26 +- .../services/dto/seine/ActivitySeineDto.java | 25 +- .../services/dto/seine/TripSeineHelper.java | 9 + .../main/xmi/observe-services-dto-longline.zargo | Bin 67946 -> 68017 bytes 188 files changed, 4899 insertions(+), 7147 deletions(-) diff --git a/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java b/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java index 9190d0f..d8393a7 100644 --- a/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java +++ b/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java @@ -466,13 +466,13 @@ public class DecoratorService extends DecoratorProvider { return (DataReferenceDecorator<T>) (DataReferenceDecorator) getDecoratorByType(DataReference.class, referenceType.getSimpleName() + context); } - public Decorator getReferenceDecorator(Class referenceType) { - Decorator decorator; + public <D extends IdDto> Decorator<D> getReferenceDecorator(Class<D> referenceType) { + Decorator<D> decorator; if (DataDto.class.isAssignableFrom(referenceType)) { - decorator = this.getDataReferenceDecorator(referenceType); + decorator = getDataReferenceDecorator((Class)referenceType); } else { - decorator = this.getReferentialReferenceDecorator(referenceType); + decorator = getReferentialReferenceDecorator((Class)referenceType); } return decorator; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java index 9b12f1f..ff923d3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java @@ -33,12 +33,11 @@ import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceListenerA import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.ObserveUIMode; import fr.ird.observe.application.swing.ui.actions.ChangeStorageAction; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; -import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.runner.ObserveDataSourceConfigurationMainFactory; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; @@ -374,7 +373,8 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { applicationContext.getConfig().saveTreeOpenNodeIds(dataContext.getOpenIds()); dataContext.populateOpens(); - mainUI.getTreeHelper().cleanNavigationUI(mainUI); + mainUI.getHandler().cleanNavigationUI(mainUI); +// mainUI.getTreeHelper().cleanNavigationUI(mainUI); // on met a jour l'état dans la config applicationContext.getConfig().setMainStorageOpened(false); @@ -435,9 +435,7 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { DataContext dataContext = mainUI.getDataContext(); dataContext.setEnabled(true); - ObserveTreeHelper treeHelper = mainUI.getTreeHelper(); - - treeHelper.cleanNavigationUI(mainUI); + mainUI.getHandler().cleanNavigationUI(mainUI); String[] openIds = config.getTreeOpenNodeIds(); @@ -446,7 +444,9 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { } dataContext.populateOpens(openIds); - treeHelper.loadNavigationUI(source); + mainUI.getHandler().loadNavigationUI(mainUI); + + mainUI.getNavigation().getNavigationTreeModel().openRoot(); mainUI.setMode(ObserveUIMode.DB); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx index 22ce441..72d31e4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx @@ -44,8 +44,7 @@ fr.ird.observe.application.swing.ui.actions.SaveStorageToFileAction fr.ird.observe.application.swing.ui.actions.ShowStorageInfoAction fr.ird.observe.application.swing.ui.content.ContentUIManager - fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper - fr.ird.observe.application.swing.ui.tree.renderer.NavigationTreeCellRenderer + fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree fr.ird.observe.application.swing.ui.util.tree.BeanTreeHeader jaxx.runtime.swing.CardLayout2 @@ -63,10 +62,6 @@ javax.swing.UIManager javax.swing.Icon - <!-- FIXME --> - <!--fr.ird.observe.services.dto.TripDto--> - <!--fr.ird.observe.services.dto.ActivityDto--> - <!--fr.ird.observe.services.dto.SetDto--> </import> <ObserveUIMode id='mode' javaBean='ObserveUIMode.NO_DB'/> @@ -96,8 +91,6 @@ <ObserveMainUIHandler id='handler' initializer='getContextValue(ObserveMainUIHandler.class)'/> - <ObserveTreeHelper id='treeHelper' initializer='getContextValue(ObserveTreeHelper.class)'/> - <DataContext id='dataContext' initializer='ObserveSwingApplicationContext.get().getDataContext()'/> <Boolean id='mainFromSynchro' javaBean='false'/> @@ -113,15 +106,15 @@ <script><![CDATA[ protected Icon updateStorageSatutIcon(boolean isOpened) { - return getHandler().updateStorageSatutIcon(this, isOpened); + return getHandler().updateStorageSatutIcon(this); } protected String updateStorageSatutText(boolean isOpened) { - return getHandler().updateStorageSatutText(this, isOpened); + return getHandler().updateStorageSatutText(this); } protected String updateStorageStatutToolTipText(boolean isOpened) { - return getHandler().updateStorageStatutToolTipText(this, isOpened); + return getHandler().updateStorageStatutToolTipText(this); } @Override @@ -182,18 +175,18 @@ void $afterCompleteSetup() { <JMenu id='menuNavigation'> <JMenuItem id='menuNavigationProgram' - onActionPerformed="getTreeHelper().selectOpenNode(ProgramDto.class)"/> + onActionPerformed="navigation.selectOpenNode(ProgramDto.class)"/> <JMenuItem id='menuNavigationTrip' - onActionPerformed="getTreeHelper().selectOpenNode(TripSeineDto.class)"/> + onActionPerformed="navigation.selectOpenNode(TripSeineDto.class)"/> <JMenuItem id='menuNavigationRoute' - onActionPerformed="getTreeHelper().selectOpenNode(RouteDto.class)"/> + onActionPerformed="navigation.selectOpenNode(RouteDto.class)"/> <JMenuItem id='menuNavigationActivity' - onActionPerformed="getTreeHelper().selectOpenNode(ActivitySeineDto.class)"/> + onActionPerformed="navigation.selectOpenNode(ActivitySeineDto.class)"/> <JMenuItem id='menuNavigationSet' - onActionPerformed="getTreeHelper().selectOpenNode(SetSeineDto.class)"/> + onActionPerformed="navigation.selectOpenNode(SetSeineDto.class)"/> <JSeparator/> <JMenuItem id='menuNavigationReferentiel' - onActionPerformed='getTreeHelper().selectNode("observe.common.referentiel")'/> + onActionPerformed='navigation.selectNode("observe.common.referentiel")'/> </JMenu> <JMenu id='menuConfiguration'> <JMenu id='menuLanguage'> @@ -222,7 +215,7 @@ void $afterCompleteSetup() { <JToolBar id='toolbar'> <javax.swing.Box.Filler - constructorParams='UIHelper.newMinDimension(), UIHelper.newMinDimension(), UIHelper.newMaxXDimension()'/> + constructorParams='UIHelper.newMinDimension(), UIHelper.newMinDimension(), UIHelper.newMaxXDimension()'/> <!-- pour afficher le status du service de persistance et changer de service de persistance --> <JButton id='storageStatus' @@ -258,7 +251,7 @@ void $afterCompleteSetup() { <JXTitledPanel id='navigationView'> <JScrollPane id='navigationScrollPane' columnHeaderView='{navigationTreeHeader}'> - <JTree id="navigation"/> + <NavigationTree id="navigation"/> <BeanTreeHeader id='navigationTreeHeader' tree='{navigation}'/> </JScrollPane> </JXTitledPanel> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss index 0172c0b..e13f2fa 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss @@ -380,13 +380,8 @@ JSplitPane { } #navigation { - rootVisible: false; - largeModel: true; minimumSize: {UIHelper.newMinDimension()}; font-size:11; - model: {getTreeHelper().getModel()}; - selectionModel: {getTreeHelper().newNavigationSelectionModel()}; - cellRenderer: {new NavigationTreeCellRenderer()}; } #navigationTreeHeader { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java index b6d7b65..5f8c6d6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java @@ -32,8 +32,10 @@ import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.ContentUIManager; import fr.ird.observe.application.swing.ui.content.ContentUIModel; import fr.ird.observe.application.swing.ui.tree.ObserveNavigationTreeShowPopupAction; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.util.ObserveSwingValidatorMessageTableModel; import fr.ird.observe.application.swing.ui.util.ObserveValidatorMessageTableRenderer; import fr.ird.observe.services.dto.AbstractObserveDto; @@ -51,11 +53,8 @@ import org.nuiton.i18n.I18n; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.SwingUtilities; -import javax.swing.event.TreeExpansionEvent; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; -import javax.swing.event.TreeWillExpandListener; -import javax.swing.tree.ExpandVetoException; import javax.swing.tree.TreePath; import java.awt.Cursor; import java.awt.event.MouseAdapter; @@ -81,7 +80,6 @@ public class ObserveMainUIHandler { public void changeNavigationNode(ObserveMainUI ui, TreeSelectionEvent event) { - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); if (source == null || !source.isOpen()) { @@ -99,7 +97,7 @@ public class ObserveMainUIHandler { } TreePath path = event.getPath(); - ObserveNode node = (ObserveNode) path.getLastPathComponent(); + NavigationTreeNodeSupport node = (NavigationTreeNodeSupport) path.getLastPathComponent(); ContentUIManager manager = ui.getContentUIManager(); // obtain the ui type to show @@ -125,10 +123,10 @@ public class ObserveMainUIHandler { } finally { ui.setBusy(false); String params; - if (node.isStringNode()) { - params = t(node.getId()); + if (node instanceof StringNavigationTreeNodeSupport) { + params = t(((StringNavigationTreeNodeSupport) node).getData()); } else { - params = t(ObserveI18nDecoratorHelper.getTypeI18nKey(node.getInternalClass())); + params = t(ObserveI18nDecoratorHelper.getTypeI18nKey(node.getDataType())); } ui.getStatus().setStatus(t("observe.action.open.screen", params)); } @@ -142,12 +140,11 @@ public class ObserveMainUIHandler { Object[] nodes = path.getPath(); List<String> ids = new ArrayList<>(); for (Object o : nodes) { - ObserveNode n = (ObserveNode) o; + NavigationTreeNodeSupport n = (NavigationTreeNodeSupport) o; - if (n.isStringNode() || n.isReferentielNode() || n.isRoot() || !n.isDataNode()) { - continue; + if (n instanceof ReferenceNavigationTreeNodeSupport) { + ids.add(n.getId()); } - ids.add(n.getId()); } if (log.isDebugEnabled()) { @@ -220,26 +217,24 @@ public class ObserveMainUIHandler { decoratorService.reload(); } - ObserveTreeHelper treeHelper = new ObserveTreeHelper(); - ObserveSwingDataSource source = context.getDataSourcesManager().getMainDataSource(); +// ObserveTreeHelper treeHelper = new ObserveTreeHelper(); +// ObserveSwingDataSource source = context.getDataSourcesManager().getMainDataSource(); - boolean open = context.getDataContext().getEnabled(); - if (open) { - treeHelper.createModel(source); - } else { - treeHelper.createEmptyModel(); - } +// boolean open = context.getDataContext().getEnabled(); +// if (open) { +// treeHelper.initModel(source); +// } else { +// treeHelper.createEmptyModel(); +// } JAXXInitialContext tx = new JAXXInitialContext(); - - tx.add(context).add(treeHelper).add(errorModel); + tx.add(context).add(errorModel); // show main ui ObserveMainUI ui = new ObserveMainUI(tx); ui.setUndecorated(config.isFullScreen()); - String title = t("observe.title.welcome.admin"); - title += " v " + config.getVersion(); + String title = t("observe.title.welcome.admin") + (" v " + config.getVersion()); ui.setTitle(title); context.setMainUI(ui); @@ -249,7 +244,7 @@ public class ObserveMainUIHandler { // set fullscreen propery on main ui ui.getGraphicsConfiguration().getDevice().setFullScreenWindow(config.isFullScreen() ? ui : null); - new ObserveNavigationTreeShowPopupAction(treeHelper, ui.getNavigationScrollPane(), ui.getNavigationPopup()); + new ObserveNavigationTreeShowPopupAction(ui.getNavigation(), ui.getNavigationScrollPane(), ui.getNavigationPopup()); return ui; } @@ -307,7 +302,7 @@ public class ObserveMainUIHandler { oldMode = ui.getMode(); - ids = ui.getTreeHelper().getSelectedIds(); + ids = ui.getNavigation().getSelectedIds(); ErrorDialogUI.init(null); @@ -341,14 +336,14 @@ public class ObserveMainUIHandler { // selection du noeud d'ouverture (le noeud precedemment selectionne, // ou le noeud le plus ouvert // ou le premier program si aucune donnée ouverte) - ui.getTreeHelper().selectInitialNode(); + ui.getNavigation().selectInitialNode(); } // show ui UIHelper.setMainUIVisible(ui); } - protected Icon updateStorageSatutIcon(ObserveMainUI ui, boolean isOpened) { + protected Icon updateStorageSatutIcon(ObserveMainUI ui) { Icon icon; if (ui.getConfig().isMainStorageOpened()) { @@ -368,7 +363,7 @@ public class ObserveMainUIHandler { return icon; } - protected String updateStorageSatutText(ObserveMainUI ui, boolean isOpened) { + protected String updateStorageSatutText(ObserveMainUI ui) { String text; if (ui.getConfig().isMainStorageOpened()) { ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); @@ -379,7 +374,7 @@ public class ObserveMainUIHandler { return text; } - protected String updateStorageStatutToolTipText(ObserveMainUI ui, boolean isOpened) { + protected String updateStorageStatutToolTipText(ObserveMainUI ui) { String text; if (ui.getConfig().isMainStorageOpened()) { ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); @@ -432,6 +427,8 @@ public class ObserveMainUIHandler { // bad binding, force value ui.getStopH2WebServer().setEnabled(false); +// ui.setContextValue(ui.getNavigation()); + ui.getStatus().init(); // ajout d'un ecouteur sur la navigation pour toujours mettre la scrollbar @@ -439,39 +436,40 @@ public class ObserveMainUIHandler { TreeSelectionListener listener; listener = e -> { changeNavigationNode(ui, e); - SwingUtilities.invokeLater(() -> { - ui.getNavigationScrollPane().getHorizontalScrollBar().setValue(0); - ui.getSplitpane2().resetToPreferredSizes(); - }); - }; - TreeWillExpandListener veteobableTreeWillExpand = new TreeWillExpandListener() { - @Override - public void treeWillExpand(TreeExpansionEvent event) { - } - - @Override - public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException { - - // le seul posant problème est la fermeture d'un noeud parent - // du noeud courant : cela va changer la selection - ObserveNode selectedNode = ui.getTreeHelper().getSelectedNode(); - if (selectedNode == null) { - // pas de noeud selectionne - return; - } - - ObserveNode o = (ObserveNode) event.getPath().getLastPathComponent(); - if (selectedNode.equals(o) || !selectedNode.isNodeAncestor(o)) { - return; - } - boolean canChange = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); - if (!canChange) { - throw new ExpandVetoException(event, "Can not collapse node " + event.getPath()); - } - } +// SwingUtilities.invokeLater(() -> { +// ui.getNavigationScrollPane().getHorizontalScrollBar().setValue(0); +// ui.getSplitpane2().resetToPreferredSizes(); +// }); }; - - ui.getTreeHelper().setUI(ui.getNavigation(), true, true, listener, veteobableTreeWillExpand); + ui.getNavigation().addTreeSelectionListener(listener); +// TreeWillExpandListener veteobableTreeWillExpand = new TreeWillExpandListener() { +// @Override +// public void treeWillExpand(TreeExpansionEvent event) { +// } +// +// @Override +// public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException { +// +// // le seul posant problème est la fermeture d'un noeud parent +// // du noeud courant : cela va changer la selection +// ObserveNode selectedNode = ui.getTreeHelper().getSelectedNode(); +// if (selectedNode == null) { +// // pas de noeud selectionne +// return; +// } +// +// ObserveNode o = (ObserveNode) event.getPath().getLastPathComponent(); +// if (selectedNode.equals(o) || !selectedNode.isNodeAncestor(o)) { +// return; +// } +// boolean canChange = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); +// if (!canChange) { +// throw new ExpandVetoException(event, "Can not collapse node " + event.getPath()); +// } +// } +// }; + +// ui.getTreeHelper().setUI(ui.getNavigation(), true, true, listener, veteobableTreeWillExpand); SwingValidatorUtil.installUI(ui.getErrorTable(), new ObserveValidatorMessageTableRenderer()); @@ -518,4 +516,46 @@ public class ObserveMainUIHandler { } } + /** + * Nettoye des ui tout ce qui concerne un modèle de navigation. + * + * <b>Note:</b> cette méthode doit être appelée avant tout rechargement de + * modèle de naivgation. + * + * @param mainUI l'ui principale + */ + public void cleanNavigationUI(ObserveMainUI mainUI) { + + // reset content uis + mainUI.getContentLayout().reset(mainUI.getContent()); + + // clean messages + mainUI.getContextValue(SwingValidatorMessageTableModel.class).clear(); + + // clean tree model + NavigationTree tree = mainUI.getNavigation(); + + tree.clearModel(); + + // no tree navigation view + tree.setVisible(false); + + } + + /** + * Charge dans l'ui un nouveau modèle de navigation. + * + * <b>Note:</b> cette méthode doit être appelée après tout rechargement de modèle de naivgation. + **/ + public void loadNavigationUI(ObserveMainUI mainUI) { + + NavigationTree tree = mainUI.getNavigation(); + + tree.createModel(); + + // select initial node + tree.selectInitialNode(); + + tree.setVisible(true); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ReloadStorageAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ReloadStorageAction.java index 8884d04..5a88364 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ReloadStorageAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ReloadStorageAction.java @@ -25,10 +25,10 @@ package fr.ird.observe.application.swing.ui.actions; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -36,6 +36,7 @@ import org.apache.commons.logging.LogFactory; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n.t; + /** * Created on 1/17/15. * @@ -79,7 +80,7 @@ public class ReloadStorageAction extends AbstractObserveAction { ui.setBusy(false); - String[] ids = ui.getTreeHelper().getSelectedIds(); + String[] ids = ui.getNavigation().getSelectedIds(); try { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java index e415500..330b1e9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java @@ -22,9 +22,9 @@ package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import static org.nuiton.i18n.I18n.n; @@ -54,8 +54,9 @@ public class CancelCreateUIAction extends AbstractContentUIAction { @Override protected void actionPerformed(ContentUI<?, ?> ui) { ui.stopEdit(); - ObserveNode parentNode = ui.getTreeHelper().removeNode(ui.getTreeHelper().getSelectedNode()); - ui.getTreeHelper().selectNode(parentNode); + NavigationTree tree = getMainUI().getNavigation(); + NavigationTreeNodeSupport parentNode = tree.removeNode(tree.getSelectedNode()); + tree.selectNode(parentNode); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java index c774930..8d544aa 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java @@ -22,19 +22,19 @@ package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; import fr.ird.observe.application.swing.ui.content.open.impl.longline.ActivityLonglineUI; import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import javax.swing.JTree; import javax.swing.tree.TreePath; import static org.nuiton.i18n.I18n.n; @@ -73,13 +73,12 @@ public class CloseAndCreateUIAction extends AbstractContentUIAction { // cas particulier pour l'écran des activitys - JTree tree = getMainUI().getNavigation(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + NavigationTree tree = getMainUI().getNavigation(); - boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, treeHelper, getMainUI().getDataContext()); + boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, getMainUI().getDataContext()); // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(ActivitySeineDto.class); + tree.selectOpenNode(ActivitySeineDto.class); // on conserve le path de l'activity TreePath path = tree.getSelectionPath(); @@ -105,17 +104,12 @@ public class CloseAndCreateUIAction extends AbstractContentUIAction { // cas particulier pour l'écran des activitys - JTree tree = getMainUI().getNavigation(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + NavigationTree tree = getMainUI().getNavigation(); - boolean wasCollapsed = isOpenActivityNodeCollapsed( - tree, - treeHelper, - getMainUI().getDataContext() - ); + boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, getMainUI().getDataContext()); // selection du noeud de l'activity ouverte - treeHelper.selectOpenNode(ActivityLonglineDto.class); + tree.selectOpenNode(ActivityLonglineDto.class); // on conserve le path de l'activity TreePath path = tree.getSelectionPath(); @@ -140,4 +134,21 @@ public class CloseAndCreateUIAction extends AbstractContentUIAction { throw new IllegalStateException("Can not come here!"); } + protected boolean isOpenActivityNodeCollapsed(NavigationTree tree, DataContext dataContext) { + + // on regarde si le noeud de l'activité ouverte est collapsé + + NavigationTreeNodeSupport node = tree.getSelectedNode(); + + TreePath path = tree.getSelectionPath(); + + String id = dataContext.getOpenActivityId(); + + NavigationTreeNodeSupport node1 = node.findNodeById(tree.getNavigationTreeModel(), id); + + TreePath activityPath = path.pathByAddingChild(node1); + + return tree.isCollapsed(activityPath); + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseOpenUIAction.java index d2c6a43..c02b4b9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseOpenUIAction.java @@ -23,7 +23,6 @@ package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; @@ -31,8 +30,8 @@ import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeine import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUI; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import javax.swing.SwingUtilities; @@ -102,12 +101,12 @@ public class CloseOpenUIAction extends AbstractContentUIAction { private void closeData(ObserveSwingApplicationContext applicationContext, ContentUI<?, ?> ui, String id) { - ObserveTreeHelper treeHelper = ui.getTreeHelper(); - ObserveNode selectedNode = treeHelper.getSelectedNode(); + NavigationTree tree = getMainUI().getNavigation(); + NavigationTreeNodeSupport selectedNode = tree.getSelectedNode(); - ObserveNode node = treeHelper.findNode(selectedNode, id); + NavigationTreeNodeSupport node = tree.getChild(selectedNode, id); - treeHelper.selectNode(node); + tree.selectNode(node); ContentOpenableUI selectedUI = (ContentOpenableUI) applicationContext.getContentUIManager().getSelectedContentUI(); @@ -117,7 +116,7 @@ public class CloseOpenUIAction extends AbstractContentUIAction { SwingUtilities.invokeLater(() -> { // retour sur le noeud parent - treeHelper.selectNode(selectedNode); + tree.selectNode(selectedNode); }); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivityLonglinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivityLonglinesUIAction.java index 4fdeed0..e986b23 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivityLonglinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivityLonglinesUIAction.java @@ -28,9 +28,9 @@ import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecor import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.TripLonglineNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.TripLonglineNavigationTreeNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; @@ -83,9 +83,9 @@ public class MoveActivityLonglinesUIAction extends AbstractContentUIAction { // get current triplongline id - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - ObserveNode oldActivitiesNode = treeHelper.getSelectedNode(); - ObserveNode oldTripLonglineNode = oldActivitiesNode.getParent(); + NavigationTree tree = getMainUI().getNavigation(); + NavigationTreeNodeSupport oldActivitiesNode = tree.getSelectedNode(); + NavigationTreeNodeSupport oldTripLonglineNode = oldActivitiesNode.getParent(); // choose the new tripLongline String tripLonglineId = chooseNewTripLongline(ui, oldTripLonglineNode); @@ -110,8 +110,8 @@ public class MoveActivityLonglinesUIAction extends AbstractContentUIAction { } - protected String chooseNewTripLongline(ContentUI<?, ?> ui, ObserveNode oldTripLonglineNode) { - ObserveNode programNode = oldTripLonglineNode.getParent(); + protected String chooseNewTripLongline(ContentUI<?, ?> ui, NavigationTreeNodeSupport oldTripLonglineNode) { + NavigationTreeNodeSupport programNode = oldTripLonglineNode.getParent(); String oldTripLonglineId = oldTripLonglineNode.getId(); int tripLonglineNb = programNode.getChildCount(); @@ -124,7 +124,7 @@ public class MoveActivityLonglinesUIAction extends AbstractContentUIAction { int j = 0; for (int i = 0; i < tripLonglineNb; i++) { - TripLonglineNode tripLonglineNode = (TripLonglineNode) programNode.getChildAt(i); + TripLonglineNavigationTreeNode tripLonglineNode = (TripLonglineNavigationTreeNode) programNode.getChildAt(i); String tripLonglineId = tripLonglineNode.getId(); @@ -143,19 +143,19 @@ public class MoveActivityLonglinesUIAction extends AbstractContentUIAction { return decoratedTripLongline != null ? ((DecoratedNodeEntity) decoratedTripLongline).getId() : null; } - protected void updateTree(ObserveNode oldActivitiesNode, + protected void updateTree(NavigationTreeNodeSupport oldActivitiesNode, String tripLonglineId, List<String> activityIds) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + NavigationTree tree = getMainUI().getNavigation(); - ObserveNode oldTripLonglineNode = oldActivitiesNode.getParent(); - ObserveNode programNode = oldTripLonglineNode.getParent(); - ObserveNode newTripLonglineNode = treeHelper.getChild(programNode, tripLonglineId); + NavigationTreeNodeSupport oldTripLonglineNode = oldActivitiesNode.getParent(); + NavigationTreeNodeSupport programNode = oldTripLonglineNode.getParent(); + NavigationTreeNodeSupport newTripLonglineNode = tree.getChild(programNode, tripLonglineId); String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class); - ObserveNode newActivitiesNode = treeHelper.getChild(newTripLonglineNode, activitiesNodeId); + NavigationTreeNodeSupport newActivitiesNode = tree.getChild(newTripLonglineNode, activitiesNodeId); // Let's check if we're moving an open activity Optional<String> openActivity = activityIds @@ -170,11 +170,11 @@ public class MoveActivityLonglinesUIAction extends AbstractContentUIAction { // Let's reload the sub tree of each activities node. // As the change have already be done in database, we just call the child loaders to regenerate the activities nodes sub trees - treeHelper.reloadNodeSubTree(oldActivitiesNode, true); - treeHelper.reloadNodeSubTree(newActivitiesNode, true); + tree.reloadNodeSubTree(oldActivitiesNode, true); + tree.reloadNodeSubTree(newActivitiesNode, true); // Let's put the focus on the activities node which received the activities - treeHelper.selectNode(newActivitiesNode); + tree.selectNode(newActivitiesNode); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivitySeinesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivitySeinesUIAction.java index 26a9630..a3adf22 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivitySeinesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveActivitySeinesUIAction.java @@ -26,13 +26,12 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUIModel; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.RouteSeineNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.RouteSeineNavigationTreeNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.seine.ActivitySeineDto; @@ -78,9 +77,9 @@ public class MoveActivitySeinesUIAction extends AbstractContentUIAction { } // get current route id - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - ObserveNode oldActivitiesNode = treeHelper.getSelectedNode(); - ObserveNode oldRouteNode = oldActivitiesNode.getParent(); + NavigationTree tree = getMainUI().getNavigation(); + NavigationTreeNodeSupport oldActivitiesNode = tree.getSelectedNode(); + NavigationTreeNodeSupport oldRouteNode = oldActivitiesNode.getParent(); // choose the new route String routeId = chooseNewRoute(ui, oldRouteNode); @@ -100,8 +99,8 @@ public class MoveActivitySeinesUIAction extends AbstractContentUIAction { } - protected String chooseNewRoute(ContentUI<?, ?> ui, ObserveNode oldRouteNode) { - ObserveNode routesNode = oldRouteNode.getParent(); + protected String chooseNewRoute(ContentUI<?, ?> ui, NavigationTreeNodeSupport oldRouteNode) { + NavigationTreeNodeSupport routesNode = oldRouteNode.getParent(); String oldRouteId = oldRouteNode.getId(); int routeNb = routesNode.getChildCount(); @@ -114,7 +113,7 @@ public class MoveActivitySeinesUIAction extends AbstractContentUIAction { int j = 0; for (int i = 0; i < routeNb; i++) { - RouteSeineNode routeNode = (RouteSeineNode) routesNode.getChildAt(i); + RouteSeineNavigationTreeNode routeNode = (RouteSeineNavigationTreeNode) routesNode.getChildAt(i); String routeId = routeNode.getId(); @@ -134,20 +133,20 @@ public class MoveActivitySeinesUIAction extends AbstractContentUIAction { return decoratedRoute != null ? ((DecoratedNodeEntity) decoratedRoute).getId() : null; } - protected void updateTree(ObserveNode oldActivitiesNode, + protected void updateTree(NavigationTreeNodeSupport oldActivitiesNode, String routeId, List<String> activityIds) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + NavigationTree tree = getMainUI().getNavigation(); - ObserveNode oldRouteNode = oldActivitiesNode.getParent(); - ObserveNode routesNode = oldRouteNode.getParent(); + NavigationTreeNodeSupport oldRouteNode = oldActivitiesNode.getParent(); + NavigationTreeNodeSupport routesNode = oldRouteNode.getParent(); // ObserveNode tripNode = routesNode.getParent(); - ObserveNode newRouteNode = treeHelper.getChild(routesNode, routeId); + NavigationTreeNodeSupport newRouteNode = tree.getChild(routesNode, routeId); String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); - ObserveNode newActivitiesNode = treeHelper.getChild(newRouteNode, activitiesNodeId); + NavigationTreeNodeSupport newActivitiesNode = tree.getChild(newRouteNode, activitiesNodeId); // Let's check if we're moving an open activity Optional<String> openActivity = activityIds @@ -162,11 +161,11 @@ public class MoveActivitySeinesUIAction extends AbstractContentUIAction { // Let's reload the sub tree of each activities node. // As the change have already be done in database, we just call the child loaders to regenerate the activities nodes sub trees - treeHelper.reloadNodeSubTree(oldActivitiesNode, true); - treeHelper.reloadNodeSubTree(newActivitiesNode, true); + tree.reloadNodeSubTree(oldActivitiesNode, true); + tree.reloadNodeSubTree(newActivitiesNode, true); // Let's put the focus on the activities node which received the activities - treeHelper.selectNode(newActivitiesNode); + tree.selectNode(newActivitiesNode); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveRoutesUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveRoutesUIAction.java index 7abe582..e510eb5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveRoutesUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveRoutesUIAction.java @@ -26,12 +26,11 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.TripSeineNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.TripSeineNavigationTreeNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.seine.RouteDto; @@ -78,9 +77,9 @@ public class MoveRoutesUIAction extends AbstractContentUIAction { RoutesUI theUi = (RoutesUI) ui; // get current tripseine id - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - ObserveNode oldRoutesNode = treeHelper.getSelectedNode(); - ObserveNode oldTripSeineNode = oldRoutesNode.getParent(); + NavigationTree tree = getMainUI().getNavigation(); + NavigationTreeNodeSupport oldRoutesNode = tree.getSelectedNode(); + NavigationTreeNodeSupport oldTripSeineNode = oldRoutesNode.getParent(); // choose the new tripseine String tripSeineId = chooseNewTripSeine(theUi, oldTripSeineNode); @@ -98,8 +97,8 @@ public class MoveRoutesUIAction extends AbstractContentUIAction { } - protected String chooseNewTripSeine(ContentUI<?, ?> ui, ObserveNode oldTripSeineNode) { - ObserveNode programNode = oldTripSeineNode.getParent(); + protected String chooseNewTripSeine(ContentUI<?, ?> ui, NavigationTreeNodeSupport oldTripSeineNode) { + NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent(); String oldTripSeineId = oldTripSeineNode.getId(); int tripSeineNb = programNode.getChildCount(); @@ -112,7 +111,7 @@ public class MoveRoutesUIAction extends AbstractContentUIAction { int j = 0; for (int i = 0; i < tripSeineNb; i++) { - TripSeineNode tripSeineNode = (TripSeineNode) programNode.getChildAt(i); + TripSeineNavigationTreeNode tripSeineNode = (TripSeineNavigationTreeNode) programNode.getChildAt(i); String tripSeineId = tripSeineNode.getId(); @@ -131,19 +130,19 @@ public class MoveRoutesUIAction extends AbstractContentUIAction { return decoratedTripSeine != null ? ((DecoratedNodeEntity) decoratedTripSeine).getId() : null; } - protected void updateTree(ObserveNode oldRoutesNode, + protected void updateTree(NavigationTreeNodeSupport oldRoutesNode, String tripSeineId, List<String> routeIds) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + NavigationTree tree = getMainUI().getNavigation(); - ObserveNode oldTripSeineNode = oldRoutesNode.getParent(); - ObserveNode programNode = oldTripSeineNode.getParent(); - ObserveNode newTripSeineNode = treeHelper.getChild(programNode, tripSeineId); + NavigationTreeNodeSupport oldTripSeineNode = oldRoutesNode.getParent(); + NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent(); + NavigationTreeNodeSupport newTripSeineNode = tree.getChild(programNode, tripSeineId); String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); - ObserveNode newRoutesNode = treeHelper.getChild(newTripSeineNode, routesNodeId); + NavigationTreeNodeSupport newRoutesNode = tree.getChild(newTripSeineNode, routesNodeId); // Let's check if we're moving an open route Optional<String> openRoute = routeIds @@ -158,8 +157,8 @@ public class MoveRoutesUIAction extends AbstractContentUIAction { // Let's reload the sub tree of each routes node. // As the change have already be done in database, we just call the child loaders to regenerate the routes nodes sub trees - treeHelper.reloadNodeSubTree(oldRoutesNode, true); - treeHelper.reloadNodeSubTree(newRoutesNode, true); + tree.reloadNodeSubTree(oldRoutesNode, true); + tree.reloadNodeSubTree(newRoutesNode, true); // 1. Select the newRoutesNode : // only a selected node can be reloaded (@see fr.ird.observe.application.swing.ui.tree.ObserveTreeBridge.canLoadChild). @@ -171,7 +170,7 @@ public class MoveRoutesUIAction extends AbstractContentUIAction { // // That's why, if we do this before the trip is opened, // we will end up with an incoherent list view (some buttons will be deactivated while they should be activated for instance) - treeHelper.selectNode(newRoutesNode); + tree.selectNode(newRoutesNode); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java index c4f73bc..2a3ee12 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java @@ -26,9 +26,10 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.ContentListUIModel; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.menu.MoveTripNodeMenuPopulator; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.RootNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataReference; @@ -77,8 +78,8 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractConte checkUIClass(ui); // get current program id - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - ObserveNode oldProgramNode = treeHelper.getSelectedNode(); + NavigationTree tree = getMainUI().getNavigation(); + NavigationTreeNodeSupport oldProgramNode = tree.getSelectedNode(); String oldProgramId = oldProgramNode.getId(); // choose the new program @@ -99,12 +100,12 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractConte protected String chooseNewProgram(ContentUI<?, ?> ui, String oldProgramId) { - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + NavigationTree tree = getMainUI().getNavigation(); GearType geartype = getGearType(ui); // racine - ObserveNode rootNode = treeHelper.getRootNode(); + RootNavigationTreeNode rootNode = tree.getNavigationTreeModel().getRoot(); //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>(); @@ -126,7 +127,7 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractConte } protected void updateTree(ContentUI<?, ?> ui, - ObserveNode oldProgramNode, + NavigationTreeNodeSupport oldProgramNode, String oldProgramId, String programId, List<String> tripIds, @@ -134,24 +135,24 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractConte ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + NavigationTree tree = getMainUI().getNavigation(); - ObserveNode rootNode = treeHelper.getRootNode(); - ObserveNode newProgramNode = treeHelper.getChild(rootNode, programId); + RootNavigationTreeNode rootNode = tree.getNavigationTreeModel().getRoot(); + NavigationTreeNodeSupport newProgramNode = tree.getChild(rootNode, programId); for (int i = 0, s = positions.size(); i < s; i++) { String tripId = tripIds.get(i); - ObserveNode tripNode = treeHelper.getChild(oldProgramNode, tripId); + NavigationTreeNodeSupport tripNode = tree.getChild(oldProgramNode, tripId); boolean wasOpen = tripNode.isOpen(); - treeHelper.removeNode(tripNode); + tree.removeNode(tripNode); if (wasOpen) { openDataManager.closeProgram(oldProgramId); openDataManager.openProgram(programId); } - ObserveNode newTripNode = treeHelper.getChild(newProgramNode, tripId); + NavigationTreeNodeSupport newTripNode = tree.getChild(newProgramNode, tripId); if (newTripNode == null) { @@ -159,15 +160,15 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractConte if (log.isInfoEnabled()) { log.info("Insert trip node: "); } - treeHelper.insertNode(newProgramNode, tripNode, positions.get(i)); + tree.insertNode(newProgramNode, tripNode, positions.get(i)); } } updateModelData(ui); - treeHelper.reloadNode(oldProgramNode, true); - treeHelper.reloadNode(newProgramNode, true); - treeHelper.selectNode(newProgramNode); + tree.reloadNode(oldProgramNode, true); + tree.reloadNode(newProgramNode, true); + tree.selectNode(newProgramNode); } protected abstract void checkUIClass(ContentUI<?, ?> ui) throws IllegalStateException; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ReOpenUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ReOpenUIAction.java index b96e700..e3908ba 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ReOpenUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ReOpenUIAction.java @@ -23,12 +23,11 @@ package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.list.ContentListUI; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import static org.nuiton.i18n.I18n.n; @@ -70,11 +69,11 @@ public class ReOpenUIAction extends AbstractContentUIAction { String id = selectedData.getId(); - ObserveTreeHelper treeHelper = ui.getTreeHelper(); - ObserveNode selectedNode = treeHelper.getSelectedNode(); - ObserveNode node = treeHelper.findNode(selectedNode, id); + NavigationTree tree = getMainUI().getNavigation(); + NavigationTreeNodeSupport selectedNode = tree.getSelectedNode(); + NavigationTreeNodeSupport node = tree.getChild(selectedNode, id); - treeHelper.selectNode(node); + tree.selectNode(node); openUI = (ContentOpenableUI<?, ?>) ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java index b922346..4ba3b74 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java @@ -22,9 +22,9 @@ package fr.ird.observe.application.swing.ui.actions.content; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.actions.content.AbstractContentUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import static org.nuiton.i18n.I18n.n; @@ -56,8 +56,9 @@ public class ResetEditUIAction extends AbstractContentUIAction { if (ui.getModel().isCreatingMode()) { ui.stopEdit(); - ObserveNode parentNode = ui.getTreeHelper().removeNode(ui.getTreeHelper().getSelectedNode()); - ui.getTreeHelper().selectNode(parentNode); + NavigationTree tree = getMainUI().getNavigation(); + NavigationTreeNodeSupport parentNode = tree.removeNode(tree.getSelectedNode()); + tree.selectNode(parentNode); } else { ui.resetEdit(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java index 251cac4..2f9be25 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/AbstractUIAction.java @@ -22,11 +22,8 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -36,9 +33,7 @@ import javax.swing.AbstractButton; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JPopupMenu; -import javax.swing.JTree; import javax.swing.KeyStroke; -import javax.swing.tree.TreePath; import java.awt.event.ActionEvent; import java.util.Objects; @@ -153,23 +148,6 @@ public abstract class AbstractUIAction extends AbstractAction { return (JComponent) getValue(EDITOR); } - public static boolean isOpenActivityNodeCollapsed(JTree tree, ObserveTreeHelper treeHelper, DataContext dataContext) { - - // on regarde si le noeud de l'activité ouverte est collapsé - - ObserveNode node = treeHelper.getSelectedNode(); - - TreePath path = tree.getSelectionPath(); - - String id = dataContext.getOpenActivityId(); - - ObserveNode node1 = treeHelper.findNode(node, id); - - TreePath activityPath = path.pathByAddingChild(node1); - - return tree.isCollapsed(activityPath); - } - protected ContentUI<?, ?> getContentUI(ActionEvent e) { JComponent c = (JComponent) e.getSource(); ContentUI<?, ?> ui; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java index 4220ac5..b15959f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java @@ -23,9 +23,9 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import javax.swing.AbstractButton; import javax.swing.Action; @@ -83,30 +83,29 @@ public class GoDownUIAction extends AbstractUIAction { public void updateAction(ContentUI<?, ?> ui, AbstractButton editor) { ObserveMainUI mainUI = getMainUI(); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + NavigationTree tree = getMainUI().getNavigation(); - AbstractObserveTreeCellRenderer render = treeHelper.getTreeCellRenderer(); + NavigationTreeCellRenderer render = tree.getNavigationCellRenderer(); - ObserveNode node; + NavigationTreeNodeSupport node; super.updateAction(ui, editor); JPopupMenu scopePopup = mainUI.getScopeDownPopup(); Action action = mainUI.getRootPane().getActionMap().get(SelectNodeUIAction.ACTION_NAME); - node = treeHelper.getSelectedNode(); - ObserveNode nodeOriginal = node; + node = tree.getSelectedNode(); + NavigationTreeNodeSupport nodeOriginal = node; scopePopup.removeAll(); Enumeration<?> e = node.children(); while (e.hasMoreElements()) { - node = (ObserveNode) e.nextElement(); - String text = render.getNodeText(node); + node = (NavigationTreeNodeSupport) e.nextElement(); + String text = node.getText(); if (text == null) { continue; } - Color color = - render.getNavigationTextColor(node); - Icon icon = render.getNavigationIcon(node, "-16"); + Color color = node.getColor(); + Icon icon = node.getIcon("-16"); JMenuItem mi = new JMenuItem(); mi.setAction(action); mi.setText(text.trim()); @@ -122,11 +121,10 @@ public class GoDownUIAction extends AbstractUIAction { !nodeOriginal.getChildAt(0).isLeaf()) { e = nodeOriginal.getChildAt(0).children(); while (e.hasMoreElements()) { - node = (ObserveNode) e.nextElement(); - Color color = render.getNavigationTextColor( - node); - Icon icon = render.getNavigationIcon(node, "-16"); - String text = render.getNodeText(node); + node = (NavigationTreeNodeSupport) e.nextElement(); + Color color = node.getColor(); + Icon icon = node.getIcon("-16"); + String text = node.getText(); JMenuItem mi = new JMenuItem(); mi.setAction(action); mi.setText(text.trim()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java index db7b648..f23baed 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java @@ -23,9 +23,9 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import javax.swing.AbstractButton; import javax.swing.Action; @@ -84,11 +84,11 @@ public class GoUpUIAction extends AbstractUIAction { public void updateAction(ContentUI<?, ?> ui, AbstractButton editor) { super.updateAction(ui, editor); - ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + NavigationTree treeHelper = getMainUI().getNavigation(); - AbstractObserveTreeCellRenderer render = treeHelper.getTreeCellRenderer(); + NavigationTreeCellRenderer render = treeHelper.getNavigationCellRenderer(); - ObserveNode node; + NavigationTreeNodeSupport node; JPopupMenu scopePopup = getMainUI().getScopeUpPopup(); @@ -101,10 +101,9 @@ public class GoUpUIAction extends AbstractUIAction { scopePopup.setLayout(new GridLayout(0, 1)); while (!root.equals(node.getParent())) { node = node.getParent(); - Color color = - render.getNavigationTextColor(node); - Icon icon = render.getNavigationIcon(node, "-16"); - String text = render.getNodeText(node); + Color color = node.getColor(); + Icon icon = node.getIcon("-16"); + String text = node.getText(); JMenuItem mi = new JMenuItem(); mi.setAction(action); mi.setText(text.trim()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectNodeUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectNodeUIAction.java index 3fd936f..14a0b4a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectNodeUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectNodeUIAction.java @@ -22,7 +22,7 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import javax.swing.JComponent; import java.awt.event.ActionEvent; @@ -57,7 +57,7 @@ public class SelectNodeUIAction extends AbstractUIAction { @Override public void actionPerformed(ActionEvent e) { JComponent source = (JComponent) e.getSource(); - ObserveNode node = (ObserveNode) source.getClientProperty(NODE); - getMainUI().getTreeHelper().selectNode(node); + NavigationTreeNodeSupport node = (NavigationTreeNodeSupport) source.getClientProperty(NODE); + getMainUI().getNavigation().selectNode(node); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java index 616273c..b7c14f0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/SelectOpenNodeUIAction.java @@ -57,6 +57,6 @@ public class SelectOpenNodeUIAction extends AbstractUIAction { JComponent c = (JComponent) e.getSource(); Class<?> type = (Class<?>) c.getClientProperty("type"); Objects.requireNonNull(type, "could not find client property type on component" + c); - getMainUI().getTreeHelper().selectOpenNode(type); + getMainUI().getNavigation().selectOpenNode(type); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminTabUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminTabUIHandler.java index c7497de..3e8f11f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminTabUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminTabUIHandler.java @@ -27,11 +27,7 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferenceDecorator; -import fr.ird.observe.application.swing.ui.admin.config.SelectDataUI; import fr.ird.observe.application.swing.ui.admin.resume.ShowResumeUI; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import fr.ird.observe.application.swing.ui.tree.DataSelectionTreeSelectionModel; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -47,8 +43,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.StringUtil; -import javax.swing.JTree; -import javax.swing.tree.TreeModel; import java.io.PrintWriter; import java.io.StringWriter; import java.util.concurrent.Callable; @@ -96,23 +90,6 @@ public class AdminTabUIHandler { return decoratorService; } - public final WizardState onCancel(Exception e) { - if (log.isDebugEnabled()) { - log.debug(this, e); - } - sendMessage(t("observe.actions.operation.message.canceled")); - return WizardState.CANCELED; - } - - public final WizardState onError(Exception e) { - model.getStepModel(model.getOperation()).setError(e); - if (log.isErrorEnabled()) { - log.error(e.getMessage(), e); - } - sendMessage(t("observe.actions.operation.message.failed")); - return WizardState.FAILED; - } - public void initTabUI(AdminUI ui, AdminTabUI tabUI) { parentUI = ui; @@ -188,24 +165,6 @@ public class AdminTabUIHandler { return txt; } - public void updateSelectionModel(SelectDataUI tabUI) { - - JTree selectTree = tabUI.getSelectTree(); - DataSelectionModel selectDataModel = tabUI.getSelectDataModel(); - DataSelectionTreeSelectionModel selectionModel = tabUI.getSelectionModel(); - ObserveTreeHelper helper = tabUI.getTreeHelper(); - ObserveSwingDataSource source = tabUI.getModel().getSafeLocalSource(true); - - updateSelectionModel(tabUI, helper, selectTree, source, selectDataModel, selectionModel); - - } - - protected void checkStepIsOperation(AdminTabUI ui) { - if (!ui.getStep().isOperation()) { - throw new IllegalStateException("can not launch objectOperation on none operation step " + ui.getStep()); - } - } - protected ObserveSwingDataSource openSource(ObserveSwingDataSource service) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException { if (!service.isOpen()) { service.open(); @@ -218,40 +177,11 @@ public class AdminTabUIHandler { ObserveRunner.getActionExecutor().addAction(worker); } - protected void updateSelectionModel(AdminTabUI tabUI, - ObserveTreeHelper helper, - JTree selectTree, - ObserveSwingDataSource source, - DataSelectionModel selectDataModel, - DataSelectionTreeSelectionModel selectionModel) { - - - if (log.isDebugEnabled()) { - log.debug("reload model " + selectDataModel); - } - - selectionModel.clearSelection(); - - if (log.isDebugEnabled()) { - log.debug("Will treeHelper : " + helper); - log.debug("selection model : " + selectDataModel); - log.debug("use referentiel : " + selectDataModel.isUseReferentiel()); - log.debug("use data : " + selectDataModel.isUseData()); - } - - helper.setUI(selectTree, false); - - TreeModel model = helper.createModel(tabUI, selectDataModel, source); - selectTree.setModel(model); - - selectionModel.initUI(selectTree); - } - public void addMessage(AdminStep step, String text) { ui.getProgression().append(text + "\n"); } - protected void logExportResult(String i18nKey, + protected void logExportResult(String i18nKey, ExportTripResult tripResult, ReferentialReferenceDecorator<ProgramDto> programDecorator, ReferentialReference<ProgramDto> program, @@ -272,7 +202,7 @@ public class AdminTabUIHandler { ReferentialReference<ProgramDto> program, DataReference trip) { - DecoratorService decoratorService = getDecoratorService(); +// DecoratorService decoratorService = getDecoratorService(); if (tripResult.isDeleted()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIHandler.java index 19649a2..4648162 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIHandler.java @@ -26,8 +26,10 @@ import fr.ird.observe.application.swing.ObserveActionExecutor; import fr.ird.observe.application.swing.ObserveRunner; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.admin.config.ConfigUI; +import fr.ird.observe.application.swing.ui.admin.config.SelectDataUI; import fr.ird.observe.application.swing.ui.admin.resume.ShowResumeUI; import fr.ird.observe.application.swing.ui.admin.save.SaveLocalUI; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTree; import jaxx.runtime.swing.wizard.WizardUILancher; import jaxx.runtime.swing.wizard.ext.WizardExtUtil; import jaxx.runtime.swing.wizard.ext.WizardState; @@ -37,6 +39,7 @@ import org.apache.commons.logging.LogFactory; import javax.swing.Icon; import javax.swing.JCheckBox; import javax.swing.JComponent; +import javax.swing.SwingUtilities; import javax.swing.border.TitledBorder; import java.awt.Component; import java.util.Arrays; @@ -212,6 +215,34 @@ public class AdminUIHandler { if (index > -1 && ui.tabs.getSelectedIndex() != index) { ui.tabs.setSelectedIndex(index); } + + if (AdminStep.SELECT_DATA == newStep) { + + if (oldStep != null && oldStep.ordinal() < AdminStep.SELECT_DATA.ordinal()) { + + // préparation de l'arbre de sélection + onSelectDataOpen((SelectDataUI) ui.getStepUI(AdminStep.SELECT_DATA)); + } + + } + + } + + protected void onSelectDataOpen(SelectDataUI stepUI) { + + SelectionTree selectTree = stepUI.getSelectTree(); + selectTree.clearSelection(); + + SwingUtilities.invokeLater(selectTree::grabFocus); + + if (selectTree.getTreeModel().isNotEmpty()) { + + selectTree.getSelectionModel().setLeadSelectionIndex(0); + } + if (stepUI.getModel().getSafeLocalSource(true).isLocal()) { + SwingUtilities.invokeLater(selectTree::expandAll); + } + } /** diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java index 092714e..a4c383f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIModel.java @@ -21,7 +21,6 @@ */ package fr.ird.observe.application.swing.ui.admin; -import com.google.common.collect.Lists; import fr.ird.observe.application.swing.I18nEnumHelper; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; @@ -39,7 +38,7 @@ import fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.Refe import fr.ird.observe.application.swing.ui.admin.validate.ValidateModel; import fr.ird.observe.application.swing.ui.storage.StorageUIHandler; import fr.ird.observe.application.swing.ui.storage.StorageUIModel; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.application.swing.validation.ValidationModelMode; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; @@ -89,18 +88,16 @@ import static org.nuiton.i18n.I18n.t; */ public class AdminUIModel extends WizardExtModel<AdminStep> { - public static final String SELECTION_MODEL_CHANGED_PROPERTY_NAME = "selectionModelChanged"; - + // public static final String SELECTION_MODEL_CHANGED_PROPERTY_NAME = "selectionModelChanged"; public static final String SELECTED_TRIP_PROPERTY_NAME = "selectedTrip"; + public static final String PROPERTY_LOCAL_SOURCE_LABEL = "localSourceLabel"; + public static final String PROPERTY_CENTRAL_SOURCE_LABEL = "centralSourceLabel"; /** Logger */ private static final Log log = LogFactory.getLog(AdminUIModel.class); public static final PropertyChangeListener LOG_PROPERTY_CHANGE_LISTENER = new LogPropertyChanged(); - public static final String PROPERTY_LOCAL_SOURCE_LABEL = "localSourceLabel"; - public static final String PROPERTY_CENTRAL_SOURCE_LABEL = "centralSourceLabel"; - /** la source de données en cours d'utilisation par l'application */ protected ObserveSwingDataSource previousSource; @@ -122,8 +119,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { /** le controleur pour configurer les sources */ protected StorageUIHandler storageHandler; - /** selection des donnees a valider */ - protected final DataSelectionModel selectionDataModel; + protected SelectionTreeModel selectionDataModel; /** la liste des modes disponibles en entrée */ protected final EnumSet<DbMode> availableIncomingModes; @@ -166,6 +162,10 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { firePropertyChange(PROPERTY_CENTRAL_SOURCE_LABEL, oldValue, centralSourceLabel); } + public void setSelectionDataModel(SelectionTreeModel selectionDataModel) { + this.selectionDataModel = selectionDataModel; + } + public AdminUIModel() { super(AdminStep.class); @@ -234,8 +234,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } }; - selectionDataModel = new DataSelectionModel(); - availableIncomingModes = EnumSet.noneOf(DbMode.class); if (log.isDebugEnabled()) { @@ -309,46 +307,22 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return; } - DataSelectionModel selectModel = getSelectionDataModel(); + if (newStep == AdminStep.SELECT_DATA) { - if (containsOperation(AdminStep.EXPORT_DATA)) { - - // on doit aussi calculer les ids des marées distantes - computeExistingTrips(getSafeCentralSource(true)); + initSelectionModel(); } - if (newStep == AdminStep.SELECT_DATA && containsOperation(AdminStep.REPORT)) { - - // on remplit le modèle de sélection uniquement avec le bon type de marées - ReportModel reportModel = getReportModel(); - ObserveModelType reportType = reportModel.getModelType(); - boolean loadSeineTrip = ObserveModelType.PS == reportType; - - ObserveSwingDataSource dataSource = getSafeLocalSource(true); - populateSelectionModel(dataSource, loadSeineTrip); - return; - - } - - // on remplit le modèle de sélection - if (log.isDebugEnabled()) { - log.debug("Will refill selectionModel [" + newStep + "] : " + selectModel); - } - ObserveSwingDataSource dataSource = getSafeLocalSource(true); - populateSelectionModel(dataSource); }; listenSelectModified = evt -> { - DataSelectionModel source = (DataSelectionModel) evt.getSource(); + SelectionTreeModel source = (SelectionTreeModel) evt.getSource(); if (log.isDebugEnabled()) { - log.debug("selection data model [" + source + "] changed on " + - evt.getPropertyName() + ", new value = " + - evt.getNewValue()); + log.debug(String.format("selection data model [%s] changed on %s, new value = %s", + source, evt.getPropertyName(), evt.getNewValue())); } validate(); if (log.isDebugEnabled()) { - log.debug("nb selected export datas = " + - source.getSelectedData().size()); + log.debug("nb selected export datas = " + source.getSelectedCount()); } // on declanche la revalidation du modèle @@ -424,7 +398,64 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { }; } - public DataSelectionModel getSelectionDataModel() { + private void initSelectionModel() { + + SelectionTreeModel selectionDataModel = getSelectionDataModel(); + + ObserveSwingDataSource dataSource = getSafeLocalSource(true); + + if (dataSource.isLocal()) { + selectionDataModel.setShowEmptyTrips(false); + } + + boolean selectAllTrips = true; + if (containsOperation(AdminStep.REPORT)) { + + // on remplit le modèle de sélection uniquement avec le bon type de marées + ReportModel reportModel = getReportModel(); + ObserveModelType reportType = reportModel.getModelType(); + boolean loadSeineTrip = ObserveModelType.PS == reportType; + + selectionDataModel.setLoadLongline(!loadSeineTrip); + selectionDataModel.setLoadSeine(loadSeineTrip); + + selectAllTrips = false; + + } + + // on remplit le modèle de sélection + + selectionDataModel.populate(dataSource); + + if (containsOperation(AdminStep.EXPORT_DATA)) { + + // on doit aussi calculer les ids des marées distantes + ObserveSwingDataSource safeCentralSource = getSafeCentralSource(true); + + List<DataReference<?>> existingTrip = new ArrayList<>(); + + TripSeineService tripSeineService = safeCentralSource.newTripSeineService(); + DataReferenceSet<TripSeineDto> tripSeineSet = tripSeineService.getAllTripSeine(); + existingTrip.addAll(tripSeineSet.getReferences()); + + TripLonglineService tripLonglineService = safeCentralSource.newTripLonglineService(); + DataReferenceSet<TripLonglineDto> tripLonglineSet = tripLonglineService.getAllTripLongline(); + existingTrip.addAll(tripLonglineSet.getReferences()); + + selectionDataModel.setExistingTrips(existingTrip); + + + } + + if (dataSource.isLocal() && selectAllTrips) { + + // on sélectionne toutes les marées + selectionDataModel.selectAllTrips(); + } + + } + + public SelectionTreeModel getSelectionDataModel() { return selectionDataModel; } @@ -442,7 +473,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } public DataReference getSelectedTrip() { - Set<DataReference> data = getSelectionDataModel().getSelectedData(); + Set<DataReference<?>> data = getSelectionDataModel().getSelectedData(); if (data.isEmpty()) { // pas de Trip selectionne @@ -604,21 +635,16 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (log.isWarnEnabled()) log.warn("Default report file " + reportFile + " does not exists."); } -// // on charge la liste des reports disponilbes -// List<Report> reports = getReportModel().getReports(); // on ecoute la modification du modèle getReportModel().removePropertyChangeListener(listenReportModified); getReportModel().addPropertyChangeListener(listenReportModified); // on ecoute la modification de la sélection - getSelectionDataModel().removePropertyChangeListener(DataSelectionModel.PROPERTY_SELECTED_DATA, listenerSelectedDataForReport); - getSelectionDataModel().addPropertyChangeListener(DataSelectionModel.PROPERTY_SELECTED_DATA, listenerSelectedDataForReport); + getSelectionDataModel().removePropertyChangeListener(SelectionTreeModel.SELECTED_COUNT, listenerSelectedDataForReport); + getSelectionDataModel().addPropertyChangeListener(SelectionTreeModel.SELECTED_COUNT, listenerSelectedDataForReport); getReportModel().updateReports(); -// if (log.isInfoEnabled()) { -// log.info("Detects " + reports.size() + " report(s)."); -// } } if (containsOperation(AdminStep.CONSOLIDATE)) { @@ -792,7 +818,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } else { // on intialize le modèle de la source locale à partir du service entrant (s'il existe) - localSourceModel.initFromPreviousConfig(ui, previousSourceConfig, previousSourceInfo); + localSourceModel.initFromPreviousConfig(previousSourceConfig, previousSourceInfo); } DbMode dbMode = localSourceModel.getDbMode(); @@ -812,42 +838,48 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return; } - DataSelectionModel selectionModel = getSelectionDataModel(); + SelectionTreeModel selectionModel = getSelectionDataModel(); if (containsOperation(AdminStep.EXPORT_DATA)) { - selectionModel.setUseData(true); + selectionModel.setLoadLongline(true); + selectionModel.setLoadSeine(true); + selectionModel.setLoadReferential(false); selectionModel.setUseOpenData(false); - selectionModel.setUseReferentiel(false); } if (containsOperation(AdminStep.REPORT)) { - selectionModel.setUseData(true); selectionModel.setUseOpenData(true); - selectionModel.setUseReferentiel(false); + selectionModel.setLoadLongline(true); + selectionModel.setLoadSeine(true); + selectionModel.setLoadReferential(false); } if (containsOperation(AdminStep.VALIDATE)) { selectionModel.setUseOpenData(true); + selectionModel.setLoadLongline(true); + selectionModel.setLoadSeine(true); + selectionModel.setLoadReferential(true); } if (containsOperation(AdminStep.CONSOLIDATE)) { selectionModel.setUseOpenData(true); - selectionModel.setUseData(true); - selectionModel.setUseReferentiel(false); + selectionModel.setLoadLongline(true); + selectionModel.setLoadSeine(true); + selectionModel.setLoadReferential(false); } - selectionModel.addPropertyChangeListener(listenSelectModified); + selectionModel.addPropertyChangeListener(SelectionTreeModel.SELECTED_COUNT, listenSelectModified); } @Override public void destroy() { localSourceModel.destroy(); centralSourceModel.destroy(); - selectionDataModel.destroy(); +// selectionDataModel.destroy(); super.destroy(); } @@ -1013,7 +1045,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return false; } - DataSelectionModel selectionModel = getSelectionDataModel(); + SelectionTreeModel selectionModel = getSelectionDataModel(); switch (step) { case CONFIG: @@ -1104,7 +1136,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return false; } } - if (selectionModel.isUseReferentiel()) { + if (selectionModel.isLoadReferential()) { // il faut les droits en L sur le referentiel if (!(dataSourceInformation.canReadReferential())) { @@ -1246,7 +1278,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (validate) { // il faut au moins une donnee de selectionnee - boolean empty = selectionModel.isEmpty(); + boolean empty = selectionModel.isSelectionEmpty(); validate = !empty; } } @@ -1257,7 +1289,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (validate) { // il faut au moins une donnee de selectionnee - boolean empty = selectionModel.isDataEmpty(); + boolean empty = selectionModel.isSelectionEmpty(); validate = !empty; } } @@ -1268,7 +1300,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (validate) { // il faut au moins une donnee de selectionnee - boolean empty = selectionModel.isDataEmpty(); + boolean empty = selectionModel.isSelectionEmpty(); validate = !empty; } } @@ -1279,9 +1311,8 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (validate) { // il faut exactement une Trip de selectionnee - boolean empty = selectionModel.isDataEmpty(); - validate = !empty && - selectionModel.getSelectedData().size() == 1; + int selectedCount = selectionModel.getSelectedCount(); + validate = selectedCount == 1; } } break; @@ -1409,55 +1440,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } } - public void populateSelectionModel(ObserveSwingDataSource source) { - try { - DataSelectionModel.populate(getSelectionDataModel(), source); - - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("could not populate selected model", e); - } - } finally { - - // on notifie que le modèle de sélection a changé - // (il faut donc recalculé l'arbre de sélection) - firePropertyChange(SELECTION_MODEL_CHANGED_PROPERTY_NAME, getSelectionDataModel()); - } - } - - public void populateSelectionModel(ObserveSwingDataSource source, boolean tripSeine) { - try { - DataSelectionModel.populate(getSelectionDataModel(), source, tripSeine); - - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("could not populate selected model", e); - } - } finally { - - // on notifie que le modèle de sélection a changé - // (il faut donc recalculé l'arbre de sélection) - firePropertyChange(SELECTION_MODEL_CHANGED_PROPERTY_NAME, getSelectionDataModel()); - } - } - - protected void computeExistingTrips(ObserveSwingDataSource source) { - - List<DataReference<?>> existingTrip = Lists.newArrayList(); - - TripSeineService tripSeineService = source.newTripSeineService(); - DataReferenceSet<TripSeineDto> tripSeineSet = tripSeineService.getAllTripSeine(); - existingTrip.addAll(tripSeineSet.getReferences()); - - TripLonglineService tripLonglineService = source.newTripLonglineService(); - DataReferenceSet<TripLonglineDto> tripLonglineSet = tripLonglineService.getAllTripLongline(); - existingTrip.addAll(tripLonglineSet.getReferences()); - - - getExportModel().setExistingTrips(existingTrip); - - } - protected void updateSaveLocalOperation() { boolean shouldAdd = false; for (AdminStep s : operations) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUI.jaxx index 6cd6cf9..8aad3ca 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUI.jaxx @@ -25,8 +25,7 @@ <!-- ************************************************************* --> <fr.ird.observe.application.swing.ui.admin.AdminTabUI _successIcon='SwingUtil.getUIManagerActionIcon("connect_ok")' - _failedIcon='SwingUtil.getUIManagerActionIcon("connect_no")' - > + _failedIcon='SwingUtil.getUIManagerActionIcon("connect_no")'> <import> fr.ird.observe.application.swing.ui.admin.AdminUI diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java index 16b1900..b8cee91 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java @@ -23,22 +23,21 @@ package fr.ird.observe.application.swing.ui.admin.config; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ObserveTextGenerator; -import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.application.swing.ui.admin.AdminTabUI; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; import fr.ird.observe.application.swing.ui.admin.AdminUI; import fr.ird.observe.application.swing.ui.storage.StorageStep; -import fr.ird.observe.application.swing.ui.storage.StorageUIHandler; import fr.ird.observe.application.swing.ui.storage.StorageUILauncher; import fr.ird.observe.application.swing.ui.storage.StorageUIModel; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTree; +import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JCheckBox; import javax.swing.JLabel; -import javax.swing.JTree; import java.awt.Window; import java.util.Set; @@ -72,7 +71,6 @@ public class ConfigUIHandler extends AdminTabUIHandler { UIHelper.setLayerUI(tabUI.getContent(), null); } - public void initTabUI(AdminUI ui, SelectDataUI tabUI) { super.initTabUI(ui, tabUI); @@ -84,11 +82,12 @@ public class ConfigUIHandler extends AdminTabUIHandler { UIHelper.setLayerUI(tabUI.getContent(), null); UIHelper.setLayerUI(tabUI.getSelectTreePane(), ui.getConfigBlockLayerUI()); - JTree tree = tabUI.getSelectTree(); - tabUI.getTreeHelper().setUI(tree, false, null); + SelectionTree tree = tabUI.getSelectTree(); + ui.getModel().setSelectionDataModel(tree.getTreeModel()); - // customize tree selection colors - UIHelper.initUI(tabUI.getSelectTreePane(), tree); + tree.installUI(); + //FIXME Init tree ? +// UIHelper.initUI(tabUI.getSelectTreePane(), tree); } public void updateOperationState(JCheckBox checkBox) { @@ -105,9 +104,7 @@ public class ConfigUIHandler extends AdminTabUIHandler { } } - public String updateStorageLabel(StorageUIModel service, - boolean serviceValid, - JLabel label) { + public String updateStorageLabel(StorageUIModel service, boolean serviceValid, JLabel label) { String text; if (serviceValid) { @@ -131,10 +128,6 @@ public class ConfigUIHandler extends AdminTabUIHandler { return operations.contains(scope); } - public StorageUIHandler getStorageHandler() { - return ui.getContextValue(StorageUIHandler.class); - } - public void obtainIncomingConnexion() { StorageUIModel sourceModel = ui.getLocalSourceModel(); StorageUILauncher.obtainConnexion(ui, ui.getParentContainer(Window.class), sourceModel); @@ -178,9 +171,4 @@ public class ConfigUIHandler extends AdminTabUIHandler { return text; } - protected boolean canShowLocalStorage(Set<AdminStep> operations, - boolean needLocalStorage) { - return !operations.isEmpty() && needLocalStorage; - } - } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataUI.jaxx index 7e9fc24..296703b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataUI.jaxx @@ -28,34 +28,20 @@ <import> fr.ird.observe.application.swing.ui.UIHelper + fr.ird.observe.application.swing.ui.admin.AdminActionModel fr.ird.observe.application.swing.ui.admin.AdminUI fr.ird.observe.application.swing.ui.admin.AdminStep - fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper - fr.ird.observe.application.swing.ui.tree.renderer.DataSelectionTreeCellRenderer - fr.ird.observe.application.swing.ui.tree.DataSelectionTreeSelectionModel - fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel + fr.ird.observe.application.swing.ui.tree.selection.SelectionTree - fr.ird.observe.application.swing.ui.util.tree.BeanTreeHeader + fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeHeader jaxx.runtime.SwingUtil - javax.swing.tree.TreeSelectionModel - </import> - <ObserveTreeHelper id='treeHelper'/> - <ConfigUIHandler id='handler' constructorParams='this'/> - <fr.ird.observe.application.swing.ui.admin.AdminActionModel id='stepModel' initializer='null'/> - - <DataSelectionModel id='selectDataModel' - initializer='getModel().getSelectionDataModel()'/> - - <DataSelectionTreeSelectionModel id='selectionModel'/> - - <DataSelectionTreeCellRenderer id='selectionRenderer' - constraints='BorderLayout.EAST'/> + <AdminActionModel id='stepModel' initializer='null'/> <script><![CDATA[ public SelectDataUI(AdminUI parentContext) { @@ -66,25 +52,15 @@ public void initUI(AdminUI ui) { getHandler().initTabUI(ui, this); } -@Override -public void destroy() { - selectionModel.clearSelection(); - //selectDataModel = null; - super.destroy(); -} ]]> </script> <JPanel id='PENDING_content'> - <JScrollPane id='selectTreePane' constraints='BorderLayout.CENTER' - decorator='boxed' columnHeaderView='{selectTreeHeader}'> - - <!-- arbre de selection des exports --> - <JTree id='selectTree'/> - - <BeanTreeHeader id='selectTreeHeader' tree='{selectTree}'/> - + <JScrollPane id='selectTreePane' constraints='BorderLayout.CENTER' decorator='boxed' + columnHeaderView='{selectTreeHeader}'> + <SelectionTree id='selectTree'/> + <SelectionTreeHeader id='selectTreeHeader' treeTable='{selectTree}'/> </JScrollPane> </JPanel> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataUI.jcss index 9aef87d..4e863e0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataUI.jcss @@ -25,25 +25,14 @@ } #selectTree { - rootVisible:false; - largeModel:true; + /*rootVisible:false; + largeModel:true;*/ minimumSize:{UIHelper.newMinDimension()}; font-size:11; - showsRootHandles:false; - toggleClickCount:100; -} - -#selectionModel { - selectionMode: {TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION}; - dataModel:{selectDataModel}; + /*showsRootHandles:false; + toggleClickCount:100;*/ } #selectTreePane { verticalScrollBarPolicy:{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}; } - -#selectTree { - selectionModel:{selectionModel}; - cellRenderer:{selectionRenderer}; -} - diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateUIHandler.java index d7f50c2..3661e00 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateUIHandler.java @@ -23,15 +23,9 @@ package fr.ird.observe.application.swing.ui.admin.consolidate; import com.google.common.collect.ImmutableSet; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.application.swing.ui.admin.AdminTabUI; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; import fr.ird.observe.application.swing.ui.admin.AdminUI; -import fr.ird.observe.application.swing.ui.admin.AdminUIModel; -import fr.ird.observe.application.swing.ui.admin.config.SelectDataUI; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import fr.ird.observe.application.swing.ui.tree.DataSelectionTreeSelectionModel; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.service.actions.consolidate.ConsolidateActivitySeineDataResult; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; @@ -41,8 +35,6 @@ import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.JTree; -import java.beans.PropertyChangeListener; import java.util.Date; import java.util.Set; import java.util.stream.Collectors; @@ -73,44 +65,14 @@ public class ConsolidateUIHandler extends AdminTabUIHandler { super.initTabUI(ui, tabUI); if (log.isDebugEnabled()) { - log.debug(" specialized for [" + tabUI.getStep() + - "] for main ui " + ui.getClass().getName() + "@" + - System.identityHashCode(ui)); + log.debug(" specialized for [" + tabUI.getStep() + "] for main ui " + ui.getClass().getName() + "@" + System.identityHashCode(ui)); } - tabUI.getStartButton().setText( - t("observe.actions.synchro.launch.operation", - t(tabUI.getStep().getOperationLabel()))); + tabUI.getStartButton().setText(t("observe.actions.synchro.launch.operation", t(tabUI.getStep().getOperationLabel()))); - SelectDataUI selectTabUI = (SelectDataUI) ui.getStepUI(AdminStep.SELECT_DATA); - - PropertyChangeListener listener = evt -> { - AdminUIModel model1 = (AdminUIModel) evt.getSource(); - if (!model1.containsStep(selectTabUI.getStep())) { - // avoid multi-cast - return; - } - DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); - if (log.isDebugEnabled()) { - log.debug("selection model changed to " + value); - } - updateSelectionModel(selectTabUI); - }; - tabUI.getModel().addPropertyChangeListener(AdminUIModel.SELECTION_MODEL_CHANGED_PROPERTY_NAME, listener); - } - - @Override - protected void updateSelectionModel(AdminTabUI tabUI, ObserveTreeHelper helper, JTree selectTree, ObserveSwingDataSource source, DataSelectionModel selectDataModel, DataSelectionTreeSelectionModel selectionModel) { - super.updateSelectionModel(tabUI, helper, selectTree, source, selectDataModel, selectionModel); - if (source.isLocal()) { - - // on sélectionne toutes les marées - selectDataModel.addAllSelectedData(); - } } public void startAction() { - addAdminWorker(((ConsolidateUI) ui).getStartButton().getToolTipText(), this::doAction); } @@ -121,7 +83,7 @@ public class ConsolidateUIHandler extends AdminTabUIHandler { getStepModel().setSource(model.getSafeLocalSource(false)); - Set<DataReference> trips = model.getSelectionDataModel().getSelectedData(); + Set<DataReference<?>> trips = model.getSelectionDataModel().getSelectedData(); ImmutableSet<String> tripIds = ImmutableSet.copyOf(trips.stream() .filter(DataReference.newTripSeinePredicate()) .map(DataReference.ID_FUNCTION) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportModel.java index 86064d3..bb72f62 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportModel.java @@ -22,23 +22,17 @@ package fr.ird.observe.application.swing.ui.admin.export; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.AbstractReference; -import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; +import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferenceDecorator; +import fr.ird.observe.application.swing.ui.admin.AdminActionModel; +import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.application.swing.ui.admin.AdminActionModel; -import fr.ird.observe.application.swing.ui.admin.AdminStep; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; -import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferenceDecorator; import java.util.ArrayList; import java.util.List; -import java.util.Map; /** * Le modèle d'une opération d'export de données observers. @@ -51,9 +45,6 @@ public class ExportModel extends AdminActionModel { /** les index des marées à exporter. */ protected int[] exportDataSelectedIndex; - /** les ids des marées déjà existante sur la base distante lors d'un export */ - protected List<DataReference<?>> existingTrips; - /** les données exportables */ protected List<TripEntry> data; @@ -77,21 +68,9 @@ public class ExportModel extends AdminActionModel { this.exportDataSelectedIndex = exportDataSelectedIndex; } - public List<DataReference<?>> getExistingTrips() { - return existingTrips; - } - - public void setExistingTrips(List<DataReference<?>> existingTrips) { - this.existingTrips = existingTrips; - } - @Override public void destroy() { super.destroy(); - if (existingTrips != null) { - existingTrips.clear(); - existingTrips = null; - } exportDataSelectedIndex = null; tripSeineDecorator = null; data = null; @@ -103,26 +82,8 @@ public class ExportModel extends AdminActionModel { return data; } - public void setData(DataSelectionModel selectionModel) { - - List<TripEntry> tripEntries = Lists.newArrayList(); - - for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference>> entry : selectionModel.getSelectedDataByProgram().entrySet()) { - - ReferentialReference<ProgramDto> program = entry.getKey(); - - for (DataReference trip : entry.getValue()) { - - boolean exists = existingTrips.contains(trip); - - TripEntry tripEntry = new TripEntry(program, trip, exists); - - tripEntries.add(tripEntry); - } - } - - this.data = ImmutableList.copyOf(tripEntries); - + public void setData(ImmutableList<TripEntry> data) { + this.data = data; } public ObserveSwingDataSource getSource() { @@ -153,20 +114,6 @@ public class ExportModel extends AdminActionModel { this.tripLonglineDecorator = tripLonglineDecorator; } - public String decorate(AbstractReference referenceDto) { - String decor = null; - - if (ProgramDto.class.isAssignableFrom(referenceDto.getType())) { - decor = programDecorator.toString(referenceDto); - } else if (TripSeineDto.class.isAssignableFrom(referenceDto.getType())) { - decor = tripSeineDecorator.toString(referenceDto); - } else if (TripLonglineDto.class.isAssignableFrom(referenceDto.getType())) { - decor = tripLonglineDecorator.toString(referenceDto); - } - - return decor; - } - public List<TripEntry> getSelectedTrips() { List<TripEntry> entries = new ArrayList<>(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java index 4f46a9d..2ac9563 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java @@ -33,10 +33,8 @@ import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.application.swing.ui.admin.AdminTabUI; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; import fr.ird.observe.application.swing.ui.admin.AdminUI; -import fr.ird.observe.application.swing.ui.admin.AdminUIModel; import fr.ird.observe.application.swing.ui.admin.config.ConfigUI; -import fr.ird.observe.application.swing.ui.admin.config.SelectDataUI; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.application.swing.ui.usage.UsagesUI; import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.DataReference; @@ -105,21 +103,6 @@ public class ExportUIHandler extends AdminTabUIHandler { configabUI.getCentralSourceInfoLabel().setText(t("observe.action.config.export.required.write.data")); configabUI.getCentralSourceLabel().setText(t("observe.action.config.export.required.write.data")); - SelectDataUI selectTabUI = (SelectDataUI) ui.getStepUI(AdminStep.SELECT_DATA); - - tabUI.getModel().addPropertyChangeListener(AdminUIModel.SELECTION_MODEL_CHANGED_PROPERTY_NAME, evt -> { - AdminUIModel model1 = (AdminUIModel) evt.getSource(); - - DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); - if (log.isInfoEnabled()) { - log.info("selection model changed to " + value); - } - - selectTabUI.getSelectionModel().clearSelection(); - selectTabUI.getSelectionRenderer().setExistingTrips(model1.getExportModel().getExistingTrips()); - updateSelectionModel(selectTabUI); - }); - // tableau de l'export de données final JTable table4 = tabUI.getTrips(); @@ -226,8 +209,8 @@ public class ExportUIHandler extends AdminTabUIHandler { sendMessage(t("observe.actions.exportData.message.prepare.data")); // récupération des couples (program, marees) sur la base temporaire - DataSelectionModel selectionModel = model.getSelectionDataModel(); - stepModel.setData(selectionModel); + SelectionTreeModel selectionModel = model.getSelectionDataModel(); + stepModel.setData(selectionModel.getSelectedTripEntries()); List<TripEntry> entries = stepModel.getData(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportUIHandler.java index 71af856..abfe150 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportUIHandler.java @@ -29,10 +29,7 @@ import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.application.swing.ui.admin.AdminTabUI; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; import fr.ird.observe.application.swing.ui.admin.AdminUI; -import fr.ird.observe.application.swing.ui.admin.AdminUIModel; import fr.ird.observe.application.swing.ui.admin.config.ConfigUI; -import fr.ird.observe.application.swing.ui.admin.config.SelectDataUI; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.ObserveModelType; @@ -197,23 +194,6 @@ public class ReportUIHandler extends AdminTabUIHandler { ReportConfigUI extraConfig = new ReportConfigUI(tx); configUI.getExtraConfig().add(extraConfig); - - final SelectDataUI selectTabUI = (SelectDataUI) ui.getStepUI(AdminStep.SELECT_DATA); - ui.getModel().addPropertyChangeListener(AdminUIModel.SELECTION_MODEL_CHANGED_PROPERTY_NAME, evt -> { - AdminUIModel model1 = (AdminUIModel) evt.getSource(); - if (!model1.containsStep(selectTabUI.getStep())) { - - // avoid multi-cast - return; - } - - DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); - if (log.isDebugEnabled()) { - log.debug("selection model changed to " + value.getDatas()); - log.debug("IS USE DATA ? : " + value.isUseData()); - } - updateSelectionModel(selectTabUI); - }); } public void setModelTypeFromEvent(ItemEvent event) { @@ -228,7 +208,7 @@ public class ReportUIHandler extends AdminTabUIHandler { if (log.isInfoEnabled()) { log.info("Item selected!"); } - JComboBox<Report> source = (JComboBox<Report>) event.getSource(); + JComboBox source = (JComboBox) event.getSource(); updateSelectedReport((Report) source.getSelectedItem()); } } @@ -310,9 +290,7 @@ public class ReportUIHandler extends AdminTabUIHandler { } @SuppressWarnings({"unchecked"}) - protected void onSelectedReportChanged(ReportUI tabUI, - ReportModel model, - Report report) { + protected void onSelectedReportChanged(ReportUI tabUI, ReportModel model, Report report) { if (log.isInfoEnabled()) { log.info("New selected report [" + report + "]"); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java index d3a5251..19abcde 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java @@ -26,7 +26,7 @@ import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.admin.AdminActionModel; import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.DataSynchronizeTaskSupport; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -45,7 +45,7 @@ public class DataSynchroModel extends AdminActionModel { public static final String LEFT_SOURCE_PROPERTY_NAME = "leftSource"; public static final String RIGHT_SOURCE_PROPERTY_NAME = "rightSource"; - public static final String TASKS_PROPERTY_NAME = "tasks"; +// public static final String TASKS_PROPERTY_NAME = "tasks"; public static final String LEFT_SELECTION_MODEL_CHANGED_PROPERTY_NAME = "leftSelectionModelChanged"; public static final String RIGHT_SELECTION_MODEL_CHANGED_PROPERTY_NAME = "rightSelectionModelChanged"; @@ -57,25 +57,39 @@ public class DataSynchroModel extends AdminActionModel { protected ObserveSwingDataSource rightSource; /** les données sélectionnées sur le panneau de gauche. */ - protected final DataSelectionModel leftSelectionDataModel; + protected SelectionTreeModel leftSelectionDataModel; /** les données sélectionnées sur le panneau de droite. */ - protected final DataSelectionModel rightSelectionDataModel; + protected SelectionTreeModel rightSelectionDataModel; protected final DefaultListModel<DataSynchronizeTaskSupport> tasks; public DataSynchroModel() { super(AdminStep.DATA_SYNCHRONIZE); - leftSelectionDataModel = new DataSelectionModel(); - leftSelectionDataModel.setUseData(true); - - rightSelectionDataModel = new DataSelectionModel(); - rightSelectionDataModel.setUseData(true); +// leftSelectionDataModel = new SelectionTreeModel(); +// leftSelectionDataModel.setLoadLongline(true); +// leftSelectionDataModel.setLoadSeine(true); +// leftSelectionDataModel.setLoadReferential(false); +// leftSelectionDataModel.setShowEmptyTrips(false); +// +// rightSelectionDataModel = new SelectionTreeModel(); +// rightSelectionDataModel.setLoadLongline(true); +// rightSelectionDataModel.setLoadSeine(true); +// rightSelectionDataModel.setLoadReferential(false); +// rightSelectionDataModel.setShowEmptyTrips(false); tasks = new DefaultListModel<>(); } + public void setLeftSelectionDataModel(SelectionTreeModel leftSelectionDataModel) { + this.leftSelectionDataModel = leftSelectionDataModel; + } + + public void setRightSelectionDataModel(SelectionTreeModel rightSelectionDataModel) { + this.rightSelectionDataModel = rightSelectionDataModel; + } + public ObserveSwingDataSource getLeftSource() { return leftSource; } @@ -94,11 +108,11 @@ public class DataSynchroModel extends AdminActionModel { firePropertyChange(RIGHT_SOURCE_PROPERTY_NAME, rightSource); } - public DataSelectionModel getLeftSelectionDataModel() { + public SelectionTreeModel getLeftSelectionDataModel() { return leftSelectionDataModel; } - public DataSelectionModel getRightSelectionDataModel() { + public SelectionTreeModel getRightSelectionDataModel() { return rightSelectionDataModel; } @@ -118,11 +132,11 @@ public class DataSynchroModel extends AdminActionModel { tasks.addElement(task); } - private void populateSelectionModel(ObserveSwingDataSource dataSource, DataSelectionModel selectionDataModel, String propertyName) { + private void populateSelectionModel(ObserveSwingDataSource dataSource, SelectionTreeModel selectionDataModel, String propertyName) { try { - DataSelectionModel.populate(selectionDataModel, dataSource); + selectionDataModel.populate(dataSource); } catch (Exception e) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroSelectionTreeCellRenderer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroSelectionTreeCellRenderer.java index 1cf804c..53537e9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroSelectionTreeCellRenderer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroSelectionTreeCellRenderer.java @@ -24,57 +24,50 @@ package fr.ird.observe.application.swing.ui.admin.synchronize.data; import com.google.common.collect.ImmutableSet; import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.tree.renderer.DataSelectionTreeCellRenderer; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.ReferentialReferenceNodeSupport; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTree; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeCellRenderer; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.ProgramSelectionTreeNode; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.ReferenceSelectionTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.RootSelectionTreeNode; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.SelectionTreeNodeSupport; import javax.swing.Icon; -import javax.swing.JTree; -import javax.swing.tree.TreeModel; -import java.util.Enumeration; /** * Created by tchemit on 04/10/16. * * @author Tony Chemit - chemit@codelutin.com */ -public class DataSynchroSelectionTreeCellRenderer extends DataSelectionTreeCellRenderer { +public class DataSynchroSelectionTreeCellRenderer extends SelectionTreeCellRenderer { private final Icon newTripIcon = UIHelper.createActionIcon("synchroAdd"); private final Icon existingTripIcon = UIHelper.createActionIcon("synchroUpdate"); - private final JTree oppositeTree; + private final SelectionTree oppositeTree; private ImmutableSet<String> oppositeIds; - public DataSynchroSelectionTreeCellRenderer(JTree oppositeTree) { + public DataSynchroSelectionTreeCellRenderer(SelectionTree oppositeTree) { this.oppositeTree = oppositeTree; } @Override - public void setIcon(ObserveNode node) { - if (node instanceof ReferentialReferenceNodeSupport<?> || !(oppositeTree.getModel().getRoot() instanceof ObserveNode)) { - super.setIcon(node); + public Icon getIcon(SelectionTreeNodeSupport node) { + if (getOppositeIds().contains(node.getId())) { + return existingTripIcon; } else { - if (getOppositeIds().contains(node.getId())) { - setDefaultIcons(existingTripIcon); - } else { - setDefaultIcons(newTripIcon); - } + return newTripIcon; } } private ImmutableSet<String> getOppositeIds() { if (oppositeIds == null) { ImmutableSet.Builder<String> builder = ImmutableSet.builder(); - TreeModel model = oppositeTree.getModel(); - ObserveNode rootNode = (ObserveNode) model.getRoot(); - Enumeration<ObserveNode> programNodes = rootNode.children(); - while (programNodes.hasMoreElements()) { - ObserveNode programNode = programNodes.nextElement(); - Enumeration<ObserveNode> tripNodes = programNode.children(); - while (tripNodes.hasMoreElements()) { - ObserveNode tripNode = tripNodes.nextElement(); - builder.add(tripNode.getId()); + SelectionTreeModel model = oppositeTree.getTreeModel(); + RootSelectionTreeNode rootNode = model.getRoot(); + for (ProgramSelectionTreeNode programNode : rootNode) { + for (ReferenceSelectionTreeNodeSupport<?, ?> tripNode : programNode) { + builder.add(tripNode.getData().getId()); } } oppositeIds = builder.build(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUI.jaxx index 4a15765..203d32e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUI.jaxx @@ -28,33 +28,18 @@ fr.ird.observe.application.swing.ui.UIHelper fr.ird.observe.application.swing.ui.admin.AdminUI fr.ird.observe.application.swing.ui.admin.AdminStep - fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper - fr.ird.observe.application.swing.ui.tree.renderer.DataSelectionTreeCellRenderer - fr.ird.observe.application.swing.ui.tree.DataSelectionTreeSelectionModel - fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel - fr.ird.observe.application.swing.ui.util.tree.BeanTreeHeader + fr.ird.observe.application.swing.ui.tree.selection.SelectionTree + fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeHeader jaxx.runtime.SwingUtil javax.swing.ListSelectionModel - javax.swing.tree.TreeSelectionModel </import> - <ObserveTreeHelper id='leftTreeHelper'/> - <ObserveTreeHelper id='rightTreeHelper'/> - <DataSynchroUIHandler id='handler' constructorParams='this'/> <DataSynchroModel id='stepModel' initializer='getModel().getDataSynchroModel()'/> - <DataSelectionModel id='leftSelectDataModel' - initializer='getModel().getDataSynchroModel().getLeftSelectionDataModel()'/> - <DataSelectionTreeSelectionModel id='leftSelectionModel'/> - - <DataSelectionModel id='rightSelectDataModel' - initializer='getModel().getDataSynchroModel().getRightSelectionDataModel()'/> - <DataSelectionTreeSelectionModel id='rightSelectionModel'/> - <script><![CDATA[ public DataSynchroUI(AdminUI parentContext) { super(AdminStep.DATA_SYNCHRONIZE, parentContext); @@ -64,12 +49,6 @@ public void initUI(AdminUI ui) { getHandler().initTabUI(ui, this); } -@Override -public void destroy() { - leftSelectionModel.clearSelection(); - rightSelectionModel.clearSelection(); - super.destroy(); -} ]]> </script> @@ -89,8 +68,8 @@ public void destroy() { <row> <cell weightx="0.45"> <JScrollPane id='leftTreePane' decorator='boxed' columnHeaderView='{leftTreeHeader}'> - <JTree id='leftTree'/> - <BeanTreeHeader id='leftTreeHeader' tree='{leftTree}'/> + <SelectionTree id='leftTree'/> + <SelectionTreeHeader id='leftTreeHeader' treeTable='{leftTree}'/> </JScrollPane> </cell> <cell weightx="0.1"> @@ -105,8 +84,8 @@ public void destroy() { </cell> <cell weightx="0.45"> <JScrollPane id='rightTreePane' decorator='boxed' columnHeaderView='{rightTreeHeader}'> - <JTree id='rightTree'/> - <BeanTreeHeader id='rightTreeHeader' tree='{rightTree}'/> + <SelectionTree id='rightTree'/> + <SelectionTreeHeader id='rightTreeHeader' treeTable='{rightTree}'/> </JScrollPane> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUI.jcss index a6be801..91956b8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUI.jcss @@ -44,19 +44,8 @@ } #leftTree { - rootVisible:false; - largeModel:true; minimumSize:{UIHelper.newMinDimension()}; font-size:11; - showsRootHandles:false; - toggleClickCount:100; - selectionModel:{leftSelectionModel}; - cellRenderer:{new DataSynchroSelectionTreeCellRenderer(rightTree)}; -} - -#leftSelectionModel { - selectionMode: {TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION}; - dataModel:{leftSelectDataModel}; } #leftTreePane { @@ -64,19 +53,8 @@ } #rightTree { - rootVisible:false; - largeModel:true; minimumSize:{UIHelper.newMinDimension()}; font-size:11; - showsRootHandles:false; - toggleClickCount:100; - selectionModel:{rightSelectionModel}; - cellRenderer:{new DataSynchroSelectionTreeCellRenderer(leftTree)}; -} - -#rightSelectionModel { - selectionMode: {TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION}; - dataModel:{rightSelectDataModel}; } #rightTreePane { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUIHandler.java index cc16fb5..5ac903a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUIHandler.java @@ -25,7 +25,6 @@ package fr.ird.observe.application.swing.ui.admin.synchronize.data; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferenceDecorator; -import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.application.swing.ui.admin.AdminTabUI; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; @@ -36,8 +35,8 @@ import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.CopyToRig import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.DataSynchronizeTaskSupport; import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.DeleteFromLeftDataSynchronizeTask; import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.DeleteFromRightDataSynchronizeTask; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTree; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.referential.ProgramDto; @@ -98,28 +97,47 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { log.debug(" specialized for [" + tabUI.getStep() + "] for main ui " + ui.getClass().getName() + "@" + System.identityHashCode(ui)); } - getStepModel().getLeftSelectionDataModel().addPropertyChangeListener(evt -> { + DataSynchroModel stepModel = getStepModel(); + + SelectionTree leftTree = tabUI.getLeftTree(); + SelectionTreeModel leftSelectionDataModel = leftTree.getTreeModel(); + stepModel.setLeftSelectionDataModel(leftSelectionDataModel); + leftSelectionDataModel.setLoadLongline(true); + leftSelectionDataModel.setLoadSeine(true); + leftSelectionDataModel.setLoadReferential(false); + leftSelectionDataModel.setShowEmptyTrips(false); + + + SelectionTree rightTree = tabUI.getRightTree(); + SelectionTreeModel rightSelectionDataModel = rightTree.getTreeModel(); + stepModel.setRightSelectionDataModel(rightSelectionDataModel); + rightSelectionDataModel.setLoadLongline(true); + rightSelectionDataModel.setLoadSeine(true); + rightSelectionDataModel.setLoadReferential(false); + rightSelectionDataModel.setShowEmptyTrips(false); + + // on n'installe qu'une seule fois l'ui + leftTree.installUI2(rightTree); - DataSelectionModel model = (DataSelectionModel) evt.getSource(); - boolean withDataSelected = !model.isDataEmpty(); + stepModel.getLeftSelectionDataModel().addPropertyChangeListener(evt -> { + + SelectionTreeModel model = (SelectionTreeModel) evt.getSource(); + boolean withDataSelected = !model.isSelectionEmpty(); tabUI.getCopyToRight().setEnabled(withDataSelected); tabUI.getDeleteFromLeft().setEnabled(withDataSelected); }); - getStepModel().getRightSelectionDataModel().addPropertyChangeListener(evt -> { + stepModel.getRightSelectionDataModel().addPropertyChangeListener(evt -> { - DataSelectionModel model = (DataSelectionModel) evt.getSource(); - boolean withDataSelected = !model.isDataEmpty(); + SelectionTreeModel model = (SelectionTreeModel) evt.getSource(); + boolean withDataSelected = !model.isSelectionEmpty(); tabUI.getCopyToLeft().setEnabled(withDataSelected); tabUI.getDeleteFromRight().setEnabled(withDataSelected); }); - UIHelper.initUI(tabUI.getLeftTreePane(), tabUI.getLeftTree()); - UIHelper.initUI(tabUI.getRightTreePane(), tabUI.getRightTree()); - } public void doStartAction() { @@ -130,49 +148,38 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { public void addCopyToLeftTasks() { - DataSelectionModel rightSelectionDataModel = getStepModel().getRightSelectionDataModel(); - DataSelectionModel leftSelectionDataModel = getStepModel().getLeftSelectionDataModel(); - ObserveTreeHelper rightTreeHelper = getUi().getRightTreeHelper(); - ObserveTreeHelper leftTreeHelper = getUi().getLeftTreeHelper(); - Map<ReferentialReference<ProgramDto>, List<DataReference>> selectedDataByProgram = rightSelectionDataModel.getSelectedDataByProgram(); + SelectionTreeModel rightSelectionDataModel = getStepModel().getRightSelectionDataModel(); + SelectionTreeModel leftSelectionDataModel = getStepModel().getLeftSelectionDataModel(); + Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> selectedDataByProgram = rightSelectionDataModel.getSelectedDataByProgram(); rightSelectionDataModel.removeAllSelectedData(); - for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference>> entry : selectedDataByProgram.entrySet()) { + for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference<?>>> entry : selectedDataByProgram.entrySet()) { ReferentialReference<ProgramDto> program = entry.getKey(); for (DataReference trip : entry.getValue()) { boolean tripExistOnLeft = leftSelectionDataModel.containsData(program, trip); getStepModel().addTask(new CopyToLeftDataSynchronizeTask(program, trip, tripExistOnLeft)); - rightTreeHelper.removeTrip(program, trip); - rightSelectionDataModel.removeTrip(program, trip); if (tripExistOnLeft) { - leftTreeHelper.removeTrip(program, trip); leftSelectionDataModel.removeTrip(program, trip); } } } - } public void addCopyToRightTasks() { - DataSelectionModel leftSelectionDataModel = getStepModel().getLeftSelectionDataModel(); - DataSelectionModel rightSelectionDataModel = getStepModel().getRightSelectionDataModel(); - ObserveTreeHelper leftTreeHelper = getUi().getLeftTreeHelper(); - ObserveTreeHelper rightTreeHelper = getUi().getRightTreeHelper(); - Map<ReferentialReference<ProgramDto>, List<DataReference>> selectedDataByProgram = leftSelectionDataModel.getSelectedDataByProgram(); + SelectionTreeModel leftSelectionDataModel = getStepModel().getLeftSelectionDataModel(); + SelectionTreeModel rightSelectionDataModel = getStepModel().getRightSelectionDataModel(); + Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> selectedDataByProgram = leftSelectionDataModel.getSelectedDataByProgram(); leftSelectionDataModel.removeAllSelectedData(); - for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference>> entry : selectedDataByProgram.entrySet()) { + for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference<?>>> entry : selectedDataByProgram.entrySet()) { ReferentialReference<ProgramDto> program = entry.getKey(); for (DataReference trip : entry.getValue()) { boolean tripExistOnRight = rightSelectionDataModel.containsData(program, trip); getStepModel().addTask(new CopyToRightDataSynchronizeTask(program, trip, tripExistOnRight)); - leftTreeHelper.removeTrip(program, trip); - leftSelectionDataModel.removeTrip(program, trip); if (tripExistOnRight) { - rightTreeHelper.removeTrip(program, trip); rightSelectionDataModel.removeTrip(program, trip); } } @@ -182,36 +189,28 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { public void addDeleteFromLeftTasks() { - DataSelectionModel selectionDataModel = getStepModel().getLeftSelectionDataModel(); - ObserveTreeHelper treeHelper = getUi().getLeftTreeHelper(); - Map<ReferentialReference<ProgramDto>, List<DataReference>> selectedDataByProgram = selectionDataModel.getSelectedDataByProgram(); + SelectionTreeModel selectionDataModel = getStepModel().getLeftSelectionDataModel(); + Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> selectedDataByProgram = selectionDataModel.getSelectedDataByProgram(); selectionDataModel.removeAllSelectedData(); - for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference>> entry : selectedDataByProgram.entrySet()) { + for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference<?>>> entry : selectedDataByProgram.entrySet()) { ReferentialReference<ProgramDto> program = entry.getKey(); for (DataReference trip : entry.getValue()) { getStepModel().addTask(new DeleteFromLeftDataSynchronizeTask(program, trip)); - treeHelper.removeTrip(program, trip); - selectionDataModel.removeTrip(program, trip); } } - } public void addDeleteFromRightTasks() { - DataSelectionModel selectionDataModel = getStepModel().getRightSelectionDataModel(); - ObserveTreeHelper treeHelper = getUi().getRightTreeHelper(); - Map<ReferentialReference<ProgramDto>, List<DataReference>> selectedDataByProgram = selectionDataModel.getSelectedDataByProgram(); + SelectionTreeModel selectionDataModel = getStepModel().getRightSelectionDataModel(); + Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> selectedDataByProgram = selectionDataModel.getSelectedDataByProgram(); selectionDataModel.removeAllSelectedData(); - for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference>> entry : selectedDataByProgram.entrySet()) { + for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference<?>>> entry : selectedDataByProgram.entrySet()) { ReferentialReference<ProgramDto> program = entry.getKey(); for (DataReference trip : entry.getValue()) { getStepModel().addTask(new DeleteFromRightDataSynchronizeTask(program, trip)); - treeHelper.removeTrip(program, trip); - selectionDataModel.removeTrip(program, trip); } } - } public void doExecuteAction() { @@ -234,14 +233,14 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { tabUI.getLeftTreePane().setBorder(new TitledBorder(getModel().getLocalSourceModel().getLabel())); stepModel.populateLeftSelectionModel(); - updateSelectionModel(tabUI, tabUI.getLeftTreeHelper(), tabUI.getLeftTree(), leftSource, stepModel.getLeftSelectionDataModel(), tabUI.getLeftSelectionModel()); +// updateSelectionModel(tabUI.getLeftTree(), leftSource); sendMessage(t("observe.actions.synchro.referential.message.data.leftData.loaded")); configUI.getLocalSourceConfig().setBorder(new TitledBorder(getModel().getLocalSourceLabel())); tabUI.getRightTreePane().setBorder(new TitledBorder(getModel().getCentralSourceModel().getLabel())); stepModel.populateRightSelectionModel(); - updateSelectionModel(tabUI, tabUI.getRightTreeHelper(), tabUI.getRightTree(), rightSource, stepModel.getRightSelectionDataModel(), tabUI.getRightSelectionModel()); +// updateSelectionModel(tabUI.getRightTree(), rightSource); sendMessage(t("observe.actions.synchro.referential.message.data.rightData.loaded")); configUI.getCentralSourceConfig().setBorder(new TitledBorder(getModel().getCentralSourceLabel())); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroUI.jaxx index e637979..1ec9b95 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroUI.jaxx @@ -36,7 +36,6 @@ fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.action.RegisterSkipTaskAction fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModel fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeCellRenderer - fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper fr.ird.observe.application.swing.ui.util.tree.BeanTreeHeader javax.swing.ListSelectionModel @@ -44,9 +43,6 @@ </import> - <ObserveTreeHelper id='leftTreeHelper'/> - <ObserveTreeHelper id='rightTreeHelper'/> - <ReferentialSynchroUIHandler id='handler' constructorParams='this'/> <ReferentialSynchroModel id='stepModel' javaBean='getModel().getReferentialSynchroModel()'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateUI.jaxx index 4e19959..c40b605 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateUI.jaxx @@ -27,6 +27,8 @@ <fr.ird.observe.application.swing.ui.admin.AdminTabUI> <import> + fr.ird.observe.services.dto.AbstractReference + fr.ird.observe.application.swing.ui.UIHelper fr.ird.observe.application.swing.ui.admin.AdminStep fr.ird.observe.application.swing.ui.admin.AdminTabUI @@ -49,7 +51,7 @@ <DefaultListModel id='typeModel' genericType='Class<?>'/> - <DefaultListModel id='refModel'/> + <DefaultListModel id='refModel' genericType='AbstractReference<?>'/> <ValidationMessageTableModel id='messagesModel'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateUIHandler.java index e75fc89..91857ce 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateUIHandler.java @@ -34,10 +34,9 @@ import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.application.swing.ui.admin.AdminTabUI; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; import fr.ird.observe.application.swing.ui.admin.AdminUI; -import fr.ird.observe.application.swing.ui.admin.AdminUIModel; import fr.ird.observe.application.swing.ui.admin.config.ConfigUI; import fr.ird.observe.application.swing.ui.admin.config.SelectDataUI; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.application.swing.ui.util.ObserveValidationMessageTableRenderer; import fr.ird.observe.application.swing.validation.ValidationModelMode; import fr.ird.observe.services.dto.AbstractReference; @@ -50,8 +49,8 @@ import fr.ird.observe.services.service.actions.validate.ValidateDataResult; import fr.ird.observe.services.service.actions.validate.ValidateReferentialsRequest; import fr.ird.observe.services.service.actions.validate.ValidateReferentialsResult; import fr.ird.observe.services.service.actions.validate.ValidateResultForDto; -import fr.ird.observe.services.service.actions.validate.ValidateResultForDtoType; import fr.ird.observe.services.service.actions.validate.ValidateResultForDtoHelper; +import fr.ird.observe.services.service.actions.validate.ValidateResultForDtoType; import fr.ird.observe.services.service.actions.validate.ValidateService; import fr.ird.observe.services.service.actions.validate.ValidationMessage; import fr.ird.observe.services.service.actions.validate.ValidatorDto; @@ -64,8 +63,6 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.ComboBoxModel; -import javax.swing.DefaultComboBoxModel; import javax.swing.DefaultListModel; import javax.swing.JCheckBox; import javax.swing.JTable; @@ -94,7 +91,7 @@ import static org.nuiton.i18n.I18n.t; */ public class ValidateUIHandler extends AdminTabUIHandler { - public static final String[] EMPTY_STRING_ARRAY = new String[]{}; +// public static final String[] EMPTY_STRING_ARRAY = new String[]{}; public static final String LINE = "--------------------------------------------------------------------------------"; @@ -160,42 +157,31 @@ public class ValidateUIHandler extends AdminTabUIHandler { // rien a faire pour le moment... return; } - DataSelectionModel selectDataModel; - selectDataModel = selectTabUI.getSelectDataModel(); + SelectionTreeModel selectDataModel = selectTabUI.getSelectTree().getTreeModel(); + selectDataModel.setLoadLongline(false); + selectDataModel.setLoadSeine(false); + selectDataModel.setLoadReferential(false); if (log.isDebugEnabled()) { log.debug("validation model changed to " + value); } switch (value) { case REFERENTIEL: - selectDataModel.setUseData(false); - selectDataModel.setUseReferentiel(true); + selectDataModel.setLoadReferential(true); break; case DATA: - selectDataModel.setUseData(true); - selectDataModel.setUseReferentiel(false); + selectDataModel.setLoadLongline(true); + selectDataModel.setLoadSeine(true); break; case ALL: - selectDataModel.setUseData(true); - selectDataModel.setUseReferentiel(true); + selectDataModel.setLoadReferential(true); + selectDataModel.setLoadLongline(true); + selectDataModel.setLoadSeine(true); break; } //updateModel(); }); - selectTabUI.getModel().addPropertyChangeListener(AdminUIModel.SELECTION_MODEL_CHANGED_PROPERTY_NAME, evt -> { - AdminUIModel model1 = (AdminUIModel) evt.getSource(); - if (!model1.containsStep(selectTabUI.getStep())) { - // avoid multi-cast - return; - } - DataSelectionModel value = (DataSelectionModel) evt.getNewValue(); - if (log.isInfoEnabled()) { - log.info("selection model changed to " + value); - } - updateSelectionModel(selectTabUI); - }); - ImmutableSet<ValidatorDto> validators = ObserveSwingApplicationContext.get().getValidators(); ValidateModel stepModel = model.getValidateModel(); @@ -237,11 +223,11 @@ public class ValidateUIHandler extends AdminTabUIHandler { tabUI.typeSelectionModel.clearSelection(); typeModel.clear(); - Set<Class> messageTypes = (Set) tabUI.getStepModel().getMessageTypes(); + Set<Class<? extends IdDto>> messageTypes = tabUI.getStepModel().getMessageTypes(); - List<Class> classes = ObserveI18nDecoratorHelper.sortTypes(messageTypes); + List<Class> classes = ObserveI18nDecoratorHelper.sortTypes((Set) messageTypes); - for (Class<?> e : classes) { + for (Class e : classes) { typeModel.addElement(e); @@ -272,7 +258,7 @@ public class ValidateUIHandler extends AdminTabUIHandler { Class<?> type = (Class<?>) o; List<AbstractReference> refs = tabUI.getStepModel().getMessagesDto(type); - for (AbstractReference ref : Iterables.limit(refs, 100)) { + for (AbstractReference<?> ref : Iterables.limit(refs, 100)) { if (log.isDebugEnabled()) { log.debug("add ref = " + ref); } @@ -310,7 +296,7 @@ public class ValidateUIHandler extends AdminTabUIHandler { log.debug(ref); } - ValidateResultForDto resultForDto = tabUI.getStepModel().getMessages(ref); + ValidateResultForDto<?> resultForDto = tabUI.getStepModel().getMessages(ref); ImmutableSet<ValidationMessage> messages = resultForDto.getMessages(); @@ -400,7 +386,7 @@ public class ValidateUIHandler extends AdminTabUIHandler { ValidateModel stepModel = model.getValidateModel(); stepModel.setMessages(null); - DataSelectionModel dataModel = model.getSelectionDataModel(); + SelectionTreeModel dataModel = model.getSelectionDataModel(); ObserveSwingDataSource dataSourceToValidate = model.getLocalSource(); @@ -412,12 +398,12 @@ public class ValidateUIHandler extends AdminTabUIHandler { Map<Class<? extends IdDto>, ValidateResultForDtoType> messages = Maps.newHashMap(); - if (dataModel.isUseReferentiel()) { + if (dataModel.isLoadReferential()) { // validation des referentiels selectionnes ValidateReferentialsRequest request = new ValidateReferentialsRequest(); - request.setReferentialTypes(ImmutableSet.copyOf(dataModel.getSelectedReferentiel())); + request.setReferentialTypes(dataModel.getSelectedReferentiel()); request.setScopes(ImmutableSet.copyOf(stepModel.getScopes())); request.setValidationContext(stepModel.getContextName()); @@ -491,11 +477,11 @@ public class ValidateUIHandler extends AdminTabUIHandler { builder.append(t("observe.actions.validate.report.entities.with.messages", messages.size())).append('\n'); builder.append(LINE).append('\n').append('\n'); - for (ValidateResultForDtoType validateResultForDtoType : messages.values()) { + for (ValidateResultForDtoType<?> validateResultForDtoType : messages.values()) { - ImmutableSet<ValidateResultForDto> validateResultForHelper = validateResultForDtoType.getValidateResultForDto(); - for (ValidateResultForDto validateResultForDto : validateResultForHelper) { - AbstractReference referenceDto = validateResultForDto.getDto(); + ImmutableSet<? extends ValidateResultForDto<?>> validateResultForHelper = validateResultForDtoType.getValidateResultForDto(); + for (ValidateResultForDto<?> validateResultForDto : validateResultForHelper) { + AbstractReference<?> referenceDto = validateResultForDto.getDto(); String refStr = service.getReferenceDecorator(referenceDto.getType()).toString(referenceDto); @@ -510,7 +496,7 @@ public class ValidateUIHandler extends AdminTabUIHandler { for (ValidationMessage message : messagesByScope) { - builder.append(message.getScope() + " - " + message.getMessage()).append('\n'); + builder.append(message.getScope()).append(" - ").append(message.getMessage()).append('\n'); } @@ -545,13 +531,6 @@ public class ValidateUIHandler extends AdminTabUIHandler { } } - public ComboBoxModel updateComboModel(Object... datas) { - if (datas == null) { - return new DefaultComboBoxModel(); - } - return new DefaultComboBoxModel(datas); - } - public String updateValidatorResumeLabel(boolean valid) { ValidateModel validateModel = getModel().getValidateModel(); @@ -562,10 +541,6 @@ public class ValidateUIHandler extends AdminTabUIHandler { return t("observe.actions.validate.selected.validators", validateModel.getValidators().size()); } - public AdminStep getObjectOperation(JCheckBox checkBox) { - return AdminStep.valueOf(checkBox.getName()); - } - public NuitonValidatorScope getValidatorScope(JCheckBox checkBox) { return (NuitonValidatorScope) checkBox.getClientProperty("value"); } @@ -575,11 +550,6 @@ public class ValidateUIHandler extends AdminTabUIHandler { return scopes.contains(scope); } - public boolean isObjectOperationSelected(Set<AdminStep> objectOperations, JCheckBox checkBox) { -// AdminStep scope = getObjectOperation(checkBox); - return objectOperations.contains(getObjectOperation(checkBox)); - } - public void chooseValidationReportFile(ValidateConfigUI configUI) { File f = UIHelper.chooseDirectory( configUI, diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx index de045dc..e2b53e0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx @@ -40,7 +40,6 @@ fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig fr.ird.observe.application.swing.ui.actions.shared.GoUpUIAction fr.ird.observe.application.swing.ui.actions.shared.GoDownUIAction - fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper fr.ird.observe.services.dto.IdDto @@ -63,8 +62,6 @@ <DataContext id='dataContext' javaBean='ObserveSwingApplicationContext.get().getDataContext()'/> - <ObserveTreeHelper id='treeHelper' initializer='getContextValue(ObserveTreeHelper.class)'/> - <ContentUIModel id='model' genericType='E' initializer='ContentUIModel.newModel((U) this)'/> <ContentUIHandler id='handler' genericType='E, U' initializer='ContentUIHandler.newHandler((U) this)'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java index d5d0443..06eb161 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java @@ -37,9 +37,9 @@ import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferen import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.util.SpringUtilities; import fr.ird.observe.application.swing.validation.ValidationContext; import fr.ird.observe.services.dto.DataDto; @@ -85,6 +85,7 @@ import javax.swing.UIManager; import javax.swing.border.TitledBorder; import java.awt.Component; import java.awt.Dimension; +import java.awt.FocusTraversalPolicy; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.util.ArrayList; @@ -137,8 +138,8 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - public static ObserveTreeHelper getTreeHelper(JAXXContext context) { - return context.getContextValue(ObserveTreeHelper.class); + public static NavigationTree getTreeHelper(JAXXContext context) { + return ObserveSwingApplicationContext.get().getMainUI().getNavigation(); } /** @@ -303,60 +304,64 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM, evt -> updateUiWithReferenceSetsFromModel()); - ObserveSwingApplicationContext.get().getFocusManager().installFocusTraversalPolicy(ui); + installFocusTraversalPolicy(); // addFocusabelOnForm(); } - protected void addFocusabelOnForm() { - getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_MODE, evt -> updateFocusable((ContentMode) evt.getNewValue())); - updateFocusable(ContentMode.READ); + protected void installFocusTraversalPolicy() { + ObserveSwingApplicationContext.get().getFocusManager().installFocusTraversalPolicy(ui); } - public void updateFocusable(ContentMode newMode) { - if (newMode == null) { - return; - } - switch (newMode) { - case CREATE: - case UPDATE: - ui.get$objectMap().values().stream().filter(o -> o instanceof JComponent).forEach(o -> { - JComponent component = (JComponent) o; - if (BooleanUtils.isTrue((Boolean) component.getClientProperty("protectFocus"))) { - return; - } - if (component instanceof BeanComboBox) { - BeanComboBox beanComboBox = (BeanComboBox) component; - component = beanComboBox.getCombobox(); - } - Boolean focusable = (Boolean) component.getClientProperty("_focusable"); - component.setFocusable(BooleanUtils.isTrue(focusable)); - - }); - break; - case READ: - - // remove all focusables - ui.get$objectMap().values().stream().filter(o -> o instanceof JComponent).forEach(o -> { - JComponent component = (JComponent) o; - if (BooleanUtils.isTrue((Boolean) component.getClientProperty("protectFocus"))) { - return; - } - if (component instanceof BeanComboBox) { - BeanComboBox beanComboBox = (BeanComboBox) component; - component = beanComboBox.getCombobox(); - } - boolean focusable = component.isFocusable(); - if (focusable) { - component.putClientProperty("_focusable", true); - component.setFocusable(false); - } - - }); - break; - } - } +// protected void addFocusabelOnForm() { +// getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_MODE, evt -> updateFocusable((ContentMode) evt.getNewValue())); +// updateFocusable(ContentMode.READ); +// } + +// public void updateFocusable(ContentMode newMode) { +// if (newMode == null) { +// return; +// } +// switch (newMode) { +// case CREATE: +// case UPDATE: +// ui.get$objectMap().values().stream().filter(o -> o instanceof JComponent).forEach(o -> { +// JComponent component = (JComponent) o; +// if (BooleanUtils.isTrue((Boolean) component.getClientProperty("protectFocus"))) { +// return; +// } +// if (component instanceof BeanComboBox) { +// BeanComboBox beanComboBox = (BeanComboBox) component; +// component = beanComboBox.getCombobox(); +// } +// Boolean focusable = (Boolean) component.getClientProperty("_focusable"); +// component.setFocusable(BooleanUtils.isTrue(focusable)); +// +// }); +// break; +// case READ: +// +// // remove all focusables +// ui.get$objectMap().values().stream().filter(o -> o instanceof JComponent).forEach(o -> { +// JComponent component = (JComponent) o; +// if (BooleanUtils.isTrue((Boolean) component.getClientProperty("protectFocus"))) { +// return; +// } +// if (component instanceof BeanComboBox) { +// BeanComboBox beanComboBox = (BeanComboBox) component; +// component = beanComboBox.getCombobox(); +// } +// boolean focusable = component.isFocusable(); +// if (focusable) { +// component.putClientProperty("_focusable", true); +// component.setFocusable(false); +// } +// +// }); +// break; +// } +// } public void openUI() { @@ -375,21 +380,25 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } // suppression des messages de validation removeAllMessages(ui); - ObserveTreeHelper treeHelper = getTreeHelper(ui); - AbstractObserveTreeCellRenderer render = treeHelper.getTreeCellRenderer(); - ObserveNode node = treeHelper.getSelectedNode(); + NavigationTree tree = getTreeHelper(ui); + NavigationTreeCellRenderer render = tree.getNavigationCellRenderer(); + + NavigationTreeNodeSupport node = tree.getSelectedNode(); if (ContentReferenceUIHandler.class.isAssignableFrom(getClass())) { node = node.getParent(); } - ui.setContentIcon(render.getNavigationIcon(node)); + ui.setContentIcon(node.getIcon("")); updateActions(); - JComponent firstComponent = (JComponent) ui.getFocusTraversalPolicy().getFirstComponent(ui); - if (log.isInfoEnabled()) { - log.info("Grab focus on first component: " + firstComponent); + FocusTraversalPolicy focusTraversalPolicy = ui.getFocusTraversalPolicy(); + if (focusTraversalPolicy != null) { + JComponent firstComponent = (JComponent) focusTraversalPolicy.getFirstComponent(ui); + if (log.isInfoEnabled()) { + log.info("Grab focus on first component: " + firstComponent); + } + firstComponent.grabFocus(); } - firstComponent.grabFocus(); } public Icon getErrorIconIfFalse(boolean valid) { @@ -477,13 +486,11 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U // 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(); + NavigationTree tree = getTreeHelper(ui); removeAllMessages(ui); -// treeHelper.refreshNode(node, true); - treeHelper.reloadSelectedNode(false, true); + tree.reloadSelectedNode(false, true); model.setMode(ContentMode.UPDATE); @@ -541,10 +548,10 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U // rien a faire return; } - ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode parentNode = treeHelper.getSelectedNode(); + NavigationTree treeHelper = getTreeHelper(ui); + NavigationTreeNodeSupport parentNode = treeHelper.getSelectedNode(); String id = entity.getId(); - ObserveNode node = treeHelper.findNode(parentNode, id); + NavigationTreeNodeSupport node = treeHelper.getChild(parentNode, id); if (log.isInfoEnabled()) { log.info("will go to node " + node + " for " + id); } @@ -552,8 +559,8 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } public void addChild(Class<?> type) { - ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode parentNode = treeHelper.getSelectedNode(); + NavigationTree treeHelper = getTreeHelper(ui); + NavigationTreeNodeSupport parentNode = treeHelper.getSelectedNode(); treeHelper.addUnsavedNode(parentNode, type); } @@ -709,10 +716,10 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U boolean create = model.isCreatingMode(); if (create && model.isEditable()) { // remove node - ObserveTreeHelper treehelper = getTreeHelper(ui); - ObserveNode node = treehelper.getSelectedNode(); + NavigationTree treehelper = getTreeHelper(ui); + NavigationTreeNodeSupport node = treehelper.getSelectedNode(); - ObserveNode parentNode = node.getParent(); + NavigationTreeNodeSupport parentNode = node.getParent(); if (parentNode != null) { // node still attached, so remove it treehelper.removeNode(node); @@ -738,9 +745,9 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U removeAllMessages(ui); if (!(getBean() instanceof ReferentialDto)) { - ObserveTreeHelper treeHelper = getTreeHelper(ui); - ObserveNode node = treeHelper.getSelectedNode(); - ObserveNode parentNode = treeHelper.removeNode(node); + NavigationTree treeHelper = getTreeHelper(ui); + NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); treeHelper.selectNode(parentNode); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java index 0182303..7e6ac25 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java @@ -21,79 +21,14 @@ */ package fr.ird.observe.application.swing.ui.content; -import com.google.common.collect.ImmutableSet; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ObserveSwingSessionHelper; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.content.impl.longline.LonglineDetailCompositionUI; -import fr.ird.observe.application.swing.ui.content.impl.longline.LonglineGlobalCompositionUI; -import fr.ird.observe.application.swing.ui.content.impl.longline.SetLonglineUI; -import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectTransmittingBuoyOperationUI; -import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectUI; -import fr.ird.observe.application.swing.ui.content.impl.seine.SetSeineUI; -import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; -import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; -import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; -import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; -import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUI; -import fr.ird.observe.application.swing.ui.content.open.impl.longline.ActivityLonglineUI; -import fr.ird.observe.application.swing.ui.content.open.impl.longline.TripLonglineUI; -import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; -import fr.ird.observe.application.swing.ui.content.open.impl.seine.RouteUI; -import fr.ird.observe.application.swing.ui.content.open.impl.seine.TripSeineUI; -import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUI; -import fr.ird.observe.application.swing.ui.content.ref.ReferenceHomeUI; -import fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUI; -import fr.ird.observe.application.swing.ui.content.table.impl.longline.EncounterUI; -import fr.ird.observe.application.swing.ui.content.table.impl.longline.GearUseFeaturesLonglineUI; -import fr.ird.observe.application.swing.ui.content.table.impl.longline.SensorUsedUI; -import fr.ird.observe.application.swing.ui.content.table.impl.longline.TdrUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.GearUseFeaturesSeineUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.NonTargetCatchUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.NonTargetSampleUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.ObjectObservedSpeciesUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.ObjectSchoolEstimateUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.SchoolEstimateUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetCatchUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetDiscardCatchUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetSampleCaptureUI; -import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetSampleRejeteUI; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.CatchLonglineDto; -import fr.ird.observe.services.dto.longline.EncounterDto; -import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; -import fr.ird.observe.services.dto.longline.SensorUsedDto; -import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; -import fr.ird.observe.services.dto.longline.TdrDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialHelper; -import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.DiscardedTargetCatchDto; -import fr.ird.observe.services.dto.seine.DiscardedTargetSampleDto; -import fr.ird.observe.services.dto.seine.FloatingObjectDto; -import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.dto.seine.KeptTargetCatchDto; -import fr.ird.observe.services.dto.seine.KeptTargetSampleDto; -import fr.ird.observe.services.dto.seine.NonTargetCatchDto; -import fr.ird.observe.services.dto.seine.NonTargetSampleDto; -import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; -import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.dto.seine.SchoolEstimateDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.swing.CardLayout2; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -105,10 +40,6 @@ import java.awt.Component; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.lang.reflect.Constructor; -import java.util.Map; -import java.util.TreeMap; - -import static org.nuiton.i18n.I18n.n; /** * Manager des ecrans d'editions @@ -118,120 +49,11 @@ import static org.nuiton.i18n.I18n.n; */ public class ContentUIManager { - private static final String REFERENCE = "reference"; - - public static final String DATA = "data"; - /** Logger */ - static private final Log log = LogFactory.getLog(ContentUIManager.class); - - private final Map<String, Class<? extends ContentUI<?, ?>>> mapping; - - public ContentUIManager() { - - mapping = new TreeMap<>(); - - // --- Seine data --- // - addMapping(DATA, ProgramDto.class, GearType.seine.name(), TripSeinesUI.class); - - addMapping(DATA, TripSeineDto.class, null, TripSeineUI.class); - addMapping(DATA, TripSeineDto.class, n("observe.type.tripSeine.unsaved"), TripSeineUI.class); - addMapping(DATA, TripSeineDto.class, GearUseFeaturesSeineDto.class, GearUseFeaturesSeineUI.class); - addMapping(DATA, TripSeineDto.class, RouteDto.class, RoutesUI.class); - - addMapping(DATA, RouteDto.class, null, RouteUI.class); - addMapping(DATA, RouteDto.class, n("observe.type.route.unsaved"), RouteUI.class); - addMapping(DATA, RouteDto.class, ActivitySeineDto.class, ActivitySeinesUI.class); - - addMapping(DATA, ActivitySeineDto.class, null, ActivitySeineUI.class); - addMapping(DATA, ActivitySeineDto.class, n("observe.type.activitySeine.unsaved"), ActivitySeineUI.class); - - addMapping(DATA, SetSeineDto.class, null, SetSeineUI.class); - addMapping(DATA, SetSeineDto.class, n("observe.type.setSeine.unsaved"), SetSeineUI.class); - addMapping(DATA, SetSeineDto.class, SchoolEstimateDto.class, SchoolEstimateUI.class); - addMapping(DATA, SetSeineDto.class, KeptTargetCatchDto.class, TargetCatchUI.class); - addMapping(DATA, SetSeineDto.class, DiscardedTargetCatchDto.class, TargetDiscardCatchUI.class); - addMapping(DATA, SetSeineDto.class, NonTargetCatchDto.class, NonTargetCatchUI.class); - - addMapping(DATA, SetSeineDto.class, KeptTargetSampleDto.class, TargetSampleCaptureUI.class); - addMapping(DATA, SetSeineDto.class, DiscardedTargetSampleDto.class, TargetSampleRejeteUI.class); - addMapping(DATA, SetSeineDto.class, NonTargetSampleDto.class, NonTargetSampleUI.class); - - addMapping(DATA, FloatingObjectDto.class, null, FloatingObjectUI.class); - addMapping(DATA, FloatingObjectDto.class, n("observe.type.floatingObject.unsaved"), FloatingObjectUI.class); - addMapping(DATA, FloatingObjectDto.class, ObjectOperationDto.class, FloatingObjectTransmittingBuoyOperationUI.class); - addMapping(DATA, FloatingObjectDto.class, ObjectObservedSpeciesDto.class, ObjectObservedSpeciesUI.class); - addMapping(DATA, FloatingObjectDto.class, ObjectSchoolEstimateDto.class, ObjectSchoolEstimateUI.class); - - // --- Longline data --- // - - addMapping(DATA, ProgramDto.class, GearType.longline.name(), TripLonglinesUI.class); - - addMapping(DATA, TripLonglineDto.class, null, TripLonglineUI.class); - addMapping(DATA, TripLonglineDto.class, n("observe.type.tripLongline.unsaved"), TripLonglineUI.class); - addMapping(DATA, TripLonglineDto.class, GearUseFeaturesLonglineDto.class, GearUseFeaturesLonglineUI.class); - addMapping(DATA, TripLonglineDto.class, ActivityLonglineDto.class, ActivityLonglinesUI.class); - - addMapping(DATA, ActivityLonglineDto.class, null, ActivityLonglineUI.class); - addMapping(DATA, ActivityLonglineDto.class, n("observe.type.activityLongline.unsaved"), ActivityLonglineUI.class); - addMapping(DATA, ActivityLonglineDto.class, EncounterDto.class, EncounterUI.class); - addMapping(DATA, ActivityLonglineDto.class, SensorUsedDto.class, SensorUsedUI.class); - - addMapping(DATA, SetLonglineDto.class, null, SetLonglineUI.class); - addMapping(DATA, SetLonglineDto.class, n("observe.type.setLongline.unsaved"), SetLonglineUI.class); - addMapping(DATA, SetLonglineDto.class, SetLonglineGlobalCompositionDto.class, LonglineGlobalCompositionUI.class); - addMapping(DATA, SetLonglineDto.class, SetLonglineDetailCompositionDto.class, LonglineDetailCompositionUI.class); - - addMapping(DATA, SetLonglineDto.class, CatchLonglineDto.class, CatchLonglineUI.class); - addMapping(DATA, SetLonglineDto.class, TdrDto.class, TdrUI.class); - - // --- Referential --- // - - loadReferentialsMapping(ReferentialHelper.REFERENCE_COMMON_DTOS, "impl"); - loadReferentialsMapping(ReferentialHelper.REFERENCE_SEINE_DTOS, "impl.seine"); - loadReferentialsMapping(ReferentialHelper.REFERENCE_LONGLINE_DTOS, "impl.longline"); - - addMapping(REFERENCE, null, null, ReferenceHomeUI.class); - - } - - public Class<? extends ContentUI<?, ?>> convertNodeToContentUI(ObserveNode node) { - if (log.isDebugEnabled()) { - log.debug("Entrer for node = " + node); - } - if (node.isRoot()) { - return null; - } - - Class<?> editType = node.getInternalClass(); - String prefix = node.isReferentielNode() ? REFERENCE : DATA; - String context = node.getContext(); - - String mappingKey; - - if (node.isReferentielNode()) { - - if (String.class.equals(editType)) { - editType = null; - } - - } else { - - // noeud de donnee - if (String.class.equals(editType)) { - editType = node.getContainerNode().getInternalClass(); - } - } - - mappingKey = getMappingKey(prefix, editType, context); - if (mappingKey == null) { - throw new NullPointerException("Could not find mappingKey for node " + node); - } - if (log.isDebugEnabled()) { - log.debug("mappingKey = [" + mappingKey + "] for node " + node); - } + private static final Log log = LogFactory.getLog(ContentUIManager.class); - return mapping.get(mappingKey); + public Class<? extends ContentUI<?, ?>> convertNodeToContentUI(NavigationTreeNodeSupport<?> node) { + return node.getContentClass(); } public <U extends ContentUI<?, ?>> U getContent(Class<U> uiClass) { @@ -383,21 +205,6 @@ public class ContentUIManager { close(); } - private void loadReferentialsMapping(ImmutableSet<Class<? extends ReferentialDto>> types, String packagePrefix) { - for (Class<? extends ReferentialDto> editType : types) { - String simpleName = StringUtils.removeEnd(editType.getSimpleName(), "Dto"); - String fqn = ContentReferenceUI.class.getPackage().getName() + "." + packagePrefix + "." + simpleName + "UI"; - Class<?> result; - try { - result = Class.forName(fqn); - addMapping(REFERENCE, null, editType, result); - } catch (ClassNotFoundException e) { - throw new IllegalStateException("Could not find " + fqn); - } - } - - } - private JPanel getLayoutContent() { return getMainUI().getContent(); } @@ -428,27 +235,4 @@ public class ContentUIManager { return result; } - private void addMapping(String prefix, Class<?> klass, Object context, Class<?> contentClass) { - - String contextValue = context instanceof Class ? ((Class) context).getName() : (context == null ? null : context.toString()); - String key = getMappingKey(prefix, klass, contextValue); - if (log.isDebugEnabled()) { - log.debug("Add key: " + key + " → " + contentClass.getName()); - } - mapping.put(key, (Class) contentClass); - } - - private String getMappingKey(String prefix, Class<?> klass, String context) { - String key = prefix + "."; - if (klass != null) { - key += klass.getName(); - } - if (context != null) { - if (klass != null) { - key += "#"; - } - key += context; - } - return key; - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java index c5c28fe..e138b52 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java @@ -1,7 +1,9 @@ package fr.ird.observe.application.swing.ui.content; import com.google.common.collect.ImmutableMap; +import fr.ird.observe.application.swing.ui.content.impl.longline.BranchlineUI; import fr.ird.observe.application.swing.ui.content.impl.longline.LonglineDetailCompositionUI; +import fr.ird.observe.application.swing.ui.content.impl.longline.LonglineGlobalCompositionUI; import fr.ird.observe.application.swing.ui.content.impl.longline.SetLonglineUI; import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectTransmittingBuoyOperationUI; import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectUI; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java index 56cab3e..1f2f747 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java @@ -74,6 +74,11 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl }; } + @Override + protected void installFocusTraversalPolicy() { + // rien a installer + } + public void edit(BranchlineDto branchline) { if (log.isInfoEnabled()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java index a9d5ded..f2abcad 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java @@ -24,14 +24,8 @@ package fr.ird.observe.application.swing.ui.content.impl.longline; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; -import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.Form; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionHelper; -import fr.ird.observe.services.dto.result.SaveResultDto; -import fr.ird.observe.services.service.data.longline.SetLonglineGlobalCompositionService; +import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; import fr.ird.observe.application.swing.ui.content.table.impl.longline.BaitsCompositionUI; @@ -42,6 +36,12 @@ import fr.ird.observe.application.swing.ui.content.table.impl.longline.Floatline import fr.ird.observe.application.swing.ui.content.table.impl.longline.FloatlinesCompositionUIModel; import fr.ird.observe.application.swing.ui.content.table.impl.longline.HooksCompositionUI; import fr.ird.observe.application.swing.ui.content.table.impl.longline.HooksCompositionUIModel; +import fr.ird.observe.services.dto.Form; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionHelper; +import fr.ird.observe.services.dto.result.SaveResultDto; +import fr.ird.observe.services.service.data.longline.SetLonglineGlobalCompositionService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; @@ -64,6 +64,11 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong } @Override + protected void installFocusTraversalPolicy() { + // rien a installer + } + + @Override protected boolean computeCanWrite(ObserveSwingDataSource source) { return source.canWriteData(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java index fab54cd..3ecf77c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java @@ -29,8 +29,8 @@ import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; import fr.ird.observe.application.swing.ui.content.ContentUIModel; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.validation.ValidationContext; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; @@ -353,9 +353,9 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto, SetLo SwingValidatorUtil.setValidatorChanged(getUi(), false); - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + NavigationTree treeHelper = getTreeHelper(getUi()); - ObserveNode node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); boolean create = node.getId() == null; if (create) { @@ -363,7 +363,7 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto, SetLo getModel().setMode(ContentMode.UPDATE); // remove old node and recreate new node - ObserveNode parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); DataReference<SetLonglineDto> beanRef = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformDataDtoToReference(getDecoratorService().getReferentialLocale(), bean); node = treeHelper.addSetLongline(parentNode, beanRef); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java index e4335b9..5aea97e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java @@ -28,8 +28,8 @@ import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; import fr.ird.observe.application.swing.ui.content.ContentUIModel; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.result.SaveResultDto; @@ -172,9 +172,9 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, super.afterSave(refresh); FloatingObjectDto bean = getBean(); - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + NavigationTree treeHelper = getTreeHelper(getUi()); - ObserveNode node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); boolean create = node.getId() == null; if (create) { @@ -182,7 +182,7 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, getModel().setMode(ContentMode.UPDATE); // remove old node and recreate new node - ObserveNode parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); DataReference<FloatingObjectDto> beanRef = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformDataDtoToReference(getDecoratorService().getReferentialLocale(), bean); node = treeHelper.addFloatingObject(parentNode, beanRef); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java index ec01a12..8f9de9b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java @@ -29,8 +29,8 @@ import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; import fr.ird.observe.application.swing.ui.content.ContentUIModel; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.constants.seine.SchoolType; @@ -253,16 +253,16 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto, SetSeineUI> SwingValidatorUtil.setValidatorChanged(getUi(), false); - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + NavigationTree treeHelper = getTreeHelper(getUi()); - ObserveNode node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); boolean create = node.getId() == null; if (create) { getModel().setMode(ContentMode.UPDATE); // remove old node and recreate new node - ObserveNode parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); DataReference<SetSeineDto> beanRef = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformDataDtoToReference(getDecoratorService().getReferentialLocale(), bean); node = treeHelper.addSetSeine(parentNode, beanRef); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java index 915a071..31a28c8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java @@ -26,9 +26,9 @@ import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataReference; @@ -94,17 +94,17 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U // on installe un renderer sur la liste pour afficher les couleurs + // icones comme dans l'arbre ListCellRenderer renderer = getUi().getList().getCellRenderer(); - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + NavigationTree treeHelper = getTreeHelper(getUi()); ListCellRenderer renderer2 = new EntityListCellRenderer(renderer, treeHelper); getUi().getList().setCellRenderer(renderer2); } - @Override - protected void addFocusabelOnForm() { - // pas besoin de gérer le focus, pas de formulaire - } +// @Override +// protected void addFocusabelOnForm() { +// // pas besoin de gérer le focus, pas de formulaire +// } @Override public final void openUI() { @@ -190,14 +190,14 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U gotoChild(selectedData); return; } - ObserveNode node = null; + NavigationTreeNodeSupport node = null; if (selectedData != null) { // obtain the node corresponding to the selected data String id = selectedData.getId(); - ObserveTreeHelper helper = getTreeHelper(getUi()); - ObserveNode selectedNode = helper.getSelectedNode(); - node = helper.findNode(selectedNode, id); + NavigationTree helper = getTreeHelper(getUi()); + NavigationTreeNodeSupport selectedNode = helper.getSelectedNode(); + node = helper.getChild(selectedNode, id); } // attach the node to action @@ -231,17 +231,16 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U private final transient ListCellRenderer delegate; - private final transient ObserveTreeHelper treeHelper; + private final transient NavigationTree treeHelper; - private final AbstractObserveTreeCellRenderer treeRenderer; + private final NavigationTreeCellRenderer treeRenderer; - private ThreadLocal<ObserveNode> containerNode = new ThreadLocal<>(); + private final ThreadLocal<NavigationTreeNodeSupport> containerNode = new ThreadLocal<>(); - EntityListCellRenderer(ListCellRenderer delegate, - ObserveTreeHelper treeHelper) { + EntityListCellRenderer(ListCellRenderer delegate, NavigationTree treeHelper) { this.delegate = delegate; this.treeHelper = treeHelper; - this.treeRenderer = treeHelper.getTreeCellRenderer(); + this.treeRenderer = treeHelper.getNavigationCellRenderer(); } public void init() { @@ -264,17 +263,14 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U cellHasFocus ); - if (value == null || - !(value instanceof AbstractReference) || - containerNode.get() == null) { + if (value == null || !(value instanceof AbstractReference) || containerNode.get() == null) { // rien de plus a faire return comp; } // recuperation du noeud correspondant dans l'arbre - ObserveNode node = - treeHelper.findNode(containerNode.get(), ((AbstractReference) value).getId()); + NavigationTreeNodeSupport node = treeHelper.getChild(containerNode.get(), ((AbstractReference) value).getId()); if (node == null) { @@ -282,9 +278,9 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U return comp; } - Icon icon = treeRenderer.getNavigationIcon(node); + Icon icon = node.getIcon(""); comp.setIcon(icon); - Color color = treeRenderer.getNavigationTextColor(node); + Color color = node.getColor(); comp.setForeground(color); comp.setBackground(null); return comp; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java index bb95dae..8b4081d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java @@ -27,10 +27,10 @@ import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.ProgramLonglineNode; -import fr.ird.observe.application.swing.ui.tree.node.ProgramSeineNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; import fr.ird.observe.application.swing.validation.ValidationContext; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -98,7 +98,7 @@ public abstract class ContentOpenableUIHandler<E extends IdDto, U extends Conten updateUiWithReferenceSetsFromModel(); // on repaint le parent (le program devient alors ouvert) - ObserveTreeHelper treeHelper = getTreeHelper(ui); + NavigationTree treeHelper = getTreeHelper(ui); treeHelper.reloadSelectedNode(true, true); // ObserveNode node = treeHelper.getSelectedNode(); // treeHelper.refreshNode(node.getParent(), true); @@ -142,7 +142,7 @@ public abstract class ContentOpenableUIHandler<E extends IdDto, U extends Conten addMessage(ui, NuitonValidatorScope.INFO, getTypeI18nKey(bean.getClass()), t(closeMessage)); - ObserveTreeHelper treeHelper = getTreeHelper(ui); + NavigationTree treeHelper = getTreeHelper(ui); treeHelper.reloadSelectedNode(bean instanceof TripSeineDto || bean instanceof TripLonglineDto, true); updateActions(); } @@ -155,10 +155,10 @@ public abstract class ContentOpenableUIHandler<E extends IdDto, U extends Conten U ui = getUi(); int position = ui.getContextValue(Integer.class, POSITION_OPENABLE); - ObserveTreeHelper treeHelper = getTreeHelper(ui); + NavigationTree treeHelper = getTreeHelper(ui); - ObserveNode node = treeHelper.getSelectedNode(); - ObserveNode parentNode = node.getParent(); + NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport parentNode = node.getParent(); boolean create = node.getId() == null; E bean = getBean(); @@ -233,11 +233,11 @@ public abstract class ContentOpenableUIHandler<E extends IdDto, U extends Conten // création d'une nouvelle donnée - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + NavigationTree treeHelper = getTreeHelper(getUi()); treeHelper.reloadSelectedNode(false, true); - ObserveNode parentNode = treeHelper.getSelectedNode().getParent(); + NavigationTreeNodeSupport parentNode = treeHelper.getSelectedNode().getParent(); if (log.isDebugEnabled()) { log.debug("PARENT NODE = " + parentNode); } @@ -308,9 +308,9 @@ public abstract class ContentOpenableUIHandler<E extends IdDto, U extends Conten return; } - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); - ObserveNode tripNode = treeHelper.getSelectedNode(); - while (!(tripNode instanceof ProgramSeineNode || tripNode instanceof ProgramLonglineNode)) { + NavigationTree treeHelper = getTreeHelper(getUi()); + NavigationTreeNodeSupport tripNode = treeHelper.getSelectedNode(); + while (!(tripNode instanceof ProgramSeineNavigationTreeNode || tripNode instanceof ProgramLonglineNavigationTreeNode)) { tripNode = tripNode.getParent(); } if (log.isInfoEnabled()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java index 23fb43f..597d966 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/ActivityLonglineUIHandler.java @@ -28,7 +28,7 @@ import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIModel; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUIHandler; -import fr.ird.observe.application.swing.ui.tree.loadors.ActivityLonglineNodeChildLoador; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ActivityLonglineNavigationTreeNode; import fr.ird.observe.application.swing.validation.ValidationContext; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; @@ -259,7 +259,7 @@ class ActivityLonglineUIHandler extends ContentOpenableUIHandler<ActivityLonglin // ouverture de l'activité après création getOpenDataManager().openActivityLongline(getSelectedParentId(), bean.getId()); - if (ActivityLonglineNodeChildLoador.FISHING_OPERATION_ID.equals(bean.getVesselActivityLongline().getId())) { + if (ActivityLonglineNavigationTreeNode.FISHING_OPERATION_ID.equals(bean.getVesselActivityLongline().getId())) { // création de l'opération de pêche SwingUtilities.invokeLater(() -> getUi().getAddSet().doClick()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java index 381b4aa..de962a5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/ActivitySeineUIHandler.java @@ -31,6 +31,7 @@ import fr.ird.observe.application.swing.validation.ValidationContext; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; +import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineHelper; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.ActivitySeineHelper; @@ -338,8 +339,7 @@ class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySeineDto, Set<ReferentialReference<VesselActivitySeineDto>> activities = getDataSource().getReferentialReferences(VesselActivitySeineDto.class); for (ReferentialReference<VesselActivitySeineDto> vesselActivity : activities) { - //FIXME Il serait mieux d'utiliser le topiaId - if (ActivitySeineDto.ACTIVITY_FIN_DE_PECHE.equals(vesselActivity.getPropertyValue(VesselActivitySeineDto.PROPERTY_CODE))) { + if (VesselActivitySeineHelper.isActivityPeche(vesselActivity)) { return getDecoratorService().getReferentialReferenceDecorator(VesselActivitySeineDto.class).toString(vesselActivity); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java index 6196f15..63b902b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/seine/RouteUIHandler.java @@ -28,11 +28,12 @@ import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUIHandler; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; +import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineHelper; import fr.ird.observe.services.dto.result.TripChildSaveResultDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; @@ -281,8 +282,8 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> { boolean closeActivityFinDeVeille = false; boolean gotoActivityFinDeVeille = false; - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); - ObserveNode routeNode = treeHelper.getSelectedNode(); + NavigationTree treeHelper = getTreeHelper(getUi()); + NavigationTreeNodeSupport routeNode = treeHelper.getSelectedNode(); if (mustAddFinVeille) { @@ -361,11 +362,11 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> { private ActivitySeineUI addActivityFinDeVeille(boolean close) { - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + NavigationTree treeHelper = getTreeHelper(getUi()); // on créee l'activity de fin de veille - ObserveNode parentNode = treeHelper.getSelectedNode(); - parentNode = treeHelper.findNode(parentNode, ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class)); + NavigationTreeNodeSupport parentNode = treeHelper.getSelectedNode(); + parentNode = treeHelper.getChild(parentNode, ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class)); if (log.isDebugEnabled()) { log.debug("PARENT NODE = " + parentNode); } @@ -379,7 +380,7 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> { for (ReferentialReference<VesselActivitySeineDto> refVesselActivity : selectedUI.getVesselActivitySeine().getData()) { - if (ActivitySeineDto.ACTIVITY_FIN_DE_VEILLE.equals(refVesselActivity.getPropertyValue(VesselActivitySeineDto.PROPERTY_CODE))) { + if (VesselActivitySeineHelper.isActivityFinDeVeille(refVesselActivity)) { vesselActivitySeine = refVesselActivity; break; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java index c0b7fa5..1e713aa 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ref/ContentReferenceUIHandler.java @@ -30,7 +30,7 @@ import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferen import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; import fr.ird.observe.application.swing.ui.usage.UsagesUI; import fr.ird.observe.application.swing.validation.ValidationContext; import fr.ird.observe.services.dto.Form; @@ -637,7 +637,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto, U extends Conte if (bean instanceof ProgramDto) { // add the program in tree - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + NavigationTree treeHelper = getTreeHelper(getUi()); ReferentialReference<ProgramDto> reference = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformReferentialDtoToReference(getDecoratorService().getReferentialLocale(), (ProgramDto) bean); treeHelper.addProgram(reference); @@ -712,7 +712,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto, U extends Conte if (bean instanceof ProgramDto) { // update the program in tree - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + NavigationTree treeHelper = getTreeHelper(getUi()); treeHelper.updateProgram((ProgramDto) bean); } @@ -795,7 +795,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto, U extends Conte if (bean instanceof ProgramDto) { // remove the program in tree - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + NavigationTree treeHelper = getTreeHelper(getUi()); treeHelper.removeProgram(bean.getId()); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java index 097684e..71d9bbb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java @@ -30,7 +30,7 @@ import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; import fr.ird.observe.application.swing.ui.content.ContentUIModel; import fr.ird.observe.application.swing.ui.content.table.impl.longline.WeightMeasuresTableModel; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.util.table.EditableTableModelSupport; import fr.ird.observe.application.swing.ui.util.table.InlineTableAutotSelectRowAndShowPopupAction; import fr.ird.observe.services.dto.IdDto; @@ -219,10 +219,8 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U uiInitializer.initUI(); getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM, evt -> updateUiWithReferenceSetsFromModel()); - getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_MODE, evt -> updateFocusable((ContentMode) evt.getNewValue())); - updateFocusable(ContentMode.READ); - ObserveSwingApplicationContext.get().getFocusManager().installFocusTraversalPolicy(ui); + installFocusTraversalPolicy(); } @@ -284,9 +282,8 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U protected void addUpdateInfoMessage() { String message = n("observe.entity.message.updating"); - ObserveNode node = getTreeHelper(getUi()).getSelectedNode(); - String entityLabel = - getTypeI18nKey(node.getParent().getInternalClass()); + NavigationTreeNodeSupport node = getTreeHelper(getUi()).getSelectedNode(); + String entityLabel = getTypeI18nKey(node.getParent().getDataType()); message = t(message, t(entityLabel)); addMessage(getUi(), NuitonValidatorScope.INFO, entityLabel, message); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java index 644a4d1..3f152b8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BaitsCompositionUIHandler.java @@ -53,6 +53,11 @@ public class BaitsCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override + protected void installFocusTraversalPolicy() { + // rien a installer + } + + @Override protected void onSelectedRowChanged(int editingRow, BaitsCompositionDto bean, boolean create) { if (getTableModel().isEditable()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java index 852d0a1..2dec127 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java @@ -53,6 +53,11 @@ public class BranchlinesCompositionUIHandler extends ContentTableUIHandler<SetLo } @Override + protected void installFocusTraversalPolicy() { + // rien a installer + } + + @Override protected void onSelectedRowChanged(int editingRow, BranchlinesCompositionDto bean, boolean create) { if (getTableModel().isEditable()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java index 3146d7a..58ddda8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -33,9 +33,9 @@ import fr.ird.observe.application.swing.ui.content.ContentUIInitializer; import fr.ird.observe.application.swing.ui.content.ContentUIModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.TripLonglineNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.TripLonglineNavigationTreeNode; import fr.ird.observe.application.swing.ui.util.table.AutotSelectRowAndShowPopupActionSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; @@ -146,6 +146,8 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat CatchLonglineContentTableUIInitializer uiInitializer = new CatchLonglineContentTableUIInitializer(getUi()); uiInitializer.initUI(); + installFocusTraversalPolicy(); + getModel().addPropertyChangeListener(CatchLonglineUIModel.PROPERTY_SHOW_INDIVIDUAL_TABS, evt -> { Boolean newValue = (Boolean) evt.getNewValue(); showIndividualTabs(newValue); @@ -417,15 +419,12 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat // go back to first pane ui.getFishingOperationTabPane().setSelectedIndex(0); - // select by default individual acquisition mode -// String openTripLonglineId = getDataContext().getOpenTripLonglineId(); - - ObserveTreeHelper treeHelper = ObserveSwingApplicationContext.get().getMainUI().getTreeHelper(); - ObserveNode selectedNode = treeHelper.getSelectedNode(); - while (!(selectedNode instanceof TripLonglineNode)) { + NavigationTree treeHelper = getTreeHelper(ui); + NavigationTreeNodeSupport selectedNode = treeHelper.getSelectedNode(); + while (!(selectedNode instanceof TripLonglineNavigationTreeNode)) { selectedNode = selectedNode.getParent(); } - DataReference<TripLonglineDto> tripReference = ((TripLonglineNode) selectedNode).getEntity(); + DataReference<TripLonglineDto> tripReference = ((TripLonglineNavigationTreeNode) selectedNode).getData(); String tripTypeId = (String) tripReference.getPropertyValue(TripLonglineDto.PROPERTY_TRIP_TYPE + "Id"); if (log.isInfoEnabled()) { log.info("Use tripId: " + tripTypeId); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java index 56b3624..beed1eb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java @@ -52,6 +52,11 @@ public class FloatlinesCompositionUIHandler extends ContentTableUIHandler<SetLon } @Override + protected void installFocusTraversalPolicy() { + // rien a installer + } + + @Override protected void onSelectedRowChanged(int editingRow, FloatlinesCompositionDto bean, boolean create) { if (getTableModel().isEditable()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java index 266d1e8..4c942b7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/HooksCompositionUIHandler.java @@ -55,6 +55,11 @@ public class HooksCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override + protected void installFocusTraversalPolicy() { + // rien a installer + } + + @Override protected void onSelectedRowChanged(int editingRow, HooksCompositionDto bean, boolean create) { if (getTableModel().isEditable()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/ObstunaAdminAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/ObstunaAdminAction.java index 78262ba..801e903 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/ObstunaAdminAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/ObstunaAdminAction.java @@ -27,11 +27,11 @@ import fr.ird.observe.application.swing.I18nEnumHelper; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.constants.DbMode; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; -import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.ObserveDbUserDto; @@ -103,18 +103,7 @@ public enum ObstunaAdminAction { protected void initTask(StorageUIModel model) throws Exception { - if (DbMode.USE_REMOTE.equals(model.getDbMode())) { - ObserveDataSourceConfigurationTopiaPG pgConfig = model.getPgConfig(); - - // pas autorise a migrer automatiquement - pgConfig.setCanMigrate(false); - - dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(pgConfig); - } else { - ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - - dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(restConfig); - } + dataSource = ObstunaAdminAction.getDataSource(model); createConfigurationDto = model.toImportReferentielSourceConfig(); @@ -143,7 +132,7 @@ public enum ObstunaAdminAction { checkImportDbVersion(model, importDataConfig.getConfiguration()); - DataSelectionModel dataModel = model.getSelectDataModel(); + SelectionTreeModel dataModel = model.getSelectDataModel(); ImmutableSet<String> importDataIds = ImmutableSet.copyOf( dataModel.getSelectedData() @@ -268,22 +257,8 @@ public enum ObstunaAdminAction { @Override protected void initTask(StorageUIModel model) throws Exception { - - if (DbMode.USE_REMOTE.equals(model.getDbMode())) { - ObserveDataSourceConfigurationTopiaPG pgConfig = model.getPgConfig(); - - // pas autorise a migrer automatiquement - pgConfig.setCanMigrate(false); - - dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(pgConfig); - } else { - ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); - - dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(restConfig); - } - + dataSource = ObstunaAdminAction.getDataSource(model); users = model.getSecurityModel().getUsers(); - } @Override @@ -320,4 +295,22 @@ public enum ObstunaAdminAction { public String toString() { return I18nEnumHelper.getLabel(this); } + + private static ObserveSwingDataSource getDataSource(StorageUIModel model) { + ObserveSwingDataSource dataSource; + + if (DbMode.USE_REMOTE.equals(model.getDbMode())) { + ObserveDataSourceConfigurationTopiaPG pgConfig = model.getPgConfig(); + + // pas autorise a migrer automatiquement + pgConfig.setCanMigrate(false); + + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(pgConfig); + } else { + ObserveDataSourceConfigurationRest restConfig = model.getRestConfig(); + + dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(restConfig); + } + return dataSource; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java index 099a2d8..865f650 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java @@ -25,7 +25,7 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ObserveSwingTechnicalException; import fr.ird.observe.application.swing.configuration.constants.DbMode; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; @@ -57,15 +57,10 @@ import java.util.Objects; */ public class StorageBackupUILauncher extends StorageUILauncher { - - /** - * Logger - */ + /** Logger */ private static final Log log = LogFactory.getLog(StorageBackupUILauncher.class); - public StorageBackupUILauncher(JAXXContext context, - Window frame, - String title) { + public StorageBackupUILauncher(JAXXContext context, Window frame, String title) { super(context, frame, title); } @@ -98,7 +93,7 @@ public class StorageBackupUILauncher extends StorageUILauncher { // Selection des données uniquement pour une base locale // Voir https://forge.codelutin.com/issues/7207 boolean selectAllData = model.isLocal(); - getStorageUIHandler().initSelectData(ui, source, selectAllData); + model.setSelectAll(selectAllData); } catch (Exception e) { if (log.isErrorEnabled()) { @@ -120,13 +115,14 @@ public class StorageBackupUILauncher extends StorageUILauncher { ObserveSwingDataSource sourceToBackup = localSource; try { - DataSelectionModel dataModel = storageModel.getSelectDataModel(); - Map<ReferentialReference<ProgramDto>, List<DataReference>> tripsByProgram; - if (dataModel != null && !dataModel.isDataFull()) { -// // on renseigne les marees a exporter uniquement si -// // on en a selectionner, de plus si on a selectionne -// // toutes les marees, on le les passe pas : car c un dump -// // complet de la base. + SelectionTreeModel dataModel = storageModel.getSelectDataModel(); + Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> tripsByProgram; + if (!dataModel.isDataFull()) { + + // on renseigne les marees a exporter uniquement si + // on en a selectionner, de plus si on a selectionne + // toutes les marees, on le les passe pas : car c un dump + // complet de la base. tripsByProgram = dataModel.getSelectedDataByProgram(); @@ -144,7 +140,7 @@ public class StorageBackupUILauncher extends StorageUILauncher { TripManagementService tmpManagementService = sourceToBackup.newTripManagementService(); - for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference>> entry : tripsByProgram.entrySet()) { + for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference<?>>> entry : tripsByProgram.entrySet()) { for (DataReference trip : entry.getValue()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java index ec9eaeb..c88124d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java @@ -22,7 +22,6 @@ package fr.ird.observe.application.swing.ui.storage; import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableSet; import fr.ird.observe.application.swing.I18nEnumHelper; import fr.ird.observe.application.swing.ObserveActionExecutor; import fr.ird.observe.application.swing.ObserveRunner; @@ -39,16 +38,16 @@ import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceListenerA import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.UIHelper; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.application.swing.ui.storage.tabs.RolesTableModel; import fr.ird.observe.application.swing.ui.storage.tabs.SecurityModel; +import fr.ird.observe.application.swing.ui.storage.tabs.SelectDataUI; import fr.ird.observe.application.swing.ui.storage.tabs.StorageTabUI; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; -import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.ObserveDbUserDto; import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; @@ -56,18 +55,18 @@ import fr.ird.observe.services.service.sql.SqlScriptProducerService; import jaxx.runtime.context.DefaultApplicationContext.AutoLoad; import jaxx.runtime.swing.wizard.WizardUILancher; import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTabbedPane; +import javax.swing.SwingUtilities; import java.awt.Component; import java.awt.Window; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.util.Objects; import java.util.Set; -import java.util.stream.Collectors; import static org.nuiton.i18n.I18n.t; @@ -206,6 +205,8 @@ public class StorageUIHandler { // on demarre le modele pour le type de base connu ui.getModel().start(ui.getModel().getDbMode()); + ui.setSize(800, 600); + // centrage sur la frame parent UIHelper.center(ui.getContextValue(Window.class, "parent"), ui); @@ -252,13 +253,8 @@ public class StorageUIHandler { if (StorageStep.SELECT_DATA == newStep && mustRecompute) { - if (ObstunaAdminAction.CREATE == ui.getModel().getAdminAction() - && (model.getSelectDataModel() == null || model.getSelectDataModel().isEmpty())) { - - // récupération des données possibles à importer - initSelectData(ui); - - } + // récupération des données possibles à importer + initSelectData(ui); } @@ -370,6 +366,8 @@ public class StorageUIHandler { localDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(localConfiguration); } + Objects.requireNonNull(localDataSource); + // Let's check if the datasource is opened or not : // we could have close the datasource through the ui // If the datasource is closed, we try to open it @@ -403,6 +401,9 @@ public class StorageUIHandler { UIHelper.handlingError(e); return; } + + Objects.requireNonNull(localDataSource); + // effectue la backup de la base locale existante File f = model.getBackupFile(); if (log.isDebugEnabled()) { @@ -465,7 +466,7 @@ public class StorageUIHandler { localDataSource.close(); } - localDataSource = null; +// localDataSource = null; if (log.isDebugEnabled()) { log.debug("Will create new storage..."); @@ -535,7 +536,7 @@ public class StorageUIHandler { } } if (log.isInfoEnabled()) { - log.info(">>> create initial dump with " + localDataSource + " in " + f); + log.info(">>> create initial dump with " + currentDataSource + " in " + f); } try { SqlScriptProducerService dumpProducerService = observeContext.getMainDataSourceServicesProvider().newSqlScriptProducerService(); @@ -638,60 +639,60 @@ public class StorageUIHandler { } } - /** - * Effectue une sauvegarde d'un service de persitances vers le fichier - * choisi. - * - * On peut spécifier les donnéees à exporter via le paramètre {@code - * marees}. - * - * <b>Note:</b> Si ce paramètre vaut {@code null}, on export tout. - * - * @param dataSource la source de donnée qui encapsule la base locale - * @param dst le fichier de sauvegarde - * @param trips les marees a exporter (si {@code null} on exporte tout) - */ - public void backupLocalDatabase(ObserveSwingDataSource dataSource, - File dst, - Set<DataReference> trips) { - - SqlScriptProducerService dumpService = dataSource.newSqlScriptProducerService(); - - - if (trips == null) { - if (log.isInfoEnabled()) { - log.info("will export all datas."); - } - backupLocalDatabase(dumpService, dst); - return; - } - if (dst == null) { - throw new IllegalArgumentException( - "file where to backup can not be null"); - } - if (log.isInfoEnabled()) { - log.info("will export " + trips.size() + " marees to " + dst); - } - if (log.isDebugEnabled()) { - log.debug(trips); - } - - // on doit dumper la base distante dans une base h2 et en faire - // la sauvegarde - - ImmutableSet<String> tripIds = ImmutableSet.copyOf(trips.stream().map(DataReference.ID_FUNCTION).collect(Collectors.toSet())); - - AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().dataIdsToAdd(tripIds); - byte[] dump = dumpService.produceAddSqlScript(request).getSqlCode(); - - try (FileOutputStream fileOutputStream = new FileOutputStream(dst)) { - - IOUtils.write(dump, fileOutputStream); - - } catch (IOException e) { - UIHelper.handlingError(e); - } - } +// /** +// * Effectue une sauvegarde d'un service de persitances vers le fichier +// * choisi. +// * +// * On peut spécifier les donnéees à exporter via le paramètre {@code +// * marees}. +// * +// * <b>Note:</b> Si ce paramètre vaut {@code null}, on export tout. +// * +// * @param dataSource la source de donnée qui encapsule la base locale +// * @param dst le fichier de sauvegarde +// * @param trips les marees a exporter (si {@code null} on exporte tout) +// */ +// public void backupLocalDatabase(ObserveSwingDataSource dataSource, +// File dst, +// Set<DataReference> trips) { +// +// SqlScriptProducerService dumpService = dataSource.newSqlScriptProducerService(); +// +// +// if (trips == null) { +// if (log.isInfoEnabled()) { +// log.info("will export all datas."); +// } +// backupLocalDatabase(dumpService, dst); +// return; +// } +// if (dst == null) { +// throw new IllegalArgumentException( +// "file where to backup can not be null"); +// } +// if (log.isInfoEnabled()) { +// log.info("will export " + trips.size() + " marees to " + dst); +// } +// if (log.isDebugEnabled()) { +// log.debug(trips); +// } +// +// // on doit dumper la base distante dans une base h2 et en faire +// // la sauvegarde +// +// ImmutableSet<String> tripIds = ImmutableSet.copyOf(trips.stream().map(DataReference.ID_FUNCTION).collect(Collectors.toSet())); +// +// AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().dataIdsToAdd(tripIds); +// byte[] dump = dumpService.produceAddSqlScript(request).getSqlCode(); +// +// try (FileOutputStream fileOutputStream = new FileOutputStream(dst)) { +// +// IOUtils.write(dump, fileOutputStream); +// +// } catch (IOException e) { +// UIHelper.handlingError(e); +// } +// } public String computeReport(StorageUI ui, StorageStep step) { if (log.isDebugEnabled()) { @@ -725,61 +726,67 @@ public class StorageUIHandler { return ObserveSwingApplicationContext.get().getDecoratorService(); } - public void initSelectData(StorageUI ui, ObserveSwingDataSource source, boolean selectAll) { + protected void initSelectData(StorageUI ui) { StorageUIModel model = ui.getModel(); - try { - - Preconditions.checkState(source != null, "Can't select data on a null dataSource"); - - DataSelectionModel dataModel = new DataSelectionModel(); - dataModel.setUseData(true); - dataModel.setUseOpenData(true); - dataModel.setUseReferentiel(false); - DataSelectionModel.populate(dataModel, source); + boolean closeSource = true; + try { - if (selectAll) { + // Creation de la data source de lecture des données à sélectionner + ObserveSwingDataSource importDataSource; - dataModel.addAllSelectedData(); + if (ObstunaAdminAction.CREATE == model.getAdminAction()) { + importDataSource = model.toImportDataSourceConfig(); + } else { + importDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); + closeSource = false; } - // positionnement du model de selection de données - // dans le model du wizard - model.setSelectDataModel(dataModel); + Preconditions.checkState(importDataSource != null, "Can't select data on a null dataSource"); - // initialisation de l'ui dedié - ui.getSELECT_DATA().initTree(source); + try { - } catch (Exception e) { - throw new RuntimeException("Could not grab data to select", e); - } + if (closeSource) { - } + importDataSource.open(); + model.checkImportDbVersion(importDataSource); - protected void initSelectData(StorageUI ui) { + } - StorageUIModel model = ui.getModel(); + SelectDataUI selectDataUI = (SelectDataUI) ui.getStepUI(StorageStep.SELECT_DATA); + SelectionTreeModel treeModel = selectDataUI.getSelectTree().getTreeModel(); - try { + treeModel.setLoadLongline(true); + treeModel.setLoadSeine(true); + treeModel.setUseOpenData(true); + treeModel.setLoadReferential(false); + treeModel.setShowEmptyTrips(false); - // Creation de la data source de lecture des données à sélectionner - ObserveSwingDataSource importDataSource = model.toImportDataSourceConfig(); + treeModel.populate(importDataSource); - Preconditions.checkState(importDataSource != null, "Can't select data on a null dataSource"); + boolean selectAll = model.isSelectAll(); - try { + if (selectAll) { + treeModel.selectAllTrips(); + SwingUtilities.invokeLater(() -> selectDataUI.getSelectTree().expandAll()); + } - importDataSource.open(); + // positionnement du model de selection de données dans le model du wizard + model.setSelectDataModel(treeModel); - model.checkImportDbVersion(importDataSource); + if (selectAll) { + treeModel.selectAllTrips(); + SwingUtilities.invokeLater(() -> selectDataUI.getSelectTree().expandAll()); + } - initSelectData(ui, importDataSource, false); } finally { - importDataSource.close(); + if (closeSource) { + importDataSource.close(); + } } } catch (Exception e) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java index 68f1269..6bf33c8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java @@ -242,7 +242,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param mainUI la fenetre principale parent (peut etre null) * @param model le modèle de source de données à utiliser * @param title le titre de la fenêtre - * @param model le type deconnexion (base distante ou serveur distant) + * @param dbMode le type deconnexion (base distante ou serveur distant) * @see StorageUI */ public static void obtainConnexion(final JAXXContext context, @@ -317,102 +317,102 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod launcher.start(); } - /** - * Méthode pour lancer l'action de connexion à une base locale. - * - * @param context le context applicatif - * @param mainUI la fenetre principale parent (peut etre null) - * @param model le modèle de source de données à utiliser - * @see StorageUI - */ - public static void obtainLocalConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model) { - - if (mainUI == null) { - mainUI = ObserveSwingApplicationContext.get().getMainUI(); - } - - addStorageUIHandler(context); - - StorageUILauncher launcher = new StorageUILauncher( - context, - mainUI, - model, - t("observe.title.connect.localDB")) { - - @Override - protected StorageUI createUI(JAXXContext context, - Window mainUI, - Class<StorageUI> storageUIClass, - Class<StorageUIModel> modelClass, - StorageUIModel model) throws Exception { - if (!(mainUI instanceof JAXXObject)) { - // sinon on a pas de context propagé... - mainUI = null; - } - return super.createUI(context, mainUI, storageUIClass, modelClass, model); - } - - @Override - protected void init(StorageUI ui) { - StorageUIModel model = ui.getModel(); - - int nbModes = 0; - - DbMode mode = null; - if (model.isCanCreateLocalService()) { - nbModes++; - mode = DbMode.CREATE_LOCAL; - } - if (model.isCanUseLocalService()) { - nbModes++; - mode = DbMode.USE_LOCAL; - } - if (model.isCanUseRemoteService()) { - nbModes++; - mode = DbMode.USE_REMOTE; - } - if (model.isCanUseServerService()) { - nbModes++; - mode = DbMode.USE_SERVER; - } - - if (nbModes == 1) { - - if (log.isDebugEnabled()) { - log.debug("Only one mode available [" + mode + - "], set it in model"); - } - - // un seul mode possible, on le sélectionne - model.setDbMode(mode); - } - - // on supprime des étapes - model.setExcludeSteps(Arrays.asList( - StorageStep.BACKUP, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.SELECT_DATA, - StorageStep.CONFIRM)); - - model.updateUniverse(); - } - - @Override - protected void doAction(StorageUI ui) { - super.doAction(ui); - if (log.isDebugEnabled()) { - log.debug("Apply new local connexion to " + model); - } - ui.getModel().copyTo(model); - model.validate(); - } - }; - - launcher.start(); - } +// /** +// * Méthode pour lancer l'action de connexion à une base locale. +// * +// * @param context le context applicatif +// * @param mainUI la fenetre principale parent (peut etre null) +// * @param model le modèle de source de données à utiliser +// * @see StorageUI +// */ +// public static void obtainLocalConnexion(final JAXXContext context, +// Window mainUI, +// final StorageUIModel model) { +// +// if (mainUI == null) { +// mainUI = ObserveSwingApplicationContext.get().getMainUI(); +// } +// +// addStorageUIHandler(context); +// +// StorageUILauncher launcher = new StorageUILauncher( +// context, +// mainUI, +// model, +// t("observe.title.connect.localDB")) { +// +// @Override +// protected StorageUI createUI(JAXXContext context, +// Window mainUI, +// Class<StorageUI> storageUIClass, +// Class<StorageUIModel> modelClass, +// StorageUIModel model) throws Exception { +// if (!(mainUI instanceof JAXXObject)) { +// // sinon on a pas de context propagé... +// mainUI = null; +// } +// return super.createUI(context, mainUI, storageUIClass, modelClass, model); +// } +// +// @Override +// protected void init(StorageUI ui) { +// StorageUIModel model = ui.getModel(); +// +// int nbModes = 0; +// +// DbMode mode = null; +// if (model.isCanCreateLocalService()) { +// nbModes++; +// mode = DbMode.CREATE_LOCAL; +// } +// if (model.isCanUseLocalService()) { +// nbModes++; +// mode = DbMode.USE_LOCAL; +// } +// if (model.isCanUseRemoteService()) { +// nbModes++; +// mode = DbMode.USE_REMOTE; +// } +// if (model.isCanUseServerService()) { +// nbModes++; +// mode = DbMode.USE_SERVER; +// } +// +// if (nbModes == 1) { +// +// if (log.isDebugEnabled()) { +// log.debug("Only one mode available [" + mode + +// "], set it in model"); +// } +// +// // un seul mode possible, on le sélectionne +// model.setDbMode(mode); +// } +// +// // on supprime des étapes +// model.setExcludeSteps(Arrays.asList( +// StorageStep.BACKUP, +// StorageStep.CONFIG_REFERENTIEL, +// StorageStep.CONFIG_DATA, +// StorageStep.SELECT_DATA, +// StorageStep.CONFIRM)); +// +// model.updateUniverse(); +// } +// +// @Override +// protected void doAction(StorageUI ui) { +// super.doAction(ui); +// if (log.isDebugEnabled()) { +// log.debug("Apply new local connexion to " + model); +// } +// ui.getModel().copyTo(model); +// model.validate(); +// } +// }; +// +// launcher.start(); +// } /** * Méthode pour lancer l'action de connexion à une base locale ou distante. @@ -422,9 +422,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param model le modèle de source de données à utiliser * @see StorageUI */ - public static void obtainConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model) { + public static void obtainConnexion(JAXXContext context, Window mainUI, StorageUIModel model) { if (mainUI == null) { mainUI = ObserveSwingApplicationContext.get().getMainUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java index 108d5dd..ade4992 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java @@ -21,7 +21,6 @@ */ package fr.ird.observe.application.swing.ui.storage; -import fr.ird.observe.application.swing.I18nEnumHelper; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ObserveSwingApplicationDataSourcesManager; import fr.ird.observe.application.swing.ObserveSwingTechnicalException; @@ -30,13 +29,13 @@ import fr.ird.observe.application.swing.configuration.constants.CreationMode; import fr.ird.observe.application.swing.configuration.constants.DbMode; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.constants.ConnexionStatus; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.application.swing.ui.storage.tabs.SecurityModel; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; -import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; @@ -48,17 +47,18 @@ import fr.ird.observe.services.security.UnknownObserveWebUserException; import fr.ird.observe.services.security.UnknownObserveWebUserForDatabaseException; import fr.ird.observe.services.security.UserLoginNotFoundException; import fr.ird.observe.services.security.UserPasswordNotFoundException; -import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.PingService; +import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.SqlScriptProducerService; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.wizard.WizardModel; import jaxx.runtime.swing.wizard.WizardUILancher; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.version.Version; @@ -201,7 +201,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { protected boolean canUseServerService = true; /** le modèle de sélection de données (utilisé pour les exports) */ - protected DataSelectionModel selectDataModel; + protected SelectionTreeModel selectDataModel; /** le modèle de sécurité (utilisé pour la mise à jour sécurité sur base distante) */ protected SecurityModel securityModel; @@ -254,6 +254,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { * @since 3.6 */ protected CreationMode dataImportMode; + private boolean selectAll; public StorageUIModel() { super(StorageStep.class, @@ -261,7 +262,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { StorageStep.BACKUP, StorageStep.CONFIRM ); - selectDataModel = new DataSelectionModel(); securityModel = new SecurityModel(); connexionStatus = ConnexionStatus.UNTESTED; @@ -345,7 +345,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { return; } - StorageUIHandler storageUIHandler = context.getContextValue(StorageUIHandler.class); +// StorageUIHandler storageUIHandler = context.getContextValue(StorageUIHandler.class); // ajout paramétrage depuis la configuration @@ -426,22 +426,10 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("no service found, using default configuration"); } - DbMode newDbMode = config.getDefaultDbMode(); - if (getAdminAction() != null) { + Pair<CreationMode, DbMode> modes = computeModes(config); + mode = modes.getLeft(); + DbMode newDbMode = modes.getRight(); - // une action d'admin obstuna toujours sur base distante - newDbMode = DbMode.USE_REMOTE; - } else { - if (isCanUseLocalService()) { - mode = null; - } else if (isCanCreateLocalService()) { - mode = CreationMode.IMPORT_EXTERNAL_DUMP; - } else if (isCanUseRemoteService()) { - mode = CreationMode.IMPORT_REMOTE_STORAGE; - } else if (isCanUseServerService()) { - mode = CreationMode.IMPORT_SERVER_STORAGE; - } - } if (log.isDebugEnabled()) { log.debug("Will use creationMode : " + mode); } @@ -453,34 +441,21 @@ public class StorageUIModel extends WizardModel<StorageStep> { * La méthode pour initialiser le modèle à partir du context applicatif et * d'une configuration de source de donnée existante. * - * @param context le context applicatif * @param previousConfig la configuration de service existant * @since 2.0 */ - public void initFromPreviousConfig(JAXXContext context, - ObserveDataSourceConfiguration previousConfig, + public void initFromPreviousConfig(ObserveDataSourceConfiguration previousConfig, ObserveDataSourceInformation previousInfo) { Objects.requireNonNull(previousConfig, "previousConfig parameter can not be null in method initFromPreviousConfig"); ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); - StorageUIHandler storageUIHandler = context.getContextValue(StorageUIHandler.class); - // ajout paramétrage depuis la configuration boolean isLocalStorageExist = config.isLocalStorageExist(); setLocalStorageExist(isLocalStorageExist); - if (log.isDebugEnabled()) { - log.debug("Local storage exists ? " + isLocalStorageExist()); - log.debug("can use local storage ? " + isCanUseLocalService()); - log.debug("can create local storage ? " + isCanCreateLocalService()); - log.debug("can use remote storage ? " + isCanUseRemoteService()); - log.debug("can use server storage ? " + isCanUseServerService()); - log.debug("previous service ? " + previousConfig); - } - setStoreRemoteConfig(config.isStoreRemoteStorage()); setBackupFile(config.newBackupDataFile()); setDumpFile(config.getBackupDirectory()); @@ -560,8 +535,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("canMigrate ? " + isCanMigrate()); } - CreationMode mode = config.getDefaultCreationMode(); - if (log.isDebugEnabled()) { log.debug("no service found, using default configuration"); } @@ -577,12 +550,27 @@ public class StorageUIModel extends WizardModel<StorageStep> { pgConfig = dataSourcesManager.newPGDataSourceConfiguration(config, t("observe.storage.label.remote")); restConfig = dataSourcesManager.newRestDataSourceConfiguration(config, t("observe.storage.label.server")); - DbMode newDbMode = config.getDefaultDbMode(); + Pair<CreationMode, DbMode> modes = computeModes(config); + CreationMode mode = modes.getLeft(); + DbMode newDbMode = modes.getRight(); + + if (log.isDebugEnabled()) { + log.debug("Will use creationMode : " + mode); + } + setDbMode(newDbMode); + setCreationMode(mode); + } + + protected Pair<CreationMode, DbMode> computeModes(ObserveSwingApplicationConfig config) { + DbMode newDbMode; + + CreationMode mode = config.getDefaultCreationMode(); if (getAdminAction() != null) { // une action d'admin obstuna toujours sur base distante newDbMode = DbMode.USE_REMOTE; } else { + newDbMode = config.getDefaultDbMode(); if (isCanUseLocalService()) { mode = null; } else if (isCanCreateLocalService()) { @@ -593,11 +581,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { mode = CreationMode.IMPORT_SERVER_STORAGE; } } - if (log.isDebugEnabled()) { - log.debug("Will use creationMode : " + mode); - } - setDbMode(newDbMode); - setCreationMode(mode); + + return Pair.of(mode, newDbMode); } protected void startCentralSourceModel() { @@ -726,15 +711,15 @@ public class StorageUIModel extends WizardModel<StorageStep> { return adminAction; } - public String getAdminActionLabel() { - return I18nEnumHelper.getLabel(getAdminAction()); - } +// public String getAdminActionLabel() { +// return I18nEnumHelper.getLabel(getAdminAction()); +// } - public DataSelectionModel getSelectDataModel() { + public SelectionTreeModel getSelectDataModel() { return selectDataModel; } - public void setSelectDataModel(DataSelectionModel selectDataModel) { + public void setSelectDataModel(SelectionTreeModel selectDataModel) { this.selectDataModel = selectDataModel; } @@ -1086,10 +1071,10 @@ public class StorageUIModel extends WizardModel<StorageStep> { } public boolean isUseSelectData() { - return getSteps() != null && - getSteps().contains(StorageStep.SELECT_DATA); + return getSteps() != null && getSteps().contains(StorageStep.SELECT_DATA); } + // Ne pas supprimer, utilise dans des templates public boolean isBackupAction() { return getSteps() != null && getStepIndex(StorageStep.BACKUP) == 0; } @@ -1160,6 +1145,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { return ObserveSwingApplicationContext.get().getConfig().getModelVersion(); } + // ne pas supprimer utiliser dans les templates public File getInitialDbDump() { return ObserveSwingApplicationContext.get().getConfig().getInitialDbDump(); } @@ -1402,9 +1388,9 @@ public class StorageUIModel extends WizardModel<StorageStep> { return serverUrl; } - protected void setServerUrl(String serverUrl) { - this.serverUrl = serverUrl; - } +// protected void setServerUrl(String serverUrl) { +// this.serverUrl = serverUrl; +// } public boolean isUseSsl() { return pgConfig.isUseSsl(); @@ -1797,6 +1783,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.error("Error in test remote", e); } + setConnexionStatus(null); setConnexionStatus(ConnexionStatus.FAILED); } finally { @@ -1813,7 +1800,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { return result; } - + // ne pas supprimer, utilisé dans les templates public String getConnexionStatusError() { return connexionStatusError; } @@ -2066,4 +2053,12 @@ public class StorageUIModel extends WizardModel<StorageStep> { dumpFile.exists() && dumpFile.getName().endsWith(".sql.gz"); } + + public boolean isSelectAll() { + return selectAll; + } + + public void setSelectAll(boolean selectAll) { + this.selectAll = selectAll; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ChooseDbModeUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ChooseDbModeUI.jcss index 2920282..6909e3c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ChooseDbModeUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ChooseDbModeUI.jcss @@ -84,7 +84,7 @@ #importInternalDumpMode { value:{CreationMode.IMPORT_INTERNAL_DUMP}; - text:{getHandler().updateInternalDumpModeLabel(ChooseDbModeUI.this, config.isInitialDumpExist())}; + text:{getHandler().updateInternalDumpModeLabel(config.isInitialDumpExist())}; visible:{getHandler().updateCreationModeLayout(ChooseDbModeUI.this, config.isInitialDumpExist(), importInternalDumpMode)}; selected:{model.getCreationMode() == CreationMode.IMPORT_INTERNAL_DUMP}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/DataSelectionModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/DataSelectionModel.java deleted file mode 100644 index c1c5841..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/DataSelectionModel.java +++ /dev/null @@ -1,619 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.storage.tabs; - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.AbstractReference; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramHelper; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialHelper; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.longline.TripLonglineService; -import fr.ird.observe.services.service.data.seine.TripSeineService; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - -import static com.google.common.collect.Lists.newArrayList; - -/** - * Un modèle pour représenter la sélection de données. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class DataSelectionModel implements Serializable { - - public static void populate(DataSelectionModel model, ObserveSwingDataSource source) { - - Preconditions.checkState(source.isOpen()); - - Map<ReferentialReference<ProgramDto>, List<DataReference>> datas = Maps.newHashMap(); - - TripSeineService tripSeineService = source.newTripSeineService(); - TripLonglineService tripLonglineService = source.newTripLonglineService(); - - Set<ReferentialReference<ProgramDto>> programSet = source.getReferentialReferences(ProgramDto.class); - - for (ReferentialReference<ProgramDto> program : programSet) { - - List<DataReference> referenceHelper = newArrayList(); - - if (ProgramHelper.isProgramSeine(program)) { - - DataReferenceSet<TripSeineDto> tripSeineRef = tripSeineService.getTripSeineByProgram(program.getId()); - referenceHelper.addAll(tripSeineRef.getReferences()); - - } else if (ProgramHelper.isProgramLongline(program)) { - - DataReferenceSet<TripLonglineDto> tripLonglineRef = tripLonglineService.getTripLonglineByProgram(program.getId()); - referenceHelper.addAll(tripLonglineRef.getReferences()); - - } - - populate(program, referenceHelper, datas); - - } - model.setDatas(datas); - - } - - public static void populate(DataSelectionModel model, ObserveSwingDataSource source, boolean tripSeine) { - - Preconditions.checkState(source.isOpen()); - - Map<ReferentialReference<ProgramDto>, List<DataReference>> datas = Maps.newHashMap(); - - Set<ReferentialReference<ProgramDto>> programSet = source.getReferentialReferences(ProgramDto.class); - - ImmutableSet<DataReference> allTrips; - if (tripSeine) { - TripSeineService tripSeineService = source.newTripSeineService(); - allTrips = (ImmutableSet) tripSeineService.getAllTripSeine().getReferences(); - - } else { - TripLonglineService tripLonglineService = source.newTripLonglineService(); - allTrips = (ImmutableSet) tripLonglineService.getAllTripLongline().getReferences(); - } - - for (ReferentialReference<ProgramDto> program : programSet) { - - List<DataReference> referenceHelper = new ArrayList<>(); - - boolean add = false; - if (tripSeine && ProgramHelper.isProgramSeine(program)) { - - for (DataReference trip : allTrips) { - String programId = (String) trip.getPropertyValue(TripSeineDto.PROPERTY_PROGRAM + "Id"); - if (program.getId().equals(programId)) { - referenceHelper.add(trip); - } - } - add = true; - - } else if (!tripSeine && ProgramHelper.isProgramLongline(program)) { - - for (DataReference trip : allTrips) { - String programId = (String) trip.getPropertyValue(TripSeineDto.PROPERTY_PROGRAM + "Id"); - if (program.getId().equals(programId)) { - referenceHelper.add(trip); - } - } - add = true; - } - - if (add) { - populate(program, referenceHelper, datas); - } - - } - model.setDatas(datas); - - } - - protected static void populate(ReferentialReference<ProgramDto> program, - List<DataReference> trips, - Map<ReferentialReference<ProgramDto>, List<DataReference>> datas) { - - if (!trips.isEmpty()) { - - datas.put(program, trips); - if (log.isDebugEnabled()) { - log.debug("Add program " + program.getPropertyValue(ProgramDto.PROPERTY_LABEL1) + " with " + trips.size() + " trip(s)."); - } - - - } - - } - - public static final String PROPERTY_USE_REFERENTIEL = "useReferentiel"; - - public static final String PROPERTY_USE_DATA = "useData"; - - public static final String PROPERTY_USE_OPEN_DATA = "useOpenData"; - - public static final String PROPERTY_SELECTED_DATA = "selectedData"; - - public static final String PROPERTY_SELECTED_REFERENTIEL = "selectedReferentiel"; - - public static final String PROPERTY_DATAS = "datas"; - - /** Logger */ - private static final Log log = LogFactory.getLog(DataSelectionModel.class); - - private static final long serialVersionUID = 2L; - - /** un drapeau pour selectionner ou non les donnees observers */ - protected boolean useData; - - /** un drapeau pour selectionner ou non des donnees observers ouvertes */ - protected boolean useOpenData; - - /** un drapeau pour selectionner ou non des donnees observer */ - protected boolean useReferentiel; - - /** la liste des programs utilisables (qui ont des marees) */ - protected transient Map<ReferentialReference<ProgramDto>, List<DataReference>> datas; - - /** la liste des marees selectionnee */ - protected transient Set<DataReference> selectedData; - - /** la liste des referentiels possibles */ - protected final Set<Class<? extends ReferentialDto>> referentiel; - - /** la liste des referentiels selectionnes */ - protected final Set<Class<? extends ReferentialDto>> selectedReferentiel; - - /** nb marees */ - protected int nbTrips; - - /** nb referentiels */ - protected final int nbReferentiels; - - protected final PropertyChangeSupport pcs; - - public void populate() { - throw new UnsupportedOperationException(); - } - - public DataSelectionModel() { - pcs = new PropertyChangeSupport(this); - referentiel = Sets.newHashSet(ReferentialHelper.REFERENCE_DTOS); - selectedReferentiel = Sets.newHashSet(); - nbReferentiels = referentiel.size(); - } - - public boolean isUseReferentiel() { - return useReferentiel; - } - - public boolean isUseData() { - return useData; - } - - public boolean isUseOpenData() { - return useOpenData; - } - - public boolean isEmpty() { - if (isUseReferentiel()) { - if (!isReferentielEmpty()) { - return false; - } - } - if (isUseData()) { - if (!isDataEmpty()) { - return false; - } - } - return true; - } - - - public boolean isReferentielEmpty() { - return selectedReferentiel.isEmpty(); - } - - public boolean isReferentielFull() { - return selectedReferentiel.size() == nbReferentiels; - } - - public boolean isDataEmpty() { - return selectedData == null || selectedData.isEmpty(); - } - - public boolean isDataFull() { - return selectedData != null && selectedData.size() == nbTrips; - } - - public int selectDataSize() { - return selectedData == null ? 0 : selectedData.size(); - } - - public Set<Class<? extends ReferentialDto>> getSelectedReferentiel() { - return selectedReferentiel; - } - - public Map<ReferentialReference<ProgramDto>, List<DataReference>> getDatas() { - if (datas == null) { - datas = Maps.newHashMap(); - } - return datas; - } - - public boolean containsData(ReferentialReference<ProgramDto> program, DataReference trip) { - List<DataReference> datas = getDatas(program.getId()); - return datas != null && datas.contains(trip); - } - - public Set<DataReference> getSelectedData() { - if (selectedData == null) { - selectedData = Sets.newHashSet(); - } - return selectedData; - } - - public Map<ReferentialReference<ProgramDto>, List<DataReference>> getSelectedDataByProgram() { - if (datas == null || selectedData == null || selectedData.isEmpty()) { - return Collections.emptyMap(); - } - Map<ReferentialReference<ProgramDto>, List<DataReference>> result = Maps.newHashMap(); - - for (DataReference referenceDto : selectedData) { - - // on recherche son program - for (ReferentialReference<ProgramDto> p : datas.keySet()) { - if (datas.get(p).contains(referenceDto)) { - List<DataReference> referenceHelper = result.get(p); - if (referenceHelper == null) { - referenceHelper = newArrayList(); - result.put(p, referenceHelper); - } - referenceHelper.add(referenceDto); - break; - } - } - } - return result; - } - - public List<ReferentialReference<ProgramDto>> getSelectedProgram() { - if (datas == null || selectedData == null || selectedData.isEmpty()) { - return Collections.emptyList(); - } - - Set<ReferentialReference<ProgramDto>> result = Sets.newHashSet(); - - for (DataReference referenceDto : selectedData) { - - // on recherche son program - for (ReferentialReference<ProgramDto> p : datas.keySet()) { - if (datas.get(p).contains(referenceDto)) { - result.add(p); - break; - } - } - } - - return result.stream().collect(Collectors.toList()); - } - - public List<DataReference> getSelectedTripsByProgram(ReferentialReference<ProgramDto> program) { - if (datas == null || selectedData == null || selectedData.isEmpty()) { - return Collections.emptyList(); - } - - return datas.get(program).stream() - .filter(trip -> selectedData.contains(trip)) - .collect(Collectors.toList()); - } - - - public boolean isSelectedData(AbstractReference<?> referenceDto) { - - boolean result; - - if (ProgramDto.class.isAssignableFrom(referenceDto.getType())) { - - List<DataReference> trips = datas.get(referenceDto); - result = CollectionUtils.isNotEmpty(trips); - - if (result) { - for (DataReference trip : trips) { - if (!getSelectedData().contains(trip)) { - - // au moins une marée non sélectionnée - - result = false; - } - } - } - } else { - - // recherche directe sur les ids de marees - result = getSelectedData().contains(referenceDto); - - } - - // ne devrait pas arrivée - return result; - - } - - public boolean isSelectedReferentiel(Class<?> type) { - checkReferentielType(type); - return getSelectedReferentiel().contains(type); - } - - public void setUseReferentiel(boolean useReferentiel) { - this.useReferentiel = useReferentiel; - firePropertyChange(PROPERTY_USE_REFERENTIEL, useReferentiel); - } - - public void setUseData(boolean useData) { - this.useData = useData; - firePropertyChange(PROPERTY_USE_DATA, useData); - } - - public void setUseOpenData(boolean useOpenData) { - this.useOpenData = useOpenData; - firePropertyChange(PROPERTY_USE_OPEN_DATA, useOpenData); - } - - public void addSelectedReferentiel(Class<? extends ReferentialDto> type) { - checkReferentielType(type); - if (log.isDebugEnabled()) { - log.debug("Add referentiel type " + type); - } - getSelectedReferentiel().add(type); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public void addAllSelectedReferentiel() { - getSelectedReferentiel().addAll(referentiel); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public void removeSelectedReferentiel(Class<?> type) { - checkReferentielType(type); - if (log.isDebugEnabled()) { - log.debug("remove referentiel type " + type); - } - getSelectedReferentiel().remove(type); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public void removeAll() { - getSelectedReferentiel().clear(); - getSelectedData().clear(); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void removeAllSelectedReferentiel() { - getSelectedReferentiel().clear(); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public boolean isReferentielSelectAll(Collection<Class<? extends ReferentialDto>> classes) { - return selectedReferentiel.containsAll(classes); - } - - public void removeAllReferentiel(Collection<Class<? extends ReferentialDto>> classes) { - selectedReferentiel.removeAll(classes); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public void addAllReferentiel(Collection<Class<? extends ReferentialDto>> classes) { - selectedReferentiel.addAll(classes); - firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); - } - - public void setDatas(Map<ReferentialReference<ProgramDto>, List<DataReference>> datas) { - this.datas = datas; - - // on compte le count de marées totale - int nbTrips = 0; - if (datas != null) { - for (List<DataReference> marees : datas.values()) { - nbTrips += marees.size(); - } - } - this.nbTrips = nbTrips; - - if (log.isDebugEnabled()) { - log.debug("Nb program registred : " + (datas == null ? 0 : datas.size())); - log.debug("Nb trip registred : " + this.nbTrips); - } - firePropertyChange(PROPERTY_DATAS, datas); - } - - public void addSelectedData(AbstractReference referenceDto) { - - if (ProgramDto.class.isAssignableFrom(referenceDto.getType())) { - - // ajout de toutes les marées du program - - if (log.isDebugEnabled()) { - log.debug("Add all trips of program " + referenceDto.getId()); - } - getSelectedData().addAll(datas.get(referenceDto)); - - } else { - // ajout d'une marée - if (log.isDebugEnabled()) { - log.debug("Add Trip " + referenceDto.getId()); - } - getSelectedData().add((DataReference) referenceDto); - } - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void addAllSelectedData() { - if (log.isDebugEnabled()) { - log.debug("All all data."); - } - for (List<DataReference> p : datas.values()) { - getSelectedData().addAll(p); - } - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void removeSelectedData(AbstractReference referenceDto) { - - if (ProgramDto.class.isAssignableFrom(referenceDto.getType())) { - - // ajout de toutes les marées du program - - if (log.isDebugEnabled()) { - log.debug("Remove all marees of program " + referenceDto); - } - getSelectedData().removeAll(datas.get(referenceDto)); - } else { - - // ajout d'une marée - if (log.isDebugEnabled()) { - log.debug("Remove maree " + referenceDto); - } - getSelectedData().remove(referenceDto); - } - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void removeAllSelectedData() { - if (selectedData != null) { - selectedData.clear(); - } - firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); - } - - public void addPropertyChangeListener(PropertyChangeListener listener) { - pcs.addPropertyChangeListener(listener); - } - - public void addPropertyChangeListener(String propertyName, - PropertyChangeListener listener) { - pcs.addPropertyChangeListener(propertyName, listener); - } - - public void removePropertyChangeListener(PropertyChangeListener listener) { - pcs.removePropertyChangeListener(listener); - } - - public void removePropertyChangeListener(String propertyName, - PropertyChangeListener listener) { - pcs.removePropertyChangeListener(propertyName, listener); - } - - protected void firePropertyChange(String propertyName, Object newValue) { - pcs.firePropertyChange(propertyName, null, newValue); - } - - protected void firePropertyChange(String propertyName, - Object oldValue, - Object newValue) { - pcs.firePropertyChange(propertyName, oldValue, newValue); - } - - protected void checkReferentielType(Class<?> type) { - if (!referentiel.contains(type)) { - throw new IllegalArgumentException( - "given <" + type + "> is not in referentiel universe : " + - referentiel); - } - } - - public void destroy() { - removeAll(); - // suppression de tous les listeners - PropertyChangeListener[] listeners = pcs.getPropertyChangeListeners(); - for (PropertyChangeListener l : listeners) { - removePropertyChangeListener(l); - } - } - - @Override - protected void finalize() throws Throwable { - super.finalize(); - destroy(); - } - - public List<DataReference> getDatas(String programId) { - Optional<ReferentialReference<ProgramDto>> programRefOptional = getDatas().keySet().stream().filter(ReferentialReference.newIdPredicate(programId)).findFirst(); - - List<DataReference> result; - - if (programRefOptional.isPresent()) { - - result = getDatas().get(programRefOptional.get()); - - } else { - - result = Collections.emptyList(); - - } - - return result; - } - - public void addData(ReferentialReference<ProgramDto> program, DataReference trip) { - if (!getDatas().containsKey(program)) { - getDatas().put(program, new ArrayList<>()); - } - getDatas(program.getId()).add(trip); - firePropertyChange(PROPERTY_DATAS, getDatas()); - } - - public Set<ReferentialReference<ProgramDto>> getPrograms() { - return getDatas().keySet(); - } - - public void removeTrip(ReferentialReference<ProgramDto> program, DataReference trip) { - List<DataReference> trips = getDatas(program.getId()); - trips.remove(trip); - if (trips.isEmpty()) { - getDatas().remove(program); - } - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUI.jaxx index 90d5b82..d1b9882 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUI.jaxx @@ -27,40 +27,28 @@ <StorageTabUI> <import> - fr.ird.observe.application.swing.db.ObserveSwingDataSource + fr.ird.observe.application.swing.ui.storage.StorageUIModel fr.ird.observe.application.swing.ui.storage.StorageStep - fr.ird.observe.application.swing.ui.tree.DataSelectionTreeSelectionModel - fr.ird.observe.application.swing.ui.tree.renderer.DataSelectionTreeCellRenderer - fr.ird.observe.application.swing.ui.util.tree.BeanTreeHeader + fr.ird.observe.application.swing.ui.tree.selection.SelectionTree + fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeHeader </import> <StorageStep id='step' initializer='StorageStep.SELECT_DATA'/> - <fr.ird.observe.application.swing.ui.storage.StorageUIModel id='model'/> - - <DataSelectionTreeSelectionModel id='selectionModel'/> + <StorageUIModel id='model'/> <script><![CDATA[ @Override public void init() { getHandler().initUI(this); } - -public void initTree(ObserveSwingDataSource dataSource) { - getHandler().initTree(this, dataSource); -} ]]> </script> <JPanel id='content'> - <JScrollPane id='selectedTreePane' constraints='BorderLayout.CENTER' columnHeaderView='{selectTreeHeader}'> - - <!-- arbre de selection des exports --> - <JTree id='selectTree'/> - - <BeanTreeHeader id='selectTreeHeader' tree='{selectTree}'/> - + <SelectionTree id='selectTree'/> + <SelectionTreeHeader id='selectTreeHeader' treeTable='{selectTree}'/> </JScrollPane> </JPanel> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUI.jcss index a8c2fcd..2eda397 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUI.jcss @@ -34,11 +34,5 @@ font-size:11; showsRootHandles:false; toggleClickCount:100; - selectionModel:{selectionModel}; - cellRenderer:{new DataSelectionTreeCellRenderer()}; -} - -#selectionModel { - selectionMode: {DataSelectionTreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/StorageTabUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/StorageTabUIHandler.java index f07a45e..69ba3e8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/StorageTabUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/StorageTabUIHandler.java @@ -26,14 +26,11 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ObserveTextGenerator; import fr.ird.observe.application.swing.configuration.constants.CreationMode; import fr.ird.observe.application.swing.configuration.constants.DbMode; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.constants.ConnexionStatus; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.storage.StorageStep; import fr.ird.observe.application.swing.ui.storage.StorageUILauncher; import fr.ird.observe.application.swing.ui.storage.StorageUIModel; -import fr.ird.observe.application.swing.ui.tree.DataSelectionTreeSelectionModel; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import jaxx.runtime.swing.editor.MyDefaultCellEditor; import org.apache.commons.logging.Log; @@ -46,7 +43,6 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTable; -import javax.swing.JTree; import javax.swing.KeyStroke; import javax.swing.table.DefaultTableCellRenderer; import java.awt.BorderLayout; @@ -73,9 +69,7 @@ public class StorageTabUIHandler { private static final Log log = LogFactory.getLog(StorageTabUIHandler.class); - public boolean updateCreationModeLayout(ChooseDbModeUI ui, - boolean visible, - JRadioButton button) { + public boolean updateCreationModeLayout(ChooseDbModeUI ui, boolean visible, JRadioButton button) { JPanel panel = ui.getUseCreateMode(); if (visible) { for (Component c : panel.getComponents()) { @@ -171,7 +165,7 @@ public class StorageTabUIHandler { } - public void initUI(final ConfigReferentielUI ui) { + public void initUI(ConfigReferentielUI ui) { if (ui.getStep() != null) { ui.setDescriptionText(t(ui.getStep().getDescription())); @@ -206,7 +200,7 @@ public class StorageTabUIHandler { } } - public void initUI(final ConfigDataUI ui) { + public void initUI(ConfigDataUI ui) { if (ui.getStep() != null) { ui.setDescriptionText(t(ui.getStep().getDescription())); @@ -280,9 +274,7 @@ public class StorageTabUIHandler { if (ui.getStep() != null) { ui.setDescriptionText(t(ui.getStep().getDescription())); } - - // customize tree selection colors - UIHelper.initUI(ui.getSelectedTreePane(), ui.getSelectTree()); + ui.getSelectTree().installUI(); } public void initUI(BackupUI ui) { @@ -317,12 +309,10 @@ public class StorageTabUIHandler { } public void chooseBackupFile(BackupUI ui) { - File f = UIHelper.chooseDirectory( - ui, - t("observe.title.choose.db.dump.directory"), - t("observe.action.choose.db.dump.directory"), - new File(ui.getDirectoryText().getText()) - ); + File f = UIHelper.chooseDirectory(ui, + t("observe.title.choose.db.dump.directory"), + t("observe.action.choose.db.dump.directory"), + new File(ui.getDirectoryText().getText())); if (f != null) { changeDirectory(ui, f); } @@ -392,59 +382,38 @@ public class StorageTabUIHandler { } public void chooseDumpFile(ConfigUI ui) { - File f = UIHelper.chooseFile( - ui, - t("observe.title.choose.db.dump"), - t("observe.action.choose.db.dump"), - ui.getModel().getDumpFile(), - "^.+\\.sql\\.gz$", - t("observe.action.choose.db.dump.description")); + File f = UIHelper.chooseFile(ui, + t("observe.title.choose.db.dump"), + t("observe.action.choose.db.dump"), + ui.getModel().getDumpFile(), + "^.+\\.sql\\.gz$", + t("observe.action.choose.db.dump.description")); ui.getModel().setDumpFile(f); } public void chooseDumpFile(ConfigReferentielUI ui) { - File f = UIHelper.chooseFile( - ui, - t("observe.title.choose.db.dump"), - t("observe.action.choose.db.dump"), - ui.getModel().getDumpFile(), - "^.+\\.sql\\.gz$", - t("observe.action.choose.db.dump.description")); + File f = UIHelper.chooseFile(ui, + t("observe.title.choose.db.dump"), + t("observe.action.choose.db.dump"), + ui.getModel().getDumpFile(), + "^.+\\.sql\\.gz$", + t("observe.action.choose.db.dump.description")); ui.getCentralSourceModel().setDumpFile(f); ui.getModel().validate(); } public void chooseDumpFile(ConfigDataUI ui) { - File f = UIHelper.chooseFile( - ui, - t("observe.title.choose.db.dump"), - t("observe.action.choose.db.dump"), - ui.getModel().getDumpFile(), - "^.+\\.sql\\.gz$", - t("observe.action.choose.db.dump.description")); + File f = UIHelper.chooseFile(ui, + t("observe.title.choose.db.dump"), + t("observe.action.choose.db.dump"), + ui.getModel().getDumpFile(), + "^.+\\.sql\\.gz$", + t("observe.action.choose.db.dump.description")); ui.getCentralSourceModel().setDumpFile(f); ui.getModel().validate(); } - public void initTree(SelectDataUI ui, ObserveSwingDataSource source) { - StorageUIModel model = ui.getModel(); - if (model.isUseSelectData()) { - - DataSelectionModel dataModel = model.getSelectDataModel(); - ObserveTreeHelper helper = new ObserveTreeHelper(); - JTree tree = ui.selectTree; - helper.setUI(tree, false, null); - - tree.setModel(helper.createModel(ui, dataModel, source)); - DataSelectionTreeSelectionModel selectionModel = - ui.getSelectionModel(); - selectionModel.initUI(tree); - selectionModel.setDataModel(dataModel); - } - } - - protected String updateInternalDumpModeLabel(ChooseDbModeUI ui, - boolean dumpExist) { + protected String updateInternalDumpModeLabel(boolean dumpExist) { File f = ObserveSwingApplicationContext.get().getConfig().getInitialDbDump(); String text; if (f.exists()) { @@ -455,11 +424,6 @@ public class StorageTabUIHandler { return I18nEnumHelper.getLabel(CreationMode.IMPORT_INTERNAL_DUMP) + text; } - protected String updateCanMigrateLabel(ChooseDbModeUI ui, - boolean canMigrate) { - return t("observe.storage.action.canMigrate", ui.getModel().getModelVersion()); - } - public void obtainRemoteConnexion(ConfigReferentielUI ui) { StorageUIModel sourceModel = ui.getCentralSourceModel(); StorageUILauncher.obtainRemoteConnexion( @@ -513,10 +477,7 @@ public class StorageTabUIHandler { ui.getModel().validate(); } - public String updateStorageLabel(StorageUIModel service, - boolean serviceValid, - JLabel label, - boolean remote) { + public String updateStorageLabel(StorageUIModel service, boolean serviceValid, JLabel label, boolean remote) { String text; if (serviceValid && remote == service.isRemote()) { @@ -530,9 +491,7 @@ public class StorageTabUIHandler { return text; } - protected String updateDataSourcePolicy(StorageUIModel sourceModel, - boolean valid, - boolean remote) { + protected String updateDataSourcePolicy(StorageUIModel sourceModel, boolean valid, boolean remote) { String text = null; if (valid && remote == sourceModel.isRemote()) { ObserveDataSourceInformation dataSourceInformation = sourceModel.getDataSourceInformation(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/DataSelectionTreeSelectionModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/DataSelectionTreeSelectionModel.java deleted file mode 100644 index 4bb8039..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/DataSelectionTreeSelectionModel.java +++ /dev/null @@ -1,709 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree; - -import com.google.common.collect.Sets; -import fr.ird.observe.application.swing.ui.tree.node.AbstrctReferenceNodeSupport; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; -import fr.ird.observe.services.dto.AbstractReference; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.JTree; -import javax.swing.event.EventListenerList; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; -import javax.swing.tree.RowMapper; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * Modèle de sélection dans un arbre de navigation prévu pour sélectionner des - * données. - * - * La sélection se fait en cliquant (reclic pour supprimer). - * - * Si on sélectionne un program, alors ses marée sont aussi sélectionnées. - * - * Un program est sélectionné uniquement si toutes ses marées le sont. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.2 - */ -public class DataSelectionTreeSelectionModel implements TreeSelectionModel, PropertyChangeListener, Serializable { - - /** Logger */ - private static final Log log = - LogFactory.getLog(DataSelectionTreeSelectionModel.class); - - private static final long serialVersionUID = -1L; - - protected DataSelectionModel dataModel; - - /** - * Paths that are currently selected. Will be null if nothing is currently - * selected. - */ - protected TreePath[] selection; - - /** Event listener list. */ - protected final EventListenerList listenerList = new EventListenerList(); - - /** Last path that was added. */ - protected TreePath leadPath; - - /** Index of the lead path in selection. */ - protected int leadIndex; - - /** Lead row. */ - protected int leadRow; - - protected int minSelectionRow; - - protected int maxSelectionRow; - - protected int[] selectionRows; - - /** Provides a row for a given path. */ - transient protected RowMapper rowMapper; - - protected Set<TreePath> universe; - - private PropertyChangeSupport changeSupport; - - private static final PropertyChangeListener[] - EMPTY_PROPERTY_CHANGE_LISTENERS = new PropertyChangeListener[]{}; - - public void initUI(JTree tree) { - clearSelection(); - if (universe != null) { - universe.clear(); - } - // expand tree - int i = 0; - while (i < tree.getRowCount()) { - tree.expandRow(i++); - } - // build universe of path : position of path in universe is - // exactly the row of the path - int count = tree.getRowCount(); - universe = new HashSet<>(count); - for (i = 0; i < count; i++) { - TreePath path = tree.getPathForRow(i); - universe.add(path); - if (log.isDebugEnabled()) { - log.debug("init path : " + path.getLastPathComponent()); - } - } - } - - public void setDataModel(DataSelectionModel dataModel) { - DataSelectionModel oldModel = this.dataModel; - if (oldModel != null) { - oldModel.removePropertyChangeListener(this); - oldModel.destroy(); - //TODO Should destroy all other listeners ? - //TODO this means model is dead... - } - this.dataModel = dataModel; - if (dataModel != null) { - this.dataModel.addPropertyChangeListener(this); - } - updateModel(); - } - - @Override - public void setSelectionMode(int mode) { - // pas utilise - } - - @Override - public int getSelectionMode() { - return DISCONTIGUOUS_TREE_SELECTION; - } - - @Override - public void setSelectionPath(TreePath path) { - if (dataModel == null) { - return; - } - Object o = path.getLastPathComponent(); - ObserveNode node = AbstractObserveTreeCellRenderer.getNode(o); - if (node == null) { - return; - } - Class<?> internalClass = node.getInternalClass(); - - boolean referentiel = node.isReferentielNode(); - - if (!universe.contains(path)) { - // new path - universe.add(path); - if (log.isDebugEnabled()) { - log.debug("add new path to universe " + - path.getLastPathComponent()); - } - if (!referentiel && ProgramDto.class.equals(internalClass)) { - if (log.isDebugEnabled()) { - log.debug("Adding program childs path (" + - node.getChildCount() + ")"); - } - // on ajoute toutes les marees du program - Enumeration<?> childs = node.children(); - while (childs.hasMoreElements()) { - Object o1 = childs.nextElement(); - TreePath path1 = path.pathByAddingChild(o1); - if (!universe.contains(path1)) { - if (log.isDebugEnabled()) { - log.debug("adding path for node " + o1); - } - universe.add(path1); - } - } - } - if (TripSeineDto.class.equals(internalClass)) { - TreePath parentPath = path.getParentPath(); - - if (!universe.contains(parentPath)) { - // on ajoute son parent (et tous ses freres) - universe.add(parentPath); - ObserveNode parentNode = node.getParent(); - if (log.isDebugEnabled()) { - log.debug("Adding program with his childs (" + - parentNode.getChildCount() + ")"); - } - Enumeration<?> childs = parentNode.children(); - while (childs.hasMoreElements()) { - Object o1 = childs.nextElement(); - TreePath path1 = parentPath.pathByAddingChild(o1); - if (!universe.contains(path1)) { - if (log.isDebugEnabled()) { - log.debug("adding path for node " + o1); - } - universe.add(path1); - } - } - } - } - } - - boolean pathSelected = isPathSelected(path); - - if (log.isDebugEnabled()) { - log.debug("node " + node + ", path selected ? " + pathSelected); - } - - if (referentiel && node.isStringNode()) { - - Set<Class<? extends ReferentialDto>> subClasses = Sets.newHashSet(); - - for (Enumeration<ObserveNode> children = node.children(); children.hasMoreElements(); ) { - subClasses.add((Class<? extends ReferentialDto>) children.nextElement().getInternalClass()); - } - - if (pathSelected) { - if (log.isDebugEnabled()) { - log.debug("Will remove all referentiels on " + node); - } - dataModel.removeAllReferentiel(subClasses); - } else { - if (log.isDebugEnabled()) { - log.debug("Will add all referentiels on " + node); - } - dataModel.addAllReferentiel(subClasses); - } - return; - } - - if (referentiel) { - - if (pathSelected) { - if (log.isDebugEnabled()) { - log.debug("Will remove referentiel " + internalClass + " to model"); - } - dataModel.removeSelectedReferentiel(internalClass); - } else { - if (log.isDebugEnabled()) { - log.debug("Will add referentiel " + internalClass + " to model"); - } - dataModel.addSelectedReferentiel((Class<? extends ReferentialDto>) internalClass); - } - return; - } - - if (node instanceof AbstrctReferenceNodeSupport) { - AbstractReference dto = ((AbstrctReferenceNodeSupport) node).getEntity(); - if (log.isDebugEnabled()) { - log.debug("bean " + dto.getId()); - } - if (pathSelected) { - if (log.isDebugEnabled()) { - log.debug("Already add ? remove it."); - } - removeFromDataModel(dto); - } else { - if (log.isDebugEnabled()) { - log.debug("Will add selection to model"); - } - addToDataModel(dto); - } - } - } - - @Override - public void setSelectionPaths(TreePath[] paths) { - // do nothing - } - - @Override - public void addSelectionPath(TreePath path) { - // do nothing - } - - @Override - public void addSelectionPaths(TreePath[] paths) { - // do nothing - } - - @Override - public void removeSelectionPath(TreePath path) { - // do nothing - } - - @Override - public void removeSelectionPaths(TreePath[] paths) { - // do nothing - } - - @Override - public TreePath getSelectionPath() { - return selection == null ? null : selection[0]; - } - - @Override - public TreePath[] getSelectionPaths() { - return selection; - } - - @Override - public int getSelectionCount() { - return selection == null ? 0 : selection.length; - } - - @Override - public boolean isPathSelected(TreePath path) { - if (dataModel == null) { - return false; - } - Object o = path.getLastPathComponent(); - ObserveNode node = AbstractObserveTreeCellRenderer.getNode(o); - if (node != null) { - - Class<?> internalClass = node.getInternalClass(); - if (node.isReferentielNode() && node.isStringNode()) { - Set<Class<? extends ReferentialDto>> subClasses = Sets.newHashSet(); - - for (Enumeration<ObserveNode> children = node.children(); children.hasMoreElements(); ) { - subClasses.add((Class<? extends ReferentialDto>) children.nextElement().getInternalClass()); - } - - boolean result = dataModel.isReferentielSelectAll(subClasses); - if (log.isTraceEnabled()) { - log.trace("selectModel use full referentiel " + - internalClass + " ? " + result); - } - return result; - } - if (node.isReferentielNode()) { - boolean result = dataModel.isSelectedReferentiel(internalClass); - if (log.isTraceEnabled()) { - log.trace("selectModel use referentiel " + - internalClass + " ? " + result); - } - return result; - } - - if (log.isTraceEnabled()) { - log.trace("begin data node " + node); - } - - if (node instanceof AbstrctReferenceNodeSupport) { - boolean result = dataModel.isSelectedData(((AbstrctReferenceNodeSupport) node).getEntity()); - if (log.isTraceEnabled()) { - log.trace("selectModel contains the program ? " + result); - } - return result; - } - - - } - return false; - } - - @Override - public boolean isSelectionEmpty() { - return selection == null || selection.length == 0; - } - - @Override - public void clearSelection() { - if (dataModel == null) { - return; - } - selection = null; - dataModel.removeAll(); - } - - @Override - public RowMapper getRowMapper() { - return rowMapper; - } - - @Override - public void setRowMapper(RowMapper newMapper) { - rowMapper = newMapper; - } - - @Override - public int[] getSelectionRows() { - // on doit recalcule cette valeur a chaque fois - //This is currently rather expensive.Needs - // to be better support from ListSelectionModel to speed this up. - return selectionRows; - } - - @Override - public int getMinSelectionRow() { - return minSelectionRow; - } - - @Override - public int getMaxSelectionRow() { - return maxSelectionRow; - } - - @Override - public int getLeadSelectionRow() { - return leadRow; - } - - @Override - public TreePath getLeadSelectionPath() { - return leadPath; - } - - @Override - public boolean isRowSelected(int row) { - if (!isSelectionEmpty()) { - for (int i : selectionRows) { - if (row == i) { - return true; - } - } - } - return false; - } - - @Override - public void resetRowSelection() { - if (log.isDebugEnabled()) { - log.debug("start rebuild row values..."); - } - leadRow = minSelectionRow = maxSelectionRow = -1; - selectionRows = null; - if (rowMapper == null || selection == null || selection.length == 0) { - return; - } - - int[] rows = rowMapper.getRowsForPaths(selection); - - if (rows != null) { - int invisCount = 0; - - for (int counter = rows.length - 1; counter >= 0; counter--) { - if (rows[counter] == -1) { - invisCount++; - } - } - if (invisCount > 0) { - if (invisCount == rows.length) { - rows = null; - } else { - int[] tempRows = new int[rows.length - invisCount]; - - for (int counter = rows.length - 1, visCounter = 0; - counter >= 0; counter--) { - if (rows[counter] != -1) { - tempRows[visCounter++] = rows[counter]; - } - } - rows = tempRows; - } - } - } - - selectionRows = rows; - - if (isSelectionEmpty()) { - leadPath = null; - leadIndex = -1; - leadRow = -1; - } else { - leadPath = selection[0]; - leadIndex = 0; - leadRow = selectionRows[0]; - } - - int selectionLength = selectionRows.length; - - minSelectionRow = -1; - maxSelectionRow = 0; - for (int i = 0; i < selectionLength; i++) { - int row = selectionRows[i]; - if (row > maxSelectionRow) { - maxSelectionRow = row; - } - if (row < minSelectionRow) { - minSelectionRow = row; - } - } - } - - /** - * Adds x to the list of listeners that are notified each time the set of - * selected TreePaths changes. - * - * @param x the new listener to be added - */ - @Override - public void addTreeSelectionListener(TreeSelectionListener x) { - listenerList.add(TreeSelectionListener.class, x); - } - - /** - * Removes x from the list of listeners that are notified each time the set - * of selected TreePaths changes. - * - * @param x the listener to remove - */ - @Override - public void removeTreeSelectionListener(TreeSelectionListener x) { - listenerList.remove(TreeSelectionListener.class, x); - } - - /** - * Returns an array of all the tree selection listeners registered on this - * model. - * - * @return all of this model's {@code TreeSelectionListener}s or an - * empty array if no tree selection listeners are currently - * registered - * @see #addTreeSelectionListener - * @see #removeTreeSelectionListener - * @since 1.4 - */ - public TreeSelectionListener[] getTreeSelectionListeners() { - return listenerList.getListeners(TreeSelectionListener.class); - } - - /** - * Adds a PropertyChangeListener to the listener list. The listener is - * registered for all properties. - * - * A PropertyChangeEvent will get fired when the selection mode changes. - * - * @param listener the PropertyChangeListener to be added - */ - @Override - public void addPropertyChangeListener(PropertyChangeListener listener) { - if (changeSupport == null) { - changeSupport = new PropertyChangeSupport(this); - } - changeSupport.addPropertyChangeListener(listener); - } - - /** - * Removes a PropertyChangeListener from the listener list. This removes a - * PropertyChangeListener that was registered for all properties. - * - * @param listener the PropertyChangeListener to be removed - */ - - @Override - public void removePropertyChangeListener(PropertyChangeListener listener) { - if (changeSupport == null) { - return; - } - changeSupport.removePropertyChangeListener(listener); - } - - /** - * Returns an array of all the property change listeners registered on this - * {@code DefaultTreeSelectionModel}. - * - * @return all of this model's {@code PropertyChangeListener}s or an - * empty array if no property change listeners are currently - * registered - * @see #addPropertyChangeListener - * @see #removePropertyChangeListener - * @since 1.4 - */ - public PropertyChangeListener[] getPropertyChangeListeners() { - if (changeSupport == null) { - return EMPTY_PROPERTY_CHANGE_LISTENERS; - } - return changeSupport.getPropertyChangeListeners(); - } - - protected void fireValueChanged(TreeSelectionEvent e) { - // Guaranteed to return a non-null array - Object[] listeners = listenerList.getListenerList(); - // TreeSelectionEvent e = null; - // Process the listeners last to first, notifying - // those that are interested in this event - for (int i = listeners.length - 2; i >= 0; i -= 2) { - if (TreeSelectionListener.class.equals(listeners[i])) { - // Lazily create the event: - // if (e == null) - // e = new ListSelectionEvent(this, firstIndex, lastIndex); - ((TreeSelectionListener) listeners[i + 1]).valueChanged(e); - } - } - } - - protected void addToDataModel(AbstractReference dto) { - - if (log.isTraceEnabled()) { - log.trace("selectModel add " + dto.getId()); - } - dataModel.addSelectedData(dto); - - } - - protected void removeFromDataModel(AbstractReference dto) { - if (log.isTraceEnabled()) { - log.trace("selectModel remove " + dto.getId()); - } - dataModel.removeSelectedData(dto); - } - - @Override - public void propertyChange(PropertyChangeEvent evt) { - String propertyName = evt.getPropertyName(); - if (DataSelectionModel.PROPERTY_SELECTED_DATA.equals(propertyName) || - DataSelectionModel.PROPERTY_SELECTED_REFERENTIEL.equals(propertyName)) { - // la selection a changee - Object value = evt.getNewValue(); - if (log.isDebugEnabled()) { - log.debug("selection data changed " + value); - } - } - updateModel(); - } - - protected void updateModel() { - if (rowMapper == null || universe == null) { - return; - } - - // recalcule de la selection - - List<TreePath> oldSelection = isSelectionEmpty() ? - Collections.emptyList() : - Arrays.asList(selection); - - List<TreePath> newSelection = new ArrayList<>(); - - for (TreePath p : universe) { - if (isPathSelected(p)) { - newSelection.add(p); - } - } - - int selectionLength = newSelection.size(); - - selection = newSelection.toArray(new TreePath[selectionLength]); - - // calcul du leadPath - - TreePath oldLeadPath = leadPath; - - if (isSelectionEmpty()) { - leadPath = null; - leadIndex = -1; - } else { - leadPath = selectionLength > 0 ? selection[0] : null; - leadIndex = 0; - } - - if (log.isDebugEnabled()) { - log.debug("new selection length = " + selectionLength); - } - - // recalcule des donnees de rows - resetRowSelection(); - - if (log.isDebugEnabled()) { - log.debug("new selection length = " + - (selectionRows == null ? 0 : selectionRows.length)); - if (log.isDebugEnabled()) { - log.debug("selected rows = " + Arrays.toString(selectionRows)); - } - } - - // calcule des paths qui ont changés - List<TreePath> obsoleteSelection = new ArrayList<>(oldSelection); - obsoleteSelection.removeAll(newSelection); - - List<TreePath> changedPaths = new ArrayList<>(oldSelection); - changedPaths.addAll(newSelection); - - TreePath[] treePaths = changedPaths.toArray(new TreePath[changedPaths.size()]); - - // notification des modifications sur la selection - TreeSelectionEvent event = new TreeSelectionEvent( - this, - treePaths, - new boolean[treePaths.length], - oldLeadPath, - leadPath - ); - fireValueChanged(event); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/NavigationTreeSelectionModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/NavigationTreeSelectionModel.java deleted file mode 100644 index 92cca8e..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/NavigationTreeSelectionModel.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree; - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.UIHelper; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.tree.DefaultTreeSelectionModel; -import javax.swing.tree.TreePath; - -/** - * Le modèle de sélection de l'abre de navigation. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel { - - /** Logger */ - static private final Log log = LogFactory.getLog(NavigationTreeSelectionModel.class); - - private static final long serialVersionUID = 1L; - - @Override - public void addSelectionPath(TreePath newPath) { - TreePath oldPath = getSelectionPath(); - if (log.isDebugEnabled()) { - log.debug(">------------------------------------------------------------------------------"); - log.debug("Try to change selection"); - log.debug("old path " + oldPath); - log.debug("new path " + newPath); - } - boolean canChange = beforeSelectionPath(oldPath, newPath); - if (log.isDebugEnabled()) { - log.debug("Can change path ? " + canChange); - log.debug("<------------------------------------------------------------------------------"); - } - if (!canChange) { - return; - } - - // ok can safely select the new path - if (log.isTraceEnabled()) { - log.trace("will select path " + newPath); - } - super.addSelectionPath(newPath); - } - - @Override - public void setSelectionPath(TreePath newPath) { - TreePath oldPath = getSelectionPath(); - if (log.isDebugEnabled()) { - log.debug(">------------------------------------------------------------------------------"); - log.debug("Try to change selection"); - log.debug("old path " + oldPath); - log.debug("new path " + newPath); - } - boolean canChange = beforeSelectionPath(oldPath, newPath); - if (log.isDebugEnabled()) { - log.debug("Can change path ? " + canChange); - log.debug("<------------------------------------------------------------------------------"); - } - if (!canChange) { - return; - } - - // ok can safely select the new path - if (log.isTraceEnabled()) { - log.trace("will select path " + newPath); - } - try { - super.setSelectionPath(newPath); - } catch (Exception e) { - UIHelper.handlingError(e); - } - } - - protected boolean beforeSelectionPath(TreePath oldPath, TreePath newPath) { - - boolean canChange = true; - - if (newPath.equals(oldPath)) { - // stay on same node, can skip - if (log.isDebugEnabled()) { - log.debug("skip stay on path " + newPath); - } - canChange = false; - } - - if (canChange && !isSelectionEmpty()) { - canChange = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); - } - - return canChange; - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveDataProvider.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveDataProvider.java deleted file mode 100644 index ff61d4a..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveDataProvider.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree; - -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import jaxx.runtime.swing.nav.NavDataProvider; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Provider de données pour les noeuds des arbres. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class ObserveDataProvider implements NavDataProvider { - - /** Logger */ - static private final Log log = LogFactory.getLog(ObserveDataProvider.class); - - protected ObserveSwingDataSource dataSource; - - protected DataSelectionModel selectionModel; - - private boolean creating; - - public ObserveDataProvider(ObserveSwingDataSource dataSource) { - this.dataSource = dataSource; - } - - public void setSource(ObserveSwingDataSource dataSource) { - this.dataSource = dataSource; - } - - public void setSelectionModel(DataSelectionModel selectionModel) { - if (log.isDebugEnabled()) { - log.debug("Set selection model : " + selectionModel); - } - this.selectionModel = selectionModel; - } - - @Override - public boolean isEnabled() { - return dataSource != null && dataSource.isOpen() || selectionModel != null; - } - - public ObserveSwingDataSource getDataSource() { - return dataSource; - } - - public DataSelectionModel getSelectionModel() { - return selectionModel; - } - - public boolean isCreating() { - return creating; - } - - public void setCreating(boolean creating) { - this.creating = creating; - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveNavigationTreeShowPopupAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveNavigationTreeShowPopupAction.java index 3c4b1a5..9010e0e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveNavigationTreeShowPopupAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveNavigationTreeShowPopupAction.java @@ -27,7 +27,6 @@ import com.google.common.collect.ImmutableMap; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.content.open.ContentOpenableUI; import fr.ird.observe.application.swing.ui.tree.menu.MoveActivityLonglineNodeMenuPopulator; @@ -35,8 +34,15 @@ import fr.ird.observe.application.swing.ui.tree.menu.MoveActivitySeineNodeMenuPo import fr.ird.observe.application.swing.ui.tree.menu.MoveNodeMenuPopulator; import fr.ird.observe.application.swing.ui.tree.menu.MoveRouteNodeMenuPopulator; import fr.ird.observe.application.swing.ui.tree.menu.MoveTripNodeMenuPopulator; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -45,7 +51,6 @@ import javax.swing.JButton; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; -import javax.swing.JTree; import javax.swing.MenuElement; import javax.swing.SwingUtilities; import javax.swing.tree.TreePath; @@ -83,11 +88,9 @@ public class ObserveNavigationTreeShowPopupAction { n("observe.navigationMenu.move.activityLongline"); } - private final ObserveTreeHelper treeHelper; - private final JPopupMenu popup; - private final JTree tree; + private final NavigationTree tree; private final JMenuItem noAction; private final JMenuItem openAction; @@ -97,11 +100,10 @@ public class ObserveNavigationTreeShowPopupAction { private final ImmutableMap<String, MoveNodeMenuPopulator> moveNodeDataByNodeType; - public ObserveNavigationTreeShowPopupAction(ObserveTreeHelper treeHelper, JScrollPane pane, JPopupMenu popup) { + public ObserveNavigationTreeShowPopupAction(NavigationTree tree, JScrollPane pane, JPopupMenu popup) { - this.treeHelper = treeHelper; this.popup = popup; - this.tree = treeHelper.getUI(); + this.tree = tree; JMenuItem noActionComponent = null; // trip menus @@ -232,7 +234,7 @@ public class ObserveNavigationTreeShowPopupAction { log.info("Will show popup from row: " + row); } - ObserveNode selectedNode = (ObserveNode) tree.getPathForRow(row).getLastPathComponent(); + NavigationTreeNodeSupport selectedNode = (NavigationTreeNodeSupport) tree.getPathForRow(row).getLastPathComponent(); if (log.isInfoEnabled()) { log.info("Found selected node: " + selectedNode); @@ -244,7 +246,7 @@ public class ObserveNavigationTreeShowPopupAction { } - protected void beforeOpenPopup(ObserveNode selectedNode) { + protected void beforeOpenPopup(NavigationTreeNodeSupport selectedNode) { // clean popup popup.removeAll(); @@ -261,30 +263,31 @@ public class ObserveNavigationTreeShowPopupAction { closeActionEnabled = closeButton.isEnabled(); } - if (selectedNode.isTripNode()) { + Class dataType = selectedNode.getDataType(); + if (TripSeineDto.class.equals(dataType) || TripLonglineDto.class.equals(dataType)) { - beforeOpenMenu(selectedNode, TRIP_MENU_ITEMS); + beforeOpenMenu((ReferenceNavigationTreeNodeSupport) selectedNode, TRIP_MENU_ITEMS); openAction.setEnabled(!dataContext.isOpenTrip()); closeAction.setEnabled(closeActionEnabled); - } else if (selectedNode.isRouteNode()) { + } else if (RouteDto.class.equals(dataType)) { - beforeOpenMenu(selectedNode, ROUTE_MENU_ITEMS); + beforeOpenMenu((ReferenceNavigationTreeNodeSupport) selectedNode, ROUTE_MENU_ITEMS); openAction.setEnabled(openDataManager.canOpenRoute(dataContext.getSelectedTripSeineId())); closeAction.setEnabled(closeActionEnabled); - } else if (selectedNode.isActivitySeineNode()) { + } else if (ActivitySeineDto.class.equals(dataType)) { - beforeOpenMenu(selectedNode, ACTIVITY_SEINE_MENU_ITEMS); + beforeOpenMenu((ReferenceNavigationTreeNodeSupport) selectedNode, ACTIVITY_SEINE_MENU_ITEMS); openAction.setEnabled(openDataManager.canOpenActivitySeine(dataContext.getSelectedRouteId())); closeAction.setEnabled(closeActionEnabled); - } else if (selectedNode.isActivityLonglineNode()) { + } else if (ActivityLonglineDto.class.equals(dataType)) { - beforeOpenMenu(selectedNode, ACTIVITY_LONGLINE_MENU_ITEMS); + beforeOpenMenu((ReferenceNavigationTreeNodeSupport) selectedNode, ACTIVITY_LONGLINE_MENU_ITEMS); openAction.setEnabled(openDataManager.canOpenActivityLongline(dataContext.getSelectedTripLonglineId())); closeAction.setEnabled(closeActionEnabled); @@ -295,7 +298,7 @@ public class ObserveNavigationTreeShowPopupAction { } } - protected void beforeOpenMenu(ObserveNode selectedNode, String nodeType) { + protected void beforeOpenMenu(ReferenceNavigationTreeNodeSupport selectedNode, String nodeType) { if (log.isInfoEnabled()) { log.info("Will load popup for " + nodeType + " node."); } @@ -328,9 +331,7 @@ public class ObserveNavigationTreeShowPopupAction { String id = selectedNode.getId(); - ObserveSwingDataSource dataSource = treeHelper.getDataProvider().getDataSource(); - - List<DecoratedNodeEntity> possibleParentNodes = moveNodeData.getPossibleParentNodes(selectedNode, treeHelper); + List<DecoratedNodeEntity> possibleParentNodes = moveNodeData.getPossibleParentNodes(selectedNode); for (DecoratedNodeEntity possibleParent : possibleParentNodes) { @@ -339,10 +340,7 @@ public class ObserveNavigationTreeShowPopupAction { item.setName(possibleParentId); - item.addActionListener(moveNodeData.createChangeActionListener(treeHelper, - dataSource, - id, - possibleParentId)); + item.addActionListener(moveNodeData.createChangeActionListener(tree, id, possibleParentId)); moveAction.add(item); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeBridge.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeBridge.java deleted file mode 100644 index 6f406ec..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeBridge.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree; - -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import jaxx.runtime.swing.nav.tree.NavTreeBridge; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.JTree; -import javax.swing.tree.TreeNode; -import javax.swing.tree.TreePath; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * Bridge specialise pour reduire le count de chargements de noeuds non visibles. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 2.0 - */ -public class ObserveTreeBridge extends NavTreeBridge<ObserveNode> { - - /** Logger. */ - static private final Log log = LogFactory.getLog(ObserveTreeBridge.class); - - protected JTree ui; - - protected final List<String> pathToSelect; - - public ObserveTreeBridge() { - pathToSelect = new ArrayList<>(); - } - - public void setUi(JTree ui) { - this.ui = ui; - } - - @Override - public boolean canLoadChild(ObserveNode node) { - - ObserveNode root = getRoot(); - if (node.equals(root)) { - - // always allow to load childs from level 0 - return true; - } - ObserveNode parent = node.getParent(); - if (parent.equals(root)) { - - // always allow to load childs from level 0 - return true; - } - - TreeNode[] pathToRoot = getPathToRoot(node); - TreePath path = new TreePath(pathToRoot); - if (CollectionUtils.isNotEmpty(pathToSelect)) { - - // select mode is on - if (log.isDebugEnabled()) { - log.debug("There is a selected path, try to use it for " + node); - } - String nodeId = node.getId(); - - ObserveNode containerNode; - if (nodeId.startsWith("observe.type.")) { - containerNode = node.getParent(); - } else { - containerNode = node; - } - - String containerNodeId = containerNode.getId(); - if (log.isDebugEnabled()) { - log.debug("Test if data node is in path ? " + - containerNodeId + " : " + - pathToSelect.contains(containerNodeId)); - } - - if (pathToSelect.contains(containerNodeId)) { - - // ok on the good way... - return true; - } - - // not on a good way, skip loading of childs... - return false; - } - - if (ui == null) { - if (log.isDebugEnabled()) { - log.debug("No ui in bridge!!!"); - } - - // no ui, and no path to select : so no need to restrict - return true; - } - - boolean visible = ui.isVisible(path); - - if (!visible) { - - // only visible node can be loaded - return false; - } - - TreePath selected = ui.getSelectionPath(); - if (!path.equals(selected)) { - - // only selected node can be loaded - return false; - } - - // ok childs can be loaded - return true; - } - - public void setPathToSelect(String... pathToSelect) { - this.pathToSelect.clear(); - this.pathToSelect.addAll(Arrays.asList(pathToSelect)); - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java deleted file mode 100644 index 711f93a..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java +++ /dev/null @@ -1,625 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableListMultimap; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Multimaps; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.DataContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; -import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import fr.ird.observe.application.swing.ui.tree.loadors.ActivityLonglineNodeChildLoador; -import fr.ird.observe.application.swing.ui.tree.loadors.ActivityLonglinesNodeChildLoador; -import fr.ird.observe.application.swing.ui.tree.loadors.ActivitySeineNodeChildLoador; -import fr.ird.observe.application.swing.ui.tree.loadors.ActivitySeinesNodeChildLoador; -import fr.ird.observe.application.swing.ui.tree.loadors.ProgramLonglineNodeChildLoador; -import fr.ird.observe.application.swing.ui.tree.loadors.ProgramSeineNodeChildLoador; -import fr.ird.observe.application.swing.ui.tree.loadors.RootNodeChildLoador; -import fr.ird.observe.application.swing.ui.tree.loadors.RoutesNodeChildLoador; -import fr.ird.observe.application.swing.ui.tree.node.AbstrctReferenceNodeSupport; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.ProgramLonglineNode; -import fr.ird.observe.application.swing.ui.tree.node.ProgramSeineNode; -import fr.ird.observe.application.swing.ui.tree.node.TripSeineNode; -import fr.ird.observe.application.swing.ui.tree.renderer.AbstractObserveTreeCellRenderer; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.constants.ReferentialLocale; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.reference.ReferenceBinderEngine; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.FloatingObjectDto; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.swing.nav.NavDataProvider; -import jaxx.runtime.swing.nav.tree.NavTreeHelper; -import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.JTree; -import javax.swing.SwingUtilities; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreeCellRenderer; -import javax.swing.tree.TreeModel; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; -import java.util.Arrays; -import java.util.Enumeration; -import java.util.List; -import java.util.Objects; -import java.util.Set; - -import static org.nuiton.i18n.I18n.n; - -/** - * Class utilitaire pour la bestion de l'arbre de navigation. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { - - /** Logger. */ - static private final Log log = LogFactory.getLog(ObserveTreeHelper.class); - - public static void sortPrograms(List<ReferentialReference<ProgramDto>> data) { - - ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, data); - - } - - public ObserveTreeHelper() { - super(new ObserveTreeBridge()); - } - - public NavigationTreeSelectionModel newNavigationSelectionModel() { - NavigationTreeSelectionModel model = new NavigationTreeSelectionModel(); - model.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); - return model; - } - - public AbstractObserveTreeCellRenderer getTreeCellRenderer() { - JTree t = getUI(); - if (t == null) { - return null; - } - TreeCellRenderer r = t.getCellRenderer(); - return (AbstractObserveTreeCellRenderer) (r instanceof AbstractObserveTreeCellRenderer ? r : null); - } - - public TreeModel createEmptyModel() { - - setDataSource(null); - - ObserveNode node = new ObserveNode(n("observe.message.db.none.loaded"), false); - - return createModel(node); - } - - public TreeModel createModel(ObserveSwingDataSource source) { - - setDataSource(source); - - ObserveDataProvider provider = getDataProvider(); - provider.setCreating(true); - - try { - - RootNodeChildLoador loador = new RootNodeChildLoador(source.canReadData(), true); - ObserveNode node = new ObserveNode(String.class, "Root node", null, loador, false); - - DefaultTreeModel model = createModel(node); - node.populateChilds(getBridge(), provider); - - if (source.canReadData()) { - // on va charger en une seule fois tous les nœuds des marées - ImmutableSet<DataReference<TripSeineDto>> tripsSeine = source.newTripSeineService().getAllTripSeine().getReferences(); - if (log.isInfoEnabled()) { - log.info("[PS] Loaded " + tripsSeine.size() + " trip(s)."); - } - ImmutableSet<DataReference<TripLonglineDto>> tripsLongline = source.newTripLonglineService().getAllTripLongline().getReferences(); - if (log.isInfoEnabled()) { - log.info("[LL] Loaded " + tripsLongline.size() + " trip(s)."); - } - ImmutableListMultimap<String, DataReference<TripSeineDto>> tripsSeineByProgramId = Multimaps.index(tripsSeine, r -> (String) r.getPropertyValue(TripSeineDto.PROPERTY_PROGRAM + "Id")); - ImmutableListMultimap<String, DataReference<TripLonglineDto>> tripsLonglineByProgramId = Multimaps.index(tripsLongline, r -> (String) r.getPropertyValue(TripSeineDto.PROPERTY_PROGRAM + "Id")); - - Enumeration<ObserveNode> children = node.children(); - while (children.hasMoreElements()) { - ObserveNode observeNode = children.nextElement(); - if (observeNode instanceof ProgramSeineNode) { - ProgramSeineNode programNode = (ProgramSeineNode) observeNode; - String programId = programNode.getEntity().getId(); - ImmutableList<DataReference<TripSeineDto>> trips = tripsSeineByProgramId.get(programId); - ImmutableMap<String, DataReference<TripSeineDto>> tripsById = Maps.uniqueIndex(trips, DataReference::getId); - if (CollectionUtils.isNotEmpty(trips)) { - if (log.isInfoEnabled()) { - log.info("[PS] Add " + trips.size() + " trips to " + programNode); - } - programNode.populateChilds(trips, getBridge(), provider); - Enumeration<ObserveNode> tripNodes = programNode.children(); - while (tripNodes.hasMoreElements()) { - TripSeineNode tripNode = (TripSeineNode) tripNodes.nextElement(); - String tripId = tripNode.getEntity().getId(); - DataReference<TripSeineDto> tripDto = tripsById.get(tripId); - int routeCount = (int) tripDto.getPropertyValue(TripSeineDto.PROPERTY_ROUTE_COUNT); - tripNode.setInitialRouteCount(routeCount); - } - } - } - if (observeNode instanceof ProgramLonglineNode) { - ProgramLonglineNode programNode = (ProgramLonglineNode) observeNode; - String programId = programNode.getEntity().getId(); - ImmutableList<DataReference<TripLonglineDto>> trips = tripsLonglineByProgramId.get(programId); - if (CollectionUtils.isNotEmpty(trips)) { - if (log.isInfoEnabled()) { - log.info("[LL] Add " + trips.size() + " trips to " + programNode); - } - programNode.populateChilds(trips, getBridge(), provider); - } - } - } - } - return model; - - } finally { - - provider.setCreating(false); - - } - } - - public DefaultTreeModel createModel(JAXXContext context, - DataSelectionModel dataModel, - ObserveSwingDataSource source) { - - setDataSource(source); - context.setContextValue(dataModel); - - if (log.isDebugEnabled()) { - log.debug("create tree model " + this); - } - - ObserveDataProvider provider = getDataProvider(); - provider.setSelectionModel(dataModel); - provider.setCreating(true); - - 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); - - } - - } - - /** - * Charge dans l'ui un nouveau modèle de navigation. - * - * <b>Note:</b> cette méthode doit être appelée après tout rechargement de - * modèle de naivgation. - * - * @param source la source de données - */ - public void loadNavigationUI(ObserveSwingDataSource source) { - - ObserveNode.count = 0; - - // propagate ui in observe bridge to control which nodes can be loads - // from ui state - getBridge().setUi(getUI()); - - // build navigation model - createModel(source); - - // select initial node - selectInitialNode(); - - getUI().setVisible(true); - } - - /** - * Nettoye des ui tout ce qui concerne un modèle de navigation. - * - * <b>Note:</b> cette méthode doit être appelée avant tout rechargement de - * modèle de naivgation. - * - * @param mainUI l'ui principale - */ - public void cleanNavigationUI(ObserveMainUI mainUI) { - - // invalidate provider - setDataSource(null); - - // reset content uis - mainUI.getContentLayout().reset(mainUI.getContent()); - - // clean messages - mainUI.getContextValue(SwingValidatorMessageTableModel.class).clear(); - - // clean tree model - - JTree tree = getUI(); - - // remove tree from bridge to disable propagation of any node - getBridge().setUi(null); - - ObserveNode root = getBridge().getRoot(); - root.removeAllChildren(); - createEmptyModel(); - - // no tree navigation view - tree.setVisible(false); - } - - public void selectOpenNode(Class<?> type) { - - DataContext context = ObserveSwingApplicationContext.get().getDataContext(); - - String[] ids = context.getOpenIds(type); - - if (log.isDebugEnabled()) { - log.debug("using open ids = " + Arrays.toString(ids)); - } - if (ids == null) { - - // rien n'est ouvert, rien à selectionner - return; - } - - selectNode(ids); - } - - /** - * Sélectionne le noeud dans l'arbre de navigation. - * - * <b>Note:</b> cette méthode doit être appelée après un rechargement du - * modèle de navigation. - */ - public void selectInitialNode() { - - if (log.isDebugEnabled()) { - log.debug("Will select initial node..."); - } - DataContext context = ObserveSwingApplicationContext.get().getDataContext(); - - String[] path; - - JTree tree = getUI(); - - List<String> selectedIds = ObserveSwingApplicationContext.get().getNodesToReselect(); - if (CollectionUtils.isNotEmpty(selectedIds)) { - if (log.isDebugEnabled()) { - log.debug("will select previous ids " + selectedIds); - } - path = selectedIds.toArray(new String[selectedIds.size()]); - } else { - - // on trouve le meilleur noeud a selectionner. - - String id = context.getHigherOpenId(); - - if (id != null) { - - // on se positionne sur la donnée la plus haute ouverte - path = context.getOpenIds(); - if (log.isDebugEnabled()) { - log.debug("will select open ids " + Arrays.toString(path)); - } - } else { - - // on selectionne le premier noeud de $root - - ObserveNode node = (ObserveNode) tree.getModel().getRoot(); - if (!node.isLeaf()) { - node = node.getFirstChild(); - } - path = new String[]{node.getId()}; - if (log.isDebugEnabled()) { - log.debug("will select first program " + Arrays.toString(path)); - } - } - } - - if (log.isDebugEnabled()) { - log.debug("Selected path : " + Arrays.toString(path)); - } - - try { - - selectNode(path); - } finally { - - // nettoyage du context - ObserveSwingApplicationContext.get().setNodesToReselect(null); - } - - // navigation tree should acquire focus - SwingUtilities.invokeLater(tree::grabFocus); - } - - @Override - public void selectNode(String... path) { - long count = ObserveNode.count; - if (log.isDebugEnabled()) { - log.debug("Will select path : " + Arrays.toString(path)); - } - getBridge().setPathToSelect(path); - try { - super.selectNode(path); - } finally { - getBridge().setPathToSelect(); - if (log.isInfoEnabled()) { - log.info("Creates " + (ObserveNode.count - count) + " nodes to select path " + Arrays.toString(path)); - } - } - } - - public ObserveNode addUnsavedNode(ObserveNode parentNode, Class<?> type) { - - // noeud en mode creation - String label = ObserveI18nDecoratorHelper.getTypeI18nKey(type) + ".unsaved"; - ObserveNode result = new ObserveNode(type, null, label, null, false); - insertNode(parentNode, result); - - // refresh parent node (render of parent can have changed) - refreshNode(parentNode, true); - - // Fix bug (if no child in parent node, it will not expand...) - getUI().fireTreeExpanded(new TreePath(result.getPath())); - - // Select new node - selectNode(result); - - return result; - } - - public <E extends IdDto> ObserveNode addOpenable(ObserveNode parentNode, E bean) { - - ReferenceBinderEngine referenceBinderEngine = ObserveSwingApplicationContext.get().getReferenceBinderEngine(); - ReferentialLocale referentialLocale = ObserveSwingApplicationContext.get().getDecoratorService().getReferentialLocale(); - if (bean instanceof TripSeineDto) { - - DataReference<TripSeineDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (TripSeineDto) bean); - return addTripSeine(parentNode, ref); - - } else if (bean instanceof TripLonglineDto) { - - DataReference<TripLonglineDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (TripLonglineDto) bean); - return addTripLongline(parentNode, ref); - - } else if (bean instanceof RouteDto) { - - DataReference<RouteDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (RouteDto) bean); - return addRoute(parentNode, ref); - - } else if (bean instanceof ActivitySeineDto) { - - DataReference<ActivitySeineDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (ActivitySeineDto) bean); - return addActivitySeine(parentNode, ref); - - } else if (bean instanceof ActivityLonglineDto) { - - DataReference<ActivityLonglineDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (ActivityLonglineDto) bean); - return addActivityLongline(parentNode, ref); - - } - throw new IllegalStateException("Can not come here!"); - } - - private ObserveNode addTripSeine(ObserveNode parentNode, DataReference<TripSeineDto> bean) { - ProgramSeineNodeChildLoador loador = - getChildLoador(ProgramSeineNodeChildLoador.class); - ObserveNode result = loador.createNode(bean, dataProvider); - insertNode(parentNode, result); - return result; - } - - private ObserveNode addTripLongline(ObserveNode parentNode, DataReference<TripLonglineDto> bean) { - ProgramLonglineNodeChildLoador loador = - getChildLoador(ProgramLonglineNodeChildLoador.class); - ObserveNode result = loador.createNode(bean, dataProvider); - insertNode(parentNode, result); - return result; - } - - private ObserveNode addRoute(ObserveNode parentNode, DataReference<RouteDto> bean) { - RoutesNodeChildLoador loador = - getChildLoador(RoutesNodeChildLoador.class); - ObserveNode result = loador.createNode(bean, dataProvider); - insertNode(parentNode, result); - return result; - } - - private ObserveNode addActivitySeine(ObserveNode parentNode, DataReference<ActivitySeineDto> bean) { - ActivitySeinesNodeChildLoador loador = - getChildLoador(ActivitySeinesNodeChildLoador.class); - ObserveNode result = loador.createNode(bean, dataProvider); - insertNode(parentNode, result); - return result; - } - - private ObserveNode addActivityLongline(ObserveNode parentNode, DataReference<ActivityLonglineDto> bean) { - ActivityLonglinesNodeChildLoador loador = - getChildLoador(ActivityLonglinesNodeChildLoador.class); - ObserveNode result = loador.createNode(bean, dataProvider); - insertNode(parentNode, result); - return result; - } - - public ObserveNode addFloatingObject(ObserveNode parentNode, DataReference<FloatingObjectDto> bean) { - ActivitySeineNodeChildLoador loador = - getChildLoador(ActivitySeineNodeChildLoador.class); - ObserveNode result = loador.createNode(bean, dataProvider); - insertNode(parentNode, result); - return result; - } - - public ObserveNode addSetSeine(ObserveNode parentNode, DataReference<SetSeineDto> bean) { - ActivitySeineNodeChildLoador loador = - getChildLoador(ActivitySeineNodeChildLoador.class); - ObserveNode result = loador.createSetNode(bean); - insertNode(parentNode, result); - return result; - } - - public ObserveNode addSetLongline(ObserveNode parentNode, DataReference<SetLonglineDto> bean) { - ActivityLonglineNodeChildLoador loador = - getChildLoador(ActivityLonglineNodeChildLoador.class); - ObserveNode result = loador.createSetNode(bean); - insertNode(parentNode, result); - return result; - } - - public ObserveNode addProgram(ReferentialReference<ProgramDto> bean) { - - Set<ReferentialReference<ProgramDto>> programs = getDataProvider().getDataSource().getReferentialReferences(ProgramDto.class); - List<ReferentialReference<ProgramDto>> data = Lists.newArrayList(programs); - int newIndex = 0; - if (CollectionUtils.isNotEmpty(data)) { - sortPrograms(data); - newIndex = data.indexOf(bean); - } - RootNodeChildLoador loador = getChildLoador(RootNodeChildLoador.class); - ObserveNode result = loador.createNode(bean, dataProvider); - insertNode(getRootNode(), result, newIndex); - return result; - } - - public void removeProgram(String programId) { - ObserveNode rootNode = getRootNode(); - ObserveNode result = rootNode.getChild(programId, getBridge(), dataProvider); - Objects.requireNonNull(result, "Could not find program node with id: " + programId); - removeNode(result); - } - - public void updateProgram(ProgramDto bean) { - ObserveNode rootNode = getRootNode(); - ObserveNode result = rootNode.getChild(bean.getId(), getBridge(), dataProvider); - Objects.requireNonNull(result, "Could not find program node with id: " + bean.getId()); - reloadNode(result, false); - refreshNode(result, false); - } - - public void removeTrip(ReferentialReference<ProgramDto> program, DataReference trip) { - - ObserveNode rootNode = getRootNode(); - ObserveNode programNode = rootNode.getChild(program.getId(), getBridge(), dataProvider); - Objects.requireNonNull(programNode, "Could not find program node with id: " + program); - ObserveNode tripNode = programNode.getChild(trip.getId(), getBridge(), dataProvider); - Objects.requireNonNull(tripNode, "Could not find program node with id: " + trip); - removeNode(tripNode); - - if (programNode.isLeaf()) { - removeProgram(program.getId()); - } - } - - public void reloadSelectedNode(boolean refreshFromParent, boolean refreshChilds) { - ObserveNode node = getSelectedNode(); - ((AbstrctReferenceNodeSupport) node).setReloadEntity(true); - - if (refreshFromParent) { - node = node.getParent(); - } - refreshNode(node, refreshChilds); - } - - public void reloadNode(ObserveNode node, boolean refreshChilds) { - ((AbstrctReferenceNodeSupport) node).setReloadEntity(true); - refreshNode(node, refreshChilds); - } - - @Override - protected ObserveDataProvider getDataProvider() { - return (ObserveDataProvider) super.getDataProvider(); - } - - @Override - protected ObserveTreeBridge getBridge() { - return (ObserveTreeBridge) super.getBridge(); - } - - void setDataSource(ObserveSwingDataSource source) { - NavDataProvider provider = null; - if (source != null) { - provider = new ObserveDataProvider(source); - } - setDataProvider(provider); - } - - public void reloadNodeSubTree(ObserveNode node, boolean expandNode) { - Objects.requireNonNull(node, "node is null, we can not reload its structure"); - ObserveTreeBridge bridge = getBridge(); - - // 1. Let's clear node structure - while (node.getChildCount() > 0) { - removeNode(node.getFirstChild()); - } - - // 2. We add the node and its parent to the select path in order to force the call to the child loadors when populating the node. - // see fr.ird.observe.application.swing.ui.tree.ObserveTreeBridge.canLoadChild - bridge.setPathToSelect(node.getId(), node.getParent().getId()); - - try { - - // 3. Let's re-generate node's children by populating the node : this will call the child loaders. - node.populateNode(bridge, getDataProvider(), true); - - } finally { - // Clean the path to select - bridge.setPathToSelect(); - } - - if (expandNode) { - - // Fix bug (if no child in parent node, it will not expand...) - getUI().fireTreeExpanded(new TreePath(node.getPath())); - - } - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeNodeSupport.java new file mode 100644 index 0000000..f9fb375 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeNodeSupport.java @@ -0,0 +1,39 @@ +package fr.ird.observe.application.swing.ui.tree; + +import javax.swing.Icon; +import javax.swing.UIManager; +import javax.swing.tree.DefaultMutableTreeNode; +import java.awt.Color; + +/** + * Created on 18/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public abstract class ObserveTreeNodeSupport<O> extends DefaultMutableTreeNode { + + public abstract boolean isOpen(); + + public abstract String getId(); + + public abstract String getText(); + + public abstract String getIconPath(); + + public abstract Color getColor(); + + public O getData() { + return (O) getUserObject(); + } + + public ObserveTreeNodeSupport(O userObject, boolean allowsChildren) { + super(userObject, allowsChildren); + } + + public Icon getIcon(String suffix) { + String iconPath = getIconPath(); + return iconPath == null ? null : UIManager.getIcon(iconPath + suffix); + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeActivityRouteActionListener.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeActivityRouteActionListener.java index 737c048..098c78e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeActivityRouteActionListener.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeActivityRouteActionListener.java @@ -25,14 +25,11 @@ package fr.ird.observe.application.swing.ui.tree.actions; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.service.data.seine.ActivitySeineService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; /** * Created on 1/9/15. @@ -42,14 +39,8 @@ import org.apache.commons.logging.LogFactory; */ public class ChangeActivityRouteActionListener extends NodeChangeActionListener { - /** Logger. */ - private static final Log log = LogFactory.getLog(ChangeActivityRouteActionListener.class); - - public ChangeActivityRouteActionListener(ObserveTreeHelper treeHelper, - ObserveSwingDataSource dataSource, - String activityId, - String routeId) { - super(treeHelper, activityId, routeId); + public ChangeActivityRouteActionListener(NavigationTree tree, String activityId, String routeId) { + super(tree, activityId, routeId); } @Override @@ -63,15 +54,15 @@ public class ChangeActivityRouteActionListener extends NodeChangeActionListener } @Override - protected ObserveNode getParentNode(ObserveNode node) { + protected NavigationTreeNodeSupport getParentNode(NavigationTreeNodeSupport node) { return node.getParent().getParent(); } @Override - protected ObserveNode getNewParentNode(ObserveNode grandParentNode, String parentNodeId) { - ObserveNode routeNode = getTreeHelper().getChild(grandParentNode, parentNodeId); + protected NavigationTreeNodeSupport getNewParentNode(NavigationTreeNodeSupport grandParentNode, String parentNodeId) { + NavigationTreeNodeSupport routeNode = getTree().getChild(grandParentNode, parentNodeId); String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); - return getTreeHelper().getChild(routeNode, activitiesNodeId); + return getTree().getChild(routeNode, activitiesNodeId); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeActivityTripActionListener.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeActivityTripActionListener.java index 488b3f4..06176d2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeActivityTripActionListener.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeActivityTripActionListener.java @@ -25,14 +25,11 @@ package fr.ird.observe.application.swing.ui.tree.actions; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.service.data.longline.ActivityLonglineService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; /** * Created on 1/9/15. @@ -42,14 +39,8 @@ import org.apache.commons.logging.LogFactory; */ public class ChangeActivityTripActionListener extends NodeChangeActionListener { - /** Logger. */ - private static final Log log = LogFactory.getLog(ChangeActivityTripActionListener.class); - - public ChangeActivityTripActionListener(ObserveTreeHelper treeHelper, - ObserveSwingDataSource dataSource, - String activityId, - String tripLonglineId) { - super(treeHelper, activityId, tripLonglineId); + public ChangeActivityTripActionListener(NavigationTree tree, String activityId, String tripLonglineId) { + super(tree, activityId, tripLonglineId); } @Override @@ -63,15 +54,15 @@ public class ChangeActivityTripActionListener extends NodeChangeActionListener { } @Override - protected ObserveNode getParentNode(ObserveNode node) { + protected NavigationTreeNodeSupport getParentNode(NavigationTreeNodeSupport node) { return node.getParent().getParent(); } @Override - protected ObserveNode getNewParentNode(ObserveNode grandParentNode, String parentNodeId) { - ObserveNode tripLonglineNode = getTreeHelper().getChild(grandParentNode, parentNodeId); + protected NavigationTreeNodeSupport getNewParentNode(NavigationTreeNodeSupport grandParentNode, String parentNodeId) { + NavigationTreeNodeSupport tripLonglineNode = getTree().getChild(grandParentNode, parentNodeId); String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class); - return getTreeHelper().getChild(tripLonglineNode, activitiesNodeId); + return getTree().getChild(tripLonglineNode, activitiesNodeId); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeRouteTripActionListener.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeRouteTripActionListener.java index f0c0cad..ef8a539 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeRouteTripActionListener.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeRouteTripActionListener.java @@ -25,14 +25,11 @@ package fr.ird.observe.application.swing.ui.tree.actions; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.service.data.seine.RouteService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; /** * Created on 1/9/15. @@ -42,14 +39,8 @@ import org.apache.commons.logging.LogFactory; */ public class ChangeRouteTripActionListener extends NodeChangeActionListener { - /** Logger. */ - private static final Log log = LogFactory.getLog(ChangeRouteTripActionListener.class); - - public ChangeRouteTripActionListener(ObserveTreeHelper treeHelper, - ObserveSwingDataSource dataSource, - String routeId, - String tripId) { - super(treeHelper, routeId, tripId); + public ChangeRouteTripActionListener(NavigationTree tree, String routeId, String tripId) { + super(tree, routeId, tripId); } @Override @@ -63,15 +54,15 @@ public class ChangeRouteTripActionListener extends NodeChangeActionListener { } @Override - protected ObserveNode getParentNode(ObserveNode node) { + protected NavigationTreeNodeSupport getParentNode(NavigationTreeNodeSupport node) { return node.getParent().getParent(); } @Override - protected ObserveNode getNewParentNode(ObserveNode grandParentNode, String parentNodeId) { - ObserveNode tripNode = getTreeHelper().getChild(grandParentNode, parentNodeId); + protected NavigationTreeNodeSupport getNewParentNode(NavigationTreeNodeSupport grandParentNode, String parentNodeId) { + NavigationTreeNodeSupport tripNode = getTree().getChild(grandParentNode, parentNodeId); String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); - return getTreeHelper().getChild(tripNode, routesNodeId); + return getTree().getChild(tripNode, routesNodeId); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeTripProgramActionListener.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeTripProgramActionListener.java index 79ac357..8a270f8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeTripProgramActionListener.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/ChangeTripProgramActionListener.java @@ -25,15 +25,12 @@ package fr.ird.observe.application.swing.ui.tree.actions; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.ObserveServicesProvider; import fr.ird.observe.services.dto.IdHelper; import fr.ird.observe.services.service.data.longline.TripLonglineService; import fr.ird.observe.services.service.data.seine.TripSeineService; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; /** * Created on 1/9/15. @@ -43,14 +40,8 @@ import org.apache.commons.logging.LogFactory; */ public class ChangeTripProgramActionListener extends NodeChangeActionListener { - /** Logger. */ - private static final Log log = LogFactory.getLog(ChangeTripProgramActionListener.class); - - public ChangeTripProgramActionListener(ObserveTreeHelper treeHelper, - ObserveSwingDataSource dataSource, - String tripId, - String programId) { - super(treeHelper, tripId, programId); + public ChangeTripProgramActionListener(NavigationTree tree, String tripId, String programId) { + super(tree, tripId, programId); } @Override @@ -59,13 +50,13 @@ public class ChangeTripProgramActionListener extends NodeChangeActionListener { } @Override - protected ObserveNode getParentNode(ObserveNode node) { + protected NavigationTreeNodeSupport getParentNode(NavigationTreeNodeSupport node) { return node.getParent(); } @Override - protected ObserveNode getNewParentNode(ObserveNode grandParentNode, String parentNodeId) { - return getTreeHelper().getChild(grandParentNode, parentNodeId); + protected NavigationTreeNodeSupport getNewParentNode(NavigationTreeNodeSupport grandParentNode, String parentNodeId) { + return getTree().getChild(grandParentNode, parentNodeId); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/NodeChangeActionListener.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/NodeChangeActionListener.java index 63d72c6..da0ce94 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/NodeChangeActionListener.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/actions/NodeChangeActionListener.java @@ -23,8 +23,8 @@ package fr.ird.observe.application.swing.ui.tree.actions; */ -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -46,33 +46,33 @@ public abstract class NodeChangeActionListener implements ActionListener { private final String parentNodeId; - private final ObserveTreeHelper treeHelper; + private final NavigationTree tree; - public NodeChangeActionListener(ObserveTreeHelper treeHelper, + public NodeChangeActionListener(NavigationTree tree, String nodeId, String parentNodeId) { this.nodeId = nodeId; this.parentNodeId = parentNodeId; - this.treeHelper = treeHelper; + this.tree = tree; } @Override public void actionPerformed(ActionEvent event) { - ObserveNode node = treeHelper.getSelectedNode(); - ObserveNode oldParentNode = getParentNode(node); - ObserveNode grandParentNode = oldParentNode.getParent(); - ObserveNode newParentNode = getNewParentNode(grandParentNode, parentNodeId); + NavigationTreeNodeSupport node = tree.getSelectedNode(); + NavigationTreeNodeSupport oldParentNode = getParentNode(node); + NavigationTreeNodeSupport grandParentNode = oldParentNode.getParent(); + NavigationTreeNodeSupport newParentNode = getNewParentNode(grandParentNode, parentNodeId); closeNode(node.getId()); int position = moveNodeToParent(nodeId, parentNodeId, oldParentNode.getId()); - treeHelper.selectNode(newParentNode); + tree.selectNode(newParentNode); - treeHelper.removeNode(node); + tree.removeNode(node); - ObserveNode newNode = treeHelper.getChild(newParentNode, nodeId); + NavigationTreeNodeSupport newNode = tree.getChild(newParentNode, nodeId); if (newNode == null) { @@ -80,23 +80,23 @@ public abstract class NodeChangeActionListener implements ActionListener { if (log.isInfoEnabled()) { log.info("Insert node: "); } - treeHelper.insertNode(newParentNode, node, position); + tree.insertNode(newParentNode, node, position); newNode = node; } - treeHelper.selectNode(newNode); + tree.selectNode(newNode); } - protected ObserveTreeHelper getTreeHelper() { - return treeHelper; + public NavigationTree getTree() { + return tree; } protected abstract void closeNode(String nodeId); - protected abstract ObserveNode getParentNode(ObserveNode node); + protected abstract NavigationTreeNodeSupport getParentNode(NavigationTreeNodeSupport node); - protected abstract ObserveNode getNewParentNode(ObserveNode grandParentNode, String parentNodeId); + protected abstract NavigationTreeNodeSupport getNewParentNode(NavigationTreeNodeSupport grandParentNode, String parentNodeId); protected abstract int moveNodeToParent(String nodeId, String parentNodeId, String oldParentNodeId); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/AbstractNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/AbstractNodeChildLoador.java deleted file mode 100644 index b29f1a2..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/AbstractNodeChildLoador.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.loadors; - -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import jaxx.runtime.swing.nav.NavDataProvider; -import jaxx.runtime.swing.nav.tree.NavTreeNodeChildLoador; - -import java.util.Objects; -import java.util.Set; - -/** - * Un object pour charger les fils d'un noeud. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public abstract class AbstractNodeChildLoador<T, O> extends NavTreeNodeChildLoador<T, O, ObserveNode> { - - private static final long serialVersionUID = 1L; - - protected AbstractNodeChildLoador(Class<O> beanType) { - super(beanType); - } - - protected ObserveSwingDataSource getDataSource(NavDataProvider dataProvider) { - ObserveDataProvider provider = (ObserveDataProvider) dataProvider; - return provider.getDataSource(); - } - - protected DataSelectionModel getSelectionModel(NavDataProvider dataProvider) { - ObserveDataProvider provider = (ObserveDataProvider) dataProvider; - return provider.getSelectionModel(); - } - - ObserveNode createNode0(Set<Class> pluralizeProperties, Class data) { - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - if (pluralizeProperties.contains(data)) { - return createPluralizeStringNode(data, null); - } else { - return createStringNode(data, null); - } - } - - <L extends AbstractNodeChildLoador<?, ?>> ObserveNode createStringNode(Class<?> context, Class<L> loadorType) { - Objects.requireNonNull(context, "Ne peut pas ajouter un context null"); - L childLoador = loadorType == null ? null : ObserveTreeHelper.getChildLoador(loadorType); - - String propertyLabel = ObserveI18nDecoratorHelper.getTypeI18nKey(context); - return new ObserveNode(String.class, - propertyLabel, - context.getName(), - childLoador, - false); - - } - - <L extends AbstractNodeChildLoador<?, ?>> ObserveNode createPluralizeStringNode(Class<?> context, Class<L> loadorType) { - Objects.requireNonNull(context, "Ne peut pas ajouter un context null"); - L childLoador = loadorType == null ? null : ObserveTreeHelper.getChildLoador(loadorType); - - String propertyLabel = ObserveI18nDecoratorHelper.getTypePluralI18nKey(context); - return new ObserveNode(String.class, - propertyLabel, - context.getName(), - childLoador, - false); - } - - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivityLonglineNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivityLonglineNodeChildLoador.java deleted file mode 100644 index 7ec820a..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivityLonglineNodeChildLoador.java +++ /dev/null @@ -1,109 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.loadors; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.ImmutableSet; -import fr.ird.observe.application.swing.ui.tree.node.ActivityLonglineNode; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.SetLonglineNode; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.EncounterDto; -import fr.ird.observe.services.dto.longline.SensorUsedDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import jaxx.runtime.swing.nav.NavDataProvider; -import jaxx.runtime.swing.nav.tree.NavTreeBridge; - -import java.util.Collections; -import java.util.List; -import java.util.Objects; - -/** - * Created on 8/28/14. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.7 - */ -public class ActivityLonglineNodeChildLoador extends AbstractNodeChildLoador<Class, String> { - - private static final long serialVersionUID = 1L; - - public final static String FISHING_OPERATION_ID = - "fr.ird.observe.entities.referentiel.longline.VesselActivityLongline#1239832686138#0.1"; // operation de peche - - private final static ImmutableSet<String> ENCOUNTERS_ID = ImmutableSet.of( - FISHING_OPERATION_ID, // operation de peche - "fr.ird.observe.entities.referentiel.longline.VesselActivityLongline#1239832686138#0.4" // rencontre interaction - ); - private final static ImmutableSet<String> SENSOR_USED_ID = ImmutableSet.of( - FISHING_OPERATION_ID, // operation de peche - "fr.ird.observe.entities.referentiel.longline.VesselActivityLongline#1239832686138#0.3" // station oceanographique - ); - - public ActivityLonglineNodeChildLoador() { - super(String.class); - } - - @Override - public void loadChilds(NavTreeBridge<ObserveNode> model, - ObserveNode parentNode, - NavDataProvider dataProvider) throws Exception { - - ObserveNode containerNode = parentNode.getContainerNode(); - - if (containerNode == null) { - throw new IllegalStateException("Could not find containerNode of " + parentNode); - } - - DataReference<ActivityLonglineDto> activityLonglineRef = ((ActivityLonglineNode) parentNode).getEntity(); - - DataReference<SetLonglineDto> setLonglineRef = (DataReference) activityLonglineRef.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); - if (setLonglineRef != null) { - parentNode.add(createSetNode(setLonglineRef)); - } - - String vesselActivityId = (String) activityLonglineRef.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); - - if (ENCOUNTERS_ID.contains(vesselActivityId)) { - parentNode.add(createNode(EncounterDto.class, dataProvider)); - } - if (SENSOR_USED_ID.contains(vesselActivityId)) { - parentNode.add(createNode(SensorUsedDto.class, dataProvider)); - } - } - - @Override - public List<Class> getData(Class<?> parentClass, String parentId, NavDataProvider dataService) { - return Collections.emptyList(); - } - - @Override - public ObserveNode createNode(Class data, NavDataProvider dataProvider) { - return createPluralizeStringNode(data, null); - } - - public ObserveNode createSetNode(DataReference<SetLonglineDto> data) { - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - return new SetLonglineNode(data); - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java deleted file mode 100644 index 09dd4e2..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivityLonglinesNodeChildLoador.java +++ /dev/null @@ -1,64 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.loadors; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.node.ActivityLonglineNode; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.service.data.longline.ActivityLonglineService; -import jaxx.runtime.swing.nav.NavDataProvider; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * Created on 8/28/14. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.7 - */ -public class ActivityLonglinesNodeChildLoador extends AbstractDataReferenceChildLoador<ActivityLonglineDto> { - - private static final long serialVersionUID = 1L; - - public ActivityLonglinesNodeChildLoador() { - super(ActivityLonglineDto.class); - } - - @Override - public List<DataReference<ActivityLonglineDto>> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { - ActivityLonglineService activityLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); - DataReferenceSet<ActivityLonglineDto> activityLonglineByTripLongline = activityLonglineService.getActivityLonglineByTripLongline(parentId); - return new ArrayList<>(activityLonglineByTripLongline.getReferences()); - } - - @Override - public ObserveNode createNode(DataReference<ActivityLonglineDto> data, NavDataProvider dataProvider) { - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - return new ActivityLonglineNode(data); - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivitySeineNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivitySeineNodeChildLoador.java deleted file mode 100644 index fd2013d..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivitySeineNodeChildLoador.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.loadors; - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.node.ActivitySeineNode; -import fr.ird.observe.application.swing.ui.tree.node.FloatingObjectSeineNode; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.SetSeineNode; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.FloatingObjectDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.service.data.seine.FloatingObjectService; -import jaxx.runtime.swing.nav.NavDataProvider; -import jaxx.runtime.swing.nav.tree.NavTreeBridge; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * Le chargeur des noeuds de marees. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class ActivitySeineNodeChildLoador extends AbstractDataReferenceChildLoador<FloatingObjectDto> { - - private static final long serialVersionUID = 1L; - - public ActivitySeineNodeChildLoador() { - super(FloatingObjectDto.class); - } - - @Override - public void loadChilds(NavTreeBridge<ObserveNode> model, ObserveNode parentNode, NavDataProvider dataProvider) throws Exception { - - ObserveNode containerNode = parentNode.getContainerNode(); - - if (containerNode == null) { - throw new IllegalStateException( - "Could not find containerNode of " + parentNode); - } - - DataReference<ActivitySeineDto> activitySeineRef = ((ActivitySeineNode) parentNode).getEntity(); - DataReference<SetSeineDto> setSeineRef = (DataReference) activitySeineRef.getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); - if (setSeineRef != null) { - parentNode.add(createSetNode(setSeineRef)); - } - - // ajout des objets flottants - super.loadChilds(model, parentNode, dataProvider); - } - - public ObserveNode createSetNode(DataReference<SetSeineDto> data) { - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - return new SetSeineNode(data); - } - - @Override - public ObserveNode createNode(DataReference<FloatingObjectDto> data, NavDataProvider dataProvider) { - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - return new FloatingObjectSeineNode(data); - } - - @Override - public List<DataReference<FloatingObjectDto>> getData(Class<?> parentClass, - String parentId, - NavDataProvider dataProvider) throws Exception { - - FloatingObjectService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newFloatingObjectService(); - DataReferenceSet<FloatingObjectDto> floatingObjectByActivitySeine = service.getFloatingObjectByActivitySeine(parentId); - return new ArrayList<>(floatingObjectByActivitySeine.getReferences()); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivitySeinesNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivitySeinesNodeChildLoador.java deleted file mode 100644 index 4a4c104..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ActivitySeinesNodeChildLoador.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.loadors; - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.node.ActivitySeineNode; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.service.data.seine.ActivitySeineService; -import jaxx.runtime.swing.nav.NavDataProvider; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * Le chargeur des noeuds des activités d'une route. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class ActivitySeinesNodeChildLoador extends AbstractDataReferenceChildLoador<ActivitySeineDto> { - - private static final long serialVersionUID = 1L; - - public ActivitySeinesNodeChildLoador() { - super(ActivitySeineDto.class); - } - - @Override - public List<DataReference<ActivitySeineDto>> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { - - ActivitySeineService activitySeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); - DataReferenceSet<ActivitySeineDto> activitySeineStubByRoute = activitySeineService.getActivitySeineByRoute(parentId); - return new ArrayList<>(activitySeineStubByRoute.getReferences()); - - } - - @Override - public ObserveNode createNode(DataReference<ActivitySeineDto> data, NavDataProvider dataProvider) { - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - return new ActivitySeineNode(data); - - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/FloatingObjectNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/FloatingObjectNodeChildLoador.java deleted file mode 100644 index 6d4e3b0..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/FloatingObjectNodeChildLoador.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.loadors; - - -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; -import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; -import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; -import jaxx.runtime.swing.nav.NavDataProvider; - -import java.util.Arrays; -import java.util.List; -import java.util.Objects; - -/** - * Le chargeur des noeuds de marees. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class FloatingObjectNodeChildLoador extends AbstractNodeChildLoador<Class, String> { - - private static final long serialVersionUID = 1L; - - public FloatingObjectNodeChildLoador() { - super(String.class); - } - - @Override - public List<Class> getData(Class<?> parentClass, String parentId, NavDataProvider dataService) { - return Arrays.asList(ObjectOperationDto.class, ObjectSchoolEstimateDto.class, ObjectObservedSpeciesDto.class); - } - - @Override - public ObserveNode createNode(Class data, NavDataProvider dataProvider) { - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - return createStringNode(data, null); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramLonglineNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramLonglineNodeChildLoador.java deleted file mode 100644 index 92d9715..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramLonglineNodeChildLoador.java +++ /dev/null @@ -1,126 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.loadors; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.ImmutableList; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.TripLonglineNode; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.service.data.longline.TripLonglineService; -import jaxx.runtime.swing.nav.NavDataProvider; -import jaxx.runtime.swing.nav.tree.NavTreeBridge; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Objects; - -/** - * Created on 8/28/14. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.7 - */ -public class ProgramLonglineNodeChildLoador extends AbstractNodeChildLoador<DataReference<TripLonglineDto>, TripLonglineDto> { - - private static final long serialVersionUID = 1L; - - private boolean addChilds; - private ImmutableList<DataReference<TripLonglineDto>> trips; - - public ProgramLonglineNodeChildLoador() { - super(TripLonglineDto.class); - } - - @Override - public void loadChilds(NavTreeBridge<ObserveNode> model, - ObserveNode parentNode, - NavDataProvider dataProvider) throws Exception { - - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - addChilds = selectionModel == null; - - try { - super.loadChilds(model, parentNode, dataProvider); - } finally { - addChilds = true; - } - - } - - @Override - public List<DataReference<TripLonglineDto>> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { - - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - - List<DataReference<TripLonglineDto>> result; - - if (selectionModel != null) { - - result = new ArrayList<>((Collection) selectionModel.getDatas(parentId)); - - } else if (trips != null) { - - result = new ArrayList<>(trips); - - } else { - - TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); - DataReferenceSet<TripLonglineDto> tripLonglineByProgram = tripLonglineService.getTripLonglineByProgram(parentId); - - result = new ArrayList<>(tripLonglineByProgram.getReferences()); - - } - - - return result; - } - - @Override - public ObserveNode createNode(DataReference<TripLonglineDto> data, NavDataProvider dataProvider) { - - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - - ObserveNode result = new TripLonglineNode(data); - - if (addChilds) { - result.add(createPluralizeStringNode(GearUseFeaturesLonglineDto.class, null)); - result.add(createPluralizeStringNode(ActivityLonglineDto.class, ActivityLonglinesNodeChildLoador.class)); - } - - return result; - - } - - public void setTrips(ImmutableList<DataReference<TripLonglineDto>> trips) { - this.trips = trips; - } - -} - diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramSeineNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramSeineNodeChildLoador.java deleted file mode 100644 index 92e14d7..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ProgramSeineNodeChildLoador.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.loadors; - -import com.google.common.collect.ImmutableList; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.TripSeineNode; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.seine.TripSeineService; -import jaxx.runtime.swing.nav.NavDataProvider; -import jaxx.runtime.swing.nav.tree.NavTreeBridge; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Objects; - -/** - * Le chargeur des noeuds fils d'un program (les marees du programme). - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class ProgramSeineNodeChildLoador extends AbstractNodeChildLoador<DataReference<TripSeineDto>, TripSeineDto> { - - private static final long serialVersionUID = 1L; - - private boolean addChilds; - private ImmutableList<DataReference<TripSeineDto>> trips; - - public ProgramSeineNodeChildLoador() { - super(TripSeineDto.class); - } - - @Override - public void loadChilds(NavTreeBridge<ObserveNode> model, ObserveNode parentNode, NavDataProvider dataProvider) throws Exception { - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - addChilds = selectionModel == null; - - try { - super.loadChilds(model, parentNode, dataProvider); - } finally { - addChilds = true; - } - } - - @Override - public List<DataReference<TripSeineDto>> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { - - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - - List<DataReference<TripSeineDto>> result; - - if (selectionModel != null) { - - result = new ArrayList<>((Collection) selectionModel.getDatas(parentId)); - - } else if (trips != null) { - - result = new ArrayList<>(trips); - - } else { - - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); - DataReferenceSet<TripSeineDto> tripSeineByProgram = tripSeineService.getTripSeineByProgram(parentId); - - result = new ArrayList<>(tripSeineByProgram.getReferences()); - - } - return result; - - } - - @Override - public ObserveNode createNode(DataReference<TripSeineDto> data, NavDataProvider dataProvider) { - - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - - ObserveNode result = new TripSeineNode(data); - - if (addChilds) { - result.add(createPluralizeStringNode(GearUseFeaturesSeineDto.class, null)); - result.add(createPluralizeStringNode(RouteDto.class, RoutesNodeChildLoador.class)); - } - - return result; - - } - - public void setTrips(ImmutableList<DataReference<TripSeineDto>> trips) { - this.trips = trips; - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ReferenceNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ReferenceNodeChildLoador.java deleted file mode 100644 index 2400af8..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/ReferenceNodeChildLoador.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.loadors; - - -import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.services.dto.referential.ReferentialHelper; -import jaxx.runtime.swing.nav.NavDataProvider; - -import java.util.List; -import java.util.Objects; -import java.util.Set; - -/** - * Le chargeur des noeuds du referentiel. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -class ReferenceNodeChildLoador extends AbstractNodeChildLoador<Class, Class> { - - public static class CommonReferenceNodeChildLoador extends ReferenceNodeChildLoador { - public CommonReferenceNodeChildLoador() { - super(ReferentialHelper.REFERENCE_COMMON_DTOS); - } - } - - public static class SeineReferenceNodeChildLoador extends ReferenceNodeChildLoador { - public SeineReferenceNodeChildLoador() { - super(ReferentialHelper.REFERENCE_SEINE_DTOS); - } - } - - public static class LonglineReferenceNodeChildLoador extends ReferenceNodeChildLoador { - public LonglineReferenceNodeChildLoador() { - super(ReferentialHelper.REFERENCE_LONGLINE_DTOS); - } - } - - - private static final long serialVersionUID = 1L; - - private final Set<Class> classes; - - private ReferenceNodeChildLoador(Set classes) { - super(Class.class); - this.classes = classes; - } - - @Override - public List<Class> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) { - return ObserveI18nDecoratorHelper.sortTypes(classes); - } - - @Override - public ObserveNode createNode(Class data, NavDataProvider dataProvider) { - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - return new ObserveNode(data, data.getSimpleName(), null, true); - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/RootNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/RootNodeChildLoador.java deleted file mode 100644 index 6f01055..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/RootNodeChildLoador.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.loadors; - -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ProgramLonglineNode; -import fr.ird.observe.application.swing.ui.tree.node.ProgramSeineNode; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import jaxx.runtime.swing.nav.NavDataProvider; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Set; - -import static org.nuiton.i18n.I18n.n; - -/** - * Le chargeur des noeuds fils d'un program (les marees du programme). - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class RootNodeChildLoador extends AbstractNodeChildLoador<ReferentialReference<ProgramDto>, ProgramDto> { - - private static final long serialVersionUID = 1L; - - private boolean addData; - - private boolean addReferentiel; - - public RootNodeChildLoador() { - this(false, false); - } - - public RootNodeChildLoador(boolean addData, boolean addReferentiel) { - super(ProgramDto.class); - this.addData = addData; - this.addReferentiel = addReferentiel; - } - - public void setAddData(boolean addData) { - this.addData = addData; - } - - public void setAddReferentiel(boolean addReferentiel) { - this.addReferentiel = addReferentiel; - } - - @Override - public List<ReferentialReference<ProgramDto>> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) { - - DataSelectionModel selectionModel = getSelectionModel(dataProvider); - - List<ReferentialReference<ProgramDto>> data = Collections.emptyList(); - - if (addData) { - - if (selectionModel != null) { - data = new ArrayList<>(selectionModel.getDatas().keySet()); - } else { - Set<ReferentialReference<ProgramDto>> referentialReferenceSet = getDataSource(dataProvider).getReferentialReferences(ProgramDto.class); - data = new ArrayList<>(referentialReferenceSet); - } - - ObserveTreeHelper.sortPrograms(data); - } - - return data; - - } - - @Override - public void addChildNodes(ObserveNode parentNode, List<ReferentialReference<ProgramDto>> datas, NavDataProvider dataProvider) { - super.addChildNodes(parentNode, datas, dataProvider); - if (addReferentiel) { - parentNode.add(new ObserveNode( - String.class, - n("observe.type.reference.common"), - ObserveTreeHelper.getChildLoador(ReferenceNodeChildLoador.CommonReferenceNodeChildLoador.class), - true)); - parentNode.add(new ObserveNode( - String.class, - n("observe.type.reference.seine"), - ObserveTreeHelper.getChildLoador(ReferenceNodeChildLoador.SeineReferenceNodeChildLoador.class), - true)); - parentNode.add(new ObserveNode( - String.class, - n("observe.type.reference.longline"), - ObserveTreeHelper.getChildLoador(ReferenceNodeChildLoador.LonglineReferenceNodeChildLoador.class), - true)); - } - } - - @Override - public ObserveNode createNode(ReferentialReference<ProgramDto> data, NavDataProvider dataProvider) { - - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - - GearType gearType = (GearType) data.getPropertyValue(ProgramDto.PROPERTY_GEAR_TYPE); - - ObserveNode result; - - switch (gearType) { - - case seine: - - result = new ProgramSeineNode(data); - break; - - case longline: - - result = new ProgramLonglineNode(data); - break; - - default: - throw new IllegalStateException("The program has a gearType " + gearType + " we can't deal with"); - - } - - return result; - - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/RoutesNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/RoutesNodeChildLoador.java deleted file mode 100644 index a8264de..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/RoutesNodeChildLoador.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.loadors; - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.RouteSeineNode; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.service.data.seine.RouteService; -import jaxx.runtime.swing.nav.NavDataProvider; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * Le chargeur des noeuds de routes d'une marée. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class RoutesNodeChildLoador extends AbstractDataReferenceChildLoador<RouteDto> { - - private static final long serialVersionUID = 1L; - - public RoutesNodeChildLoador() { - super(RouteDto.class); - } - - @Override - public List<DataReference<RouteDto>> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { - RouteService routeService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); - DataReferenceSet<RouteDto> routeByTripSeine = routeService.getRouteByTripSeine(parentId); - return new ArrayList<>(routeByTripSeine.getReferences()); - } - - - @Override - public ObserveNode createNode(DataReference<RouteDto> data, NavDataProvider dataProvider) { - Objects.requireNonNull(data, "Ne peut pas ajouter un objet null"); - ObserveNode result = new RouteSeineNode(data); - ObserveNode child = createPluralizeStringNode(ActivitySeineDto.class, ActivitySeinesNodeChildLoador.class); - result.add(child); - return result; - } - - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/SetLonglineNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/SetLonglineNodeChildLoador.java deleted file mode 100644 index ba9faf8..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/SetLonglineNodeChildLoador.java +++ /dev/null @@ -1,67 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.loadors; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - - -import com.google.common.collect.Sets; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.services.dto.longline.CatchLonglineDto; -import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; -import fr.ird.observe.services.dto.longline.TdrDto; -import jaxx.runtime.swing.nav.NavDataProvider; - -import java.util.Arrays; -import java.util.List; -import java.util.Set; - -/** - * Created on 8/30/14. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.7 - */ -public class SetLonglineNodeChildLoador extends AbstractNodeChildLoador<Class, String> { - - private static final long serialVersionUID = 1L; - - private static final Set<Class> PLURALIZE_PROPERTIES = Sets.newHashSet(CatchLonglineDto.class, TdrDto.class); - - public SetLonglineNodeChildLoador() { - super(String.class); - } - - @Override - public List<Class> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) { - return Arrays.asList(SetLonglineGlobalCompositionDto.class, - SetLonglineDetailCompositionDto.class, - CatchLonglineDto.class, - TdrDto.class); - } - - @Override - public ObserveNode createNode(Class data, NavDataProvider dataProvider) { - return createNode0(PLURALIZE_PROPERTIES, data); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/SetSeineNodeChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/SetSeineNodeChildLoador.java deleted file mode 100644 index 0bc122d..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/SetSeineNodeChildLoador.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.loadors; - - -import com.google.common.collect.Sets; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.services.dto.seine.DiscardedTargetCatchDto; -import fr.ird.observe.services.dto.seine.DiscardedTargetSampleDto; -import fr.ird.observe.services.dto.seine.KeptTargetCatchDto; -import fr.ird.observe.services.dto.seine.KeptTargetSampleDto; -import fr.ird.observe.services.dto.seine.NonTargetCatchDto; -import fr.ird.observe.services.dto.seine.NonTargetSampleDto; -import fr.ird.observe.services.dto.seine.SchoolEstimateDto; -import fr.ird.observe.services.dto.seine.TargetCatchDto; -import fr.ird.observe.services.dto.seine.TargetSampleDto; -import jaxx.runtime.swing.nav.NavDataProvider; - -import java.util.Arrays; -import java.util.List; -import java.util.Set; - -/** - * Le chargeur des noeuds de marees. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class SetSeineNodeChildLoador extends AbstractNodeChildLoador<Class, String> { - - private static final long serialVersionUID = 1L; - - private static final Set<Class> PLURALIZE_PROPERTIES = Sets.newHashSet(TargetCatchDto.class, - TargetSampleDto.class, - NonTargetSampleDto.class, - NonTargetCatchDto.class); - - public SetSeineNodeChildLoador() { - super(String.class); - } - - @Override - public List<Class> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) { - return Arrays.asList(SchoolEstimateDto.class, - KeptTargetCatchDto.class, - DiscardedTargetCatchDto.class, - DiscardedTargetSampleDto.class, - KeptTargetSampleDto.class, - NonTargetCatchDto.class, - NonTargetSampleDto.class); - } - - @Override - public ObserveNode createNode(Class data, NavDataProvider dataProvider) { - return createNode0(PLURALIZE_PROPERTIES, data); - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java index 32ebcb2..e56c148 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java @@ -22,17 +22,17 @@ package fr.ird.observe.application.swing.ui.tree.menu; * #L% */ -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.IdHelper; -import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.decoration.DecoratorService; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.TripLonglineNode; +import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.application.swing.ui.tree.actions.ChangeActivityTripActionListener; import fr.ird.observe.application.swing.ui.tree.actions.NodeChangeActionListener; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.TripLonglineNavigationTreeNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; -import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; +import fr.ird.observe.services.dto.IdHelper; +import fr.ird.observe.services.dto.longline.TripLonglineDto; import java.util.ArrayList; import java.util.List; @@ -44,31 +44,30 @@ import java.util.List; public class MoveActivityLonglineNodeMenuPopulator extends MoveNodeMenuPopulator { @Override - public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, - ObserveSwingDataSource dataSource, + public NodeChangeActionListener createChangeActionListener(NavigationTree tree, String id, String parentId) { - return new ChangeActivityTripActionListener(treeHelper, dataSource, id, parentId); + return new ChangeActivityTripActionListener(tree, id, parentId); } @Override - public List<DecoratedNodeEntity> getPossibleParentNodes(ObserveNode activityLonglineNode, ObserveTreeHelper treeHelper) { + public List<DecoratedNodeEntity> getPossibleParentNodes(NavigationTreeNodeSupport activityLonglineNode) { // noeud de marée parent - ObserveNode parentNode = activityLonglineNode.getParent().getParent(); + NavigationTreeNodeSupport parentNode = activityLonglineNode.getParent().getParent(); // noeud de route de la marée sans le parent actuel List<DecoratedNodeEntity> possibleParents = new ArrayList<>(); // noeud du programme - ObserveNode programNode = parentNode.getParent(); + NavigationTreeNodeSupport programNode = parentNode.getParent(); - DecoratorService decoratorService = treeHelper.getTreeCellRenderer().getDecoratorService(); + DecoratorService decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); DataReferenceDecorator<TripLonglineDto> tripDecorator = decoratorService.getDataReferenceDecorator(TripLonglineDto.class); for (int i = 0, n = programNode.getChildCount(); i < n; i++) { - TripLonglineNode tripNode = (TripLonglineNode) programNode.getChildAt(i); + TripLonglineNavigationTreeNode tripNode = (TripLonglineNavigationTreeNode) programNode.getChildAt(i); String tripId = tripNode.getId(); // si le noeud de marée n'est pas le même que le parent actuel diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java index 8c78ec9..a262fcf 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java @@ -22,17 +22,17 @@ package fr.ird.observe.application.swing.ui.tree.menu; * #L% */ -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.IdHelper; -import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.decoration.DecoratorService; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.RouteSeineNode; +import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.application.swing.ui.tree.actions.ChangeActivityRouteActionListener; import fr.ird.observe.application.swing.ui.tree.actions.NodeChangeActionListener; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.RouteSeineNavigationTreeNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; -import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; +import fr.ird.observe.services.dto.IdHelper; +import fr.ird.observe.services.dto.seine.RouteDto; import java.util.ArrayList; import java.util.List; @@ -44,31 +44,30 @@ import java.util.List; public class MoveActivitySeineNodeMenuPopulator extends MoveNodeMenuPopulator { @Override - public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, - ObserveSwingDataSource dataSource, + public NodeChangeActionListener createChangeActionListener(NavigationTree tree, String id, String parentId) { - return new ChangeActivityRouteActionListener(treeHelper, dataSource, id, parentId); + return new ChangeActivityRouteActionListener(tree, id, parentId); } @Override - public List<DecoratedNodeEntity> getPossibleParentNodes(ObserveNode activitySeineNode, ObserveTreeHelper treeHelper) { + public List<DecoratedNodeEntity> getPossibleParentNodes(NavigationTreeNodeSupport activitySeineNode) { // noeud de route parent - ObserveNode parentNode = activitySeineNode.getParent().getParent(); + NavigationTreeNodeSupport parentNode = activitySeineNode.getParent().getParent(); // noeud de route de la marée sans le parent actuel List<DecoratedNodeEntity> possibleParents = new ArrayList<>(); // noeud des routes de la marée - ObserveNode routesNode = parentNode.getParent(); + NavigationTreeNodeSupport routesNode = parentNode.getParent(); - DecoratorService decoratorService = treeHelper.getTreeCellRenderer().getDecoratorService(); + DecoratorService decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); DataReferenceDecorator<RouteDto> routeDecorator = decoratorService.getDataReferenceDecorator(RouteDto.class); for (int i = 0, n = routesNode.getChildCount(); i < n; i++) { - RouteSeineNode routeNode = (RouteSeineNode) routesNode.getChildAt(i); + RouteSeineNavigationTreeNode routeNode = (RouteSeineNavigationTreeNode) routesNode.getChildAt(i); String routeId = routeNode.getId(); // si le noeud de marée n'est pas le même que le parent actuel diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveNodeMenuPopulator.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveNodeMenuPopulator.java index e96903a..0c40b51 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveNodeMenuPopulator.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveNodeMenuPopulator.java @@ -22,10 +22,9 @@ package fr.ird.observe.application.swing.ui.tree.menu; * #L% */ -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.actions.NodeChangeActionListener; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; import java.util.List; @@ -40,23 +39,20 @@ public abstract class MoveNodeMenuPopulator { /** * Crée une action pour déplacer le noeud quand on sélectionne le menu du nouveau parent - * @param treeHelper - * @param dataSource + * + * @param tree * @param id * @param parentId * @return */ - public abstract NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, - ObserveSwingDataSource dataSource, - String id, - String parentId); + public abstract NodeChangeActionListener createChangeActionListener(NavigationTree tree, String id, String parentId); /** * Récupère les parents dans lesquels on peut déplacer le noeud sélectionné + * * @param node le noeud sélectionné - * @param treeHelper le treehelper * @return une liste contenant les ids et les libellés des noeuds */ - public abstract List<DecoratedNodeEntity> getPossibleParentNodes(ObserveNode node, ObserveTreeHelper treeHelper); + public abstract List<DecoratedNodeEntity> getPossibleParentNodes(NavigationTreeNodeSupport node); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveRouteNodeMenuPopulator.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveRouteNodeMenuPopulator.java index b503be6..41c3375 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveRouteNodeMenuPopulator.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveRouteNodeMenuPopulator.java @@ -22,17 +22,17 @@ package fr.ird.observe.application.swing.ui.tree.menu; * #L% */ -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.IdHelper; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.decoration.DecoratorService; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.TripSeineNode; +import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.application.swing.ui.tree.actions.ChangeRouteTripActionListener; import fr.ird.observe.application.swing.ui.tree.actions.NodeChangeActionListener; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.TripSeineNavigationTreeNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; -import fr.ird.observe.application.swing.decoration.decorators.DataReferenceDecorator; +import fr.ird.observe.services.dto.IdHelper; +import fr.ird.observe.services.dto.seine.TripSeineDto; import java.util.ArrayList; import java.util.List; @@ -44,31 +44,30 @@ import java.util.List; public class MoveRouteNodeMenuPopulator extends MoveNodeMenuPopulator { @Override - public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, - ObserveSwingDataSource dataSource, + public NodeChangeActionListener createChangeActionListener(NavigationTree tree, String id, String parentId) { - return new ChangeRouteTripActionListener(treeHelper, dataSource, id, parentId); + return new ChangeRouteTripActionListener(tree, id, parentId); } @Override - public List<DecoratedNodeEntity> getPossibleParentNodes(ObserveNode routeNode, ObserveTreeHelper treeHelper) { + public List<DecoratedNodeEntity> getPossibleParentNodes(NavigationTreeNodeSupport routeNode) { // noeud de marée parent - ObserveNode parentNode = routeNode.getParent().getParent(); + NavigationTreeNodeSupport parentNode = routeNode.getParent().getParent(); // noeud de marée du programme sans le parent actuel List<DecoratedNodeEntity> possibleParents = new ArrayList<>(); // noeud du programme - ObserveNode programNode = parentNode.getParent(); + NavigationTreeNodeSupport programNode = parentNode.getParent(); - DecoratorService decoratorService = treeHelper.getTreeCellRenderer().getDecoratorService(); + DecoratorService decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); DataReferenceDecorator<TripSeineDto> tripDecorator = decoratorService.getDataReferenceDecorator(TripSeineDto.class); for (int i = 0, n = programNode.getChildCount(); i < n; i++) { - TripSeineNode tripNode = (TripSeineNode) programNode.getChildAt(i); + TripSeineNavigationTreeNode tripNode = (TripSeineNavigationTreeNode) programNode.getChildAt(i); String tripId = tripNode.getId(); // si le noeud de marée n'est pas le même que le parent actuel diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveTripNodeMenuPopulator.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveTripNodeMenuPopulator.java index bab4625..4c42e43 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveTripNodeMenuPopulator.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/menu/MoveTripNodeMenuPopulator.java @@ -23,18 +23,18 @@ package fr.ird.observe.application.swing.ui.tree.menu; */ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.IdHelper; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.node.ProgramLonglineNode; -import fr.ird.observe.application.swing.ui.tree.node.ProgramSeineNode; +import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferenceDecorator; import fr.ird.observe.application.swing.ui.tree.actions.ChangeTripProgramActionListener; import fr.ird.observe.application.swing.ui.tree.actions.NodeChangeActionListener; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.RootNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; import fr.ird.observe.application.swing.ui.util.DecoratedNodeEntity; -import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferenceDecorator; +import fr.ird.observe.services.dto.IdHelper; +import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.referential.ProgramDto; import java.util.ArrayList; import java.util.List; @@ -46,18 +46,17 @@ import java.util.List; public class MoveTripNodeMenuPopulator extends MoveNodeMenuPopulator { @Override - public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, - ObserveSwingDataSource dataSource, + public NodeChangeActionListener createChangeActionListener(NavigationTree tree, String id, String parentId) { - return new ChangeTripProgramActionListener(treeHelper, dataSource, id, parentId); + return new ChangeTripProgramActionListener(tree, id, parentId); } @Override - public List<DecoratedNodeEntity> getPossibleParentNodes(ObserveNode tripNode, ObserveTreeHelper treeHelper) { + public List<DecoratedNodeEntity> getPossibleParentNodes(NavigationTreeNodeSupport tripNode) { // noeud du programme parent - ObserveNode parentNode = tripNode.getParent(); + NavigationTreeNodeSupport parentNode = tripNode.getParent(); // programmes du même type que le noeud de marée, sans le parent actuel List<DecoratedNodeEntity> possibleParents = new ArrayList<>(); @@ -66,34 +65,34 @@ public class MoveTripNodeMenuPopulator extends MoveNodeMenuPopulator { GearType gearType = IdHelper.isLonglineId(tripNode.getId()) ? GearType.longline : GearType.seine; // racine - ObserveNode rootNode = treeHelper.getRootNode(); + RootNavigationTreeNode rootNode = tripNode.getRoot(); createPossibleParents(parentNode.getId(), possibleParents, gearType, rootNode); return possibleParents; } - public static void createPossibleParents(String oldProgramId, List<DecoratedNodeEntity> possibleParents, GearType gearType, ObserveNode rootNode) { + public static void createPossibleParents(String oldProgramId, List<DecoratedNodeEntity> possibleParents, GearType gearType, NavigationTreeNodeSupport rootNode) { ReferentialReferenceDecorator<ProgramDto> programDecorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferentialReferenceDecorator(ProgramDto.class); for (int i = 0, n = rootNode.getChildCount(); i < n; i++) { - ObserveNode programNode = rootNode.getChildAt(i); + NavigationTreeNodeSupport programNode = (NavigationTreeNodeSupport) rootNode.getChildAt(i); String programId = programNode.getId(); // si le noeud programme n'est pas le même que le parent actuel // si le noeud est bien un noeud de programme if (IdHelper.isProgramId(programId) && !oldProgramId.equals(programId)) { - if (programNode instanceof ProgramSeineNode && GearType.seine == gearType) { + if (programNode instanceof ProgramSeineNavigationTreeNode && GearType.seine == gearType) { - ProgramSeineNode node = (ProgramSeineNode) programNode; + ProgramSeineNavigationTreeNode node = (ProgramSeineNavigationTreeNode) programNode; possibleParents.add(DecoratedNodeEntity.newDecoratedNodeEntity(node, programDecorator)); - } else if (programNode instanceof ProgramLonglineNode && GearType.longline == gearType) { + } else if (programNode instanceof ProgramLonglineNavigationTreeNode && GearType.longline == gearType) { - ProgramLonglineNode node = (ProgramLonglineNode) programNode; + ProgramLonglineNavigationTreeNode node = (ProgramLonglineNavigationTreeNode) programNode; possibleParents.add(DecoratedNodeEntity.newDecoratedNodeEntity(node, programDecorator)); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java new file mode 100644 index 0000000..aacee98 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java @@ -0,0 +1,563 @@ +package fr.ird.observe.application.swing.ui.tree.navigation; + +import com.google.common.collect.Lists; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.db.DataContext; +import fr.ird.observe.application.swing.db.ObserveSwingDataSource; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.RootNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ActivityLonglineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.SetLonglineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.TripLonglineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ActivitySeineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.FloatingObjectSeineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.RouteSeineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.SetSeineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.TripSeineNavigationTreeNode; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.reference.ReferenceBinderEngine; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ProgramHelper; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.swingx.JXTree; + +import javax.swing.SwingUtilities; +import javax.swing.event.TreeExpansionEvent; +import javax.swing.event.TreeWillExpandListener; +import javax.swing.tree.ExpandVetoException; +import javax.swing.tree.TreeCellRenderer; +import javax.swing.tree.TreePath; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Enumeration; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NavigationTree extends JXTree { + + /** Logger */ + private static final Log log = LogFactory.getLog(NavigationTree.class); + + + public static void sortPrograms(List<ReferentialReference<ProgramDto>> data) { + ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, data); + } + + public NavigationTree() { + super(new NavigationTreeModel()); + setLargeModel(true); + setRootVisible(false); + addTreeWillExpandListener(new TreeWillExpandListener() { + + @Override + public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException { + if (!(getModel() instanceof NavigationTreeModel)) { + return; + } + NavigationTreeModel model = getNavigationTreeModel(); + NavigationTreeNodeSupport node = (NavigationTreeNodeSupport) event.getPath().getLastPathComponent(); + model.open(node); + + } + + @Override + public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException { + if (!(getModel() instanceof NavigationTreeModel)) { + return; + } + NavigationTreeNodeSupport node = (NavigationTreeNodeSupport) event.getPath().getLastPathComponent(); + + // le seul posant problème est la fermeture d'un noeud parent + // du noeud courant : cela va changer la selection + NavigationTreeNodeSupport selectedNode = getSelectedNode(); + if (selectedNode == null) { + // pas de noeud selectionne + return; + } + + if (selectedNode.equals(node) || !selectedNode.isNodeAncestor(node)) { + return; + } + boolean canChange = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); + if (!canChange) { + throw new ExpandVetoException(event, "Can not collapse node " + event.getPath()); + } + + } + }); + addTreeSelectionListener(e -> { + if (!e.isAddedPath()) { + return; + } + TreePath path = e.getPath(); + getNavigationTreeModel().open((NavigationTreeNodeSupport) path.getLastPathComponent()); + }); + + NavigationTreeCellRenderer renderer = new NavigationTreeCellRenderer(); + setCellRenderer(renderer); + + } + + public NavigationTreeModel getNavigationTreeModel() { + return (NavigationTreeModel) getModel(); + } + + public NavigationTreeNodeSupport getSelectedNode() { + return isSelectionEmpty() ? null : (NavigationTreeNodeSupport) getSelectionPath().getLastPathComponent(); + } + + public void selectOpenNode(Class<?> type) { + + DataContext context = ObserveSwingApplicationContext.get().getDataContext(); + + String[] ids = context.getOpenIds(type); + + if (log.isDebugEnabled()) { + log.debug("using open ids = " + Arrays.toString(ids)); + } + if (ids == null) { + + // rien n'est ouvert, rien à selectionner + return; + } + + selectNode(ids); + } + + /** + * Selects the node described by his given {@code path} of ids. + * + * @param path the absolute path of ids from root node to node to select. + */ + public void selectNode(String... path) { + + if (log.isDebugEnabled()) { + log.debug("try to select node from ids " + Arrays.toString(path)); + } + RootNavigationTreeNode root = this.getNavigationTreeModel().getRoot(); + NavigationTreeNodeSupport node = NavigationTreeNodeSupport.findNode(getNavigationTreeModel(), root, path); + if (log.isDebugEnabled()) { + log.debug("selected node [" + node + "]"); + } + if (node != null) { + selectNode(node); + } + } + + + /** + * Selects the given {@code node} in the registred tree. + * + * @param node the node to select + */ + public void selectNode(NavigationTreeNodeSupport node) { + if (log.isDebugEnabled()) { + log.debug("try to select node [" + node + "]"); + } + TreePath path = new TreePath(getNavigationTreeModel().getPathToRoot(node)); + + addSelectionPath(path); + scrollPathToVisible(path); + } + + public NavigationTreeNodeSupport getChild(NavigationTreeNodeSupport node, String id) { + return node.findNodeById(getNavigationTreeModel(), id); + } + + public NavigationTreeNodeSupport removeNode(NavigationTreeNodeSupport node) { + getNavigationTreeModel().removeNodeFromParent(node); + return null; + } + + public void insertNode(NavigationTreeNodeSupport parentNode, NavigationTreeNodeSupport node, int position) { + getNavigationTreeModel().insertNodeInto(node, parentNode, position); + } + + public void clearModel() { + + NavigationTreeModel treeModel = new NavigationTreeModel(); + treeModel.setLoadLongline(false); + treeModel.setLoadReferential(false); + treeModel.setLoadSeine(false); + treeModel.setRoot(new RootNavigationTreeNode()); + setModel(treeModel); + } + + public void createModel() { + NavigationTreeModel treeModel = new NavigationTreeModel(); + treeModel.setLoadLongline(true); + treeModel.setLoadReferential(true); + treeModel.setLoadSeine(true); + treeModel.setRoot(new RootNavigationTreeNode()); + setModel(treeModel); + } + + /** + * Sélectionne le noeud dans l'arbre de navigation. + * + * <b>Note:</b> cette méthode doit être appelée après un rechargement du + * modèle de navigation. + */ + public void selectInitialNode() { + + if (log.isDebugEnabled()) { + log.debug("Will select initial node..."); + } + DataContext context = ObserveSwingApplicationContext.get().getDataContext(); + + String[] path; + + List<String> selectedIds = ObserveSwingApplicationContext.get().getNodesToReselect(); + if (CollectionUtils.isNotEmpty(selectedIds)) { + if (log.isDebugEnabled()) { + log.debug("will select previous ids " + selectedIds); + } + path = selectedIds.toArray(new String[selectedIds.size()]); + } else { + + // on trouve le meilleur noeud a selectionner. + + String id = context.getHigherOpenId(); + + if (id != null) { + + // on se positionne sur la donnée la plus haute ouverte + path = context.getOpenIds(); + if (log.isDebugEnabled()) { + log.debug("will select open ids " + Arrays.toString(path)); + } + } else { + + // on selectionne le premier noeud de $root + + NavigationTreeNodeSupport node = getNavigationTreeModel().getRoot(); + if (!node.isLeaf()) { + node = (NavigationTreeNodeSupport) node.getFirstChild(); + } + path = new String[]{node.getId()}; + if (log.isDebugEnabled()) { + log.debug("will select first program " + Arrays.toString(path)); + } + } + } + + if (log.isDebugEnabled()) { + log.debug("Selected path : " + Arrays.toString(path)); + } + + try { + + selectNode(path); + } finally { + + // nettoyage du context + ObserveSwingApplicationContext.get().setNodesToReselect(null); + } + + // navigation tree should acquire focus + SwingUtilities.invokeLater(this::grabFocus); + } + + public void reloadNodeSubTree(NavigationTreeNodeSupport node, boolean expandNode) { + Objects.requireNonNull(node, "node is null, we can not reload its structure"); + + // 1. Let's clear node structure + while (node.getChildCount() > 0) { + removeNode((NavigationTreeNodeSupport) node.getFirstChild()); + } + + // 3. Let's re-generate node's children by populating the node : this will call the child loaders. + node.reload(); + node.populateChilds(getNavigationTreeModel()); + + + if (expandNode) { + + // Fix bug (if no child in parent node, it will not expand...) + fireTreeExpanded(new TreePath(node.getPath())); + + } + } + + public void reloadNode(NavigationTreeNodeSupport node, boolean deep) { + + if (log.isDebugEnabled()) { + log.debug("Will refresh (deep ? " + deep + ") node " + node); + } + getNavigationTreeModel().nodeChanged(node); + if (deep) { + // repaint childs nodes + Enumeration<NavigationTreeNodeSupport> e = node.children(); + while (e.hasMoreElements()) { + NavigationTreeNodeSupport child = e.nextElement(); + reloadNode(child, true); + } + } + + } + + /** + * Obtains the path of ids fro the root node to the selected node on the + * registred tree. + * + * @return the array of ids from root node to selected node. + */ + public String[] getSelectedIds() { + List<String> result = new ArrayList<>(); + NavigationTreeNodeSupport selectedNode = getSelectedNode(); + while (selectedNode != null && !selectedNode.isRoot()) { + + result.add(selectedNode.getId()); + selectedNode = selectedNode.getParent(); + } + Collections.reverse(result); + return result.toArray(new String[result.size()]); + } + + + public void reloadSelectedNode(boolean refreshFromParent, boolean refreshChilds) { + NavigationTreeNodeSupport node = getSelectedNode(); + node.setLoaded(false); + + if (refreshFromParent) { + node = node.getParent(); + } + reloadNode(node, refreshChilds); + } + + public NavigationTreeNodeSupport addUnsavedNode(NavigationTreeNodeSupport parentNode, Class<?> type) { + + // noeud en mode creation + NavigationTreeNodeSupport result; + + if (TripSeineDto.class.equals(type)) { + DataReference<TripSeineDto> data = new DataReference<>(); + data.init(TripSeineDto.class, new String[0]); + result = new TripSeineNavigationTreeNode(data); + } else if (RouteDto.class.equals(type)) { + DataReference<RouteDto> data = new DataReference<>(); + data.init(RouteDto.class, new String[0]); + result = new RouteSeineNavigationTreeNode(data); + } else if (ActivitySeineDto.class.equals(type)) { + DataReference<ActivitySeineDto> data = new DataReference<>(); + data.init(ActivitySeineDto.class, new String[0]); + result = new ActivitySeineNavigationTreeNode(data); + } else if (SetSeineDto.class.equals(type)) { + DataReference<SetSeineDto> data = new DataReference<>(); + data.init(SetSeineDto.class, new String[0]); + result = new SetSeineNavigationTreeNode(data); + } else if (FloatingObjectDto.class.equals(type)) { + DataReference<FloatingObjectDto> data = new DataReference<>(); + data.init(FloatingObjectDto.class, new String[0]); + result = new FloatingObjectSeineNavigationTreeNode(data); + } else if (TripLonglineDto.class.equals(type)) { + DataReference<TripLonglineDto> data = new DataReference<>(); + data.init(TripLonglineDto.class, new String[0]); + result = new TripLonglineNavigationTreeNode(data); + } else if (ActivityLonglineDto.class.equals(type)) { + DataReference<ActivityLonglineDto> data = new DataReference<>(); + data.init(ActivityLonglineDto.class, new String[0]); + result = new ActivityLonglineNavigationTreeNode(data); + } else { + throw new IllegalStateException("Can't use type to create unsaved node: " + type.getName()); + } + insertNode(parentNode, result, parentNode.getChildCount()); + + // refresh parent node (render of parent can have changed) + reloadNode(parentNode, true); + + // Fix bug (if no child in parent node, it will not expand...) + fireTreeExpanded(new TreePath(result.getPath())); + + // Select new node + selectNode(result); + + return result; + } + + public <E extends IdDto> NavigationTreeNodeSupport addOpenable(NavigationTreeNodeSupport parentNode, E bean) { + + ReferenceBinderEngine referenceBinderEngine = ObserveSwingApplicationContext.get().getReferenceBinderEngine(); + ReferentialLocale referentialLocale = ObserveSwingApplicationContext.get().getDecoratorService().getReferentialLocale(); + if (bean instanceof TripSeineDto) { + + DataReference<TripSeineDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (TripSeineDto) bean); + return addTripSeine(parentNode, ref); + + } else if (bean instanceof TripLonglineDto) { + + DataReference<TripLonglineDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (TripLonglineDto) bean); + return addTripLongline(parentNode, ref); + + } else if (bean instanceof RouteDto) { + + DataReference<RouteDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (RouteDto) bean); + return addRoute(parentNode, ref); + + } else if (bean instanceof ActivitySeineDto) { + + DataReference<ActivitySeineDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (ActivitySeineDto) bean); + return addActivitySeine(parentNode, ref); + + } else if (bean instanceof ActivityLonglineDto) { + + DataReference<ActivityLonglineDto> ref = referenceBinderEngine.transformDataDtoToReference(referentialLocale, (ActivityLonglineDto) bean); + return addActivityLongline(parentNode, ref); + + } + throw new IllegalStateException("Can not come here!"); + } + + private TripSeineNavigationTreeNode addTripSeine(NavigationTreeNodeSupport parentNode, DataReference<TripSeineDto> bean) { + TripSeineNavigationTreeNode result = new TripSeineNavigationTreeNode(bean); + insertNode(parentNode, result); + return result; + } + + private NavigationTreeNodeSupport addTripLongline(NavigationTreeNodeSupport parentNode, DataReference<TripLonglineDto> bean) { + NavigationTreeNodeSupport result = new TripLonglineNavigationTreeNode(bean); + insertNode(parentNode, result); + return result; + } + + private NavigationTreeNodeSupport addRoute(NavigationTreeNodeSupport parentNode, DataReference<RouteDto> bean) { + NavigationTreeNodeSupport result = new RouteSeineNavigationTreeNode(bean); + insertNode(parentNode, result); + return result; + } + + private NavigationTreeNodeSupport addActivitySeine(NavigationTreeNodeSupport parentNode, DataReference<ActivitySeineDto> bean) { + NavigationTreeNodeSupport result = new ActivitySeineNavigationTreeNode(bean); + insertNode(parentNode, result); + return result; + } + + private NavigationTreeNodeSupport addActivityLongline(NavigationTreeNodeSupport parentNode, DataReference<ActivityLonglineDto> bean) { + NavigationTreeNodeSupport result = new ActivityLonglineNavigationTreeNode(bean); + insertNode(parentNode, result); + return result; + } + + public NavigationTreeNodeSupport addFloatingObject(NavigationTreeNodeSupport parentNode, DataReference<FloatingObjectDto> bean) { + NavigationTreeNodeSupport result = new FloatingObjectSeineNavigationTreeNode(bean); + insertNode(parentNode, result); + return result; + } + + public NavigationTreeNodeSupport addSetSeine(NavigationTreeNodeSupport parentNode, DataReference<SetSeineDto> bean) { + NavigationTreeNodeSupport result = new SetSeineNavigationTreeNode(bean); + insertNode(parentNode, result); + return result; + } + + public NavigationTreeNodeSupport addSetLongline(NavigationTreeNodeSupport parentNode, DataReference<SetLonglineDto> bean) { + NavigationTreeNodeSupport result = new SetLonglineNavigationTreeNode(bean); + insertNode(parentNode, result); + return result; + } + + public void insertNode(NavigationTreeNodeSupport parentNode, NavigationTreeNodeSupport childNode) { + insertNode(parentNode, childNode, parentNode.getChildCount()); + } + + public NavigationTreeNodeSupport addProgram(ReferentialReference<ProgramDto> bean) { + + ObserveSwingDataSource mainDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); + Set<ReferentialReference<ProgramDto>> programs = mainDataSource.getReferentialReferences(ProgramDto.class); + List<ReferentialReference<ProgramDto>> data = Lists.newArrayList(programs); + int newIndex = 0; + if (CollectionUtils.isNotEmpty(data)) { + sortPrograms(data); + newIndex = data.indexOf(bean); + } + + NavigationTreeNodeSupport result; + if (ProgramHelper.isProgramLongline(bean)) { + result = new ProgramLonglineNavigationTreeNode(bean); + } else { + result = new ProgramSeineNavigationTreeNode(bean); + } + insertNode(getRootNode(), result, newIndex); + return result; + } + + public void removeProgram(String programId) { + RootNavigationTreeNode rootNode = getRootNode(); + NavigationTreeNodeSupport result = getChild(rootNode, programId); + Objects.requireNonNull(result, "Could not find program node with id: " + programId); + removeNode(result); + } + + public void updateProgram(ProgramDto bean) { + RootNavigationTreeNode rootNode = getRootNode(); + NavigationTreeNodeSupport result = getChild(rootNode, bean.getId()); + Objects.requireNonNull(result, "Could not find program node with id: " + bean.getId()); + reloadNode(result, false); + //FIXME voir a quoi ça servait +// refreshNode(result, false); + } + + public void removeTrip(ReferentialReference<ProgramDto> program, DataReference trip) { + + RootNavigationTreeNode rootNode = getRootNode(); + NavigationTreeNodeSupport programNode = getChild(rootNode, program.getId()); + Objects.requireNonNull(programNode, "Could not find program node with id: " + program); + NavigationTreeNodeSupport tripNode = getChild(programNode, trip.getId()); + Objects.requireNonNull(tripNode, "Could not find program node with id: " + trip); + removeNode(tripNode); + + if (programNode.isLeaf()) { + removeProgram(program.getId()); + } + } + + public RootNavigationTreeNode getRootNode() { + return getNavigationTreeModel().getRoot(); + } + + /** + * Moves the given {@code node} to the new {@code position}. + * + * @param parentNode the parent node + * @param node the node to move + * @param position the new position of the node + */ + public void moveNode(NavigationTreeNodeSupport parentNode, NavigationTreeNodeSupport node, int position) { + parentNode.remove(node); + parentNode.insert(node, position); + getNavigationTreeModel().nodeStructureChanged(parentNode); + } + + public NavigationTreeCellRenderer getNavigationCellRenderer() { + TreeCellRenderer render0 = getCellRenderer(); + if (render0 instanceof JXTree.DelegatingRenderer) { + JXTree.DelegatingRenderer render01 = (JXTree.DelegatingRenderer) render0; + return (NavigationTreeCellRenderer) render01.getDelegateRenderer(); + } else { + return (NavigationTreeCellRenderer) render0; + } + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java new file mode 100644 index 0000000..ff4e2a5 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java @@ -0,0 +1,208 @@ +package fr.ird.observe.application.swing.ui.tree.navigation; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.decoration.DecoratorService; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.Icon; +import javax.swing.JComponent; +import javax.swing.JTree; +import javax.swing.tree.DefaultTreeCellRenderer; +import java.awt.Color; +import java.awt.Component; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NavigationTreeCellRenderer extends DefaultTreeCellRenderer { + + /** Logger */ + private static final Log log = LogFactory.getLog(NavigationTreeCellRenderer.class); + + /** service de décoration */ + private transient DecoratorService decoratorService; + + public DecoratorService getDecoratorService() { + if (decoratorService == null) { + + // on récupère le service commun + decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); + } + return decoratorService; + } + + @Override + public Color getBackgroundSelectionColor() { + return null; + } + + @Override + public Color getBackgroundNonSelectionColor() { + // Fixes http://forge.codelutin.com/issues/830 for jdk 7 + return Color.WHITE; + } + + // protected void setDefaultIcons(Icon icon) { +// if (icon == null) { +// // the icon is not customized for this node +// setOpenIcon(getDefaultOpenIcon()); +// setClosedIcon(getDefaultClosedIcon()); +// setLeafIcon(getDefaultLeafIcon()); +// } else { +// // replace all possible icons for this node +// setOpenIcon(icon); +// setClosedIcon(icon); +// setLeafIcon(icon); +// } +// } + +// protected String computeNodeText(NavigationTreeNodeSupport node) { +// +// if (node instanceof StringNavigationTreeNodeSupport) { +// return t(((StringNavigationTreeNodeSupport) node).getData()); +// } +// +// Class dataType = node.getDataType(); +// +// if (node instanceof ReferenceNavigationTreeNodeSupport && node.getId() == null) { +// // nœud en création +// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType) + ".unsaved"); +// } +// +// if (node instanceof ClassNavigationTreeNode) { +// return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(dataType)); +// } +// +// if (node.isReferentielNode()) { +// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType)); +// } +// +// // noeud de donnée +// +// String id = node.getId(); +// +// if (id == null) { +// +// // noeud d'un objet en cours de création +// +// //FIXME +// return t(""); +// } +// +// +// if (node instanceof SetLonglineNavigationTreeNode) { +// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType)); +// } +// +// if (node instanceof SetSeineNavigationTreeNode) { +// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType)); +// } +// +// if (node instanceof ReferenceNavigationTreeNodeSupport && DataDto.class.isAssignableFrom(dataType)) { +// ReferenceNavigationTreeNodeSupport<?, ?> entityNodeSupport = (ReferenceNavigationTreeNodeSupport) node; +// +// AbstractReference<?> data = entityNodeSupport.getData(); +// Objects.requireNonNull(data, "L'entité doit être chargée dans le noeud: " + node); +// +// Decorator<?> decorator = getDecoratorService().getDataReferenceDecorator(dataType); +// +// String result = decorator.toString(data); +// if (node instanceof TripSeineNavigationTreeNode) { +// result += " (" + TripSeineHelper.getRouteCount(((TripSeineNavigationTreeNode) node).getData()) + ")"; +// } +// return result; +// } +// +// if (node instanceof ReferenceNavigationTreeNodeSupport) { +// ReferenceNavigationTreeNodeSupport<?, ?> entityNodeSupport = (ReferenceNavigationTreeNodeSupport) node; +// +// AbstractReference<?> data = entityNodeSupport.getData(); +// Objects.requireNonNull(data, "L'entité doit être chargée dans le noeud: " + node); +// +// Decorator<?> decorator = getDecoratorService().getReferentialReferenceDecorator(dataType); +// +// String result = decorator.toString(data); +// if (node instanceof ProgramSeineNavigationTreeNode || node instanceof ProgramLonglineNavigationTreeNode) { +// ReferentialReference<ProgramDto> nodeData = (ReferentialReference<ProgramDto>) node.getData(); +// result += " (" + ProgramHelper.getTripCount(nodeData) + ")"; +// } +// return result; +// } +// +// throw new IllegalStateException("Don't know how to render node: " + node); +// +// } + + /** + * @param value the value which should be a node + * @return the cast {@link NavigationTreeNodeSupport}, or {@code null} if + * value is null. + */ + public static NavigationTreeNodeSupport getNode(Object value) { + NavigationTreeNodeSupport node = null; + if (value instanceof NavigationTreeNodeSupport) { + node = (NavigationTreeNodeSupport) value; + } + return node; + } + + @Override + public Component getTreeCellRendererComponent(JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) { + + if (!(tree.getModel() instanceof NavigationTreeModel)) { + Component rendererComponent; + rendererComponent = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); + return rendererComponent; + } + + // get the icon to set for the node + NavigationTreeNodeSupport node = getNode(value); + + Icon icon = node.getIcon(""); + setDefaultIcons(icon); + + if (!sel) { + + Color color = node.getColor(); + if (log.isTraceEnabled()) { + log.trace("===" + color + " for node " + node.getDataType() + " - " + node.getId()); + } + setTextNonSelectionColor(color); + } + + String text = node.getText(); + + if (log.isTraceEnabled()) { + log.trace("===" + text + " for node " + node.getDataType() + " - " + node.getId()); + } + Component comp = super.getTreeCellRendererComponent(tree, text, sel, expanded, leaf, row, hasFocus); + ((JComponent) comp).setToolTipText(text); + return comp; + } + + protected void setDefaultIcons(Icon icon) { + if (icon == null) { + // the icon is not customized for this node + setOpenIcon(getDefaultOpenIcon()); + setClosedIcon(getDefaultClosedIcon()); + setLeafIcon(getDefaultLeafIcon()); + } else { + // replace all possible icons for this node + setOpenIcon(icon); + setClosedIcon(icon); + setLeafIcon(icon); + } + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java new file mode 100644 index 0000000..fc81607 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java @@ -0,0 +1,83 @@ +package fr.ird.observe.application.swing.ui.tree.navigation; + +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.RootNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; + +import javax.swing.tree.DefaultTreeModel; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NavigationTreeModel extends DefaultTreeModel { + + private boolean loadSeine = true; + private boolean loadLongline = true; + private boolean loadReferential = true; + private boolean useSelectionModel; + + public NavigationTreeModel() { + super(new RootNavigationTreeNode()); + } + + @Override + public RootNavigationTreeNode getRoot() { + return (RootNavigationTreeNode) super.getRoot(); + } + + public void setLoadSeine(boolean loadSeine) { + this.loadSeine = loadSeine; + getRoot().populateChilds(this); + nodeStructureChanged(getRoot()); + } + + public void setLoadLongline(boolean loadLongline) { + this.loadLongline = loadLongline; + getRoot().populateChilds(this); + nodeStructureChanged(getRoot()); + } + + public void setLoadReferential(boolean loadReferential) { + this.loadReferential = loadReferential; + getRoot().populateChilds(this); + nodeStructureChanged(getRoot()); + } + + public void setUseSelectionModel(boolean useSelectionModel) { + this.useSelectionModel = useSelectionModel; + } + + public boolean isLoadSeine() { + return loadSeine; + } + + public boolean isLoadLongline() { + return loadLongline; + } + + public boolean isLoadReferential() { + return loadReferential; + } + + public boolean isUseSelectionModel() { + return useSelectionModel; + } + + public <N extends NavigationTreeNodeSupport> void reload(N node) { + node.reload(); + super.reload(node); + } + + public <N extends NavigationTreeNodeSupport> void open(N node) { + boolean updated = node.populateChilds(this); + if (updated) { + reload(node); + } + } + + public void openRoot() { + open(getRoot()); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ClassNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ClassNavigationTreeNode.java new file mode 100644 index 0000000..c6fd6a0 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ClassNavigationTreeNode.java @@ -0,0 +1,57 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes; + +import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.services.dto.IdDto; + +import javax.swing.Icon; +import javax.swing.UIManager; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public abstract class ClassNavigationTreeNode<D extends IdDto> extends NavigationTreeNodeSupport<Class<D>> { + + protected ClassNavigationTreeNode(Class<D> data) { + this(data, false); + } + + protected ClassNavigationTreeNode(Class<D> data, boolean allowChildren) { + super(data, allowChildren); + } + + @Override + public Class<D> getDataType() { + return getData(); + } + + @Override + public void reload() { + } + + @Override + public String getId() { + return getParent().getId(); + } + + @Override + protected void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + } + + @Override + public String getText() { + return t(ObserveI18nDecoratorHelper.getTypeI18nKey(getDataType())); + } + + @Override + public String getIconPath() { + return "navigation." + getParent().getDataType().getName() + ".sub"; + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java new file mode 100644 index 0000000..7cd4797 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java @@ -0,0 +1,132 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.tree.ObserveTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.services.ObserveServicesProvider; + +import java.awt.Color; +import java.util.Enumeration; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSupport<O> { + + public abstract Class<?> getDataType(); + + public abstract void reload(); + + public abstract Class<? extends ContentUI<?, ?>> getContentClass(); + + protected abstract void populateChilds0(NavigationTreeModel treeModel); + + private boolean loaded; + + @Override + public RootNavigationTreeNode getRoot() { + return (RootNavigationTreeNode) super.getRoot(); + } + + @Override + public NavigationTreeNodeSupport<?> getParent() { + return (NavigationTreeNodeSupport<?>) super.getParent(); + } + + protected NavigationTreeNodeSupport(O data, boolean allowChildren) { + super(data, allowChildren); + } + + //FIXME Should reload then node ? + public void setData(O data) { + setUserObject(data); + } + + public final boolean populateChilds(NavigationTreeModel treeModel) { + if (getAllowsChildren() && !isLoaded()) { + populateChilds0(treeModel); + loaded = true; + return true; + } + return false; + } + + public boolean isLoaded() { + return loaded; + } + + public void setLoaded(boolean loaded) { + this.loaded = loaded; + } + + protected ObserveServicesProvider getMainDataSourceServicesProvider() { + return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider(); + } + + public static NavigationTreeNodeSupport findNode(NavigationTreeModel treeModel, NavigationTreeNodeSupport node, String... ids) { + NavigationTreeNodeSupport result = null; + for (String id : ids) { + + result = node.findNodeById(treeModel, id); + + if (result == null) { + + // un des noeud n'a pas ete trouve, on sort + break; + } + node = result; + } + return result; + } + + public NavigationTreeNodeSupport findNodeById(NavigationTreeModel treeModel, String id) { + if (id == null) { + + // id null ? donc rien a faire + return null; + } + if (id.equals(getId())) { + + // on a trouve le bon noeud + return this; + } + + if (!isLoaded()) { + + // il faut charger les fils du noeud pour effectuer la recherche + populateChilds(treeModel); + } + + if (isLeaf()) { + + // au final le noeud est une feuille, donc ne convient pas + return null; + } + + // on recherche dans les fils + Enumeration<NavigationTreeNodeSupport> enumeration = children(); + while (enumeration.hasMoreElements()) { + NavigationTreeNodeSupport node = enumeration.nextElement(); + NavigationTreeNodeSupport nodeById = node.findNodeById(treeModel, id); + if (nodeById != null) { + return nodeById; + } + } + + // aucun des noeud fils ne convient + return null; + } + + public boolean isOpen() { + return false; + } + + @Override + public Color getColor() { + return isOpen() ? Color.BLACK : Color.GRAY; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java new file mode 100644 index 0000000..3bb37c4 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java @@ -0,0 +1,45 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.services.dto.AbstractReference; +import fr.ird.observe.services.dto.IdDto; +import org.nuiton.decorator.Decorator; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public abstract class ReferenceNavigationTreeNodeSupport<D extends IdDto, O extends AbstractReference<D>> extends NavigationTreeNodeSupport<O> { + + @Override + public String getId() { + return getData().getId(); + } + + protected ReferenceNavigationTreeNodeSupport(O data, boolean allowChildren) { + super(data, allowChildren && data.getId() != null); + } + + @Override + public Class<D> getDataType() { + return getData().getType(); + } + + public boolean isOpen() { + return ObserveSwingApplicationContext.get().getOpenDataManager().isOpen(getId()); + } + + @Override + public String getText() { + Decorator<D> decorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferenceDecorator(getData().getType()); + return decorator.toString(getData()); + } + + @Override + public String getIconPath() { + return "navigation." + getData().getType().getName(); + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java new file mode 100644 index 0000000..09e76b6 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java @@ -0,0 +1,71 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.db.ObserveSwingDataSource; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.referential.ReferentialsNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ProgramHelper; +import fr.ird.observe.services.dto.referential.ReferentialHelper; +import fr.ird.observe.services.dto.referential.ReferentialReference; + +import java.util.ArrayList; +import java.util.List; + +import static org.nuiton.i18n.I18n.n; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class RootNavigationTreeNode extends StringNavigationTreeNodeSupport { + + public RootNavigationTreeNode() { + super("<ROOT>", true); + } + + @Override + public String getId() { + return null; + } + + @Override + public Class<? extends ContentUI<?, ?>> getContentClass() { + return null; + } + + @Override + protected void populateChilds0(NavigationTreeModel treeModel) { + + removeAllChildren(); + + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); + List<ReferentialReference<ProgramDto>> data = new ArrayList<>(source.getReferentialReferences(ProgramDto.class)); + NavigationTree.sortPrograms(data); + + if (treeModel.isLoadLongline()) { + data.stream().filter(ProgramHelper::isProgramLongline).forEach(reference -> { + add(new ProgramLonglineNavigationTreeNode(reference)); + }); + } + if (treeModel.isLoadSeine()) { + data.stream().filter(ProgramHelper::isProgramSeine).forEach(reference -> { + add(new ProgramSeineNavigationTreeNode(reference)); + }); + } + + if (treeModel.isLoadReferential()) { + add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); + add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); + add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); + } + + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/StringNavigationTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/StringNavigationTreeNodeSupport.java new file mode 100644 index 0000000..f5bdaba --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/StringNavigationTreeNodeSupport.java @@ -0,0 +1,52 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes; + +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class StringNavigationTreeNodeSupport extends NavigationTreeNodeSupport<String> { + + public StringNavigationTreeNodeSupport(String data, boolean allowChildren) { + super(data, allowChildren); + } + + @Override + public Class<String> getDataType() { + return String.class; + } + + @Override + public String getId() { + return getParent().getId(); + } + + @Override + public Class<? extends ContentUI<?, ?>> getContentClass() { + return null; + } + + @Override + public void reload() { + // par défaut, rien à recharger sur un tel type de nœud + } + + @Override + protected void populateChilds0(NavigationTreeModel treeModel) { + // par défaut, pas de fils à charger + } + + @Override + public String getText() { + return getData(); + } + + @Override + public String getIconPath() { + return null; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java new file mode 100644 index 0000000..57f9d6b --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java @@ -0,0 +1,44 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.service.data.longline.ActivityLonglineService; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ActivitiesLonglineNavigationTreeNode extends ClassNavigationTreeNode<ActivityLonglineDto> { + + public ActivitiesLonglineNavigationTreeNode() { + super(ActivityLonglineDto.class, true); + } + + @Override + public String getId() { + return getParent().getId(); + } + + @Override + public Class<ActivityLonglinesUI> getContentClass() { + return ActivityLonglinesUI.class; + } + + @Override + protected void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + String id = getId(); + ActivityLonglineService service = getMainDataSourceServicesProvider().newActivityLonglineService(); + DataReferenceSet<ActivityLonglineDto> referenceSet = service.getActivityLonglineByTripLongline(id); + for (DataReference<ActivityLonglineDto> reference : referenceSet.getReferences()) { + add(new ActivityLonglineNavigationTreeNode(reference)); + } + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java new file mode 100644 index 0000000..41e0f61 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java @@ -0,0 +1,64 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.application.swing.ui.content.open.impl.longline.ActivityLonglineUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ActivityLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<ActivityLonglineDto, DataReference<ActivityLonglineDto>> { + + + public final static String FISHING_OPERATION_ID = + "fr.ird.observe.entities.referentiel.longline.VesselActivityLongline#1239832686138#0.1"; // operation de peche + + private final static ImmutableSet<String> ENCOUNTERS_ID = ImmutableSet.of( + FISHING_OPERATION_ID, // operation de peche + "fr.ird.observe.entities.referentiel.longline.VesselActivityLongline#1239832686138#0.4" // rencontre interaction + ); + private final static ImmutableSet<String> SENSOR_USED_ID = ImmutableSet.of( + FISHING_OPERATION_ID, // operation de peche + "fr.ird.observe.entities.referentiel.longline.VesselActivityLongline#1239832686138#0.3" // station oceanographique + ); + + public ActivityLonglineNavigationTreeNode(DataReference<ActivityLonglineDto> data) { + super(data, true); + } + + @Override + public void reload() { + + } + + @Override + public Class<ActivityLonglineUI> getContentClass() { + return ActivityLonglineUI.class; + } + + @Override + public void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + DataReference<ActivityLonglineDto> data = getData(); + DataReference<SetLonglineDto> setLonglineRef = (DataReference) data.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); + if (setLonglineRef != null) { + add(new SetLonglineNavigationTreeNode(setLonglineRef)); + } + + String vesselActivityId = (String) data.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); + + if (ENCOUNTERS_ID.contains(vesselActivityId)) { + add(new EncounterLonglineNavigationTreeNode()); + } + if (SENSOR_USED_ID.contains(vesselActivityId)) { + add(new SensorUsedLonglineNavigationTreeNode()); + } + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java new file mode 100644 index 0000000..a49ba42 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.table.impl.longline.CatchLonglineUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.CatchLonglineDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class CatchLonglineNavigationTreeNode extends ClassNavigationTreeNode<CatchLonglineDto> { + + public CatchLonglineNavigationTreeNode() { + super(CatchLonglineDto.class); + } + + @Override + public Class<CatchLonglineUI> getContentClass() { + return CatchLonglineUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java new file mode 100644 index 0000000..ce66bf0 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.table.impl.longline.EncounterUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.EncounterDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class EncounterLonglineNavigationTreeNode extends ClassNavigationTreeNode<EncounterDto> { + + public EncounterLonglineNavigationTreeNode() { + super(EncounterDto.class); + } + + @Override + public Class<EncounterUI> getContentClass() { + return EncounterUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java new file mode 100644 index 0000000..34fb1a6 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.table.impl.longline.GearUseFeaturesLonglineUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class GearUseFeaturesLonglineNavigationTreeNode extends ClassNavigationTreeNode<GearUseFeaturesLonglineDto> { + + public GearUseFeaturesLonglineNavigationTreeNode() { + super(GearUseFeaturesLonglineDto.class); + } + + @Override + public Class<GearUseFeaturesLonglineUI> getContentClass() { + return GearUseFeaturesLonglineUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java new file mode 100644 index 0000000..1aba427 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java @@ -0,0 +1,47 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.service.data.longline.TripLonglineService; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ProgramLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>> { + + public ProgramLonglineNavigationTreeNode(ReferentialReference<ProgramDto> data) { + super(data, true); + } + + @Override + public void reload() { + + } + + @Override + public Class<TripLonglinesUI> getContentClass() { + return TripLonglinesUI.class; + } + + @Override + protected void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); + DataReferenceSet<TripLonglineDto> referenceSet = tripLonglineService.getTripLonglineByProgram(getData().getId()); + for (DataReference<TripLonglineDto> reference : referenceSet.getReferences()) { + TripLonglineNavigationTreeNode childNode = new TripLonglineNavigationTreeNode(reference); + add(childNode); + } + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java new file mode 100644 index 0000000..fcc02a8 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.table.impl.longline.SensorUsedUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.SensorUsedDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SensorUsedLonglineNavigationTreeNode extends ClassNavigationTreeNode<SensorUsedDto> { + + public SensorUsedLonglineNavigationTreeNode() { + super(SensorUsedDto.class); + } + + @Override + public Class<SensorUsedUI> getContentClass() { + return SensorUsedUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java new file mode 100644 index 0000000..99d9378 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.impl.longline.LonglineDetailCompositionUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SetDetailCompositionLonglineNavigationTreeNode extends ClassNavigationTreeNode<SetLonglineDetailCompositionDto> { + + public SetDetailCompositionLonglineNavigationTreeNode() { + super(SetLonglineDetailCompositionDto.class); + } + + @Override + public Class<LonglineDetailCompositionUI> getContentClass() { + return LonglineDetailCompositionUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java new file mode 100644 index 0000000..4aacff3 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.impl.longline.LonglineGlobalCompositionUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SetGlobalCompositionLonglineNavigationTreeNode extends ClassNavigationTreeNode<SetLonglineGlobalCompositionDto> { + + public SetGlobalCompositionLonglineNavigationTreeNode() { + super(SetLonglineGlobalCompositionDto.class); + } + + @Override + public Class<LonglineGlobalCompositionUI> getContentClass() { + return LonglineGlobalCompositionUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetLonglineNavigationTreeNode.java new file mode 100644 index 0000000..44aff9c --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetLonglineNavigationTreeNode.java @@ -0,0 +1,38 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.impl.longline.SetLonglineUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.SetLonglineDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SetLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<SetLonglineDto, DataReference<SetLonglineDto>> { + + public SetLonglineNavigationTreeNode(DataReference<SetLonglineDto> data) { + super(data, true); + } + + @Override + public void reload() { + + } + + @Override + public Class<SetLonglineUI> getContentClass() { + return SetLonglineUI.class; + } + + @Override + public void populateChilds0(NavigationTreeModel treeModel) { + add(new SetGlobalCompositionLonglineNavigationTreeNode()); + add(new SetDetailCompositionLonglineNavigationTreeNode()); + add(new CatchLonglineNavigationTreeNode()); + add(new TdrLonglineNavigationTreeNode()); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java new file mode 100644 index 0000000..c07f64f --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.table.impl.longline.TdrUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.TdrDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class TdrLonglineNavigationTreeNode extends ClassNavigationTreeNode<TdrDto> { + + public TdrLonglineNavigationTreeNode() { + super(TdrDto.class); + } + + @Override + public Class<TdrUI> getContentClass() { + return TdrUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java new file mode 100644 index 0000000..1b8e837 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java @@ -0,0 +1,39 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; + +import fr.ird.observe.application.swing.ui.content.open.impl.longline.TripLonglineUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.TripLonglineDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class TripLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<TripLonglineDto, DataReference<TripLonglineDto>> { + + public TripLonglineNavigationTreeNode(DataReference<TripLonglineDto> data) { + super(data, data.getId() != null); + } + + @Override + public void reload() { + + } + + @Override + public Class<TripLonglineUI> getContentClass() { + return TripLonglineUI.class; + } + + @Override + public void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + if (!treeModel.isUseSelectionModel()) { + add(new GearUseFeaturesLonglineNavigationTreeNode()); + add(new ActivitiesLonglineNavigationTreeNode()); + } + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java new file mode 100644 index 0000000..0af5ad2 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java @@ -0,0 +1,47 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.referential; + +import fr.ird.observe.application.swing.ObserveSwingTechnicalException; +import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import org.apache.commons.lang3.StringUtils; + +import javax.swing.Icon; +import javax.swing.UIManager; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 16/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ReferentialNavigationTreeNode<D extends ReferentialDto> extends ClassNavigationTreeNode<D> { + + public ReferentialNavigationTreeNode(Class<D> data) { + super(data, true); + } + + @Override + public Class<? extends ContentUI<?, ?>> getContentClass() { + String className = String.format("fr.ird.observe.application.swing.ui.content.ref.impl.%sUI", StringUtils.removeEnd(getData().getSimpleName(), "Dto")); + try { + return (Class) Class.forName(className); + } catch (ClassNotFoundException e) { + throw new ObserveSwingTechnicalException("Can't get ui class for: " + className, e); + } + } + + @Override + public String getText() { + return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(getDataType())); + } + + @Override + public String getIconPath() { + return "navigation.sub.referentiel"; + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialsNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialsNavigationTreeNode.java new file mode 100644 index 0000000..7c2cbd4 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialsNavigationTreeNode.java @@ -0,0 +1,51 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.referential; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.application.swing.ui.content.ref.ReferenceHomeUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.referential.ReferentialDto; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ReferentialsNavigationTreeNode extends StringNavigationTreeNodeSupport { + + public static ReferentialsNavigationTreeNode of(String name, ImmutableSet<Class<? extends ReferentialDto>> types) { + ReferentialsNavigationTreeNode result = new ReferentialsNavigationTreeNode(t(name)); + for (Class<? extends ReferentialDto> aClass : types) { + ReferentialNavigationTreeNode child = new ReferentialNavigationTreeNode<>(aClass); + result.add(child); + } + return result; + } + + public ReferentialsNavigationTreeNode(String name) { + super(name, true); + } + + @Override + public String getId() { + return null; + } + + @Override + public Class<ReferenceHomeUI> getContentClass() { + return ReferenceHomeUI.class; + } + + @Override + public String getText() { + return getData(); + } + + @Override + public String getIconPath() { + return "navigation.referentiel"; + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java new file mode 100644 index 0000000..1f111bb --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java @@ -0,0 +1,50 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.service.data.seine.ActivitySeineService; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ActivitiesSeineNavigationTreeNode extends StringNavigationTreeNodeSupport { + + public ActivitiesSeineNavigationTreeNode() { + super(ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class), true); + } + + @Override + public String getId() { + return getParent().getId(); + } + + @Override + public Class<ActivitySeinesUI> getContentClass() { + return ActivitySeinesUI.class; + } + + @Override + public void reload() { + + } + + @Override + protected void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + String id = getId(); + ActivitySeineService service = getMainDataSourceServicesProvider().newActivitySeineService(); + DataReferenceSet<ActivitySeineDto> referenceSet = service.getActivitySeineByRoute(id); + for (DataReference<ActivitySeineDto> reference : referenceSet.getReferences()) { + add(new ActivitySeineNavigationTreeNode(reference)); + } + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java new file mode 100644 index 0000000..7a64926 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java @@ -0,0 +1,50 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.service.data.seine.FloatingObjectService; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ActivitySeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<ActivitySeineDto, DataReference<ActivitySeineDto>> { + + public ActivitySeineNavigationTreeNode(DataReference<ActivitySeineDto> data) { + super(data, true); + } + + @Override + public void reload() { + } + + @Override + public Class<ActivitySeineUI> getContentClass() { + return ActivitySeineUI.class; + } + + @Override + public void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + + DataReference<SetSeineDto> set = (DataReference<SetSeineDto>) getData().getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); + if (set != null) { + add(new SetSeineNavigationTreeNode(set)); + } + + FloatingObjectService service = getMainDataSourceServicesProvider().newFloatingObjectService(); + DataReferenceSet<FloatingObjectDto> referenceSet = service.getFloatingObjectByActivitySeine(getId()); + for (DataReference<FloatingObjectDto> reference : referenceSet.getReferences()) { + add(new FloatingObjectSeineNavigationTreeNode(reference)); + } + + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java new file mode 100644 index 0000000..19e7e1a --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetDiscardCatchUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.seine.DiscardedTargetCatchDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class DiscardedTargetCatchesSeineNavigationTreeNode extends ClassNavigationTreeNode<DiscardedTargetCatchDto> { + + public DiscardedTargetCatchesSeineNavigationTreeNode() { + super(DiscardedTargetCatchDto.class); + } + + @Override + public Class<TargetDiscardCatchUI> getContentClass() { + return TargetDiscardCatchUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java new file mode 100644 index 0000000..4df8e90 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetSampleRejeteUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.seine.DiscardedTargetSampleDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class DiscardedTargetSamplesSeineNavigationTreeNode extends ClassNavigationTreeNode<DiscardedTargetSampleDto> { + + public DiscardedTargetSamplesSeineNavigationTreeNode() { + super(DiscardedTargetSampleDto.class); + } + + @Override + public Class<TargetSampleRejeteUI> getContentClass() { + return TargetSampleRejeteUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/FloatingObjectSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/FloatingObjectSeineNavigationTreeNode.java new file mode 100644 index 0000000..9870d9e --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/FloatingObjectSeineNavigationTreeNode.java @@ -0,0 +1,35 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.seine.FloatingObjectDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class FloatingObjectSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<FloatingObjectDto, DataReference<FloatingObjectDto>> { + + public FloatingObjectSeineNavigationTreeNode(DataReference<FloatingObjectDto> data) { + super(data, true); + } + + @Override + public void reload() { + + } + + @Override + public Class<FloatingObjectUI> getContentClass() { + return FloatingObjectUI.class; + } + + @Override + public void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java new file mode 100644 index 0000000..55561f6 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.table.impl.seine.GearUseFeaturesSeineUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class GearUseFeaturesSeineNavigationTreeNode extends ClassNavigationTreeNode<GearUseFeaturesSeineDto> { + + public GearUseFeaturesSeineNavigationTreeNode() { + super(GearUseFeaturesSeineDto.class); + } + + @Override + public Class<GearUseFeaturesSeineUI> getContentClass() { + return GearUseFeaturesSeineUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java new file mode 100644 index 0000000..c160a42 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetCatchUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.seine.KeptTargetCatchDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class KeptTargetCatchesSeineNavigationTreeNode extends ClassNavigationTreeNode<KeptTargetCatchDto> { + + public KeptTargetCatchesSeineNavigationTreeNode() { + super(KeptTargetCatchDto.class); + } + + @Override + public Class<TargetCatchUI> getContentClass() { + return TargetCatchUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java new file mode 100644 index 0000000..362af7c --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java @@ -0,0 +1,26 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetSampleCaptureUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.seine.KeptTargetSampleDto; + +import javax.swing.Icon; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class KeptTargetSamplesSeineNavigationTreeNode extends ClassNavigationTreeNode<KeptTargetSampleDto> { + + public KeptTargetSamplesSeineNavigationTreeNode() { + super(KeptTargetSampleDto.class); + } + + @Override + public Class<TargetSampleCaptureUI> getContentClass() { + return TargetSampleCaptureUI.class; + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java new file mode 100644 index 0000000..a379d43 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.table.impl.seine.NonTargetCatchUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.seine.NonTargetCatchDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NonTargetCatchesSeineNavigationTreeNode extends ClassNavigationTreeNode<NonTargetCatchDto> { + + public NonTargetCatchesSeineNavigationTreeNode() { + super(NonTargetCatchDto.class); + } + + @Override + public Class<NonTargetCatchUI> getContentClass() { + return NonTargetCatchUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java new file mode 100644 index 0000000..a410f49 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.table.impl.seine.NonTargetSampleUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.seine.NonTargetSampleDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NoneTargetSamplesSeineNavigationTreeNode extends ClassNavigationTreeNode<NonTargetSampleDto> { + + public NoneTargetSamplesSeineNavigationTreeNode() { + super(NonTargetSampleDto.class); + } + + @Override + public Class<NonTargetSampleUI> getContentClass() { + return NonTargetSampleUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java new file mode 100644 index 0000000..04a90d5 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java @@ -0,0 +1,48 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.data.seine.TripSeineService; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ProgramSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>> { + + public ProgramSeineNavigationTreeNode(ReferentialReference<ProgramDto> data) { + super(data, true); + } + + @Override + public void reload() { + + } + + @Override + public Class<TripSeinesUI> getContentClass() { + return TripSeinesUI.class; + } + + @Override + protected void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); + DataReferenceSet<TripSeineDto> referenceSet = tripSeineService.getTripSeineByProgram(getData().getId()); + for (DataReference<TripSeineDto> reference : referenceSet.getReferences()) { + TripSeineNavigationTreeNode childNode = new TripSeineNavigationTreeNode(reference); + add(childNode); + } + + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java new file mode 100644 index 0000000..5345d1d --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java @@ -0,0 +1,36 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.open.impl.seine.RouteUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.seine.RouteDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class RouteSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<RouteDto, DataReference<RouteDto>> { + + public RouteSeineNavigationTreeNode(DataReference<RouteDto> data) { + super(data, true); + } + + @Override + public void reload() { + + } + + @Override + public Class<RouteUI> getContentClass() { + return RouteUI.class; + } + + @Override + public void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + add(new ActivitiesSeineNavigationTreeNode()); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java new file mode 100644 index 0000000..8588633 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java @@ -0,0 +1,50 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.service.data.seine.RouteService; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class RoutesSeineNavigationTreeNode extends StringNavigationTreeNodeSupport { + + @Override + public String getId() { + return getParent().getId(); + } + + @Override + public Class<RoutesUI> getContentClass() { + return RoutesUI.class; + } + + public RoutesSeineNavigationTreeNode() { + super(ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class), true); + } + + @Override + public void reload() { + + } + + @Override + protected void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + String id = getId(); + RouteService routeService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); + DataReferenceSet<RouteDto> referenceSet = routeService.getRouteByTripSeine(id); + for (DataReference<RouteDto> reference : referenceSet.getReferences()) { + add(new RouteSeineNavigationTreeNode(reference)); + } + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java new file mode 100644 index 0000000..becd51d --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java @@ -0,0 +1,23 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.table.impl.seine.SchoolEstimateUI; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.seine.SchoolEstimateDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SchoolEstimatesSeineNavigationTreeNode extends ClassNavigationTreeNode<SchoolEstimateDto> { + + public SchoolEstimatesSeineNavigationTreeNode() { + super(SchoolEstimateDto.class); + } + + @Override + public Class<SchoolEstimateUI> getContentClass() { + return SchoolEstimateUI.class; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SetSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SetSeineNavigationTreeNode.java new file mode 100644 index 0000000..726f2ff --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SetSeineNavigationTreeNode.java @@ -0,0 +1,41 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.impl.seine.SetSeineUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.seine.SetSeineDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SetSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<SetSeineDto, DataReference<SetSeineDto>> { + + public SetSeineNavigationTreeNode(DataReference<SetSeineDto> data) { + super(data, true); + } + + @Override + public void reload() { + } + + @Override + public Class<SetSeineUI> getContentClass() { + return SetSeineUI.class; + } + + @Override + public void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + add(new SchoolEstimatesSeineNavigationTreeNode()); + add(new KeptTargetCatchesSeineNavigationTreeNode()); + add(new DiscardedTargetCatchesSeineNavigationTreeNode()); + add(new KeptTargetSamplesSeineNavigationTreeNode()); + add(new DiscardedTargetSamplesSeineNavigationTreeNode()); + add(new NonTargetCatchesSeineNavigationTreeNode()); + add(new NoneTargetSamplesSeineNavigationTreeNode()); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java new file mode 100644 index 0000000..5433643 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java @@ -0,0 +1,40 @@ +package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; + +import fr.ird.observe.application.swing.ui.content.open.impl.seine.TripSeineUI; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class TripSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<TripSeineDto, DataReference<TripSeineDto>> { + + public TripSeineNavigationTreeNode(DataReference<TripSeineDto> data) { + super(data, true); + } + + @Override + public void reload() { + DataReference<TripSeineDto> data = getMainDataSourceServicesProvider().newTripSeineService().loadReferenceToRead(getId()); + setData(data); + } + + @Override + public Class<TripSeineUI> getContentClass() { + return TripSeineUI.class; + } + + @Override + public void populateChilds0(NavigationTreeModel treeModel) { + removeAllChildren(); + if (!treeModel.isUseSelectionModel()) { + add(new GearUseFeaturesSeineNavigationTreeNode()); + add(new RoutesSeineNavigationTreeNode()); + } + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java deleted file mode 100644 index d818379..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java +++ /dev/null @@ -1,103 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; -import fr.ird.observe.services.dto.AbstractReference; -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.application.swing.ui.tree.loadors.AbstractNodeChildLoador; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public abstract class AbstrctReferenceNodeSupport<E extends IdDto, R extends AbstractReference<E>> extends ObserveNode { - - /** Logger. */ - private static final Log log = LogFactory.getLog(AbstrctReferenceNodeSupport.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 R entity; - - protected boolean reloadEntity; - - protected abstract R fetchEntity(); - - protected AbstrctReferenceNodeSupport(Class<E> type, R entity, AbstractNodeChildLoador<?, ?> childLoador) { - this(type, entity, null, childLoador); - } - - protected AbstrctReferenceNodeSupport(Class<E> type, R entity, String context, AbstractNodeChildLoador<?, ?> childLoador) { - super(type, entity.getId(), context, childLoador, false); - setEntity(entity); - } - - @Override - public void setDirty(boolean dirty) { - super.setDirty(dirty); - - if (dirty && reloadEntity) { - entity = null; - } - - } - - public R getEntity() { - return entity; - } - - public void setEntity(R entity) { - this.entity = entity; - } - - - protected void loadEntity(ObserveDataProvider oProvider) { - - if (entity == null) { - - if (log.isInfoEnabled()) { - log.info("will load entity " + internalClass.getSimpleName() + " : " + id); - } - - entity = fetchEntity(); - - } - - } - - public void setReloadEntity(boolean reloadEntity) { - this.reloadEntity = reloadEntity; - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ActivityLonglineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ActivityLonglineNode.java deleted file mode 100644 index 6b53ef2..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ActivityLonglineNode.java +++ /dev/null @@ -1,52 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.service.data.longline.ActivityLonglineService; -import fr.ird.observe.application.swing.ui.tree.loadors.ActivityLonglineNodeChildLoador; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class ActivityLonglineNode extends DataReferenceNodeSupport<ActivityLonglineDto> { - - private static final long serialVersionUID = 1L; - - public ActivityLonglineNode(DataReference<ActivityLonglineDto> entity) { - super(ActivityLonglineDto.class, entity, ObserveTreeHelper.getChildLoador(ActivityLonglineNodeChildLoador.class)); - } - - @Override - protected DataReference<ActivityLonglineDto> fetchEntity() { - ActivityLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); - return service.loadReferenceToRead(getId()); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ActivitySeineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ActivitySeineNode.java deleted file mode 100644 index 69690d5..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ActivitySeineNode.java +++ /dev/null @@ -1,52 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.service.data.seine.ActivitySeineService; -import fr.ird.observe.application.swing.ui.tree.loadors.ActivitySeineNodeChildLoador; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class ActivitySeineNode extends DataReferenceNodeSupport<ActivitySeineDto> { - - private static final long serialVersionUID = 1L; - - public ActivitySeineNode(DataReference<ActivitySeineDto> entity) { - super(ActivitySeineDto.class, entity, ObserveTreeHelper.getChildLoador(ActivitySeineNodeChildLoador.class)); - } - - @Override - protected DataReference<ActivitySeineDto> fetchEntity() { - ActivitySeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); - return service.loadReferenceToRead(getId()); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/DataReferenceNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/DataReferenceNodeSupport.java deleted file mode 100644 index 4b92678..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/DataReferenceNodeSupport.java +++ /dev/null @@ -1,98 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveOpenDataManager; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; -import fr.ird.observe.services.dto.DataDto; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.OpenableDto; -import fr.ird.observe.application.swing.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 javax.swing.tree.DefaultTreeModel; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public abstract class DataReferenceNodeSupport<E extends DataDto> extends AbstrctReferenceNodeSupport<E, DataReference<E>> { - - /** Logger. */ - private static final Log log = LogFactory.getLog(DataReferenceNodeSupport.class); - - private static final long serialVersionUID = 1L; - - protected DataReferenceNodeSupport(Class<E> internalClass, DataReference<E> entity) { - super(internalClass, entity, null); - } - - protected DataReferenceNodeSupport(Class<E> type, DataReference<E> entity, AbstractNodeChildLoador<?, ?> childLoador) { - super(type, entity, null, childLoador); - } - - protected DataReferenceNodeSupport(Class<E> type, DataReference<E> entity, String context, AbstractNodeChildLoador<?, ?> childLoador) { - super(type, entity, context, childLoador); - } - - @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 (OpenableDto.class.isAssignableFrom(entity.getType())) { - ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); - open = openDataManager.isOpen(entity.getId()); - if (log.isDebugEnabled()) { - log.debug("Set open: " + open + " for entity: " + id); - } - - } - - } - - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/FloatingObjectSeineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/FloatingObjectSeineNode.java deleted file mode 100644 index 8531d6b..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/FloatingObjectSeineNode.java +++ /dev/null @@ -1,52 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.seine.FloatingObjectDto; -import fr.ird.observe.services.service.data.seine.FloatingObjectService; -import fr.ird.observe.application.swing.ui.tree.loadors.FloatingObjectNodeChildLoador; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class FloatingObjectSeineNode extends DataReferenceNodeSupport<FloatingObjectDto> { - - private static final long serialVersionUID = 1L; - - public FloatingObjectSeineNode(DataReference<FloatingObjectDto> entity) { - super(FloatingObjectDto.class, entity, ObserveTreeHelper.getChildLoador(FloatingObjectNodeChildLoador.class)); - } - - @Override - protected DataReference<FloatingObjectDto> fetchEntity() { - FloatingObjectService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newFloatingObjectService(); - return service.loadReferenceToRead(getId()); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ObserveNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ObserveNode.java deleted file mode 100644 index 3046094..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ObserveNode.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.node; - -import fr.ird.observe.services.dto.OpenableDto; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -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; - -/** - * Le modèle d'une noeud. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class ObserveNode extends NavTreeNode<ObserveNode> { - - /** Logger */ - static private final Log log = LogFactory.getLog(ObserveNode.class); - - public static long count; - - private static final long serialVersionUID = 1L; - - /** un drapeau pour savoir si le noeud fait parti du referentiel */ - protected final boolean referentiel; - - /** - * Un etat pour savoir si l'objet (de donnee) encapsule est ouvert. - * - * <b>Note:</b> Il faut que l'objet soit de type {@link OpenableDto}. - */ - protected Boolean open; - - public ObserveNode(String id, boolean referentiel) { - this(String.class, id, null, null, referentiel); - } - - public ObserveNode(Class<?> internalClass, - String id, - boolean referentiel) { - this(internalClass, id, null, null, referentiel); - } - - public ObserveNode(Class<?> internalClass, - String id, - NavTreeNodeChildLoador<?, ?, ObserveNode> childLoador, - boolean referentiel) { - this(internalClass, id, null, childLoador, referentiel); - } - - public ObserveNode(Class<?> internalClass, - String id, - String context, - NavTreeNodeChildLoador<?, ?, ObserveNode> childLoador, - boolean referentiel) { - super(internalClass, id, context, childLoador); - this.referentiel = referentiel; - count++; - if (log.isDebugEnabled()) { - log.debug("Creates a new node [" + count + "] " + this); - } - } - - public boolean isDataNode() { - return !referentiel; - } - - public boolean isReferentielNode() { - return referentiel; - } - - public Boolean isOpen() { - return open; - } - - public boolean isTripNode() { - return isDataNode() && - (TripSeineDto.class.isAssignableFrom(internalClass) - || TripLonglineDto.class.isAssignableFrom(internalClass)); - } - - public boolean isRouteNode() { - return isDataNode() && RouteDto.class.isAssignableFrom(internalClass); - } - - public boolean isActivitySeineNode() { - return isDataNode() && ActivitySeineDto.class.isAssignableFrom(internalClass); - } - - public boolean isActivityLonglineNode() { - return isDataNode() && ActivityLonglineDto.class.isAssignableFrom(internalClass); - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramLonglineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramLonglineNode.java deleted file mode 100644 index 16066b4..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramLonglineNode.java +++ /dev/null @@ -1,71 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.ImmutableList; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeBridge; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.loadors.ProgramLonglineNodeChildLoador; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.service.referential.ReferentialService; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class ProgramLonglineNode extends ReferentialReferenceNodeSupport<ProgramDto> { - - private static final long serialVersionUID = 1L; - - public ProgramLonglineNode(ReferentialReference<ProgramDto> entity) { - super(ProgramDto.class, - entity, - ((GearType) entity.getPropertyValue(ProgramDto.PROPERTY_GEAR_TYPE)).name(), - ObserveTreeHelper.getChildLoador(ProgramLonglineNodeChildLoador.class)); - // FIXME kmorin 20151012 pkoi refaire un setEntity alors qu'il est fait dans le super ? - setEntity(entity); - } - - @Override - protected ReferentialReference<ProgramDto> fetchEntity() { - ReferentialService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newReferentialService(); - return service.loadReference(ProgramDto.class, getId()); - } - - public void populateChilds(ImmutableList<DataReference<TripLonglineDto>> trips, ObserveTreeBridge bridge, ObserveDataProvider provider) { - ((ProgramLonglineNodeChildLoador) childLoador).setTrips(trips); - try { - populateChilds(bridge, provider); - } finally { - ((ProgramLonglineNodeChildLoador) childLoador).setTrips(null); - } - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramSeineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramSeineNode.java deleted file mode 100644 index 44187fc..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramSeineNode.java +++ /dev/null @@ -1,69 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.ImmutableList; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeBridge; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.application.swing.ui.tree.loadors.ProgramSeineNodeChildLoador; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.referential.ReferentialService; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class ProgramSeineNode extends ReferentialReferenceNodeSupport<ProgramDto> { - - private static final long serialVersionUID = 1L; - - public ProgramSeineNode(ReferentialReference<ProgramDto> entity) { - super(ProgramDto.class, - entity, - ((GearType) entity.getPropertyValue(ProgramDto.PROPERTY_GEAR_TYPE)).name(), - ObserveTreeHelper.getChildLoador(ProgramSeineNodeChildLoador.class)); - } - - @Override - protected ReferentialReference<ProgramDto> fetchEntity() { - ReferentialService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newReferentialService(); - return service.loadReference(ProgramDto.class, getId()); - } - - public void populateChilds(ImmutableList<DataReference<TripSeineDto>> trips, ObserveTreeBridge bridge, ObserveDataProvider provider) { - ((ProgramSeineNodeChildLoador) childLoador).setTrips(trips); - try { - populateChilds(bridge, provider); - } finally { - ((ProgramSeineNodeChildLoador) childLoador).setTrips(null); - } - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ReferentialReferenceNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ReferentialReferenceNodeSupport.java deleted file mode 100644 index cf4e33a..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ReferentialReferenceNodeSupport.java +++ /dev/null @@ -1,85 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.application.swing.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 javax.swing.tree.DefaultTreeModel; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public abstract class ReferentialReferenceNodeSupport<E extends ReferentialDto> extends AbstrctReferenceNodeSupport<E, ReferentialReference<E>> { - - /** Logger. */ - private static final Log log = LogFactory.getLog(ReferentialReferenceNodeSupport.class); - - private static final long serialVersionUID = 1L; - - protected ReferentialReferenceNodeSupport(Class<E> internalClass, ReferentialReference<E> entity) { - super(internalClass, entity, null); - } - - protected ReferentialReferenceNodeSupport(Class<E> type, ReferentialReference<E> entity, AbstractNodeChildLoador<?, ?> childLoador) { - super(type, entity, null, childLoador); - } - - protected ReferentialReferenceNodeSupport(Class<E> type, ReferentialReference<E> entity, String context, AbstractNodeChildLoador<?, ?> childLoador) { - super(type, entity, context, childLoador); - } - - @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); - - } - - } - - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/RouteSeineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/RouteSeineNode.java deleted file mode 100644 index e061765..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/RouteSeineNode.java +++ /dev/null @@ -1,49 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.service.data.seine.RouteService; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class RouteSeineNode extends DataReferenceNodeSupport<RouteDto> { - - private static final long serialVersionUID = 1L; - - public RouteSeineNode(DataReference<RouteDto> entity) { - super(RouteDto.class, entity); - } - - @Override - protected DataReference<RouteDto> fetchEntity() { - RouteService routeService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); - return routeService.loadReferenceToRead(getId()); - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/SetLonglineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/SetLonglineNode.java deleted file mode 100644 index 50ea200..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/SetLonglineNode.java +++ /dev/null @@ -1,52 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.service.data.longline.SetLonglineService; -import fr.ird.observe.application.swing.ui.tree.loadors.SetLonglineNodeChildLoador; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class SetLonglineNode extends DataReferenceNodeSupport<SetLonglineDto> { - - private static final long serialVersionUID = 1L; - - public SetLonglineNode(DataReference<SetLonglineDto> entity) { - super(SetLonglineDto.class, entity, ObserveTreeHelper.getChildLoador(SetLonglineNodeChildLoador.class)); - } - - @Override - protected DataReference<SetLonglineDto> fetchEntity() { - SetLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSetLonglineService(); - return service.loadReferenceToRead(getId()); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/SetSeineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/SetSeineNode.java deleted file mode 100644 index 7ebf830..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/SetSeineNode.java +++ /dev/null @@ -1,52 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.service.data.seine.SetSeineService; -import fr.ird.observe.application.swing.ui.tree.loadors.SetSeineNodeChildLoador; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class SetSeineNode extends DataReferenceNodeSupport<SetSeineDto> { - - private static final long serialVersionUID = 1L; - - public SetSeineNode(DataReference<SetSeineDto> entity) { - super(SetSeineDto.class, entity, ObserveTreeHelper.getChildLoador(SetSeineNodeChildLoador.class)); - } - - @Override - protected DataReference<SetSeineDto> fetchEntity() { - SetSeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newSetSeineService(); - return service.loadReferenceToRead(getId()); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/TripLonglineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/TripLonglineNode.java deleted file mode 100644 index 5046386..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/TripLonglineNode.java +++ /dev/null @@ -1,50 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.service.data.longline.TripLonglineService; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class TripLonglineNode extends DataReferenceNodeSupport<TripLonglineDto> { - - private static final long serialVersionUID = 1L; - - public TripLonglineNode(DataReference<TripLonglineDto> entity) { - super(TripLonglineDto.class, entity); - } - - @Override - protected DataReference<TripLonglineDto> fetchEntity() { - TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); - return tripLonglineService.loadReferenceToRead(getId()); - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/TripSeineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/TripSeineNode.java deleted file mode 100644 index 9b99304..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/TripSeineNode.java +++ /dev/null @@ -1,62 +0,0 @@ -package fr.ird.observe.application.swing.ui.tree.node; - -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.seine.TripSeineService; - -/** - * Created on 4/9/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class TripSeineNode extends DataReferenceNodeSupport<TripSeineDto> { - - private static final long serialVersionUID = 1L; - - public TripSeineNode(DataReference<TripSeineDto> entity) { - super(TripSeineDto.class, entity); - } - - private int initialRouteCount; - - @Override - protected DataReference<TripSeineDto> fetchEntity() { - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); - return tripSeineService.loadReferenceToRead(getId()); - } - - public void setInitialRouteCount(int initialRouteCount) { - this.initialRouteCount = initialRouteCount; - } - - public int getRouteCount() { - if (entity == null) { - return initialRouteCount; - } - return (int) entity.getPropertyValue(TripSeineDto.PROPERTY_ROUTE_COUNT); - } -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/AbstractObserveTreeCellRenderer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/AbstractObserveTreeCellRenderer.java deleted file mode 100644 index 8970097..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/AbstractObserveTreeCellRenderer.java +++ /dev/null @@ -1,434 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.renderer; - -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.DataContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.decoration.DecoratorService; -import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; -import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectUI; -import fr.ird.observe.application.swing.ui.content.impl.seine.SetSeineUI; -import fr.ird.observe.application.swing.ui.content.open.impl.longline.ActivityLonglineUI; -import fr.ird.observe.application.swing.ui.content.open.impl.longline.TripLonglineUI; -import fr.ird.observe.application.swing.ui.content.open.impl.seine.ActivitySeineUI; -import fr.ird.observe.application.swing.ui.content.open.impl.seine.RouteUI; -import fr.ird.observe.application.swing.ui.content.open.impl.seine.TripSeineUI; -import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; -import fr.ird.observe.application.swing.ui.tree.node.DataReferenceNodeSupport; -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.ProgramLonglineNode; -import fr.ird.observe.application.swing.ui.tree.node.ProgramSeineNode; -import fr.ird.observe.application.swing.ui.tree.node.ReferentialReferenceNodeSupport; -import fr.ird.observe.application.swing.ui.tree.node.SetLonglineNode; -import fr.ird.observe.application.swing.ui.tree.node.SetSeineNode; -import fr.ird.observe.application.swing.ui.tree.node.TripSeineNode; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.OpenableDto; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -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 javax.swing.Icon; -import javax.swing.UIManager; -import javax.swing.tree.DefaultTreeModel; -import java.awt.Color; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Objects; - -import static org.nuiton.i18n.I18n.t; - -/** - * Le renderer abstrait (qui a toutes les methodes qui aident) pour implanter de - * vrai renderer pour les différents cas d'utilisation de l'abre de navigation. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.2 - */ -public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCellRenderer<DefaultTreeModel, ObserveNode> { - - /** Logger */ - protected static final Log log = - LogFactory.getLog(AbstractObserveTreeCellRenderer.class); - - /** la liste des ui qui peuvent être en mode création */ - private static final List<Class<?>> CREATION_UI = - Collections.unmodifiableList( - Arrays.<Class<?>>asList( - TripSeineUI.class, - RouteUI.class, - ActivitySeineUI.class, - FloatingObjectUI.class, - SetSeineUI.class, - TripLonglineUI.class, - ActivityLonglineUI.class) - ); - - private static final long serialVersionUID = 1L; - - /** la couleur des noeuds fermés */ - private Color closeColor; - - /** la couleur des noeuds de données ouverts */ - private Color openColor; - - /** la couleur pour indiquer que la données est non valide ou non sauvée */ - private Color redColor; - - /** service de décoration */ - private transient DecoratorService decoratorService; - - public DecoratorService getDecoratorService() { - if (decoratorService == null) { - - // on récupère le service commun - decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); - } - return decoratorService; - } - - @Override - public ObserveDataProvider getDataProvider() { - ObserveDataProvider provider = (ObserveDataProvider) super.getDataProvider(); - if (provider == null) { - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); - if (source != null) { - provider = new ObserveDataProvider(source); - setDataProvider(provider); - } - } - return provider; - } - - AbstractObserveTreeCellRenderer() { - init(); - } - - protected void init() { - closeColor = Color.LIGHT_GRAY; - openColor = getForeground(); - redColor = Color.RED; - } - - /** - * Positionne dans le renderer delege l'icone a utiliser. - * - * @param node le noeud passé au renderer - */ - public void setIcon(ObserveNode node) { - Icon icon = getNavigationIcon(node); - setDefaultIcons(icon); - } - - /** - * Récupère l'icon adequate pour le noeud donnes. - * - * @param node le noeud passé au renderer - * @return l'icone du noeud (ou null si non trouve) - */ - public Icon getNavigationIcon(ObserveNode node) { - return getNavigationIcon(node, null); - - } - - @Override - public Color getBackgroundSelectionColor() { - return null; - } - - @Override - public Color getBackgroundNonSelectionColor() { - // Fixes http://forge.codelutin.com/issues/830 for jdk 7 - return Color.WHITE; - } - - /** - * Récupère l'icon adequate pour le noeud donnes. - * - * @param node le noeud passé au renderer - * @param suffix un suffix a ajouter a la clef qui identifie l'icone - * @return l'icone du noeud (ou null si non trouve) - */ - public Icon getNavigationIcon(ObserveNode node, String suffix) { - if (node == null || node.isRoot()) { - return null; - } - if (suffix == null) { - suffix = ""; - } - - Icon icon; - - if (node.isReferentielNode()) { - - // referentiel root node - - if (node.isStringNode()) { - icon = UIManager.getIcon("navigation.referentiel" + suffix); - } else { - icon = UIManager.getIcon("navigation.sub.referentiel" + suffix); - } - return icon; - } - - if (!node.isStringNode()) { - - // on est sur un noeud de donnees, rien a calculer - String path = "navigation." + node.getInternalClass().getName() + suffix; - icon = UIManager.getIcon(path); - return icon; - } - - // dernier cas, on est sur un noeud intermediaire sans donnee - // on doit se baser sur le container node - - ObserveNode containerNode = node.getContainerNode(); - - Class<?> containerClass = containerNode.getInternalClass(); - String path; - if (TripSeineDto.class.equals(containerClass)) { - // remonte sur une maree : donc routes - path = RouteDto.class.getName(); - } else if (TripLonglineDto.class.equals(containerClass)) { - // remonte sur une maree : donc activités - path = ActivityLonglineDto.class.getName(); - } else if (RouteDto.class.equals(containerClass)) { - // remonte sur une route : donc activitys - path = ActivitySeineDto.class.getName(); - } else { - // dans le cas d'un sub, il n'y a pas de suffixe possible - suffix = ""; - path = containerClass.getName() + ".sub"; - } - icon = UIManager.getIcon("navigation." + path + suffix); - return icon; - } - - protected void setDefaultIcons(Icon icon) { - if (icon == null) { - // the icon is not customized for this node - setOpenIcon(getDefaultOpenIcon()); - setClosedIcon(getDefaultClosedIcon()); - setLeafIcon(getDefaultLeafIcon()); - } else { - // replace all possible icons for this node - setOpenIcon(icon); - setClosedIcon(icon); - setLeafIcon(icon); - } - } - - @Override - protected String computeNodeText(ObserveNode node) { - - if (node.isStringNode()) { - return t(node.getId()); - } - - Class<?> beanType = node.getInternalClass(); - - if (node.isReferentielNode()) { - - return t(ObserveI18nDecoratorHelper.getTypeI18nKey(beanType)); - } - - // noeud de donnée - - String id = node.getId(); - - if (id == null) { - - // noeud d'un objet en cours de création - - return t(node.getContext()); - } - - // noeud de donnée connue en base - - if (getDataProvider() == null) { - // data provider non utilisable - return "No data provider opened to render " + id; - } - - if (node instanceof SetLonglineNode) { - return t(ObserveI18nDecoratorHelper.getTypeI18nKey(((SetLonglineNode) node).getEntity().getType())); - } - - if (node instanceof SetSeineNode) { - return t(ObserveI18nDecoratorHelper.getTypeI18nKey(((SetSeineNode) node).getEntity().getType())); - } - - if (node instanceof DataReferenceNodeSupport) { - DataReferenceNodeSupport<?> entityNodeSupport = (DataReferenceNodeSupport) node; - - DataReference entity = entityNodeSupport.getEntity(); - - Objects.requireNonNull(entity, "L'entité doit être chargée dans le noeud: " + node); - - Decorator<?> decorator = getDecoratorService().getDataReferenceDecorator((Class) beanType); - - String result = decorator.toString(entity); - if (node instanceof TripSeineNode) { - result += " (" + ((TripSeineNode) node).getRouteCount() + ")"; - } - return result; - } - - if (node instanceof ReferentialReferenceNodeSupport) { - ReferentialReferenceNodeSupport<?> entityNodeSupport = (ReferentialReferenceNodeSupport) node; - - ReferentialReference entity = entityNodeSupport.getEntity(); - - Objects.requireNonNull(entity, "L'entité doit être chargée dans le noeud: " + node); - - Decorator<?> decorator = getDecoratorService().getReferentialReferenceDecorator((Class) beanType); - - String result = decorator.toString(entity); - if (node instanceof ProgramSeineNode || node instanceof ProgramLonglineNode) { - result += " (" + node.getChildCount() + ")"; - } - return result; - } - - throw new IllegalStateException("Don't know how to render node: " + node); - - } - - public Color getNavigationTextColor(ObserveNode node) { - - if (node == null) { - return openColor; - } - - if (node.isRoot() || node.isReferentielNode()) { - return openColor; - } - - // le noeud pointe sur un objet ouvert - - Class<?> contentClass = node.getInternalClass(); - ObserveNode parentNode = node.getParent(); - Class<?> parentContentClass = parentNode == null ? null : parentNode.getInternalClass(); - - if (log.isTraceEnabled()) { - log.trace("[" + node + "] Content class to use : " + contentClass); - log.trace("[" + node + "] Parent Content class to use : " + parentContentClass); - } - DataContext dataContext = ObserveSwingApplicationContext.get().getDataContext(); - String nodeId = node.getId(); - - if (ProgramDto.class.equals(contentClass)) { - - // on grise le program si aucune marée ouverte sur ce programme - String p = dataContext.getOpenProgramId(); - if (p != null && p.equals(nodeId)) { - return openColor; - } - return closeColor; - } - - boolean nodeIsOpen = isOpenNode(node); - - if (!nodeIsOpen) { - if (log.isDebugEnabled()) { - log.debug("[" + node + "] is not open, use closeColor"); - } - // l'objet pointé n'est pas ouvert - return closeColor; - } - - if (CREATION_UI.contains(contentClass)) { - - // un noeud de creation - if (nodeId == null) { - // mode creation - return redColor; - } - return openColor; - } - - return openColor; - } - - private boolean isOpenNode(ObserveNode node) { - - if (node.isRoot() || node.isReferentielNode()) { - return false; - } - - boolean nodeIsOpen = false; - - ObserveNode openableNode; - openableNode = getFirstOpenableNode(node); - if (log.isDebugEnabled()) { - log.debug("openable node " + openableNode + " for " + Arrays.toString(node.getPath())); - } - if (openableNode != null) { - Boolean open = openableNode.isOpen(); - nodeIsOpen = open != null && open; - } - - return nodeIsOpen; - } - - /** - * @param value the value which should be a node - * @return the cast {@link ObserveNode}, or {@code null} if - * value is null. - */ - public static ObserveNode getNode(Object value) { - ObserveNode node = null; - if (value instanceof ObserveNode) { - node = (ObserveNode) value; - } - return node; - } - - private ObserveNode getFirstOpenableNode(ObserveNode node) { - - if (OpenableDto.class.isAssignableFrom(node.getInternalClass())) { - return node; - } - - if (ProgramDto.class.isAssignableFrom(node.getInternalClass())) { - return node; - } - - // this is not a openable node, go to parent node - ObserveNode parentNode = node.getParent(); - if (parentNode != null) { - return getFirstOpenableNode(parentNode); - } - return null; - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/DataSelectionTreeCellRenderer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/DataSelectionTreeCellRenderer.java deleted file mode 100644 index d99608c..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/DataSelectionTreeCellRenderer.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.renderer; - -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; -import fr.ird.observe.application.swing.ui.tree.node.TripSeineNode; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.JComponent; -import javax.swing.JTree; -import java.awt.Color; -import java.awt.Component; -import java.util.List; - -import static org.nuiton.i18n.I18n.t; - -/** - * Le renderer pour décorer l'arbre de sélection des données. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.2 - */ -public class DataSelectionTreeCellRenderer extends AbstractObserveTreeCellRenderer { - - /** Logger */ - private static final Log log = LogFactory.getLog(DataSelectionTreeCellRenderer.class); - - private static final long serialVersionUID = 1L; - - protected List<DataReference<?>> existingTrips; - - public List<DataReference<?>> getExistingTrips() { - return existingTrips; - } - - public void setExistingTrips(List<DataReference<?>> existingTrips) { - this.existingTrips = existingTrips; - } - - public DataSelectionTreeCellRenderer() { - } - - @Override - protected void init() { - super.init(); - setBackgroundNonSelectionColor(null); - setBackgroundSelectionColor(null); - setBackground(null); - - setTextNonSelectionColor(Color.BLACK); - setTextSelectionColor(Color.BLUE); - } - - @Override - public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) { - - // get the icon to set for the node - ObserveNode node = getNode(value); - - if (node == null) { - return super.getTreeCellRendererComponent( - tree, - value, - sel, - expanded, - leaf, - row, - hasFocus - ); - } - setIcon(node); - - String text = getNodeText(node); - if (log.isDebugEnabled()) { - text += " (" + row + ')'; - log.debug("repaint node " + text + " (selected:" + sel + - ") for node " + node.getId()); - } - - boolean exist = false; - - if (TripSeineDto.class.equals(node.getInternalClass())) { - - if (existingTrips != null) { - - if (existingTrips.contains(((TripSeineNode) node).getEntity())) { - text = t("observe.common.exist.on.remote", text); - exist = true; - } - } - } - Component comp = super.getTreeCellRendererComponent( - tree, - text, - sel, - expanded, - leaf, - row, - hasFocus - ); - - //FIXME-TC20100316 can not display tooltiptext... -// delegate.setToolTipText(text); - if (exist) { - text = t("observe.message.warning.will.be.delete", text); - } - ((JComponent) comp).setToolTipText(text); - return comp; - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/NavigationTreeCellRenderer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/NavigationTreeCellRenderer.java deleted file mode 100644 index 6208203..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/renderer/NavigationTreeCellRenderer.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * #%L - * ObServe :: Application Swing - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.application.swing.ui.tree.renderer; - -import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; - -import javax.swing.JComponent; -import javax.swing.JTree; -import javax.swing.tree.DefaultTreeModel; -import java.awt.Color; -import java.awt.Component; - -/** - * Un renderer pour modifier l'apparence des noeuds de l'arbre de navigation. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class NavigationTreeCellRenderer extends AbstractObserveTreeCellRenderer { - - private static final long serialVersionUID = 1L; - - public NavigationTreeCellRenderer() { - } - - @Override - public Component getTreeCellRendererComponent(JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) { - - if (!(tree.getModel() instanceof DefaultTreeModel)) { - Component rendererComponent; - rendererComponent = super.getTreeCellRendererComponent( - tree, - value, - sel, - expanded, - leaf, - row, - hasFocus - ); - return rendererComponent; - } - - // get the icon to set for the node - ObserveNode node = getNode(value); - - setIcon(node); - - if (!sel) { - - Color color = getNavigationTextColor(node); - if (log.isTraceEnabled()) { - log.trace("===" + color + " for node " + - node.getInternalClass() + " - " + node.getId()); - } - setTextNonSelectionColor(color); - } - - String text = getNodeText(node); - if (log.isTraceEnabled()) { - log.trace("===" + text + " for node " + - node.getInternalClass() + " - " + node.getId()); - } - Component comp = super.getTreeCellRendererComponent( - tree, - text, - sel, - expanded, - leaf, - row, - hasFocus - ); - ((JComponent) comp).setToolTipText(text); - return comp; - } - -} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java new file mode 100644 index 0000000..bb39933 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java @@ -0,0 +1,164 @@ +package fr.ird.observe.application.swing.ui.tree.selection; + +import fr.ird.observe.application.swing.ui.tree.selection.nodes.SelectionTreeNodeSupport; +import org.jdesktop.swingx.JXTreeTable; +import org.jdesktop.swingx.renderer.CellContext; +import org.jdesktop.swingx.renderer.CheckBoxProvider; +import org.jdesktop.swingx.renderer.DefaultTableRenderer; + +import javax.swing.AbstractAction; +import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.KeyStroke; +import javax.swing.ListSelectionModel; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SelectionTree extends JXTreeTable { + + public SelectionTree() { + super(new SelectionTreeModel()); + setLargeModel(true); + setTreeCellRenderer(new SelectionTreeCellRenderer()); + setRootVisible(false); + setDefaultRenderer(boolean.class, new DefaultTableRenderer(new CheckBoxProvider() { + @Override + protected void configureVisuals(CellContext context) { + super.configureVisuals(context); + if (context != null) { + SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) getValueAt(context.getRow(), 0); + boolean editable = getTreeModel().isCellEditable(node, 1); + rendererComponent.setEnabled(editable); + } + } + })); + setShowGrid(false); + setRowHeight(30); + getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + + } + + public void installUI() { + + InputMap inputMap = getInputMap(WHEN_IN_FOCUSED_WINDOW); + ActionMap actionMap = getActionMap(); + inputMap.put(KeyStroke.getKeyStroke("pressed F3"), "fold/unfold"); + actionMap.put("fold/unfold", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + int selectedRow = getSelectedRow(); + if (selectedRow == -1) { + return; + } + + if (!isFocusOwner()) { + return; + } + SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) getPathForRow(selectedRow).getLastPathComponent(); + if (node.isLeaf()) { + return; + } + if (isExpanded(selectedRow)) { + + collapseRow(selectedRow); + } else { + expandRow(selectedRow); + } + } + }); + + inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "select/unselect"); + actionMap.put("select/unselect", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + int selectedRow = getSelectedRow(); + if (selectedRow == -1) { + return; + } + SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) getPathForRow(selectedRow).getLastPathComponent(); + getTreeModel().setValueAt(!node.isSelected(), node, 1); + } + }); + } + + public void installUI2(SelectionTree oppositeTree) { + + InputMap inputMap = getInputMap(WHEN_IN_FOCUSED_WINDOW); + ActionMap actionMap = getActionMap(); + inputMap.put(KeyStroke.getKeyStroke("pressed F3"), "fold/unfold"); + actionMap.put("fold/unfold", new AbstractAction() { + + protected void forTree(SelectionTree tree) { + int selectedRow = tree.getSelectedRow(); + if (selectedRow == -1) { + return; + } + + SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) tree.getPathForRow(selectedRow).getLastPathComponent(); + if (node.isLeaf()) { + return; + } + if (tree.isExpanded(selectedRow)) { + + tree.collapseRow(selectedRow); + } else { + tree.expandRow(selectedRow); + } + } + + @Override + public void actionPerformed(ActionEvent e) { + if (isFocusOwner()) { + forTree(SelectionTree.this); + return; + } else { + forTree(oppositeTree); + } + } + }); + + inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "select/unselect"); + actionMap.put("select/unselect", new AbstractAction() { + + protected void forTree(SelectionTree tree) { + int selectedRow = tree.getSelectedRow(); + if (selectedRow == -1) { + return; + } + + SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) tree.getPathForRow(selectedRow).getLastPathComponent(); + tree.getTreeModel().setValueAt(!node.isSelected(), node, 1); + } + + @Override + public void actionPerformed(ActionEvent e) { + if (isFocusOwner()) { + forTree(SelectionTree.this); + return; + } else { + forTree(oppositeTree); + } + } + }); + } + + public SelectionTreeModel getTreeModel() { + return (SelectionTreeModel) getTreeTableModel(); + } + + @Override + protected void configureEnclosingScrollPane() { + // ne rien faire, on utilise un autre composant + } + + @Override + protected void unconfigureEnclosingScrollPane() { + // ne rien faire, on utilise un autre composant + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeCellRenderer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeCellRenderer.java new file mode 100644 index 0000000..5fcdd04 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeCellRenderer.java @@ -0,0 +1,39 @@ +package fr.ird.observe.application.swing.ui.tree.selection; + +import fr.ird.observe.application.swing.ui.tree.selection.nodes.SelectionTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.TripLonglineSelectionTreeNode; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.TripSeineSelectionTreeNode; +import org.jdesktop.swingx.tree.DefaultXTreeCellRenderer; + +import javax.swing.Icon; +import javax.swing.JLabel; +import javax.swing.JTree; +import java.awt.Component; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SelectionTreeCellRenderer extends DefaultXTreeCellRenderer { + + public Icon getIcon(SelectionTreeNodeSupport node) { + return node.getIcon(""); + } + + @Override + public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { + SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) value; + Icon icon = getIcon(node); + JLabel treeCellRendererComponent = (JLabel) super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); + treeCellRendererComponent.setIcon(icon); + if (node instanceof TripSeineSelectionTreeNode) { + treeCellRendererComponent.setToolTipText(((TripSeineSelectionTreeNode) node).getToolTipText()); + } else if (node instanceof TripLonglineSelectionTreeNode) { + treeCellRendererComponent.setToolTipText(((TripLonglineSelectionTreeNode) node).getToolTipText()); + } + return treeCellRendererComponent; + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeader.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeader.jaxx new file mode 100644 index 0000000..66e9f14 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeader.jaxx @@ -0,0 +1,43 @@ +<!-- + #%L + ObServe :: Application Swing + %% + Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<JPanel layout='{new BorderLayout()}'> + + <!-- label --> + <String id='labelText' javaBean='null'/> + + <!-- tree --> + <SelectionTree id='treeTable' javaBean='new SelectionTree()'/> + + + <JLabel id="label" constraints='BorderLayout.CENTER'/> + + <JToolBar id='toolbar' constraints='BorderLayout.EAST'> + + <!-- les boutons pour grouper/déplier tout l'arbre --> + <JButton id='colapseAll' onActionPerformed='handler.collapseAll()'/> + <JButton id='expandAll' onActionPerformed='handler.expandAll()'/> + + <!-- les boutons pour sélectionner/déselectionner tout l'arbre --> + <JButton id='selectAll' onActionPerformed='handler.selectAll()'/> + <JButton id='unselectAll' onActionPerformed='handler.unselectAll()'/> + + </JToolBar> + +</JPanel> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/AbstractDataReferenceChildLoador.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeader.jcss similarity index 54% rename from application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/AbstractDataReferenceChildLoador.java rename to application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeader.jcss index 828496a..1bdf131 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/loadors/AbstractDataReferenceChildLoador.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeader.jcss @@ -1,39 +1,50 @@ -package fr.ird.observe.application.swing.ui.tree.loadors; - -/*- +/* * #%L - * ObServe :: Application Swing + * ObServe :: Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -import fr.ird.observe.services.dto.DataDto; -import fr.ird.observe.services.dto.DataReference; +#label { + text:{getLabelText()}; +} -/** - * @author Kevin Morin (Code Lutin) - * @since x.x - */ -abstract class AbstractDataReferenceChildLoador<O extends DataDto> extends AbstractNodeChildLoador<DataReference<O>, O> { +JButton { + focusable:false; + focusPainted:false; +} - private static final long serialVersionUID = 1L; +#colapseAll { + actionIcon:collapse; + toolTipText:"observe.tree.action.collapseAll.tip"; +} + +#expandAll { + actionIcon:expand; + toolTipText:"observe.tree.action.expandAll.tip"; +} + +#selectAll { + actionIcon:select; + toolTipText:"observe.tree.action.selectAll.tip"; +} - AbstractDataReferenceChildLoador(Class<O> beanType) { - super(beanType); - } +#unselectAll { + actionIcon:unselect; + toolTipText:"observe.tree.action.unselectAll.tip"; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeaderHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeaderHandler.java new file mode 100644 index 0000000..6d79d0a --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeHeaderHandler.java @@ -0,0 +1,96 @@ +package fr.ird.observe.application.swing.ui.tree.selection; + +/* + * #%L + * ObServe :: Application Swing + * %% + * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import jaxx.runtime.spi.UIHandler; + +import javax.swing.SwingUtilities; +import java.beans.PropertyChangeListener; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SelectionTreeHeaderHandler implements UIHandler<SelectionTreeHeader> { + + private SelectionTreeHeader ui; + + public SelectionTreeHeader getUi() { + return ui; + } + + private SelectionTree getTree() { + return getUi().getTreeTable(); + } + + @Override + public void beforeInit(SelectionTreeHeader selectionTreeHeader) { + this.ui = selectionTreeHeader; + } + + @Override + public void afterInit(SelectionTreeHeader selectionTreeHeader) { + + PropertyChangeListener propertyChangeListener = e -> onTripCountChanged((int) e.getNewValue()); + selectionTreeHeader.addPropertyChangeListener(SelectionTreeHeader.PROPERTY_TREE_TABLE, e -> { + SelectionTreeModel newValue = ((SelectionTree) e.getNewValue()).getTreeModel(); + newValue.removePropertyChangeListener(SelectionTreeModel.SELECTED_COUNT, propertyChangeListener); + newValue.addPropertyChangeListener(SelectionTreeModel.SELECTED_COUNT, propertyChangeListener); + }); + } + + private void onTripCountChanged(int newValue) { + + String text; + if (newValue == 0) { + text = t("observe.selection.no.trips.selected"); + } else { + text = t("observe.selection.selected.trips", newValue); + } + getUi().setLabelText(text); + } + + public void collapseAll() { + SelectionTree tree = getTree(); + tree.collapseAll(); + } + + public void expandAll() { + SelectionTree tree = getTree(); + tree.expandAll(); + } + + public void selectAll() { + SelectionTree selectionTree = getTree(); + selectionTree.getTreeModel().selectAllTrips(); + SwingUtilities.invokeLater(selectionTree::repaint); + } + + public void unselectAll() { + SelectionTree selectionTree = getTree(); + selectionTree.getTreeModel().unselectAllTrips(); + SwingUtilities.invokeLater(selectionTree::repaint); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java new file mode 100644 index 0000000..19eea6a --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java @@ -0,0 +1,339 @@ +package fr.ird.observe.application.swing.ui.tree.selection; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.application.swing.db.ObserveSwingDataSource; +import fr.ird.observe.application.swing.ui.admin.export.TripEntry; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.ProgramSelectionTreeNode; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.ReferenceSelectionTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.ReferentialsSelectionTreeNode; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.RootSelectionTreeNode; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.SelectionTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.selection.nodes.TripSelectionTreeNodeSupport; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import org.jdesktop.swingx.treetable.DefaultTreeTableModel; +import org.jdesktop.swingx.treetable.TreeTableNode; + +import javax.swing.tree.TreePath; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.util.Enumeration; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Created on 14/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class SelectionTreeModel extends DefaultTreeTableModel { + + public static final String SELECTED_COUNT = "selectedCount"; + public static final String SELECTION_EMPTY = "selectionEmpty"; + private boolean loadSeine = true; + private boolean loadLongline = true; + private boolean loadReferential = true; + private boolean showEmptyTrips = true; + + private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + + private int selectedCount; + private boolean useOpenData; + + @Override + public int getColumnCount() { + return 2; + } + + @Override + public Class<?> getColumnClass(int column) { + if (column == 0) { + return Object.class; + } + return boolean.class; + } + + @Override + public Object getValueAt(Object node, int column) { + switch (column) { + case 0: + return node; + default: + return ((SelectionTreeNodeSupport) node).isSelected(); + } + } + + @Override + public void setValueAt(Object value, Object node, int column) { + SelectionTreeNodeSupport node1 = (SelectionTreeNodeSupport) node; + node1.setSelected((Boolean) value); + if (node1.isLeaf()) { + modelSupport.firePathChanged(new TreePath(getPathToRoot(node1.getParent()))); + } else { + Enumeration<? extends TreeTableNode> children = node1.getParent().children(); + while (children.hasMoreElements()) { + TreeTableNode treeTableNode = children.nextElement(); + modelSupport.firePathChanged(new TreePath(treeTableNode)); + } + } + recomputeSelectedCount(); + } + + private void recomputeSelectedCount() { + int result = getSelectedData().size(); + setSelectedCount(result); + } + + public int getSelectedCount() { + return selectedCount; + } + + public void setSelectedCount(int selectedCount) { + int oldValue = getSelectedCount(); + boolean oldSelectionempty = isSelectionEmpty(); + this.selectedCount = selectedCount; + pcs.firePropertyChange(SELECTED_COUNT, oldValue, selectedCount); + pcs.firePropertyChange(SELECTION_EMPTY, oldSelectionempty, isSelectionEmpty()); + } + + public boolean isSelectionEmpty() { + return selectedCount == 0; + } + + @Override + public boolean isCellEditable(Object node, int column) { + SelectionTreeNodeSupport node1 = (SelectionTreeNodeSupport) node; + return column == 1 && !(node1 instanceof ProgramSelectionTreeNode && node1.isLeaf()); + } + + @Override + public RootSelectionTreeNode getRoot() { + return (RootSelectionTreeNode) super.getRoot(); + } + + public void addPropertyChangeListener(PropertyChangeListener listener) { + pcs.addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String name, PropertyChangeListener listener) { + pcs.addPropertyChangeListener(name, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + pcs.removePropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String name, PropertyChangeListener listener) { + pcs.removePropertyChangeListener(name, listener); + } + + public SelectionTreeModel() { + super(new RootSelectionTreeNode()); + } + + public void setLoadSeine(boolean loadSeine) { + this.loadSeine = loadSeine; + } + + public void setLoadLongline(boolean loadLongline) { + this.loadLongline = loadLongline; + } + + public void setLoadReferential(boolean loadReferential) { + this.loadReferential = loadReferential; + } + + public void setShowEmptyTrips(boolean showEmptyTrips) { + this.showEmptyTrips = showEmptyTrips; + } + + public boolean isLoadSeine() { + return loadSeine; + } + + public boolean isLoadLongline() { + return loadLongline; + } + + public boolean isLoadReferential() { + return loadReferential; + } + + public boolean isShowEmptyTrips() { + return showEmptyTrips; + } + + @Override + public int getHierarchicalColumn() { + return 0; + } + + public Set<DataReference<?>> getSelectedData() { + ImmutableSet.Builder<DataReference<?>> builder = ImmutableSet.builder(); + for (ProgramSelectionTreeNode programNode : getRoot()) { + builder.addAll(programNode.getSelected()); + } + return builder.build(); + } + + public boolean isUseData() { + return isLoadLongline() || isLoadSeine(); + } + + public void populate(ObserveSwingDataSource dataSource) { + RootSelectionTreeNode rootTreeNode = RootSelectionTreeNode.of(this, dataSource); + setRoot(rootTreeNode); + } + + public ImmutableSet<Class<? extends ReferentialDto>> getSelectedReferentiel() { + ImmutableSet.Builder<Class<? extends ReferentialDto>> builder = ImmutableSet.builder(); + for (ReferentialsSelectionTreeNode programNode : getRoot().getReferentialsNodes()) { + if (!programNode.isLeaf()) { + ImmutableList<Class<? extends ReferentialDto>> selected = programNode.getSelected(); + builder.addAll(selected); + } + } + return builder.build(); + } + + public Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> getSelectedDataByProgram() { + ImmutableMap.Builder<ReferentialReference<ProgramDto>, List<DataReference<?>>> result = ImmutableMap.builder(); + for (ProgramSelectionTreeNode programNode : getRoot()) { + if (!programNode.isLeaf()) { + ImmutableList<DataReference<?>> trips = programNode.getSelected(); + result.put(programNode.getData(), trips); + } + } + return result.build(); + } + + public void removeProgram(String programId) { + RootSelectionTreeNode rootNode = getRoot(); + SelectionTreeNodeSupport result = rootNode.findById(programId); + Objects.requireNonNull(result, "Could not find program node with id: " + programId); + removeNodeFromParent(result); + } + + public void removeTrip(ReferentialReference<ProgramDto> program, DataReference trip) { + + RootSelectionTreeNode rootNode = getRoot(); + SelectionTreeNodeSupport programNode = rootNode.findById(program.getId()); + Objects.requireNonNull(programNode, "Could not find program node with id: " + program); + SelectionTreeNodeSupport tripNode = programNode.findById(trip.getId()); + Objects.requireNonNull(tripNode, "Could not find program node with id: " + trip); + removeNodeFromParent(tripNode); + + if (programNode.isLeaf()) { + removeProgram(program.getId()); + } + } + + public boolean containsData(ReferentialReference<ProgramDto> program, DataReference trip) { + ReferenceSelectionTreeNodeSupport programNode = getRoot().findById(program.getId()); + return programNode != null && programNode.findById(trip.getId()) != null; + } + + public void removeAllSelectedData() { + for (ProgramSelectionTreeNode programNode : getRoot()) { + + if (programNode.isSelected()) { + removeProgram(programNode.getId()); + } else { + for (TripSelectionTreeNodeSupport<?> tripNode : programNode) { + if (tripNode.isSelected()) { + removeTrip(programNode.getData(), (DataReference) tripNode.getData()); + } + } + } + + } + recomputeSelectedCount(); + } + + public void selectAllTrips() { + for (ProgramSelectionTreeNode programNode : getRoot()) { + programNode.setSelected(true); + } + recomputeSelectedCount(); + } + + public void unselectAllTrips() { + for (ProgramSelectionTreeNode programNode : getRoot()) { + programNode.setSelected(false); + } + recomputeSelectedCount(); + } + + public void setExistingTrips(List<DataReference<?>> existingTrips) { + for (ProgramSelectionTreeNode programNode : getRoot()) { + for (TripSelectionTreeNodeSupport<?> tripNode : programNode) { + DataReference<?> data = tripNode.getData(); + tripNode.setExist(existingTrips.contains(data)); + } + } + } + + public void setUseOpenData(boolean useOpenData) { + this.useOpenData = useOpenData; + } + + public boolean isUseOpenData() { + return useOpenData; + } + + public boolean isNotEmpty() { + return !isEmpty(); + } + + public ImmutableList<TripEntry> getSelectedTripEntries() { + + ImmutableList.Builder<TripEntry> tripEntries = ImmutableList.builder(); + for (ProgramSelectionTreeNode programNode : getRoot()) { + + ReferentialReference<ProgramDto> program = programNode.getData(); + + for (TripSelectionTreeNodeSupport<?> tripNode : programNode) { + if (tripNode.isSelected()) { + DataReference<?> trip = tripNode.getData(); + boolean exists = tripNode.isExist(); + TripEntry tripEntry = new TripEntry(program, trip, exists); + tripEntries.add(tripEntry); + } + } + + } + return tripEntries.build(); + } + + public boolean isEmpty() { + return getRoot().isLeaf(); + } + + public boolean isDataFull() { + for (ProgramSelectionTreeNode programNode : getRoot()) { + if (!programNode.isSelected()) { + return false; + } + } + return !getRoot().isLeaf(); + } + + // Ne pas supprimer utiliser dans les templates + public ImmutableList<ReferentialReference<ProgramDto>> getSelectedProgram() { + return ImmutableList.copyOf(getSelectedDataByProgram().keySet()); + } + + // Ne pas supprimer utiliser dans les templates + public ImmutableList<DataReference<?>> getSelectedTripsByProgram(ReferentialReference<ProgramDto> program) { + ProgramSelectionTreeNode programNode = (ProgramSelectionTreeNode) getRoot().findById(program.getId()); + return programNode.getSelected(); + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java new file mode 100644 index 0000000..b469017 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java @@ -0,0 +1,85 @@ +package fr.ird.observe.application.swing.ui.tree.selection.nodes; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import org.apache.commons.collections4.EnumerationUtils; + +import java.util.Iterator; + +/** + * Created on 18/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ProgramSelectionTreeNode extends ReferenceSelectionTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>> implements Iterable<TripSelectionTreeNodeSupport<?>> { + + public static ProgramSelectionTreeNode ofSeine(ReferentialReference<ProgramDto> data, ImmutableSet<DataReference<TripSeineDto>> tripSeines) { + ProgramSelectionTreeNode result = new ProgramSelectionTreeNode(data); + for (DataReference<TripSeineDto> tripSeine : tripSeines) { + result.add(new TripSeineSelectionTreeNode(tripSeine)); + } + return result; + } + + public static ProgramSelectionTreeNode ofLongline(ReferentialReference<ProgramDto> data, ImmutableSet<DataReference<TripLonglineDto>> tripLonglines) { + ProgramSelectionTreeNode result = new ProgramSelectionTreeNode(data); + for (DataReference<TripLonglineDto> tripLongline : tripLonglines) { + result.add(new TripLonglineSelectionTreeNode(tripLongline)); + } + return result; + } + + public ProgramSelectionTreeNode(ReferentialReference<ProgramDto> data) { + super(data, true); + } + + @Override + public boolean isOpen() { + return ObserveSwingApplicationContext.get().getOpenDataManager().isOpenProgram(toString()); + } + + @Override + public Iterator<TripSelectionTreeNodeSupport<?>> iterator() { + return (Iterator) EnumerationUtils.toList(super.children()).iterator(); + } + + @Override + public String getText() { + return super.getText() + " (" + getChildCount() + ")"; + } + + @Override + public boolean isSelected() { + for (ReferenceSelectionTreeNodeSupport<?, ?> nodeSupport : this) { + if (!nodeSupport.isSelected()) { + return false; + } + } + return !isLeaf(); + } + + @Override + public void setSelected(boolean selected) { + for (ReferenceSelectionTreeNodeSupport<?, ?> node : this) { + node.setSelected(selected); + } + } + + public ImmutableList<DataReference<?>> getSelected() { + ImmutableList.Builder<DataReference<?>> builder = ImmutableList.builder(); + for (TripSelectionTreeNodeSupport<?> nodeSupport : this) { + if (nodeSupport.isSelected()) { + builder.add(nodeSupport.getData()); + } + } + return builder.build(); + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferenceSelectionTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferenceSelectionTreeNodeSupport.java new file mode 100644 index 0000000..40485a6 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferenceSelectionTreeNodeSupport.java @@ -0,0 +1,52 @@ +package fr.ird.observe.application.swing.ui.tree.selection.nodes; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.services.dto.AbstractReference; +import fr.ird.observe.services.dto.IdDto; +import org.nuiton.decorator.Decorator; + +import javax.swing.Icon; +import javax.swing.UIManager; + +/** + * Created on 18/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public abstract class ReferenceSelectionTreeNodeSupport<D extends IdDto, O extends AbstractReference<D>> extends SelectionTreeNodeSupport<O> { + + private boolean selected; + + public abstract boolean isOpen(); + + public ReferenceSelectionTreeNodeSupport(O data, boolean allowChildren) { + super(data, allowChildren); + } + + @Override + public String getId() { + return getData() == null ? null : getData().getId(); + } + + @Override + public String getText() { + Decorator<D> decorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferenceDecorator(getData().getType()); + return decorator.toString(getData()); + } + + @Override + public String getIconPath() { + return "navigation." + getData().getType().getName(); + } + + @Override + public boolean isSelected() { + return selected; + } + + @Override + public void setSelected(boolean selected) { + this.selected = selected; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferentialSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferentialSelectionTreeNode.java new file mode 100644 index 0000000..fb1e077 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferentialSelectionTreeNode.java @@ -0,0 +1,51 @@ +package fr.ird.observe.application.swing.ui.tree.selection.nodes; + +import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.services.dto.referential.ReferentialDto; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 18/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ReferentialSelectionTreeNode<D extends ReferentialDto> extends SelectionTreeNodeSupport<Class<D>> { + + private boolean selected; + + public ReferentialSelectionTreeNode(Class<D> data) { + super(data, false); + } + + @Override + public boolean isOpen() { + return true; + } + + @Override + public String getId() { + return null; + } + + @Override + public String getIconPath() { + return "navigation.sub.referentiel"; + } + + @Override + public String getText() { + return t(ObserveI18nDecoratorHelper.getTypeI18nKey(getData())); + } + + @Override + public boolean isSelected() { + return selected; + } + + @Override + public void setSelected(boolean selected) { + this.selected = selected; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferentialsSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferentialsSelectionTreeNode.java new file mode 100644 index 0000000..ba35166 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferentialsSelectionTreeNode.java @@ -0,0 +1,86 @@ +package fr.ird.observe.application.swing.ui.tree.selection.nodes; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import org.apache.commons.collections4.EnumerationUtils; + +import java.util.Iterator; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 18/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ReferentialsSelectionTreeNode extends SelectionTreeNodeSupport<String> implements Iterable<ReferentialSelectionTreeNode<?>> { + + public static ReferentialsSelectionTreeNode of(String name, ImmutableSet<Class<? extends ReferentialDto>> types) { + ReferentialsSelectionTreeNode result = new ReferentialsSelectionTreeNode(t(name)); + for (Class<? extends ReferentialDto> aClass : types) { + ReferentialSelectionTreeNode child = new ReferentialSelectionTreeNode<>(aClass); + result.add(child); + } + + return result; + } + + @Override + public void setSelected(boolean selected) { + for (ReferentialSelectionTreeNode<?> node : this) { + node.setSelected(selected); + } + } + + public ReferentialsSelectionTreeNode(String name) { + super(name, true); + } + + @Override + public String getText() { + return t(getData()); + } + + @Override + public String getIconPath() { + return "navigation.referentiel"; + } + + @Override + public boolean isOpen() { + return true; + } + + @Override + public String getId() { + return null; + } + + @Override + public Iterator<ReferentialSelectionTreeNode<?>> iterator() { + return (Iterator) EnumerationUtils.toList(children()).iterator(); + } + + @Override + public boolean isSelected() { + for (ReferentialSelectionTreeNode<?> nodeSupport : this) { + if (!nodeSupport.isSelected()) { + return false; + } + } + return true; + } + + public ImmutableList<Class<? extends ReferentialDto>> getSelected() { + ImmutableList.Builder<Class<? extends ReferentialDto>> builder = ImmutableList.builder(); + for (ReferentialSelectionTreeNode<?> nodeSupport : this) { + if (nodeSupport.isSelected()) { + builder.add(nodeSupport.getData()); + } + } + return builder.build(); + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java new file mode 100644 index 0000000..7d5d879 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java @@ -0,0 +1,115 @@ +package fr.ird.observe.application.swing.ui.tree.selection.nodes; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.db.ObserveSwingDataSource; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ProgramHelper; +import fr.ird.observe.services.dto.referential.ReferentialHelper; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.data.longline.TripLonglineService; +import fr.ird.observe.services.service.data.seine.TripSeineService; +import org.apache.commons.collections4.EnumerationUtils; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import static org.nuiton.i18n.I18n.n; + +/** + * Created on 18/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class RootSelectionTreeNode extends SelectionTreeNodeSupport<Void> implements Iterable<ProgramSelectionTreeNode> { + + public static RootSelectionTreeNode of(SelectionTreeModel treeModel, ObserveSwingDataSource dataSource) { + + RootSelectionTreeNode result = new RootSelectionTreeNode(); + + List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(dataSource.getReferentialReferences(ProgramDto.class)); + ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, programs); + + if (treeModel.isLoadLongline()) { + TripLonglineService tripLonglineService = dataSource.newTripLonglineService(); + programs.stream().filter(ProgramHelper::isProgramLongline).forEach(program -> { + DataReferenceSet<TripLonglineDto> trips = tripLonglineService.getTripLonglineByProgram(program.getId()); + if (treeModel.isShowEmptyTrips() || trips.sizeReference() > 0) { + ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofLongline(program, trips.getReferences()); + result.add(programNode); + } + }); + } + + if (treeModel.isLoadSeine()) { + TripSeineService tripSeineService = dataSource.newTripSeineService(); + programs.stream().filter(ProgramHelper::isProgramSeine).forEach(program -> { + DataReferenceSet<TripSeineDto> trips = tripSeineService.getTripSeineByProgram(program.getId()); + if (treeModel.isShowEmptyTrips() || trips.sizeReference() > 0) { + ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofSeine(program, trips.getReferences()); + result.add(programNode); + } + }); + } + + if (treeModel.isLoadReferential()) { + result.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); + result.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); + result.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); + } + + return result; + } + + public RootSelectionTreeNode() { + super(null, true); + } + + @Override + public boolean isOpen() { + return false; + } + + @Override + public String getId() { + return null; + } + + @Override + public String getText() { + return null; + } + + @Override + public String getIconPath() { + return null; + } + + @Override + public Iterator<ProgramSelectionTreeNode> iterator() { + return (Iterator) EnumerationUtils.toList(children()).stream().filter(c -> c instanceof ProgramSelectionTreeNode).iterator(); + } + + @Override + public boolean isSelected() { + return false; + } + + @Override + public void setSelected(boolean selected) { + // rien a faire + } + + public ReferentialsSelectionTreeNode[] getReferentialsNodes() { + ReferentialsSelectionTreeNode[] result = new ReferentialsSelectionTreeNode[3]; + result[0] = (ReferentialsSelectionTreeNode) getChildAt(getChildCount() - 3); + result[1] = (ReferentialsSelectionTreeNode) getChildAt(getChildCount() - 2); + result[2] = (ReferentialsSelectionTreeNode) getChildAt(getChildCount() - 1); + return result; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/SelectionTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/SelectionTreeNodeSupport.java new file mode 100644 index 0000000..b12b0f4 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/SelectionTreeNodeSupport.java @@ -0,0 +1,68 @@ +package fr.ird.observe.application.swing.ui.tree.selection.nodes; + +import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; + +import javax.swing.Icon; +import javax.swing.UIManager; +import java.awt.Color; +import java.util.Enumeration; + +/** + * Created on 18/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public abstract class SelectionTreeNodeSupport<O> extends DefaultMutableTreeTableNode { + + public abstract boolean isOpen(); + + public abstract String getId(); + + public abstract String getText(); + + public abstract String getIconPath(); + + public SelectionTreeNodeSupport(O data, boolean allowChildren) { + super(data, allowChildren); + } + + @Override + public String toString() { + return getText(); + } + + public O getData() { + return (O) getUserObject(); + } + + public Icon getIcon(String suffix) { + String iconPath = getIconPath(); + return iconPath == null ? null : UIManager.getIcon(iconPath + suffix); + } + + public abstract boolean isSelected(); + + public abstract void setSelected(boolean selected); + + @Override + public Enumeration<SelectionTreeNodeSupport> children() { + return (Enumeration) super.children(); + } + + public ReferenceSelectionTreeNodeSupport findById(String id) { + Enumeration<SelectionTreeNodeSupport> children = children(); + while (children.hasMoreElements()) { + ReferenceSelectionTreeNodeSupport<?, ?> child = (ReferenceSelectionTreeNodeSupport) children.nextElement(); + if (id.equals(child.getData().getId())) { + return child; + } + } + return null; + } + + public Color getColor() { + return isOpen() ? Color.BLACK : Color.GRAY; + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripLonglineSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripLonglineSelectionTreeNode.java new file mode 100644 index 0000000..648709d --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripLonglineSelectionTreeNode.java @@ -0,0 +1,44 @@ +package fr.ird.observe.application.swing.ui.tree.selection.nodes; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineHelper; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 18/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class TripLonglineSelectionTreeNode extends TripSelectionTreeNodeSupport<TripLonglineDto> { + + public TripLonglineSelectionTreeNode(DataReference<TripLonglineDto> data) { + super(data, false); + } + + @Override + public boolean isOpen() { + return ObserveSwingApplicationContext.get().getOpenDataManager().isOpenTripLongline(getData().getId()); + } + + @Override + public String getText() { + String s = super.getText() + " (" + TripLonglineHelper.getActivityCount(getData()) + ")"; + if (isExist()) { + return t("observe.common.exist.on.remote", s); + } + return s; + } + + public String getToolTipText() { + if (isExist()) { + return t("observe.message.warning.will.be.delete", getText()); + } else { + return getText(); + } + } + +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripSeineSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripSeineSelectionTreeNode.java new file mode 100644 index 0000000..c723050 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripSeineSelectionTreeNode.java @@ -0,0 +1,45 @@ +package fr.ird.observe.application.swing.ui.tree.selection.nodes; + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineHelper; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 18/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class TripSeineSelectionTreeNode extends TripSelectionTreeNodeSupport<TripSeineDto> { + + public TripSeineSelectionTreeNode(DataReference<TripSeineDto> data) { + super(data, false); + } + + @Override + public boolean isOpen() { + return ObserveSwingApplicationContext.get().getOpenDataManager().isOpenTripSeine(getData().getId()); + } + + @Override + public String getText() { + String s = super.getText() + " (" + TripSeineHelper.getRouteCount(getData()) + ")"; + if (isExist()) { + return t("observe.common.exist.on.remote", s); + } + return s; + } + + public String getToolTipText() { + if (isExist()) { + return t("observe.message.warning.will.be.delete", getText()); + } else { + return getText(); + } + } + +} + diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripSelectionTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripSelectionTreeNodeSupport.java new file mode 100644 index 0000000..ffc8278 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/TripSelectionTreeNodeSupport.java @@ -0,0 +1,27 @@ +package fr.ird.observe.application.swing.ui.tree.selection.nodes; + +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.DataReference; + +/** + * Created on 20/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since X + */ +public abstract class TripSelectionTreeNodeSupport<D extends DataDto> extends ReferenceSelectionTreeNodeSupport<D, DataReference<D>> { + + private boolean exist; + + public TripSelectionTreeNodeSupport(DataReference<D> data, boolean allowChildren) { + super(data, allowChildren); + } + + public boolean isExist() { + return exist; + } + + public void setExist(boolean exist) { + this.exist = exist; + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/DecoratedNodeEntity.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/DecoratedNodeEntity.java index 7375552..daa20f7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/DecoratedNodeEntity.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/DecoratedNodeEntity.java @@ -22,7 +22,7 @@ package fr.ird.observe.application.swing.ui.util; * #L% */ -import fr.ird.observe.application.swing.ui.tree.node.AbstrctReferenceNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.services.dto.IdDto; import org.nuiton.decorator.Decorator; @@ -38,10 +38,10 @@ public class DecoratedNodeEntity { private final String label; - public static <E extends IdDto> DecoratedNodeEntity newDecoratedNodeEntity(AbstrctReferenceNodeSupport<E, ?> node, Decorator<?> decorator) { + public static <E extends IdDto> DecoratedNodeEntity newDecoratedNodeEntity(ReferenceNavigationTreeNodeSupport<E, ?> node, Decorator<?> decorator) { Objects.requireNonNull(node); Objects.requireNonNull(decorator); - return new DecoratedNodeEntity(node.getId(), decorator.toString(node.getEntity())); + return new DecoratedNodeEntity(node.getId(), decorator.toString(node.getData())); } public String getId() { diff --git a/application-swing/src/main/resources/ftl/dataSourceConnectionReport_en.ftl b/application-swing/src/main/resources/ftl/dataSourceConnectionReport_en.ftl index 75b4fff..59a40a3 100644 --- a/application-swing/src/main/resources/ftl/dataSourceConnectionReport_en.ftl +++ b/application-swing/src/main/resources/ftl/dataSourceConnectionReport_en.ftl @@ -49,25 +49,25 @@ <ul> <li> - <#if selectDataModel.isDataEmpty()> + <#if selectDataModel.isEmpty()> No data to export <#elseif selectDataModel.isDataFull()> All observed data have to be exported - (<#if selectDataModel.selectDataSize() == 1> + (<#if selectDataModel.getSelectedCount() == 1> 1 trip <#else> - ${selectDataModel.selectDataSize()} trips + ${selectDataModel.getSelectedCount()} trips </#if>). <#else> - <#if selectDataModel.selectDataSize() == 1> + <#if selectDataModel.getSelectedCount() == 1> 1 trip <#else> - ${selectDataModel.selectDataSize()} trips + ${selectDataModel.getSelectedCount()} trips </#if> à exporter diff --git a/application-swing/src/main/resources/ftl/dataSourceConnectionReport_es.ftl b/application-swing/src/main/resources/ftl/dataSourceConnectionReport_es.ftl index 61b01e4..04863d4 100644 --- a/application-swing/src/main/resources/ftl/dataSourceConnectionReport_es.ftl +++ b/application-swing/src/main/resources/ftl/dataSourceConnectionReport_es.ftl @@ -49,25 +49,25 @@ <ul> <li> - <#if selectDataModel.isDataEmpty()> + <#if selectDataModel.isEmpty()> No hay datos de observaciones a exporter <#elseif selectDataModel.isDataFull()> Todos los datos de observador deben ser exportados - (<#if selectDataModel.selectDataSize() == 1> + (<#if selectDataModel.getSelectCedount() == 1> 1 marea <#else> - ${selectDataModel.selectDataSize()} mareas + ${selectDataModel.getSelectedCount()} mareas </#if>). <#else> - <#if selectDataModel.selectDataSize() == 1> + <#if selectDataModel.getSelectedCount() == 1> 1 marea <#else> - ${selectDataModel.selectDataSize()} mareas + ${selectDataModel.getSelectedCount()} mareas </#if> a exportar diff --git a/application-swing/src/main/resources/ftl/dataSourceConnectionReport_fr.ftl b/application-swing/src/main/resources/ftl/dataSourceConnectionReport_fr.ftl index 65720af..d3c16cb 100644 --- a/application-swing/src/main/resources/ftl/dataSourceConnectionReport_fr.ftl +++ b/application-swing/src/main/resources/ftl/dataSourceConnectionReport_fr.ftl @@ -49,25 +49,25 @@ <ul> <li> - <#if selectDataModel.isDataEmpty()> + <#if selectDataModel.isEmpty()> Pas de données observateur à exporter <#elseif selectDataModel.isDataFull()> Toutes les données observateur sont à exporter - (<#if selectDataModel.selectDataSize() == 1> + (<#if selectDataModel.getSelectedCount() == 1> 1 marée <#else> - ${selectDataModel.selectDataSize()} marées + ${selectDataModel.getSelectedCount()} marées </#if>). <#else> - <#if selectDataModel.selectDataSize() == 1> + <#if selectDataModel.getSelectedCount() == 1> 1 marée <#else> - ${selectDataModel.selectDataSize()} marées + ${selectDataModel.getSelectedCount()} marées </#if> à exporter diff --git a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties index 9514fdc..60f9b8c 100644 --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -1556,6 +1556,8 @@ observe.security.unused=Unused observe.security.unused.tip=Unused observe.security.utilisateur=User observe.security.utilisateur.tip=Read on data and referential +observe.selection.no.trips.selected=No trip selected. +observe.selection.selected.trips=%s selected trip(s). observe.storage.action.apply=Apply observe.storage.action.apply.tip=Apply configured storage observe.storage.action.canMigrate=Update database (current version %1$s) diff --git a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties index 35ebcc4..4f0439b 100644 --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -1556,6 +1556,8 @@ observe.security.unused=No utilizado observe.security.unused.tip=No usar este rol observe.security.utilisateur=Usuario observe.security.utilisateur.tip=El rol tiene permisos de lectura sobre el referencial y los datos +observe.selection.no.trips.selected=Aucune marée sélectionnée. \#TODO +observe.selection.selected.trips=%s marée(s) sélectionnée(s). \#TODO observe.storage.action.apply=Utilizar observe.storage.action.apply.tip=Utilizar la fuente de datos configuarada observe.storage.action.canMigrate=Actualización de la base (versión actual %1$s) diff --git a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties index af21d96..83536fa 100644 --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -1556,6 +1556,8 @@ observe.security.unused=Non utilisé observe.security.unused.tip=Ne pas utiliser ce rôle observe.security.utilisateur=Utilisateur observe.security.utilisateur.tip=Rôle ayant les droits de lecture sur le référentiel et les données +observe.selection.no.trips.selected=Aucune marée sélectionnée. +observe.selection.selected.trips=%s marée(s) sélectionnée(s). observe.storage.action.apply=Utiliser observe.storage.action.apply.tip=Utiliser la source de données configurée observe.storage.action.canMigrate=Mettre à jour la base (version courante %1$s) diff --git a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java index 23699b0..b19940d 100644 --- a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java @@ -32,6 +32,8 @@ public class TripLonglineImpl extends TripLonglineAbstract { private static final long serialVersionUID = 1L; + private int activityCount; + @Override public String getObserverLabel() { return observer == null ? "" : observer.getLastName() + " " + observer.getFirstName(); @@ -47,4 +49,13 @@ public class TripLonglineImpl extends TripLonglineAbstract { return false; } + @Override + public int getActivityCount() { + return activityCount; + } + + @Override + public void setActivityCount(int activityCount) { + this.activityCount = activityCount; + } } diff --git a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java index 57a62b5..51f0511 100644 --- a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java +++ b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineTopiaDao.java @@ -257,7 +257,8 @@ public class TripLonglineTopiaDao extends AbstractTripLonglineTopiaDao<TripLongl " p.lastName," + " p.firstName," + " v.topiaId," + - " v." + I18nReferenceEntities.getPropertyName(referenceLocale) + + " v." + I18nReferenceEntities.getPropertyName(referenceLocale) + "," + + " (select count(*) from observe_longline.activity a where a.trip = t.topiaId) as activityCount" + " FROM observe_longline.trip t, observe_common.person p, observe_common.vessel v, observe_common.program pr, observe_longline.triptype tt" + " WHERE " + " t.program = ?" + @@ -283,7 +284,8 @@ public class TripLonglineTopiaDao extends AbstractTripLonglineTopiaDao<TripLongl " p.lastName," + " p.firstName," + " v.topiaId," + - " v." + I18nReferenceEntities.getPropertyName(referenceLocale) + + " v." + I18nReferenceEntities.getPropertyName(referenceLocale) + "," + + " (select count(*) from observe_longline.activity a where a.trip = t.topiaId) as activityCount" + " FROM observe_longline.trip t, observe_common.person p, observe_common.vessel v, observe_common.program pr, observe_longline.triptype tt" + " WHERE " + " t.topiaId = ?" + @@ -333,6 +335,7 @@ public class TripLonglineTopiaDao extends AbstractTripLonglineTopiaDao<TripLongl vessel.setTopiaId(vesselId); String label = set.getString(9); I18nReferenceEntities.setLabel(referenceLocale, vessel, label); + trip.setActivityCount(set.getInt(10)); trip.setVessel(vessel); return trip; diff --git a/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramTopiaDao.java b/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramTopiaDao.java deleted file mode 100644 index 3e7775a..0000000 --- a/entities/src/main/java/fr/ird/observe/entities/referentiel/ProgramTopiaDao.java +++ /dev/null @@ -1,124 +0,0 @@ -package fr.ird.observe.entities.referentiel; - -/* - * #%L - * ObServe :: Entities - * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.entities.constants.GearTypePersist; -import org.nuiton.topia.persistence.support.TopiaSqlQuery; -import org.nuiton.topia.persistence.support.TopiaSqlSupport; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.List; - - -public class ProgramTopiaDao extends AbstractProgramTopiaDao<Program> { - - public List<Program> findAllStub(int referenceLocale) { - return StubSqlQuery.findAll(topiaSqlSupport, referenceLocale); - - } - - public Program findStubByTopiaId(String programId, int referentielLocale) { - return StubSqlQuery.find(topiaSqlSupport, programId, referentielLocale); - } - - - private static class StubSqlQuery extends TopiaSqlQuery<Program> { - - private final String sql; - - private final String id; - - private final int referenceLocale; - - static List<Program> findAll(TopiaSqlSupport topiaSqlSupport, int referenceLocale) { - - String sql = "SELECT" + - " p.topiaId," + - " p.gearType," + - " p." + I18nReferenceEntities.getPropertyName(referenceLocale) + - " FROM observe_common.program p" + - " ORDER BY p." + I18nReferenceEntities.getPropertyName(referenceLocale); - - StubSqlQuery request = new StubSqlQuery(sql, null, referenceLocale); - return topiaSqlSupport.findMultipleResult(request); - - } - - static Program find(TopiaSqlSupport topiaSqlSupport, String tripId, int referenceLocale) { - - String sql = "SELECT" + - " p.topiaId," + - " p.gearType," + - " p." + I18nReferenceEntities.getPropertyName(referenceLocale) + - "(select count(*) from observe_seine.trip t where t.program = p.id) + (select count(*) from observe_longline.trip t where t.program = p.id) "+ - " FROM observe_common.program p" + - " WHERE " + - " p.topiaId = ?" + - " ORDER BY p." + I18nReferenceEntities.getPropertyName(referenceLocale); - - StubSqlQuery request = new StubSqlQuery(sql, tripId, referenceLocale); - return topiaSqlSupport.findSingleResult(request); - - } - - StubSqlQuery(String sql, String id, int referenceLocale) { - this.sql = sql; - this.id = id; - this.referenceLocale = referenceLocale; - } - - @Override - public PreparedStatement prepareQuery(Connection connection) throws SQLException { - PreparedStatement preparedStatement = connection.prepareStatement(sql); - if (id != null) { - preparedStatement.setString(1, id); - } - return preparedStatement; - } - - @Override - public Program prepareResult(ResultSet set) throws SQLException { - - Program program = new ProgramImpl(); - program.setTopiaId(set.getString(1)); - - int gearTypeOrdinal = set.getInt(2); - GearTypePersist gearType = GearTypePersist.fromOrdinal(gearTypeOrdinal); - program.setGearType(gearType); - - String label = set.getString(3); - I18nReferenceEntities.setLabel(referenceLocale, program, label); - - int tripCount = set.getInt(4); - program.setTripCount(tripCount); - return program; - - } - - } - - -} diff --git a/entities/src/main/xmi/observe-longline.zargo b/entities/src/main/xmi/observe-longline.zargo index f96b968..57dd558 100644 Binary files a/entities/src/main/xmi/observe-longline.zargo and b/entities/src/main/xmi/observe-longline.zargo differ diff --git a/services-dto-reference/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java b/services-dto-reference/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java index 30012e0..153dafb 100644 --- a/services-dto-reference/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java +++ b/services-dto-reference/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java @@ -135,6 +135,7 @@ public enum DataReferenceSetDefinitions { .addProperty(Date.class, TripLonglineDto.PROPERTY_END_DATE) .addProperty(String.class, TripLonglineDto.PROPERTY_PROGRAM + "Id") .addProperty(String.class, TripLonglineDto.PROPERTY_TRIP_TYPE + "Id") + .addProperty(int.class, TripLonglineDto.PROPERTY_ACTIVITY_COUNT) .addProperty(String.class, TripLonglineDto.PROPERTY_VESSEL) .addProperty(String.class, TripLonglineDto.PROPERTY_OBSERVER)), diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java new file mode 100644 index 0000000..6359eca --- /dev/null +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java @@ -0,0 +1,10 @@ +package fr.ird.observe.services.dto.longline; + +import fr.ird.observe.services.dto.DataReference; + +public class TripLonglineHelper extends GeneratedTripLonglineHelper { + + public static int getActivityCount(DataReference<TripLonglineDto> data) { + return (int) data.getPropertyValue(TripLonglineDto.PROPERTY_ACTIVITY_COUNT); + } +} diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ProgramHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ProgramHelper.java index 80cf1a4..dfae73d 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ProgramHelper.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ProgramHelper.java @@ -54,8 +54,8 @@ public class ProgramHelper extends GeneratedProgramHelper { return result; } -// public static Iterable<ReferenceDto<ProgramDto>> filterReferencesByGearType(Iterable<ReferenceDto<ProgramDto>> programs, GearType gearType) { -// return Iterables.filter(programs, ReferenceDtos.newLabelValuePredicate(ProgramDto.PROPERTY_GEAR_TYPE, gearType)); -// } + public static int getTripCount(ReferentialReference<ProgramDto> reference) { + return (int) reference.getPropertyValue(ProgramDto.PROPERTY_TRIP_COUNT); + } } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/seine/VesselActivitySeineHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/seine/VesselActivitySeineHelper.java index 4b8395d..e908653 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/seine/VesselActivitySeineHelper.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/seine/VesselActivitySeineHelper.java @@ -22,7 +22,6 @@ package fr.ird.observe.services.dto.referential.seine; * #L% */ -import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.dto.referential.ReferentialReference; public class VesselActivitySeineHelper extends GeneratedVesselActivitySeineHelper { @@ -31,22 +30,37 @@ public class VesselActivitySeineHelper extends GeneratedVesselActivitySeineHelpe public static final String VESSEL_ACTIVITY_ID_CHANGED_ZONE = "fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1379684416896#0.38648073770690594"; + public static final String ACTIVITY_FIN_DE_VEILLE = "16"; + + public static final String ACTIVITY_DEBUT_DE_PECHE = "6"; + public static boolean isSetOpreration(String id) { return VESSEL_ACTIVITY_ID_FOR_SET.equals(id); } - public static boolean isSetOperation(ReferentialReference<VesselActivitySeineDto> vesselActivitySeineRef) { - return vesselActivitySeineRef != null && isSetOpreration(vesselActivitySeineRef.getId()); + public static boolean isSetOperation(ReferentialReference<VesselActivitySeineDto> reference) { + return reference != null && isSetOpreration(reference.getId()); } - public static boolean isDcpOperation(ReferentialReference<VesselActivitySeineDto> vesselActivitySeineRef) { - boolean result = vesselActivitySeineRef != null; + public static boolean isDcpOperation(ReferentialReference<VesselActivitySeineDto> reference) { + boolean result = reference != null; if (result) { - result = (boolean) vesselActivitySeineRef.getPropertyValue(VesselActivitySeineDto.PROPERTY_ALLOW_FAD); + result = (boolean) reference.getPropertyValue(VesselActivitySeineDto.PROPERTY_ALLOW_FAD); } return result; } + public static boolean isActivityFinDeVeille(ReferentialReference<VesselActivitySeineDto> reference) { + return reference != null + && ACTIVITY_FIN_DE_VEILLE.equals(reference.getPropertyValue(VesselActivitySeineDto.PROPERTY_CODE)); + } + + public static boolean isActivityPeche(ReferentialReference<VesselActivitySeineDto> reference) { + return reference != null + && ACTIVITY_DEBUT_DE_PECHE.equals(reference.getPropertyValue(VesselActivitySeineDto.PROPERTY_CODE)); + } + + public static boolean isChangedZoneOperation(String id) { return VESSEL_ACTIVITY_ID_CHANGED_ZONE.equals(id); } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java b/services-dto/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java index 6e6bd06..6225a49 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java @@ -31,39 +31,24 @@ import java.util.Date; public class ActivitySeineDto extends GeneratedActivitySeineDto { - public static final String ACTIVITY_FIN_DE_VEILLE = "16"; - - public static final String ACTIVITY_DEBUT_DE_PECHE = "7"; - - public static final String ACTIVITY_FIN_DE_PECHE = "6"; - public static final String PROPERTY_SET_SEINE = "setSeine"; public static final String PROPERTY_SET_OPERATION = "setOperation"; public static final String PROPERTY_DCP_OPERATION = "dcpOperation"; - private static final long serialVersionUID = 3846974823980413495L; + private static final long serialVersionUID = 1L; public boolean isActivityFinDeVeille() { - return vesselActivitySeine != null - && ACTIVITY_FIN_DE_VEILLE.equals( - vesselActivitySeine.getPropertyValue(VesselActivitySeineDto.PROPERTY_CODE)); + return VesselActivitySeineHelper.isActivityFinDeVeille(vesselActivitySeine); } public boolean isDcpOperation() { - boolean result = vesselActivitySeine != null; - if (result) { - result = (boolean) vesselActivitySeine .getPropertyValue(VesselActivitySeineDto.PROPERTY_ALLOW_FAD); - } - return result; + return VesselActivitySeineHelper.isDcpOperation(vesselActivitySeine); } + public boolean isSetOperation() { - boolean result = vesselActivitySeine != null; - if (result) { - result = VesselActivitySeineHelper.isSetOperation(vesselActivitySeine); - } - return result; + return VesselActivitySeineHelper.isSetOperation(vesselActivitySeine); } @Override diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java new file mode 100644 index 0000000..6e18cd9 --- /dev/null +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java @@ -0,0 +1,9 @@ +package fr.ird.observe.services.dto.seine; + +import fr.ird.observe.services.dto.DataReference; + +public class TripSeineHelper extends GeneratedTripSeineHelper { + public static int getRouteCount(DataReference<TripSeineDto> data) { + return (int) data.getPropertyValue(TripSeineDto.PROPERTY_ROUTE_COUNT); + } +} diff --git a/services-dto/src/main/xmi/observe-services-dto-longline.zargo b/services-dto/src/main/xmi/observe-services-dto-longline.zargo index c95582f..c887dd5 100644 Binary files a/services-dto/src/main/xmi/observe-services-dto-longline.zargo and b/services-dto/src/main/xmi/observe-services-dto-longline.zargo differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit bed31c0eba0b6951db1a49356ba606746f5c7998 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 21 09:25:52 2016 +0100 ne pas pas afficher les erreurs sur la base locale si cela n'est pas important --- .../ird/observe/application/swing/ui/storage/StorageUIHandler.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java index c88124d..5ed82d9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java @@ -381,7 +381,10 @@ public class StorageUIHandler { // cela ne doit pas empécher de continuer // il faut juste supprimer physiquement le repertoire // de la base - UIHelper.handlingError(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); + if (log.isErrorEnabled()) { + log.error(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); + } +// UIHelper.handlingError(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); // on conserve l'état localDbIsSane = false; @@ -395,7 +398,7 @@ public class StorageUIHandler { if (model.isDoBackup()) { if (!localDbIsSane) { - // la base locale n'est pas saine, on doit arrêter l'objectOperation + // la base locale n'est pas saine, on doit arrêter l'operation // de changement de base sous peine de perdre la base. Exception e = new Exception(t("observe.error.storage.could.not.backup.unsane.local.db")); UIHelper.handlingError(e); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 7c376d4b872107c50dec5d488c96db207bea8345 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:12:40 2016 +0100 refs #8429 Ajout service pour charger l'arbre de navigation --- .../v1/data/NavigationServiceController.java | 24 +++++++ application-web/src/main/resources/mapping | 1 + .../topia/service/data/NavigationServiceTopia.java | 79 ++++++++++++++++++++++ .../observe/services/ObserveServicesProvider.java | 3 + .../services/service/data/NavigationRequest.java | 30 ++++++++ .../services/service/data/NavigationResult.java | 40 +++++++++++ .../services/service/data/NavigationService.java | 15 ++++ 7 files changed, 192 insertions(+) diff --git a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/NavigationServiceController.java b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/NavigationServiceController.java new file mode 100644 index 0000000..667284e --- /dev/null +++ b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/NavigationServiceController.java @@ -0,0 +1,24 @@ +package fr.ird.observe.application.web.controller.v1.data; + +import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; +import fr.ird.observe.services.service.data.NavigationRequest; +import fr.ird.observe.services.service.data.NavigationResult; +import fr.ird.observe.services.service.data.NavigationService; + +/** + * Created on 22/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NavigationServiceController extends ObserveAuthenticatedServiceControllerSupport<NavigationService> implements NavigationService { + + public NavigationServiceController() { + super(NavigationService.class); + } + + @Override + public NavigationResult getNavigation(NavigationRequest request) { + return service.getNavigation(request); + } +} diff --git a/application-web/src/main/resources/mapping b/application-web/src/main/resources/mapping index 637a4ac..1b4b01e 100644 --- a/application-web/src/main/resources/mapping +++ b/application-web/src/main/resources/mapping @@ -82,6 +82,7 @@ GET /api/v1/actions/synchro/referential/diff/ReferentialSynchronizeDiffService/g GET /api/v1/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService/filterIdsUsedInLocalSource v1.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalServiceController.filterIdsUsedInLocalSource GET /api/v1/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService/generateSqlRequests v1.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalServiceController.generateSqlRequests GET /api/v1/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService/getLocalSourceReferentialToDelete v1.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalServiceController.getLocalSourceReferentialToDelete +GET /api/v1/data/NavigationService/getNavigation v1.data.NavigationServiceController.getNavigation GET /api/v1/data/longline/ActivityLongLineEncounterService/loadForm v1.data.longline.ActivityLongLineEncounterServiceController.loadForm GET /api/v1/data/longline/ActivityLongLineSensorUsedService/getDataFile v1.data.longline.ActivityLongLineSensorUsedServiceController.getDataFile GET /api/v1/data/longline/ActivityLongLineSensorUsedService/loadForm v1.data.longline.ActivityLongLineSensorUsedServiceController.loadForm diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/NavigationServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/NavigationServiceTopia.java new file mode 100644 index 0000000..83a6bac --- /dev/null +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/NavigationServiceTopia.java @@ -0,0 +1,79 @@ +package fr.ird.observe.services.topia.service.data; + +import com.google.common.collect.HashMultimap; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Maps; +import com.google.common.collect.Multimap; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineHelper; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ProgramHelper; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineHelper; +import fr.ird.observe.services.service.data.NavigationRequest; +import fr.ird.observe.services.service.data.NavigationResult; +import fr.ird.observe.services.service.data.NavigationService; +import fr.ird.observe.services.service.data.longline.TripLonglineService; +import fr.ird.observe.services.service.data.seine.TripSeineService; +import fr.ird.observe.services.service.referential.ReferentialService; +import fr.ird.observe.services.topia.ObserveServiceTopia; + +/** + * Created on 22/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NavigationServiceTopia extends ObserveServiceTopia implements NavigationService { + + @Override + public NavigationResult getNavigation(NavigationRequest request) { + + ImmutableSet<ReferentialReference<ProgramDto>> allPrograms = serviceContext.newService(ReferentialService.class).getReferenceSet(ProgramDto.class, null).getReferences(); + ImmutableMap<String, ReferentialReference<ProgramDto>> programsById = Maps.uniqueIndex(allPrograms, ReferentialReference::getId); + + ImmutableSet.Builder<ReferentialReference<ProgramDto>> programsBuilder = ImmutableSet.builder(); + + boolean loadLongline = request.isLoadLongline(); + boolean loadSeine = request.isLoadSeine(); + + for (ReferentialReference<ProgramDto> program : allPrograms) { + if (loadLongline && ProgramHelper.isProgramLongline(program)) { + programsBuilder.add(program); + } else if (loadSeine && ProgramHelper.isProgramSeine(program)) { + programsBuilder.add(program); + } + } + + Multimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> tripsSeineByProgram = HashMultimap.create(); + Multimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> tripsLonglineByProgram = HashMultimap.create(); + + if (loadSeine) { + TripSeineService service = serviceContext.newService(TripSeineService.class); + DataReferenceSet<TripSeineDto> trips = service.getAllTripSeine(); + for (DataReference<TripSeineDto> reference : trips.getReferences()) { + String programId = TripSeineHelper.getProgramId(reference); + ReferentialReference<ProgramDto> program = programsById.get(programId); + tripsSeineByProgram.put(program, reference); + } + + } + if (loadLongline) { + + TripLonglineService service = serviceContext.newService(TripLonglineService.class); + DataReferenceSet<TripLonglineDto> trips = service.getAllTripLongline(); + for (DataReference<TripLonglineDto> reference : trips.getReferences()) { + String programId = TripLonglineHelper.getProgramId(reference); + ReferentialReference<ProgramDto> program = programsById.get(programId); + tripsLonglineByProgram.put(program, reference); + } + + } + + return new NavigationResult(programsBuilder.build(), tripsSeineByProgram, tripsLonglineByProgram); + } +} diff --git a/services/src/main/java/fr/ird/observe/services/ObserveServicesProvider.java b/services/src/main/java/fr/ird/observe/services/ObserveServicesProvider.java index 619d44a..b50fd31 100644 --- a/services/src/main/java/fr/ird/observe/services/ObserveServicesProvider.java +++ b/services/src/main/java/fr/ird/observe/services/ObserveServicesProvider.java @@ -25,6 +25,7 @@ package fr.ird.observe.services; import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.services.service.LastUpdateDateService; import fr.ird.observe.services.service.PingService; +import fr.ird.observe.services.service.data.NavigationService; import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; @@ -92,6 +93,8 @@ public interface ObserveServicesProvider { DataSourceService newDataSourceService(); + NavigationService newNavigationService(); + ReferentialService newReferentialService(); TripSeineService newTripSeineService(); diff --git a/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java b/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java new file mode 100644 index 0000000..8c82748 --- /dev/null +++ b/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java @@ -0,0 +1,30 @@ +package fr.ird.observe.services.service.data; + +/** + * Created on 22/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NavigationRequest { + + + private boolean loadSeine; + private boolean loadLongline; + + public boolean isLoadSeine() { + return loadSeine; + } + + public void setLoadSeine(boolean loadSeine) { + this.loadSeine = loadSeine; + } + + public boolean isLoadLongline() { + return loadLongline; + } + + public void setLoadLongline(boolean loadLongline) { + this.loadLongline = loadLongline; + } +} diff --git a/services/src/main/java/fr/ird/observe/services/service/data/NavigationResult.java b/services/src/main/java/fr/ird/observe/services/service/data/NavigationResult.java new file mode 100644 index 0000000..0c8df25 --- /dev/null +++ b/services/src/main/java/fr/ird/observe/services/service/data/NavigationResult.java @@ -0,0 +1,40 @@ +package fr.ird.observe.services.service.data; + +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Multimap; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; + +/** + * Created on 22/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class NavigationResult { + + private final ImmutableSet<ReferentialReference<ProgramDto>> programs; + private final Multimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> tripsSeineByProgram; + private final Multimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> tripsLonglineByProgram; + + public NavigationResult(ImmutableSet<ReferentialReference<ProgramDto>> programs, Multimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> tripsSeineByProgram, Multimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> tripsLonglineByProgram) { + this.programs = programs; + this.tripsSeineByProgram = tripsSeineByProgram; + this.tripsLonglineByProgram = tripsLonglineByProgram; + } + + public ImmutableSet<ReferentialReference<ProgramDto>> getPrograms() { + return programs; + } + + public Multimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> getTripsSeineByProgram() { + return tripsSeineByProgram; + } + + public Multimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> getTripsLonglineByProgram() { + return tripsLonglineByProgram; + } +} diff --git a/services/src/main/java/fr/ird/observe/services/service/data/NavigationService.java b/services/src/main/java/fr/ird/observe/services/service/data/NavigationService.java new file mode 100644 index 0000000..58d4eb6 --- /dev/null +++ b/services/src/main/java/fr/ird/observe/services/service/data/NavigationService.java @@ -0,0 +1,15 @@ +package fr.ird.observe.services.service.data; + +import fr.ird.observe.services.ObserveService; + +/** + * Created on 22/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public interface NavigationService extends ObserveService { + + NavigationResult getNavigation(NavigationRequest request); + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit a2957b3603984c17b97140fbbc86a5d87a8e4428 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:13:15 2016 +0100 refs #8429 Ajout méthodes utiles --- .../java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java | 4 ++++ .../main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java index 6359eca..47e4179 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java @@ -7,4 +7,8 @@ public class TripLonglineHelper extends GeneratedTripLonglineHelper { public static int getActivityCount(DataReference<TripLonglineDto> data) { return (int) data.getPropertyValue(TripLonglineDto.PROPERTY_ACTIVITY_COUNT); } + + public static String getProgramId(DataReference<TripLonglineDto> data) { + return (String) data.getPropertyValue(TripLonglineDto.PROPERTY_PROGRAM + "Id"); + } } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java index 6e18cd9..ef6753d 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java @@ -6,4 +6,8 @@ public class TripSeineHelper extends GeneratedTripSeineHelper { public static int getRouteCount(DataReference<TripSeineDto> data) { return (int) data.getPropertyValue(TripSeineDto.PROPERTY_ROUTE_COUNT); } + + public static String getProgramId(DataReference<TripSeineDto> data) { + return (String) data.getPropertyValue(TripSeineDto.PROPERTY_PROGRAM+"Id"); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 946c8f9015acc618731f5857b9ca68df48c0dba8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:14:26 2016 +0100 refs #8429 revue des nœud de chargement et utilisation de NavigationService --- .../swing/ui/tree/navigation/NavigationTree.java | 91 ++++-------- .../navigation/NavigationTreeCellRenderer.java | 165 ++------------------- .../ui/tree/navigation/NavigationTreeHeader.jaxx | 45 ++++++ .../ui/tree/navigation/NavigationTreeHeader.jcss | 53 +++++++ .../navigation/NavigationTreeHeaderHandler.java | 106 +++++++++++++ .../ui/tree/navigation/NavigationTreeModel.java | 87 ++++++++--- .../nodes/ReferenceNavigationTreeNodeSupport.java | 2 +- .../navigation/nodes/RootNavigationTreeNode.java | 45 +----- .../ActivitiesLonglineNavigationTreeNode.java | 13 ++ .../ActivityLonglineNavigationTreeNode.java | 35 +++-- .../GearUseFeaturesLonglineNavigationTreeNode.java | 6 + .../ProgramLonglineNavigationTreeNode.java | 23 +-- .../longline/TripLonglineNavigationTreeNode.java | 16 +- .../seine/ActivitiesSeineNavigationTreeNode.java | 18 ++- .../seine/ActivitySeineNavigationTreeNode.java | 30 ++-- .../GearUseFeaturesSeineNavigationTreeNode.java | 7 + .../seine/ProgramSeineNavigationTreeNode.java | 24 +-- .../nodes/seine/RouteSeineNavigationTreeNode.java | 10 +- .../nodes/seine/RoutesSeineNavigationTreeNode.java | 20 ++- .../nodes/seine/TripSeineNavigationTreeNode.java | 16 +- .../ui/tree/selection/SelectionTreeModel.java | 66 ++++++++- .../selection/nodes/ProgramSelectionTreeNode.java | 5 +- .../selection/nodes/RootSelectionTreeNode.java | 54 ------- 23 files changed, 536 insertions(+), 401 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java index aacee98..84e0c71 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java @@ -1,6 +1,5 @@ package fr.ird.observe.application.swing.ui.tree.navigation; -import com.google.common.collect.Lists; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; @@ -40,8 +39,8 @@ import javax.swing.SwingUtilities; import javax.swing.event.TreeExpansionEvent; import javax.swing.event.TreeWillExpandListener; import javax.swing.tree.ExpandVetoException; -import javax.swing.tree.TreeCellRenderer; import javax.swing.tree.TreePath; +import javax.swing.tree.TreeSelectionModel; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -61,7 +60,6 @@ public class NavigationTree extends JXTree { /** Logger */ private static final Log log = LogFactory.getLog(NavigationTree.class); - public static void sortPrograms(List<ReferentialReference<ProgramDto>> data) { ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, data); } @@ -70,6 +68,8 @@ public class NavigationTree extends JXTree { super(new NavigationTreeModel()); setLargeModel(true); setRootVisible(false); + getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + addTreeWillExpandListener(new TreeWillExpandListener() { @Override @@ -77,7 +77,7 @@ public class NavigationTree extends JXTree { if (!(getModel() instanceof NavigationTreeModel)) { return; } - NavigationTreeModel model = getNavigationTreeModel(); + NavigationTreeModel model = getTreeModel(); NavigationTreeNodeSupport node = (NavigationTreeNodeSupport) event.getPath().getLastPathComponent(); model.open(node); @@ -113,7 +113,7 @@ public class NavigationTree extends JXTree { return; } TreePath path = e.getPath(); - getNavigationTreeModel().open((NavigationTreeNodeSupport) path.getLastPathComponent()); + getTreeModel().open((NavigationTreeNodeSupport) path.getLastPathComponent()); }); NavigationTreeCellRenderer renderer = new NavigationTreeCellRenderer(); @@ -121,7 +121,7 @@ public class NavigationTree extends JXTree { } - public NavigationTreeModel getNavigationTreeModel() { + public NavigationTreeModel getTreeModel() { return (NavigationTreeModel) getModel(); } @@ -157,8 +157,8 @@ public class NavigationTree extends JXTree { if (log.isDebugEnabled()) { log.debug("try to select node from ids " + Arrays.toString(path)); } - RootNavigationTreeNode root = this.getNavigationTreeModel().getRoot(); - NavigationTreeNodeSupport node = NavigationTreeNodeSupport.findNode(getNavigationTreeModel(), root, path); + RootNavigationTreeNode root = this.getTreeModel().getRoot(); + NavigationTreeNodeSupport node = NavigationTreeNodeSupport.findNode(getTreeModel(), root, path); if (log.isDebugEnabled()) { log.debug("selected node [" + node + "]"); } @@ -177,42 +177,26 @@ public class NavigationTree extends JXTree { if (log.isDebugEnabled()) { log.debug("try to select node [" + node + "]"); } - TreePath path = new TreePath(getNavigationTreeModel().getPathToRoot(node)); + TreePath path = new TreePath(getTreeModel().getPathToRoot(node)); - addSelectionPath(path); + setSelectionPath(path); scrollPathToVisible(path); } public NavigationTreeNodeSupport getChild(NavigationTreeNodeSupport node, String id) { - return node.findNodeById(getNavigationTreeModel(), id); + return node.findNodeById(getTreeModel(), id); } - public NavigationTreeNodeSupport removeNode(NavigationTreeNodeSupport node) { - getNavigationTreeModel().removeNodeFromParent(node); - return null; + public void removeNode(NavigationTreeNodeSupport node) { + getTreeModel().removeNodeFromParent(node); } public void insertNode(NavigationTreeNodeSupport parentNode, NavigationTreeNodeSupport node, int position) { - getNavigationTreeModel().insertNodeInto(node, parentNode, position); + getTreeModel().insertNodeInto(node, parentNode, position); } public void clearModel() { - - NavigationTreeModel treeModel = new NavigationTreeModel(); - treeModel.setLoadLongline(false); - treeModel.setLoadReferential(false); - treeModel.setLoadSeine(false); - treeModel.setRoot(new RootNavigationTreeNode()); - setModel(treeModel); - } - - public void createModel() { - NavigationTreeModel treeModel = new NavigationTreeModel(); - treeModel.setLoadLongline(true); - treeModel.setLoadReferential(true); - treeModel.setLoadSeine(true); - treeModel.setRoot(new RootNavigationTreeNode()); - setModel(treeModel); + getTreeModel().setRoot(new RootNavigationTreeNode()); } /** @@ -253,7 +237,7 @@ public class NavigationTree extends JXTree { // on selectionne le premier noeud de $root - NavigationTreeNodeSupport node = getNavigationTreeModel().getRoot(); + NavigationTreeNodeSupport node = getTreeModel().getRoot(); if (!node.isLeaf()) { node = (NavigationTreeNodeSupport) node.getFirstChild(); } @@ -291,7 +275,7 @@ public class NavigationTree extends JXTree { // 3. Let's re-generate node's children by populating the node : this will call the child loaders. node.reload(); - node.populateChilds(getNavigationTreeModel()); + node.populateChilds(getTreeModel()); if (expandNode) { @@ -302,17 +286,17 @@ public class NavigationTree extends JXTree { } } - public void reloadNode(NavigationTreeNodeSupport node, boolean deep) { + public void reloadNode(NavigationTreeNodeSupport<?> node, boolean deep) { if (log.isDebugEnabled()) { log.debug("Will refresh (deep ? " + deep + ") node " + node); } - getNavigationTreeModel().nodeChanged(node); + getTreeModel().nodeChanged(node); if (deep) { // repaint childs nodes - Enumeration<NavigationTreeNodeSupport> e = node.children(); + Enumeration<NavigationTreeNodeSupport<?>> e = node.children(); while (e.hasMoreElements()) { - NavigationTreeNodeSupport child = e.nextElement(); + NavigationTreeNodeSupport<?> child = e.nextElement(); reloadNode(child, true); } } @@ -487,7 +471,7 @@ public class NavigationTree extends JXTree { ObserveSwingDataSource mainDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); Set<ReferentialReference<ProgramDto>> programs = mainDataSource.getReferentialReferences(ProgramDto.class); - List<ReferentialReference<ProgramDto>> data = Lists.newArrayList(programs); + List<ReferentialReference<ProgramDto>> data = new ArrayList<>(programs); int newIndex = 0; if (CollectionUtils.isNotEmpty(data)) { sortPrograms(data); @@ -496,9 +480,9 @@ public class NavigationTree extends JXTree { NavigationTreeNodeSupport result; if (ProgramHelper.isProgramLongline(bean)) { - result = new ProgramLonglineNavigationTreeNode(bean); + result = new ProgramLonglineNavigationTreeNode(bean, Collections.emptyList()); } else { - result = new ProgramSeineNavigationTreeNode(bean); + result = new ProgramSeineNavigationTreeNode(bean, Collections.emptyList()); } insertNode(getRootNode(), result, newIndex); return result; @@ -520,22 +504,8 @@ public class NavigationTree extends JXTree { // refreshNode(result, false); } - public void removeTrip(ReferentialReference<ProgramDto> program, DataReference trip) { - - RootNavigationTreeNode rootNode = getRootNode(); - NavigationTreeNodeSupport programNode = getChild(rootNode, program.getId()); - Objects.requireNonNull(programNode, "Could not find program node with id: " + program); - NavigationTreeNodeSupport tripNode = getChild(programNode, trip.getId()); - Objects.requireNonNull(tripNode, "Could not find program node with id: " + trip); - removeNode(tripNode); - - if (programNode.isLeaf()) { - removeProgram(program.getId()); - } - } - public RootNavigationTreeNode getRootNode() { - return getNavigationTreeModel().getRoot(); + return getTreeModel().getRoot(); } /** @@ -548,16 +518,7 @@ public class NavigationTree extends JXTree { public void moveNode(NavigationTreeNodeSupport parentNode, NavigationTreeNodeSupport node, int position) { parentNode.remove(node); parentNode.insert(node, position); - getNavigationTreeModel().nodeStructureChanged(parentNode); + getTreeModel().nodeStructureChanged(parentNode); } - public NavigationTreeCellRenderer getNavigationCellRenderer() { - TreeCellRenderer render0 = getCellRenderer(); - if (render0 instanceof JXTree.DelegatingRenderer) { - JXTree.DelegatingRenderer render01 = (JXTree.DelegatingRenderer) render0; - return (NavigationTreeCellRenderer) render01.getDelegateRenderer(); - } else { - return (NavigationTreeCellRenderer) render0; - } - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java index ff4e2a5..5594fd2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeCellRenderer.java @@ -1,13 +1,11 @@ package fr.ird.observe.application.swing.ui.tree.navigation; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.Icon; -import javax.swing.JComponent; +import javax.swing.JLabel; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; import java.awt.Color; @@ -24,141 +22,19 @@ public class NavigationTreeCellRenderer extends DefaultTreeCellRenderer { /** Logger */ private static final Log log = LogFactory.getLog(NavigationTreeCellRenderer.class); - /** service de décoration */ - private transient DecoratorService decoratorService; - - public DecoratorService getDecoratorService() { - if (decoratorService == null) { - - // on récupère le service commun - decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); - } - return decoratorService; - } - - @Override - public Color getBackgroundSelectionColor() { - return null; - } - - @Override - public Color getBackgroundNonSelectionColor() { - // Fixes http://forge.codelutin.com/issues/830 for jdk 7 - return Color.WHITE; - } - - // protected void setDefaultIcons(Icon icon) { -// if (icon == null) { -// // the icon is not customized for this node -// setOpenIcon(getDefaultOpenIcon()); -// setClosedIcon(getDefaultClosedIcon()); -// setLeafIcon(getDefaultLeafIcon()); -// } else { -// // replace all possible icons for this node -// setOpenIcon(icon); -// setClosedIcon(icon); -// setLeafIcon(icon); -// } +// @Override +// public Color getBackgroundSelectionColor() { +// return null; // } - -// protected String computeNodeText(NavigationTreeNodeSupport node) { -// -// if (node instanceof StringNavigationTreeNodeSupport) { -// return t(((StringNavigationTreeNodeSupport) node).getData()); -// } -// -// Class dataType = node.getDataType(); -// -// if (node instanceof ReferenceNavigationTreeNodeSupport && node.getId() == null) { -// // nœud en création -// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType) + ".unsaved"); -// } -// -// if (node instanceof ClassNavigationTreeNode) { -// return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(dataType)); -// } -// -// if (node.isReferentielNode()) { -// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType)); -// } -// -// // noeud de donnée -// -// String id = node.getId(); -// -// if (id == null) { -// -// // noeud d'un objet en cours de création -// -// //FIXME -// return t(""); -// } -// -// -// if (node instanceof SetLonglineNavigationTreeNode) { -// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType)); -// } -// -// if (node instanceof SetSeineNavigationTreeNode) { -// return t(ObserveI18nDecoratorHelper.getTypeI18nKey(dataType)); -// } -// -// if (node instanceof ReferenceNavigationTreeNodeSupport && DataDto.class.isAssignableFrom(dataType)) { -// ReferenceNavigationTreeNodeSupport<?, ?> entityNodeSupport = (ReferenceNavigationTreeNodeSupport) node; -// -// AbstractReference<?> data = entityNodeSupport.getData(); -// Objects.requireNonNull(data, "L'entité doit être chargée dans le noeud: " + node); -// -// Decorator<?> decorator = getDecoratorService().getDataReferenceDecorator(dataType); -// -// String result = decorator.toString(data); -// if (node instanceof TripSeineNavigationTreeNode) { -// result += " (" + TripSeineHelper.getRouteCount(((TripSeineNavigationTreeNode) node).getData()) + ")"; -// } -// return result; -// } -// -// if (node instanceof ReferenceNavigationTreeNodeSupport) { -// ReferenceNavigationTreeNodeSupport<?, ?> entityNodeSupport = (ReferenceNavigationTreeNodeSupport) node; -// -// AbstractReference<?> data = entityNodeSupport.getData(); -// Objects.requireNonNull(data, "L'entité doit être chargée dans le noeud: " + node); -// -// Decorator<?> decorator = getDecoratorService().getReferentialReferenceDecorator(dataType); -// -// String result = decorator.toString(data); -// if (node instanceof ProgramSeineNavigationTreeNode || node instanceof ProgramLonglineNavigationTreeNode) { -// ReferentialReference<ProgramDto> nodeData = (ReferentialReference<ProgramDto>) node.getData(); -// result += " (" + ProgramHelper.getTripCount(nodeData) + ")"; -// } -// return result; -// } -// -// throw new IllegalStateException("Don't know how to render node: " + node); // +// @Override +// public Color getBackgroundNonSelectionColor() { +// // Fixes http://forge.codelutin.com/issues/830 for jdk 7 +// return Color.WHITE; // } - /** - * @param value the value which should be a node - * @return the cast {@link NavigationTreeNodeSupport}, or {@code null} if - * value is null. - */ - public static NavigationTreeNodeSupport getNode(Object value) { - NavigationTreeNodeSupport node = null; - if (value instanceof NavigationTreeNodeSupport) { - node = (NavigationTreeNodeSupport) value; - } - return node; - } - @Override - public Component getTreeCellRendererComponent(JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) { + public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { if (!(tree.getModel() instanceof NavigationTreeModel)) { Component rendererComponent; @@ -167,10 +43,9 @@ public class NavigationTreeCellRenderer extends DefaultTreeCellRenderer { } // get the icon to set for the node - NavigationTreeNodeSupport node = getNode(value); + NavigationTreeNodeSupport node = (NavigationTreeNodeSupport) value; Icon icon = node.getIcon(""); - setDefaultIcons(icon); if (!sel) { @@ -182,27 +57,13 @@ public class NavigationTreeCellRenderer extends DefaultTreeCellRenderer { } String text = node.getText(); - if (log.isTraceEnabled()) { log.trace("===" + text + " for node " + node.getDataType() + " - " + node.getId()); } - Component comp = super.getTreeCellRendererComponent(tree, text, sel, expanded, leaf, row, hasFocus); - ((JComponent) comp).setToolTipText(text); + JLabel comp = (JLabel) super.getTreeCellRendererComponent(tree, text, sel, expanded, leaf, row, hasFocus); + comp.setToolTipText(text); + comp.setIcon(icon); return comp; } - protected void setDefaultIcons(Icon icon) { - if (icon == null) { - // the icon is not customized for this node - setOpenIcon(getDefaultOpenIcon()); - setClosedIcon(getDefaultClosedIcon()); - setLeafIcon(getDefaultLeafIcon()); - } else { - // replace all possible icons for this node - setOpenIcon(icon); - setClosedIcon(icon); - setLeafIcon(icon); - } - } - } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jaxx new file mode 100644 index 0000000..7bf4717 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jaxx @@ -0,0 +1,45 @@ +<!-- + #%L + ObServe :: Application Swing + %% + Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<JPanel layout='{new BorderLayout()}'> + + <JToolBar constraints='BorderLayout.WEST' layout="{new GridLayout(1,3)}"> + <JToggleButton id='showSeine' onActionPerformed="handler.tryToUpdateNavigationTree()"/> + <JToggleButton id='showLongline' onActionPerformed="handler.tryToUpdateNavigationTree()"/> + <JToggleButton id='showReferential' onActionPerformed="handler.tryToUpdateNavigationTree()"/> + </JToolBar> + + <!-- label --> + <String id='labelText' javaBean='null'/> + + <!-- tree --> + <NavigationTree id='tree' javaBean='new NavigationTree()'/> + + + <JLabel id="label" constraints='BorderLayout.CENTER'/> + + <JToolBar id='toolbar' constraints='BorderLayout.EAST'> + + <!-- les boutons pour grouper/déplier tout l'arbre --> + <JButton id='colapseAll' onActionPerformed='handler.collapseAll()'/> + <JButton id='expandAll' onActionPerformed='handler.expandAll()'/> + + </JToolBar> + +</JPanel> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jcss new file mode 100644 index 0000000..71920e5 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeader.jcss @@ -0,0 +1,53 @@ +/* + * #%L + * ObServe :: Swing + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +#showSeine { + selected: {tree.getTreeModel().isLoadSeine()}; + text:"observe.enum.fr.ird.observe.services.dto.ObserveModelType.PS"; +} +#showLongline { + selected: {tree.getTreeModel().isLoadLongline()}; + text:"observe.enum.fr.ird.observe.services.dto.ObserveModelType.LL"; +} +#showReferential{ + selected: {tree.getTreeModel().isLoadReferential()}; + text:"observe.enum.fr.ird.observe.services.dto.ObserveModelType.REF"; +} + +#label { + text:{getLabelText()}; +} + +JButton { + focusable:false; + focusPainted:false; +} + +#colapseAll { + actionIcon:collapse; + toolTipText:"observe.tree.action.collapseAll.tip"; +} + +#expandAll { + actionIcon:expand; + toolTipText:"observe.tree.action.expandAll.tip"; +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeaderHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeaderHandler.java new file mode 100644 index 0000000..02c63c2 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeHeaderHandler.java @@ -0,0 +1,106 @@ +package fr.ird.observe.application.swing.ui.tree.navigation; + +/* + * #%L + * ObServe :: Application Swing + * %% + * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import jaxx.runtime.spi.UIHandler; + +/** + * @author Samuel Maisonneuve- maisonneuve@codelutin.com + */ +public class NavigationTreeHeaderHandler implements UIHandler<NavigationTreeHeader> { + + private NavigationTreeHeader ui; + + public NavigationTreeHeader getUi() { + return ui; + } + + private NavigationTree getTree() { + return getUi().getTree(); + } + + @Override + public void beforeInit(NavigationTreeHeader navigationTreeHeader) { + this.ui = navigationTreeHeader; + } + + @Override + public void afterInit(NavigationTreeHeader navigationTreeHeader) { + } + + public void tryToUpdateNavigationTree() { + + boolean canContinue = ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI(); + + if (!canContinue) { + return; + } + + NavigationTreeNodeSupport<?> selectedNode = getTree().getSelectedNode(); + + boolean showSeine = ui.getShowSeine().isSelected(); + boolean showLongline = ui.getShowLongline().isSelected(); + boolean showReferential = ui.getShowReferential().isSelected(); + + NavigationTreeModel treeModel = getTree().getTreeModel(); + treeModel.setLoadSeine(showSeine); + treeModel.setLoadLongline(showLongline); + treeModel.setLoadReferential(showReferential); + + treeModel.populate(); + + //FIXME repositionner le nœud sélectionné + if (!treeModel.getRoot().isLeaf()) { + getTree().setSelectionRow(0); + } + } + + public void collapseAll() { +// // Let's unselect the nodes before collapsing them +// unselectAll(); + + NavigationTree tree = getTree(); + tree.collapseAll(); + } + + public void expandAll() { + NavigationTree tree = getTree(); + tree.expandAll(); + ; + } + +// public void unselectAll() { +// JTree tree = getTree(); +// TreeSelectionModel selectionModel = tree.getSelectionModel(); +// +// for (int i = 0, l = tree.getRowCount(); i < l; i++) { +// +// TreePath path = tree.getPathForRow(i); +// if (selectionModel.isPathSelected(path)) { +// tree.setSelectionPath(path); +// } +// } +// } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java index fc81607..c7a76ee 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java @@ -1,9 +1,30 @@ package fr.ird.observe.application.swing.ui.tree.navigation; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.RootNavigationTreeNode; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.RootNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.referential.ReferentialsNavigationTreeNode; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ProgramHelper; +import fr.ird.observe.services.dto.referential.ReferentialHelper; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.data.NavigationRequest; +import fr.ird.observe.services.service.data.NavigationResult; +import fr.ird.observe.services.service.data.NavigationService; import javax.swing.tree.DefaultTreeModel; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import static org.nuiton.i18n.I18n.n; /** * Created on 14/11/16. @@ -16,12 +37,57 @@ public class NavigationTreeModel extends DefaultTreeModel { private boolean loadSeine = true; private boolean loadLongline = true; private boolean loadReferential = true; - private boolean useSelectionModel; public NavigationTreeModel() { super(new RootNavigationTreeNode()); } + public void populate() { + + NavigationService navigationService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newNavigationService(); + + NavigationRequest navigationRequest = toNavigationRequest(); + NavigationResult navigationResult = navigationService.getNavigation(navigationRequest); + + List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(navigationResult.getPrograms()); + NavigationTree.sortPrograms(programs); + + RootNavigationTreeNode root = new RootNavigationTreeNode(); + + Map<ReferentialReference<ProgramDto>, Collection<DataReference<TripLonglineDto>>> tripsLonglineByProgram = navigationResult.getTripsLonglineByProgram().asMap(); + Map<ReferentialReference<ProgramDto>, Collection<DataReference<TripSeineDto>>> tripsSeineByProgram = navigationResult.getTripsSeineByProgram().asMap(); + for (ReferentialReference<ProgramDto> program : programs) { + + if (ProgramHelper.isProgramLongline(program)) { + + Collection<DataReference<TripLonglineDto>> references = tripsLonglineByProgram.getOrDefault(program, Collections.emptyList()); + ProgramLonglineNavigationTreeNode programNode = new ProgramLonglineNavigationTreeNode(program, references); + root.add(programNode); + } else if (ProgramHelper.isProgramSeine(program)) { + + Collection<DataReference<TripSeineDto>> references = tripsSeineByProgram.getOrDefault(program, Collections.emptyList()); + ProgramSeineNavigationTreeNode programNode = new ProgramSeineNavigationTreeNode(program, references); + root.add(programNode); + } + + } + + if (isLoadReferential()) { + root.add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); + root.add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); + root.add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); + } + + setRoot(root); + } + + private NavigationRequest toNavigationRequest() { + NavigationRequest navigationRequest = new NavigationRequest(); + navigationRequest.setLoadLongline(isLoadLongline()); + navigationRequest.setLoadSeine(isLoadSeine()); + return navigationRequest; + } + @Override public RootNavigationTreeNode getRoot() { return (RootNavigationTreeNode) super.getRoot(); @@ -29,24 +95,14 @@ public class NavigationTreeModel extends DefaultTreeModel { public void setLoadSeine(boolean loadSeine) { this.loadSeine = loadSeine; - getRoot().populateChilds(this); - nodeStructureChanged(getRoot()); } public void setLoadLongline(boolean loadLongline) { this.loadLongline = loadLongline; - getRoot().populateChilds(this); - nodeStructureChanged(getRoot()); } public void setLoadReferential(boolean loadReferential) { this.loadReferential = loadReferential; - getRoot().populateChilds(this); - nodeStructureChanged(getRoot()); - } - - public void setUseSelectionModel(boolean useSelectionModel) { - this.useSelectionModel = useSelectionModel; } public boolean isLoadSeine() { @@ -61,10 +117,6 @@ public class NavigationTreeModel extends DefaultTreeModel { return loadReferential; } - public boolean isUseSelectionModel() { - return useSelectionModel; - } - public <N extends NavigationTreeNodeSupport> void reload(N node) { node.reload(); super.reload(node); @@ -77,7 +129,4 @@ public class NavigationTreeModel extends DefaultTreeModel { } } - public void openRoot() { - open(getRoot()); - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java index 3bb37c4..16b2761 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/ReferenceNavigationTreeNodeSupport.java @@ -28,7 +28,7 @@ public abstract class ReferenceNavigationTreeNodeSupport<D extends IdDto, O exte } public boolean isOpen() { - return ObserveSwingApplicationContext.get().getOpenDataManager().isOpen(getId()); + return getId() == null || ObserveSwingApplicationContext.get().getOpenDataManager().isOpen(getId()); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java index 09e76b6..523d7e1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/RootNavigationTreeNode.java @@ -1,22 +1,12 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.content.ContentUI; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.referential.ReferentialsNavigationTreeNode; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramHelper; -import fr.ird.observe.services.dto.referential.ReferentialHelper; import fr.ird.observe.services.dto.referential.ReferentialReference; +import org.apache.commons.collections4.EnumerationUtils; -import java.util.ArrayList; -import java.util.List; - -import static org.nuiton.i18n.I18n.n; +import java.util.Iterator; /** * Created on 14/11/16. @@ -24,10 +14,11 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class RootNavigationTreeNode extends StringNavigationTreeNodeSupport { +public class RootNavigationTreeNode extends StringNavigationTreeNodeSupport implements Iterable<ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>>> { public RootNavigationTreeNode() { super("<ROOT>", true); + setLoaded(true); } @Override @@ -42,30 +33,10 @@ public class RootNavigationTreeNode extends StringNavigationTreeNodeSupport { @Override protected void populateChilds0(NavigationTreeModel treeModel) { - - removeAllChildren(); - - ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); - List<ReferentialReference<ProgramDto>> data = new ArrayList<>(source.getReferentialReferences(ProgramDto.class)); - NavigationTree.sortPrograms(data); - - if (treeModel.isLoadLongline()) { - data.stream().filter(ProgramHelper::isProgramLongline).forEach(reference -> { - add(new ProgramLonglineNavigationTreeNode(reference)); - }); - } - if (treeModel.isLoadSeine()) { - data.stream().filter(ProgramHelper::isProgramSeine).forEach(reference -> { - add(new ProgramSeineNavigationTreeNode(reference)); - }); - } - - if (treeModel.isLoadReferential()) { - add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); - add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); - add(ReferentialsNavigationTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); - } - } + @Override + public Iterator<ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>>> iterator() { + return (Iterator) EnumerationUtils.toList(children()).stream().filter(c -> c instanceof ReferenceNavigationTreeNodeSupport).iterator(); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java index 57f9d6b..b109059 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivitiesLonglineNavigationTreeNode.java @@ -1,5 +1,6 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; +import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.content.list.impl.longline.ActivityLonglinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; @@ -8,6 +9,8 @@ import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.service.data.longline.ActivityLonglineService; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * @@ -26,11 +29,21 @@ public class ActivitiesLonglineNavigationTreeNode extends ClassNavigationTreeNod } @Override + public String getIconPath() { + return "navigation." + getData().getName(); + } + + @Override public Class<ActivityLonglinesUI> getContentClass() { return ActivityLonglinesUI.class; } @Override + public String getText() { + return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(getData())); + } + + @Override protected void populateChilds0(NavigationTreeModel treeModel) { removeAllChildren(); String id = getId(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java index 41e0f61..ab55e27 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java @@ -8,6 +8,8 @@ import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * @@ -31,6 +33,19 @@ public class ActivityLonglineNavigationTreeNode extends ReferenceNavigationTreeN public ActivityLonglineNavigationTreeNode(DataReference<ActivityLonglineDto> data) { super(data, true); + DataReference<SetLonglineDto> setLonglineRef = (DataReference) data.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); + if (setLonglineRef != null) { + add(new SetLonglineNavigationTreeNode(setLonglineRef)); + } + + String vesselActivityId = (String) data.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); + + if (ENCOUNTERS_ID.contains(vesselActivityId)) { + add(new EncounterLonglineNavigationTreeNode()); + } + if (SENSOR_USED_ID.contains(vesselActivityId)) { + add(new SensorUsedLonglineNavigationTreeNode()); + } } @Override @@ -39,26 +54,16 @@ public class ActivityLonglineNavigationTreeNode extends ReferenceNavigationTreeN } @Override + public String getText() { + return getId() == null ? t("observe.type.activityLongline.unsaved") : super.getText(); + } + + @Override public Class<ActivityLonglineUI> getContentClass() { return ActivityLonglineUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - DataReference<ActivityLonglineDto> data = getData(); - DataReference<SetLonglineDto> setLonglineRef = (DataReference) data.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); - if (setLonglineRef != null) { - add(new SetLonglineNavigationTreeNode(setLonglineRef)); - } - - String vesselActivityId = (String) data.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); - - if (ENCOUNTERS_ID.contains(vesselActivityId)) { - add(new EncounterLonglineNavigationTreeNode()); - } - if (SENSOR_USED_ID.contains(vesselActivityId)) { - add(new SensorUsedLonglineNavigationTreeNode()); - } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java index 34fb1a6..99bdffb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java @@ -2,6 +2,7 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; import fr.ird.observe.application.swing.ui.content.table.impl.longline.GearUseFeaturesLonglineUI; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; /** @@ -17,6 +18,11 @@ public class GearUseFeaturesLonglineNavigationTreeNode extends ClassNavigationTr } @Override + public String getIconPath() { + return "navigation." + ActivityLonglineDto.class.getName(); + } + + @Override public Class<GearUseFeaturesLonglineUI> getContentClass() { return GearUseFeaturesLonglineUI.class; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java index 1aba427..6402067 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ProgramLonglineNavigationTreeNode.java @@ -1,15 +1,14 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.content.list.impl.longline.TripLonglinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.service.data.longline.TripLonglineService; + +import java.util.Collection; /** * Created on 14/11/16. @@ -19,8 +18,12 @@ import fr.ird.observe.services.service.data.longline.TripLonglineService; */ public class ProgramLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>> { - public ProgramLonglineNavigationTreeNode(ReferentialReference<ProgramDto> data) { + public ProgramLonglineNavigationTreeNode(ReferentialReference<ProgramDto> data, Collection<DataReference<TripLonglineDto>> trips) { super(data, true); + for (DataReference<TripLonglineDto> trip : trips) { + add(new TripLonglineNavigationTreeNode(trip)); + } + setLoaded(true); } @Override @@ -29,19 +32,17 @@ public class ProgramLonglineNavigationTreeNode extends ReferenceNavigationTreeNo } @Override + public String getText() { + return super.getText() + " (" + getChildCount() + ")"; + } + + @Override public Class<TripLonglinesUI> getContentClass() { return TripLonglinesUI.class; } @Override protected void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); - DataReferenceSet<TripLonglineDto> referenceSet = tripLonglineService.getTripLonglineByProgram(getData().getId()); - for (DataReference<TripLonglineDto> reference : referenceSet.getReferences()) { - TripLonglineNavigationTreeNode childNode = new TripLonglineNavigationTreeNode(reference); - add(childNode); - } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java index 1b8e837..6e57774 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java @@ -5,6 +5,9 @@ import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineHelper; + +import static org.nuiton.i18n.I18n.t; /** * Created on 14/11/16. @@ -16,6 +19,8 @@ public class TripLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeS public TripLonglineNavigationTreeNode(DataReference<TripLonglineDto> data) { super(data, data.getId() != null); + add(new GearUseFeaturesLonglineNavigationTreeNode()); + add(new ActivitiesLonglineNavigationTreeNode()); } @Override @@ -24,16 +29,17 @@ public class TripLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeS } @Override + public String getText() { + return getId() == null ? t("observe.type.tripLongline.unsaved") : (super.getText() + " (" + TripLonglineHelper.getActivityCount(getData()) + ")"); + } + + @Override public Class<TripLonglineUI> getContentClass() { return TripLonglineUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - if (!treeModel.isUseSelectionModel()) { - add(new GearUseFeaturesLonglineNavigationTreeNode()); - add(new ActivitiesLonglineNavigationTreeNode()); - } + // rien à ajouter } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java index 1f111bb..a9bf26e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java @@ -3,22 +3,31 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.service.data.seine.ActivitySeineService; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class ActivitiesSeineNavigationTreeNode extends StringNavigationTreeNodeSupport { +public class ActivitiesSeineNavigationTreeNode extends ClassNavigationTreeNode<ActivitySeineDto> { public ActivitiesSeineNavigationTreeNode() { - super(ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class), true); + super(ActivitySeineDto.class, true); + } + + @Override + public String getIconPath() { + return "navigation." + getData().getName(); } @Override @@ -32,6 +41,11 @@ public class ActivitiesSeineNavigationTreeNode extends StringNavigationTreeNodeS } @Override + public String getText() { + return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(getData())); + } + + @Override public void reload() { } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java index 7a64926..8be338d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java @@ -10,6 +10,8 @@ import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.service.data.seine.FloatingObjectService; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * @@ -20,6 +22,16 @@ public class ActivitySeineNavigationTreeNode extends ReferenceNavigationTreeNode public ActivitySeineNavigationTreeNode(DataReference<ActivitySeineDto> data) { super(data, true); + DataReference<SetSeineDto> set = (DataReference<SetSeineDto>) data.getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); + if (set != null) { + add(new SetSeineNavigationTreeNode(set)); + } + + FloatingObjectService service = getMainDataSourceServicesProvider().newFloatingObjectService(); + DataReferenceSet<FloatingObjectDto> referenceSet = service.getFloatingObjectByActivitySeine(getId()); + for (DataReference<FloatingObjectDto> reference : referenceSet.getReferences()) { + add(new FloatingObjectSeineNavigationTreeNode(reference)); + } } @Override @@ -27,24 +39,16 @@ public class ActivitySeineNavigationTreeNode extends ReferenceNavigationTreeNode } @Override + public String getText() { + return getId() == null ? t("observe.type.activitySeine.unsaved") : super.getText(); + } + + @Override public Class<ActivitySeineUI> getContentClass() { return ActivitySeineUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - - DataReference<SetSeineDto> set = (DataReference<SetSeineDto>) getData().getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); - if (set != null) { - add(new SetSeineNavigationTreeNode(set)); - } - - FloatingObjectService service = getMainDataSourceServicesProvider().newFloatingObjectService(); - DataReferenceSet<FloatingObjectDto> referenceSet = service.getFloatingObjectByActivitySeine(getId()); - for (DataReference<FloatingObjectDto> reference : referenceSet.getReferences()) { - add(new FloatingObjectSeineNavigationTreeNode(reference)); - } - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java index 55561f6..0384895 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java @@ -2,6 +2,8 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; import fr.ird.observe.application.swing.ui.content.table.impl.seine.GearUseFeaturesSeineUI; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; /** @@ -17,6 +19,11 @@ public class GearUseFeaturesSeineNavigationTreeNode extends ClassNavigationTreeN } @Override + public String getIconPath() { + return "navigation." + ActivitySeineDto.class.getName(); + } + + @Override public Class<GearUseFeaturesSeineUI> getContentClass() { return GearUseFeaturesSeineUI.class; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java index 04a90d5..1a68200 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ProgramSeineNavigationTreeNode.java @@ -1,15 +1,14 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.content.list.impl.seine.TripSeinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.seine.TripSeineService; + +import java.util.Collection; /** * Created on 14/11/16. @@ -19,8 +18,12 @@ import fr.ird.observe.services.service.data.seine.TripSeineService; */ public class ProgramSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>> { - public ProgramSeineNavigationTreeNode(ReferentialReference<ProgramDto> data) { + public ProgramSeineNavigationTreeNode(ReferentialReference<ProgramDto> data, Collection<DataReference<TripSeineDto>> trips) { super(data, true); + for (DataReference<TripSeineDto> trip : trips) { + add(new TripSeineNavigationTreeNode(trip)); + } + setLoaded(true); } @Override @@ -29,20 +32,17 @@ public class ProgramSeineNavigationTreeNode extends ReferenceNavigationTreeNodeS } @Override + public String getText() { + return super.getText() + " (" + getChildCount() + ")"; + } + + @Override public Class<TripSeinesUI> getContentClass() { return TripSeinesUI.class; } @Override protected void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - TripSeineService tripSeineService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); - DataReferenceSet<TripSeineDto> referenceSet = tripSeineService.getTripSeineByProgram(getData().getId()); - for (DataReference<TripSeineDto> reference : referenceSet.getReferences()) { - TripSeineNavigationTreeNode childNode = new TripSeineNavigationTreeNode(reference); - add(childNode); - } - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java index 5345d1d..44a6ec2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java @@ -6,6 +6,8 @@ import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNaviga import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.seine.RouteDto; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * @@ -16,6 +18,7 @@ public class RouteSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSup public RouteSeineNavigationTreeNode(DataReference<RouteDto> data) { super(data, true); + add(new ActivitiesSeineNavigationTreeNode()); } @Override @@ -24,13 +27,16 @@ public class RouteSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSup } @Override + public String getText() { + return getId() == null ? t("observe.type.route.unsaved") : super.getText(); + } + + @Override public Class<RouteUI> getContentClass() { return RouteUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - add(new ActivitiesSeineNavigationTreeNode()); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java index 8588633..8e06b24 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RoutesSeineNavigationTreeNode.java @@ -4,19 +4,25 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.content.list.impl.seine.RoutesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.service.data.seine.RouteService; +import static org.nuiton.i18n.I18n.t; + /** * Created on 14/11/16. * * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class RoutesSeineNavigationTreeNode extends StringNavigationTreeNodeSupport { +public class RoutesSeineNavigationTreeNode extends ClassNavigationTreeNode<RouteDto> { + + public RoutesSeineNavigationTreeNode() { + super(RouteDto.class, true); + } @Override public String getId() { @@ -28,8 +34,14 @@ public class RoutesSeineNavigationTreeNode extends StringNavigationTreeNodeSuppo return RoutesUI.class; } - public RoutesSeineNavigationTreeNode() { - super(ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class), true); + @Override + public String getIconPath() { + return "navigation." + getData().getName(); + } + + @Override + public String getText() { + return t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(getData())); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java index 5433643..ea0659e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java @@ -5,6 +5,9 @@ import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineHelper; + +import static org.nuiton.i18n.I18n.t; /** * Created on 14/11/16. @@ -16,6 +19,8 @@ public class TripSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupp public TripSeineNavigationTreeNode(DataReference<TripSeineDto> data) { super(data, true); + add(new GearUseFeaturesSeineNavigationTreeNode()); + add(new RoutesSeineNavigationTreeNode()); } @Override @@ -25,16 +30,17 @@ public class TripSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupp } @Override + public String getText() { + return getId() == null ? t("observe.type.tripSeine.unsaved") : (super.getText() + " (" + TripSeineHelper.getRouteCount(getData()) + ")"); + } + + @Override public Class<TripSeineUI> getContentClass() { return TripSeineUI.class; } @Override public void populateChilds0(NavigationTreeModel treeModel) { - removeAllChildren(); - if (!treeModel.isUseSelectionModel()) { - add(new GearUseFeaturesSeineNavigationTreeNode()); - add(new RoutesSeineNavigationTreeNode()); - } + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java index 19eea6a..bcbbbd3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java @@ -3,6 +3,7 @@ package fr.ird.observe.application.swing.ui.tree.selection; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.admin.export.TripEntry; import fr.ird.observe.application.swing.ui.tree.selection.nodes.ProgramSelectionTreeNode; @@ -12,21 +13,33 @@ import fr.ird.observe.application.swing.ui.tree.selection.nodes.RootSelectionTre import fr.ird.observe.application.swing.ui.tree.selection.nodes.SelectionTreeNodeSupport; import fr.ird.observe.application.swing.ui.tree.selection.nodes.TripSelectionTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ProgramHelper; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialHelper; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.data.NavigationRequest; +import fr.ird.observe.services.service.data.NavigationResult; +import fr.ird.observe.services.service.data.NavigationService; import org.jdesktop.swingx.treetable.DefaultTreeTableModel; import org.jdesktop.swingx.treetable.TreeTableNode; import javax.swing.tree.TreePath; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.Enumeration; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; +import static org.nuiton.i18n.I18n.n; + /** * Created on 14/11/16. * @@ -188,8 +201,50 @@ public class SelectionTreeModel extends DefaultTreeTableModel { } public void populate(ObserveSwingDataSource dataSource) { - RootSelectionTreeNode rootTreeNode = RootSelectionTreeNode.of(this, dataSource); - setRoot(rootTreeNode); + + NavigationService navigationService = dataSource.newNavigationService(); + + NavigationRequest navigationRequest = toNavigationRequest(); + NavigationResult navigationResult = navigationService.getNavigation(navigationRequest); + + List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(navigationResult.getPrograms()); + + ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, programs); + + boolean showEmptyTrips = isShowEmptyTrips(); + + RootSelectionTreeNode root = new RootSelectionTreeNode(); + + Map<ReferentialReference<ProgramDto>, Collection<DataReference<TripLonglineDto>>> tripsLonglineByProgram = navigationResult.getTripsLonglineByProgram().asMap(); + Map<ReferentialReference<ProgramDto>, Collection<DataReference<TripSeineDto>>> tripsSeineByProgram = navigationResult.getTripsSeineByProgram().asMap(); + for (ReferentialReference<ProgramDto> program : programs) { + + if (ProgramHelper.isProgramLongline(program)) { + + Collection<DataReference<TripLonglineDto>> references = tripsLonglineByProgram.getOrDefault(program, Collections.emptyList()); + if (showEmptyTrips || !references.isEmpty()) { + ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofLongline(program, references); + root.add(programNode); + } + } else if (ProgramHelper.isProgramSeine(program)) { + + Collection<DataReference<TripSeineDto>> references = tripsSeineByProgram.getOrDefault(program, Collections.emptyList()); + if (showEmptyTrips || !references.isEmpty()) { + ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofSeine(program, references); + root.add(programNode); + } + } + + } + + if (isLoadReferential()) { + root.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); + root.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); + root.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); + } + + setRoot(root); + } public ImmutableSet<Class<? extends ReferentialDto>> getSelectedReferentiel() { @@ -336,4 +391,11 @@ public class SelectionTreeModel extends DefaultTreeTableModel { return programNode.getSelected(); } + private NavigationRequest toNavigationRequest() { + NavigationRequest navigationRequest = new NavigationRequest(); + navigationRequest.setLoadLongline(isLoadLongline()); + navigationRequest.setLoadSeine(isLoadSeine()); + return navigationRequest; + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java index b469017..0e91577 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java @@ -10,6 +10,7 @@ import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; import org.apache.commons.collections4.EnumerationUtils; +import java.util.Collection; import java.util.Iterator; /** @@ -20,7 +21,7 @@ import java.util.Iterator; */ public class ProgramSelectionTreeNode extends ReferenceSelectionTreeNodeSupport<ProgramDto, ReferentialReference<ProgramDto>> implements Iterable<TripSelectionTreeNodeSupport<?>> { - public static ProgramSelectionTreeNode ofSeine(ReferentialReference<ProgramDto> data, ImmutableSet<DataReference<TripSeineDto>> tripSeines) { + public static ProgramSelectionTreeNode ofSeine(ReferentialReference<ProgramDto> data, Collection<DataReference<TripSeineDto>> tripSeines) { ProgramSelectionTreeNode result = new ProgramSelectionTreeNode(data); for (DataReference<TripSeineDto> tripSeine : tripSeines) { result.add(new TripSeineSelectionTreeNode(tripSeine)); @@ -28,7 +29,7 @@ public class ProgramSelectionTreeNode extends ReferenceSelectionTreeNodeSupport< return result; } - public static ProgramSelectionTreeNode ofLongline(ReferentialReference<ProgramDto> data, ImmutableSet<DataReference<TripLonglineDto>> tripLonglines) { + public static ProgramSelectionTreeNode ofLongline(ReferentialReference<ProgramDto> data, Collection<DataReference<TripLonglineDto>> tripLonglines) { ProgramSelectionTreeNode result = new ProgramSelectionTreeNode(data); for (DataReference<TripLonglineDto> tripLongline : tripLonglines) { result.add(new TripLonglineSelectionTreeNode(tripLongline)); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java index 7d5d879..f2f2d0c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/RootSelectionTreeNode.java @@ -1,24 +1,8 @@ package fr.ird.observe.application.swing.ui.tree.selection.nodes; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramHelper; -import fr.ird.observe.services.dto.referential.ReferentialHelper; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.longline.TripLonglineService; -import fr.ird.observe.services.service.data.seine.TripSeineService; import org.apache.commons.collections4.EnumerationUtils; -import java.util.ArrayList; import java.util.Iterator; -import java.util.List; - -import static org.nuiton.i18n.I18n.n; /** * Created on 18/11/16. @@ -28,44 +12,6 @@ import static org.nuiton.i18n.I18n.n; */ public class RootSelectionTreeNode extends SelectionTreeNodeSupport<Void> implements Iterable<ProgramSelectionTreeNode> { - public static RootSelectionTreeNode of(SelectionTreeModel treeModel, ObserveSwingDataSource dataSource) { - - RootSelectionTreeNode result = new RootSelectionTreeNode(); - - List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(dataSource.getReferentialReferences(ProgramDto.class)); - ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, programs); - - if (treeModel.isLoadLongline()) { - TripLonglineService tripLonglineService = dataSource.newTripLonglineService(); - programs.stream().filter(ProgramHelper::isProgramLongline).forEach(program -> { - DataReferenceSet<TripLonglineDto> trips = tripLonglineService.getTripLonglineByProgram(program.getId()); - if (treeModel.isShowEmptyTrips() || trips.sizeReference() > 0) { - ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofLongline(program, trips.getReferences()); - result.add(programNode); - } - }); - } - - if (treeModel.isLoadSeine()) { - TripSeineService tripSeineService = dataSource.newTripSeineService(); - programs.stream().filter(ProgramHelper::isProgramSeine).forEach(program -> { - DataReferenceSet<TripSeineDto> trips = tripSeineService.getTripSeineByProgram(program.getId()); - if (treeModel.isShowEmptyTrips() || trips.sizeReference() > 0) { - ProgramSelectionTreeNode programNode = ProgramSelectionTreeNode.ofSeine(program, trips.getReferences()); - result.add(programNode); - } - }); - } - - if (treeModel.isLoadReferential()) { - result.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.common"), ReferentialHelper.REFERENCE_COMMON_DTOS)); - result.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.longline"), ReferentialHelper.REFERENCE_LONGLINE_DTOS)); - result.add(ReferentialsSelectionTreeNode.of(n("observe.type.reference.seine"), ReferentialHelper.REFERENCE_SEINE_DTOS)); - } - - return result; - } - public RootSelectionTreeNode() { super(null, true); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 628c272fed4e830f1b1a0fe910662871a2b6f844 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 10:15:26 2016 +0100 refs #8429 continue les adaptations sur les arbres --- .../swing/ObserveSwingApplicationDataSourcesManager.java | 2 -- .../application/swing/db/ObserveSwingDataSource.java | 5 +++++ .../fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx | 4 ++-- .../fr/ird/observe/application/swing/ui/ObserveMainUI.jcss | 5 ----- .../observe/application/swing/ui/ObserveMainUIHandler.java | 6 +++++- .../swing/ui/actions/content/CancelCreateUIAction.java | 3 ++- .../swing/ui/actions/content/CloseAndCreateUIAction.java | 2 +- .../swing/ui/actions/content/MoveTripsUIAction.java | 4 ++-- .../swing/ui/actions/content/ResetEditUIAction.java | 3 ++- .../application/swing/ui/actions/shared/GoDownUIAction.java | 3 --- .../application/swing/ui/actions/shared/GoUpUIAction.java | 3 --- .../application/swing/ui/content/ContentUIHandler.java | 13 ++++++------- .../application/swing/ui/content/ObserveActionMap.java | 4 ++-- .../ui/content/impl/longline/SetLonglineUIHandler.java | 3 ++- .../ui/content/impl/seine/FloatingObjectUIHandler.java | 3 ++- .../swing/ui/content/impl/seine/SetSeineUIHandler.java | 3 ++- .../swing/ui/content/list/ContentListUIHandler.java | 6 +----- .../main/resources/i18n/application-swing_en_GB.properties | 1 + .../main/resources/i18n/application-swing_es_ES.properties | 1 + .../main/resources/i18n/application-swing_fr_FR.properties | 1 + 20 files changed, 37 insertions(+), 38 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java index ff923d3..b11d0fa 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java @@ -446,8 +446,6 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { dataContext.populateOpens(openIds); mainUI.getHandler().loadNavigationUI(mainUI); - mainUI.getNavigation().getNavigationTreeModel().openRoot(); - mainUI.setMode(ObserveUIMode.DB); mainUI.getStatus().setStatus(t("observe.message.db.loaded", source.getLabel())); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java index 482abbb..442d0fd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java @@ -569,6 +569,11 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements } @Override + public NavigationService newNavigationService() { + return newService(NavigationService.class); + } + + @Override public ReferentialService newReferentialService() { return newService(ReferentialService.class); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx index 72d31e4..faff734 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jaxx @@ -45,7 +45,7 @@ fr.ird.observe.application.swing.ui.actions.ShowStorageInfoAction fr.ird.observe.application.swing.ui.content.ContentUIManager fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree - fr.ird.observe.application.swing.ui.util.tree.BeanTreeHeader + fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeHeader jaxx.runtime.swing.CardLayout2 jaxx.runtime.swing.CardLayout2Ext @@ -252,7 +252,7 @@ void $afterCompleteSetup() { <JXTitledPanel id='navigationView'> <JScrollPane id='navigationScrollPane' columnHeaderView='{navigationTreeHeader}'> <NavigationTree id="navigation"/> - <BeanTreeHeader id='navigationTreeHeader' tree='{navigation}'/> + <NavigationTreeHeader id='navigationTreeHeader' tree='{navigation}'/> </JScrollPane> </JXTitledPanel> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss index e13f2fa..ef1ee0e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss @@ -380,14 +380,9 @@ JSplitPane { } #navigation { - minimumSize: {UIHelper.newMinDimension()}; font-size:11; } -#navigationTreeHeader { - showSelectActions: false; -} - #messageView { title: "observe.view.message"; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java index 5f8c6d6..545ab02 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java @@ -33,6 +33,7 @@ import fr.ird.observe.application.swing.ui.content.ContentUIManager; import fr.ird.observe.application.swing.ui.content.ContentUIModel; import fr.ird.observe.application.swing.ui.tree.ObserveNavigationTreeShowPopupAction; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; @@ -551,11 +552,14 @@ public class ObserveMainUIHandler { NavigationTree tree = mainUI.getNavigation(); - tree.createModel(); + NavigationTreeModel treeModel = tree.getTreeModel(); + treeModel.populate(); // select initial node tree.selectInitialNode(); tree.setVisible(true); + + SwingUtilities.invokeLater(tree::revalidate); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java index 330b1e9..8147b0b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CancelCreateUIAction.java @@ -55,7 +55,8 @@ public class CancelCreateUIAction extends AbstractContentUIAction { protected void actionPerformed(ContentUI<?, ?> ui) { ui.stopEdit(); NavigationTree tree = getMainUI().getNavigation(); - NavigationTreeNodeSupport parentNode = tree.removeNode(tree.getSelectedNode()); + NavigationTreeNodeSupport parentNode = tree.getSelectedNode().getParent(); + tree.removeNode(tree.getSelectedNode()); tree.selectNode(parentNode); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java index 8d544aa..da724ca 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java @@ -144,7 +144,7 @@ public class CloseAndCreateUIAction extends AbstractContentUIAction { String id = dataContext.getOpenActivityId(); - NavigationTreeNodeSupport node1 = node.findNodeById(tree.getNavigationTreeModel(), id); + NavigationTreeNodeSupport node1 = node.findNodeById(tree.getTreeModel(), id); TreePath activityPath = path.pathByAddingChild(node1); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java index 2a3ee12..3b8d7df 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/MoveTripsUIAction.java @@ -105,7 +105,7 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractConte GearType geartype = getGearType(ui); // racine - RootNavigationTreeNode rootNode = tree.getNavigationTreeModel().getRoot(); + RootNavigationTreeNode rootNode = tree.getTreeModel().getRoot(); //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>(); @@ -137,7 +137,7 @@ public abstract class MoveTripsUIAction<T extends DataDto> extends AbstractConte ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree tree = getMainUI().getNavigation(); - RootNavigationTreeNode rootNode = tree.getNavigationTreeModel().getRoot(); + RootNavigationTreeNode rootNode = tree.getTreeModel().getRoot(); NavigationTreeNodeSupport newProgramNode = tree.getChild(rootNode, programId); for (int i = 0, s = positions.size(); i < s; i++) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java index 4ba3b74..6edda51 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/ResetEditUIAction.java @@ -57,7 +57,8 @@ public class ResetEditUIAction extends AbstractContentUIAction { if (ui.getModel().isCreatingMode()) { ui.stopEdit(); NavigationTree tree = getMainUI().getNavigation(); - NavigationTreeNodeSupport parentNode = tree.removeNode(tree.getSelectedNode()); + NavigationTreeNodeSupport parentNode = tree.getSelectedNode().getParent(); + tree.removeNode(tree.getSelectedNode()); tree.selectNode(parentNode); } else { ui.resetEdit(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java index b15959f..a17ce17 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoDownUIAction.java @@ -24,7 +24,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import javax.swing.AbstractButton; @@ -85,8 +84,6 @@ public class GoDownUIAction extends AbstractUIAction { NavigationTree tree = getMainUI().getNavigation(); - NavigationTreeCellRenderer render = tree.getNavigationCellRenderer(); - NavigationTreeNodeSupport node; super.updateAction(ui, editor); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java index f23baed..d4b414a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/shared/GoUpUIAction.java @@ -24,7 +24,6 @@ package fr.ird.observe.application.swing.ui.actions.shared; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import javax.swing.AbstractButton; @@ -86,8 +85,6 @@ public class GoUpUIAction extends AbstractUIAction { NavigationTree treeHelper = getMainUI().getNavigation(); - NavigationTreeCellRenderer render = treeHelper.getNavigationCellRenderer(); - NavigationTreeNodeSupport node; JPopupMenu scopePopup = getMainUI().getScopeUpPopup(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java index 06eb161..10eae41 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java @@ -38,7 +38,6 @@ import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; import fr.ird.observe.application.swing.ui.content.ref.ContentReferenceUIHandler; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.application.swing.ui.util.SpringUtilities; import fr.ird.observe.application.swing.validation.ValidationContext; @@ -250,10 +249,10 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U model.addMessages(ui, fieldName, scope, message); } - public static <E extends IdDto, U extends ContentUI<E, U>> void removeAllMessages(U ui, NuitonValidatorScope scope, String fieldName) { - SwingValidatorMessageTableModel model = ui.getErrorTableModel(); - model.removeMessages(ui, fieldName, scope); - } +// public static <E extends IdDto, U extends ContentUI<E, U>> void removeAllMessages(U ui, NuitonValidatorScope scope, String fieldName) { +// SwingValidatorMessageTableModel model = ui.getErrorTableModel(); +// model.removeMessages(ui, fieldName, scope); +// } protected static <E extends IdDto, U extends ContentUI<E, U>> void removeAllMessages(U ui) { SwingValidatorMessageTableModel model = ui.getErrorTableModel(); @@ -381,7 +380,6 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U // suppression des messages de validation removeAllMessages(ui); NavigationTree tree = getTreeHelper(ui); - NavigationTreeCellRenderer render = tree.getNavigationCellRenderer(); NavigationTreeNodeSupport node = tree.getSelectedNode(); if (ContentReferenceUIHandler.class.isAssignableFrom(getClass())) { @@ -747,7 +745,8 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U NavigationTree treeHelper = getTreeHelper(ui); NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = node.getParent(); + treeHelper.removeNode(node); treeHelper.selectNode(parentNode); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java index 71556dd..aefcdff 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java @@ -107,8 +107,8 @@ public class ObserveActionMap extends ActionMap { private <A extends AbstractUIAction> A newAction(String key, Class<A> actionType) { try { - if (log.isInfoEnabled()) { - log.info("Create action: " + key + ", type: " + actionType.getName()); + if (log.isDebugEnabled()) { + log.debug("Create action: " + key + ", type: " + actionType.getName()); } return ConstructorUtils.invokeConstructor(actionType, ui); } catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java index 3ecf77c..07dc8b4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SetLonglineUIHandler.java @@ -363,7 +363,8 @@ public class SetLonglineUIHandler extends ContentUIHandler<SetLonglineDto, SetLo getModel().setMode(ContentMode.UPDATE); // remove old node and recreate new node - NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = node.getParent(); + treeHelper.removeNode(node); DataReference<SetLonglineDto> beanRef = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformDataDtoToReference(getDecoratorService().getReferentialLocale(), bean); node = treeHelper.addSetLongline(parentNode, beanRef); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java index 5aea97e..f21b658 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUIHandler.java @@ -182,7 +182,8 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, getModel().setMode(ContentMode.UPDATE); // remove old node and recreate new node - NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = node.getParent(); + treeHelper.removeNode(node); DataReference<FloatingObjectDto> beanRef = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformDataDtoToReference(getDecoratorService().getReferentialLocale(), bean); node = treeHelper.addFloatingObject(parentNode, beanRef); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java index 8f9de9b..8eef9ba 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/SetSeineUIHandler.java @@ -262,7 +262,8 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto, SetSeineUI> getModel().setMode(ContentMode.UPDATE); // remove old node and recreate new node - NavigationTreeNodeSupport parentNode = treeHelper.removeNode(node); + NavigationTreeNodeSupport parentNode = node.getParent(); + treeHelper.removeNode(node); DataReference<SetSeineDto> beanRef = ObserveSwingApplicationContext.get().getReferenceBinderEngine().transformDataDtoToReference(getDecoratorService().getReferentialLocale(), bean); node = treeHelper.addSetSeine(parentNode, beanRef); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java index 31a28c8..1a8af7a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java @@ -27,7 +27,6 @@ import fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; -import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeCellRenderer; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.DataDto; @@ -233,14 +232,11 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U private final transient NavigationTree treeHelper; - private final NavigationTreeCellRenderer treeRenderer; - private final ThreadLocal<NavigationTreeNodeSupport> containerNode = new ThreadLocal<>(); EntityListCellRenderer(ListCellRenderer delegate, NavigationTree treeHelper) { this.delegate = delegate; this.treeHelper = treeHelper; - this.treeRenderer = treeHelper.getNavigationCellRenderer(); } public void init() { @@ -248,7 +244,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U } @Override - public Component getListCellRendererComponent(JList list, + public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, diff --git a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties index 60f9b8c..37d2acb 100644 --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -1419,6 +1419,7 @@ observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REF observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REFERENTIEL.description=Only referentials observe.enum.fr.ird.observe.services.dto.ObserveModelType.LL=Longline observe.enum.fr.ird.observe.services.dto.ObserveModelType.PS=Seine +observe.enum.fr.ird.observe.services.dto.ObserveModelType.REF=Referential observe.enum.fr.ird.observe.services.dto.constants.GearType.longline=Longline gear type observe.enum.fr.ird.observe.services.dto.constants.GearType.seine=Senne gear type observe.enum.fr.ird.observe.services.dto.constants.ReferenceStatus.disabled=Disabled diff --git a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties index 4f0439b..8cc8705 100644 --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -1419,6 +1419,7 @@ observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REF observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REFERENTIEL.description=Todos los referenciales observe.enum.fr.ird.observe.services.dto.ObserveModelType.LL=Palangre observe.enum.fr.ird.observe.services.dto.ObserveModelType.PS=Senne +observe.enum.fr.ird.observe.services.dto.ObserveModelType.REF=Referencial observe.enum.fr.ird.observe.services.dto.constants.GearType.longline=Palangre observe.enum.fr.ird.observe.services.dto.constants.GearType.seine=Senne observe.enum.fr.ird.observe.services.dto.constants.ReferenceStatus.disabled=Desactivado diff --git a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties index 83536fa..2768968 100644 --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -1419,6 +1419,7 @@ observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REF observe.enum.fr.ird.observe.application.swing.validation.ValidationModelMode.REFERENTIEL.description=Tous les référentiels observe.enum.fr.ird.observe.services.dto.ObserveModelType.LL=Palangre observe.enum.fr.ird.observe.services.dto.ObserveModelType.PS=Senne +observe.enum.fr.ird.observe.services.dto.ObserveModelType.REF=Référentiel observe.enum.fr.ird.observe.services.dto.constants.GearType.longline=Longline observe.enum.fr.ird.observe.services.dto.constants.GearType.seine=Senne observe.enum.fr.ird.observe.services.dto.constants.ReferenceStatus.disabled=Désactivé -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit b1782dbb4283ce9b18e8a3974e2581598856969a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 18:13:35 2016 +0100 meilleure remontée de données --- .../main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java | 4 ++-- .../src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java | 4 ++-- .../services/topia/service/data/seine/TripSeineServiceTopia.java | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java index b19940d..f95201c 100644 --- a/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineImpl.java @@ -32,7 +32,7 @@ public class TripLonglineImpl extends TripLonglineAbstract { private static final long serialVersionUID = 1L; - private int activityCount; + private Integer activityCount; @Override public String getObserverLabel() { @@ -51,7 +51,7 @@ public class TripLonglineImpl extends TripLonglineAbstract { @Override public int getActivityCount() { - return activityCount; + return activityCount == null ? sizeActivityLongline() : activityCount; } @Override diff --git a/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java b/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java index d261a6f..9a46055 100644 --- a/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java +++ b/entities/src/main/java/fr/ird/observe/entities/seine/TripSeineImpl.java @@ -28,7 +28,7 @@ package fr.ird.observe.entities.seine; public class TripSeineImpl extends TripSeineAbstract { private static final long serialVersionUID = 1L; - private int routeCount; + private Integer routeCount; @Override public String getObserverLabel() { @@ -37,7 +37,7 @@ public class TripSeineImpl extends TripSeineAbstract { @Override public int getRouteCount() { - return routeCount; + return routeCount == null ? sizeRoute() : routeCount; } @Override diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java index 8ba2d61..e5c5791 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java @@ -77,7 +77,6 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe List<TripSeine> tripSeines = loadEntities(TripSeine.class); - tripSeines.forEach(t -> t.setRouteCount(t.sizeRoute())); return toDataReferenceSet(TripSeineDto.class, tripSeines); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 5682241e89918ba47c7a7fd665059d463946d4f3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Nov 22 18:13:55 2016 +0100 gestion des nœuds de création --- .../ActivityLonglineNavigationTreeNode.java | 22 ++++++++++++---------- .../longline/TripLonglineNavigationTreeNode.java | 6 ++++-- .../seine/ActivitySeineNavigationTreeNode.java | 20 +++++++++++--------- .../nodes/seine/RouteSeineNavigationTreeNode.java | 4 +++- .../nodes/seine/TripSeineNavigationTreeNode.java | 6 ++++-- 5 files changed, 34 insertions(+), 24 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java index ab55e27..21d21d4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/ActivityLonglineNavigationTreeNode.java @@ -33,18 +33,20 @@ public class ActivityLonglineNavigationTreeNode extends ReferenceNavigationTreeN public ActivityLonglineNavigationTreeNode(DataReference<ActivityLonglineDto> data) { super(data, true); - DataReference<SetLonglineDto> setLonglineRef = (DataReference) data.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); - if (setLonglineRef != null) { - add(new SetLonglineNavigationTreeNode(setLonglineRef)); - } + if (data.getId() != null) { + DataReference<SetLonglineDto> setLonglineRef = (DataReference) data.getPropertyValue(ActivityLonglineDto.PROPERTY_SET_LONGLINE); + if (setLonglineRef != null) { + add(new SetLonglineNavigationTreeNode(setLonglineRef)); + } - String vesselActivityId = (String) data.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); + String vesselActivityId = (String) data.getPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE + "Id"); - if (ENCOUNTERS_ID.contains(vesselActivityId)) { - add(new EncounterLonglineNavigationTreeNode()); - } - if (SENSOR_USED_ID.contains(vesselActivityId)) { - add(new SensorUsedLonglineNavigationTreeNode()); + if (ENCOUNTERS_ID.contains(vesselActivityId)) { + add(new EncounterLonglineNavigationTreeNode()); + } + if (SENSOR_USED_ID.contains(vesselActivityId)) { + add(new SensorUsedLonglineNavigationTreeNode()); + } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java index 6e57774..fb5a5c9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TripLonglineNavigationTreeNode.java @@ -19,8 +19,10 @@ public class TripLonglineNavigationTreeNode extends ReferenceNavigationTreeNodeS public TripLonglineNavigationTreeNode(DataReference<TripLonglineDto> data) { super(data, data.getId() != null); - add(new GearUseFeaturesLonglineNavigationTreeNode()); - add(new ActivitiesLonglineNavigationTreeNode()); + if (data.getId() != null) { + add(new GearUseFeaturesLonglineNavigationTreeNode()); + add(new ActivitiesLonglineNavigationTreeNode()); + } } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java index 8be338d..f2671fe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitySeineNavigationTreeNode.java @@ -22,15 +22,17 @@ public class ActivitySeineNavigationTreeNode extends ReferenceNavigationTreeNode public ActivitySeineNavigationTreeNode(DataReference<ActivitySeineDto> data) { super(data, true); - DataReference<SetSeineDto> set = (DataReference<SetSeineDto>) data.getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); - if (set != null) { - add(new SetSeineNavigationTreeNode(set)); - } - - FloatingObjectService service = getMainDataSourceServicesProvider().newFloatingObjectService(); - DataReferenceSet<FloatingObjectDto> referenceSet = service.getFloatingObjectByActivitySeine(getId()); - for (DataReference<FloatingObjectDto> reference : referenceSet.getReferences()) { - add(new FloatingObjectSeineNavigationTreeNode(reference)); + if (data.getId() != null) { + DataReference<SetSeineDto> set = (DataReference<SetSeineDto>) data.getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); + if (set != null) { + add(new SetSeineNavigationTreeNode(set)); + } + + FloatingObjectService service = getMainDataSourceServicesProvider().newFloatingObjectService(); + DataReferenceSet<FloatingObjectDto> referenceSet = service.getFloatingObjectByActivitySeine(getId()); + for (DataReference<FloatingObjectDto> reference : referenceSet.getReferences()) { + add(new FloatingObjectSeineNavigationTreeNode(reference)); + } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java index 44a6ec2..339158d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/RouteSeineNavigationTreeNode.java @@ -18,7 +18,9 @@ public class RouteSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSup public RouteSeineNavigationTreeNode(DataReference<RouteDto> data) { super(data, true); - add(new ActivitiesSeineNavigationTreeNode()); + if (data.getId() != null) { + add(new ActivitiesSeineNavigationTreeNode()); + } } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java index ea0659e..5b78e8a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/TripSeineNavigationTreeNode.java @@ -19,8 +19,10 @@ public class TripSeineNavigationTreeNode extends ReferenceNavigationTreeNodeSupp public TripSeineNavigationTreeNode(DataReference<TripSeineDto> data) { super(data, true); - add(new GearUseFeaturesSeineNavigationTreeNode()); - add(new RoutesSeineNavigationTreeNode()); + if (data.getId() != null) { + add(new GearUseFeaturesSeineNavigationTreeNode()); + add(new RoutesSeineNavigationTreeNode()); + } } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit e25e7aeec3d9ef0ea8e320a22695614f877207ee Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 23 09:17:47 2016 +0100 meilleure gestion de l'affichage des nœuds --- .../nodes/NavigationTreeNodeSupport.java | 37 +++++++--------------- .../EncounterLonglineNavigationTreeNode.java | 5 +++ .../GearUseFeaturesLonglineNavigationTreeNode.java | 5 +++ .../SensorUsedLonglineNavigationTreeNode.java | 5 +++ ...etailCompositionLonglineNavigationTreeNode.java | 5 +++ ...lobalCompositionLonglineNavigationTreeNode.java | 5 +++ .../longline/TdrLonglineNavigationTreeNode.java | 5 +++ .../referential/ReferentialNavigationTreeNode.java | 7 ++-- .../seine/ActivitiesSeineNavigationTreeNode.java | 2 -- ...cardedTargetCatchesSeineNavigationTreeNode.java | 5 +++ ...cardedTargetSamplesSeineNavigationTreeNode.java | 5 +++ .../GearUseFeaturesSeineNavigationTreeNode.java | 6 +++- .../KeptTargetCatchesSeineNavigationTreeNode.java | 6 ++++ .../KeptTargetSamplesSeineNavigationTreeNode.java | 6 ++-- .../NonTargetCatchesSeineNavigationTreeNode.java | 5 +++ .../NoneTargetSamplesSeineNavigationTreeNode.java | 6 ++++ .../SchoolEstimatesSeineNavigationTreeNode.java | 5 +++ 17 files changed, 86 insertions(+), 34 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java index 7cd4797..69bc632 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java @@ -67,23 +67,7 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider(); } - public static NavigationTreeNodeSupport findNode(NavigationTreeModel treeModel, NavigationTreeNodeSupport node, String... ids) { - NavigationTreeNodeSupport result = null; - for (String id : ids) { - - result = node.findNodeById(treeModel, id); - - if (result == null) { - - // un des noeud n'a pas ete trouve, on sort - break; - } - node = result; - } - return result; - } - - public NavigationTreeNodeSupport findNodeById(NavigationTreeModel treeModel, String id) { + public NavigationTreeNodeSupport getChild(NavigationTreeModel treeModel, String id) { if (id == null) { // id null ? donc rien a faire @@ -106,21 +90,22 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor // au final le noeud est une feuille, donc ne convient pas return null; } - - // on recherche dans les fils - Enumeration<NavigationTreeNodeSupport> enumeration = children(); - while (enumeration.hasMoreElements()) { - NavigationTreeNodeSupport node = enumeration.nextElement(); - NavigationTreeNodeSupport nodeById = node.findNodeById(treeModel, id); - if (nodeById != null) { - return nodeById; + Enumeration<NavigationTreeNodeSupport> children = children(); + while (children.hasMoreElements()) { + NavigationTreeNodeSupport node = children.nextElement(); + if (id.equals(node.getId())) { + return node; } } - // aucun des noeud fils ne convient return null; } + @Override + public boolean isLeaf() { + return isLoaded() && super.isLeaf(); + } + public boolean isOpen() { return false; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java index ce66bf0..86effeb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/EncounterLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class EncounterLonglineNavigationTreeNode extends ClassNavigationTreeNode public Class<EncounterUI> getContentClass() { return EncounterUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java index 99bdffb..84924c3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/GearUseFeaturesLonglineNavigationTreeNode.java @@ -26,4 +26,9 @@ public class GearUseFeaturesLonglineNavigationTreeNode extends ClassNavigationTr public Class<GearUseFeaturesLonglineUI> getContentClass() { return GearUseFeaturesLonglineUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java index fcc02a8..e28d0c6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SensorUsedLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class SensorUsedLonglineNavigationTreeNode extends ClassNavigationTreeNod public Class<SensorUsedUI> getContentClass() { return SensorUsedUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java index 99d9378..c7a633c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetDetailCompositionLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class SetDetailCompositionLonglineNavigationTreeNode extends ClassNavigat public Class<LonglineDetailCompositionUI> getContentClass() { return LonglineDetailCompositionUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java index 4aacff3..4da8364 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/SetGlobalCompositionLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class SetGlobalCompositionLonglineNavigationTreeNode extends ClassNavigat public Class<LonglineGlobalCompositionUI> getContentClass() { return LonglineGlobalCompositionUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java index c07f64f..3de0804 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/TdrLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class TdrLonglineNavigationTreeNode extends ClassNavigationTreeNode<TdrDt public Class<TdrUI> getContentClass() { return TdrUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java index 0af5ad2..9c37361 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java @@ -7,9 +7,6 @@ import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigation import fr.ird.observe.services.dto.referential.ReferentialDto; import org.apache.commons.lang3.StringUtils; -import javax.swing.Icon; -import javax.swing.UIManager; - import static org.nuiton.i18n.I18n.t; /** @@ -44,4 +41,8 @@ public class ReferentialNavigationTreeNode<D extends ReferentialDto> extends Cla return "navigation.sub.referentiel"; } + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java index a9bf26e..4b1e239 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/ActivitiesSeineNavigationTreeNode.java @@ -4,10 +4,8 @@ import fr.ird.observe.application.swing.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.application.swing.ui.content.list.impl.seine.ActivitySeinesUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTreeModel; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; -import fr.ird.observe.application.swing.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.service.data.seine.ActivitySeineService; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java index 19e7e1a..4b9dc34 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetCatchesSeineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class DiscardedTargetCatchesSeineNavigationTreeNode extends ClassNavigati public Class<TargetDiscardCatchUI> getContentClass() { return TargetDiscardCatchUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java index 4df8e90..b6775ca 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/DiscardedTargetSamplesSeineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class DiscardedTargetSamplesSeineNavigationTreeNode extends ClassNavigati public Class<TargetSampleRejeteUI> getContentClass() { return TargetSampleRejeteUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java index 0384895..fe432d7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/GearUseFeaturesSeineNavigationTreeNode.java @@ -2,7 +2,6 @@ package fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine; import fr.ird.observe.application.swing.ui.content.table.impl.seine.GearUseFeaturesSeineUI; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; @@ -27,4 +26,9 @@ public class GearUseFeaturesSeineNavigationTreeNode extends ClassNavigationTreeN public Class<GearUseFeaturesSeineUI> getContentClass() { return GearUseFeaturesSeineUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java index c160a42..67fa3a9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetCatchesSeineNavigationTreeNode.java @@ -20,4 +20,10 @@ public class KeptTargetCatchesSeineNavigationTreeNode extends ClassNavigationTre public Class<TargetCatchUI> getContentClass() { return TargetCatchUI.class; } + + @Override + public boolean isLeaf() { + return true; + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java index 362af7c..6773579 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/KeptTargetSamplesSeineNavigationTreeNode.java @@ -4,8 +4,6 @@ import fr.ird.observe.application.swing.ui.content.table.impl.seine.TargetSample import fr.ird.observe.application.swing.ui.tree.navigation.nodes.ClassNavigationTreeNode; import fr.ird.observe.services.dto.seine.KeptTargetSampleDto; -import javax.swing.Icon; - /** * Created on 14/11/16. * @@ -23,4 +21,8 @@ public class KeptTargetSamplesSeineNavigationTreeNode extends ClassNavigationTre return TargetSampleCaptureUI.class; } + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java index a379d43..3282983 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NonTargetCatchesSeineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class NonTargetCatchesSeineNavigationTreeNode extends ClassNavigationTree public Class<NonTargetCatchUI> getContentClass() { return NonTargetCatchUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java index a410f49..979f7fe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/NoneTargetSamplesSeineNavigationTreeNode.java @@ -20,4 +20,10 @@ public class NoneTargetSamplesSeineNavigationTreeNode extends ClassNavigationTre public Class<NonTargetSampleUI> getContentClass() { return NonTargetSampleUI.class; } + + @Override + public boolean isLeaf() { + return true; + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java index becd51d..42309f3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/seine/SchoolEstimatesSeineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class SchoolEstimatesSeineNavigationTreeNode extends ClassNavigationTreeN public Class<SchoolEstimateUI> getContentClass() { return SchoolEstimateUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 2d34b2d3a547d43f742c75c2991a073f889391b8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Nov 23 09:18:14 2016 +0100 ajout API getChild pour remplacer l'API findNodeById --- .../swing/ui/actions/content/CloseAndCreateUIAction.java | 2 +- .../swing/ui/tree/navigation/NavigationTree.java | 4 ++-- .../swing/ui/tree/navigation/NavigationTreeModel.java | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java index da724ca..70b0e52 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CloseAndCreateUIAction.java @@ -144,7 +144,7 @@ public class CloseAndCreateUIAction extends AbstractContentUIAction { String id = dataContext.getOpenActivityId(); - NavigationTreeNodeSupport node1 = node.findNodeById(tree.getTreeModel(), id); + NavigationTreeNodeSupport node1 = tree.getChild(node, id); TreePath activityPath = path.pathByAddingChild(node1); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java index 84e0c71..772c19e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java @@ -158,7 +158,7 @@ public class NavigationTree extends JXTree { log.debug("try to select node from ids " + Arrays.toString(path)); } RootNavigationTreeNode root = this.getTreeModel().getRoot(); - NavigationTreeNodeSupport node = NavigationTreeNodeSupport.findNode(getTreeModel(), root, path); + NavigationTreeNodeSupport node = getTreeModel().findNode(root, path); if (log.isDebugEnabled()) { log.debug("selected node [" + node + "]"); } @@ -184,7 +184,7 @@ public class NavigationTree extends JXTree { } public NavigationTreeNodeSupport getChild(NavigationTreeNodeSupport node, String id) { - return node.findNodeById(getTreeModel(), id); + return node.getChild(getTreeModel(), id); } public void removeNode(NavigationTreeNodeSupport node) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java index c7a76ee..6453287 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java @@ -42,6 +42,22 @@ public class NavigationTreeModel extends DefaultTreeModel { super(new RootNavigationTreeNode()); } + public NavigationTreeNodeSupport findNode(NavigationTreeNodeSupport node, String... ids) { + NavigationTreeNodeSupport result = null; + for (String id : ids) { + + result = node.getChild(this, id); + + if (result == null) { + + // un des noeud n'a pas ete trouve, on sort + break; + } + node = result; + } + return result; + } + public void populate() { NavigationService navigationService = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newNavigationService(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit abd3d69ee3c260e40844306c9712207d3d4cad06 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 09:11:21 2016 +0100 refs #8429 meilleure gestion du focus dans les assistants de base + suppression code mort --- .../ui/actions/ImportStorageFromFileAction.java | 4 +- .../swing/ui/storage/StorageUIHandler.java | 88 +++------- .../swing/ui/storage/StorageUILauncher.java | 188 ++++----------------- .../swing/ui/storage/tabs/ConfigUI.jaxx | 93 ++-------- .../longline/CatchLonglineNavigationTreeNode.java | 5 + .../ui/tree/selection/SelectionTreeModel.java | 8 +- 6 files changed, 79 insertions(+), 307 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java index 6d3c1b1..d4d9c08 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java @@ -79,9 +79,7 @@ public class ImportStorageFromFileAction extends AbstractAction { model.setCreationMode(CreationMode.IMPORT_EXTERNAL_DUMP); if (model.isLocalStorageExist()) { // sauvegarde base locale possible - model.setSteps(StorageStep.CONFIG, - StorageStep.BACKUP, - StorageStep.CONFIRM); + model.setSteps(StorageStep.CONFIG, StorageStep.BACKUP, StorageStep.CONFIRM); // et requise par défaut model.setDoBackup(true); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java index 5ed82d9..cf3e1dd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java @@ -58,6 +58,7 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.swing.JComponent; import javax.swing.JTabbedPane; import javax.swing.SwingUtilities; import java.awt.Component; @@ -210,6 +211,30 @@ public class StorageUIHandler { // centrage sur la frame parent UIHelper.center(ui.getContextValue(Window.class, "parent"), ui); + SwingUtilities.invokeLater(() -> { + JComponent focusOwner; + switch (ui.getModel().getStep()) { + + case CHOOSE_DB_MODE: + focusOwner = ui.getCHOOSE_DB_MODE().getUseLocalMode(); + if (!focusOwner.isEnabled() || ui.getCHOOSE_DB_MODE().getUseRemoteMode().isSelected()) { + focusOwner = ui.getCHOOSE_DB_MODE().getUseRemoteMode(); + } + break; + case CONFIG: + focusOwner = ui.getCONFIG().getDumpFile(); + break; + case BACKUP: + focusOwner = ui.getBACKUP().getDirectoryText(); + break; + default: + focusOwner = null; + } + if (focusOwner != null) { + focusOwner.grabFocus(); + } + }); + // affichage ui ui.setVisible(true); } @@ -382,7 +407,7 @@ public class StorageUIHandler { // il faut juste supprimer physiquement le repertoire // de la base if (log.isErrorEnabled()) { - log.error(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); + log.error(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); } // UIHelper.handlingError(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); @@ -642,61 +667,6 @@ public class StorageUIHandler { } } -// /** -// * Effectue une sauvegarde d'un service de persitances vers le fichier -// * choisi. -// * -// * On peut spécifier les donnéees à exporter via le paramètre {@code -// * marees}. -// * -// * <b>Note:</b> Si ce paramètre vaut {@code null}, on export tout. -// * -// * @param dataSource la source de donnée qui encapsule la base locale -// * @param dst le fichier de sauvegarde -// * @param trips les marees a exporter (si {@code null} on exporte tout) -// */ -// public void backupLocalDatabase(ObserveSwingDataSource dataSource, -// File dst, -// Set<DataReference> trips) { -// -// SqlScriptProducerService dumpService = dataSource.newSqlScriptProducerService(); -// -// -// if (trips == null) { -// if (log.isInfoEnabled()) { -// log.info("will export all datas."); -// } -// backupLocalDatabase(dumpService, dst); -// return; -// } -// if (dst == null) { -// throw new IllegalArgumentException( -// "file where to backup can not be null"); -// } -// if (log.isInfoEnabled()) { -// log.info("will export " + trips.size() + " marees to " + dst); -// } -// if (log.isDebugEnabled()) { -// log.debug(trips); -// } -// -// // on doit dumper la base distante dans une base h2 et en faire -// // la sauvegarde -// -// ImmutableSet<String> tripIds = ImmutableSet.copyOf(trips.stream().map(DataReference.ID_FUNCTION).collect(Collectors.toSet())); -// -// AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().dataIdsToAdd(tripIds); -// byte[] dump = dumpService.produceAddSqlScript(request).getSqlCode(); -// -// try (FileOutputStream fileOutputStream = new FileOutputStream(dst)) { -// -// IOUtils.write(dump, fileOutputStream); -// -// } catch (IOException e) { -// UIHelper.handlingError(e); -// } -// } - public String computeReport(StorageUI ui, StorageStep step) { if (log.isDebugEnabled()) { log.debug("Build report from step " + step); @@ -712,11 +682,9 @@ public class StorageUIHandler { if (log.isDebugEnabled()) { log.debug("destroy ui " + ui.getName()); } - UIHelper.TabbedPaneIterator<Component> itr = - UIHelper.newTabbedPaneIterator(ui.getTabs()); + UIHelper.TabbedPaneIterator<Component> itr = UIHelper.newTabbedPaneIterator(ui.getTabs()); for (; itr.hasNext(); ) { - StorageTabUI tab = - (StorageTabUI) itr.next(); + StorageTabUI tab = (StorageTabUI) itr.next(); if (log.isDebugEnabled()) { log.debug("destroy ui " + tab.getName()); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java index 6bf33c8..948ceb0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java @@ -132,10 +132,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @see StorageUIHandler * @see StorageUI */ - public static void changeStorage(final JAXXContext rootContext, - final Window mainUI, - final Set<DbMode> modes, - final String title) { + public static void changeStorage(JAXXContext rootContext, Window mainUI, Set<DbMode> modes, String title) { new StorageUILauncher(rootContext, mainUI, title) { @@ -151,13 +148,11 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod log.info("will use incoming mode " + modes.stream().map(DbMode::name).collect(Collectors.joining(", "))); } - model.setExcludeSteps( - Arrays.asList(StorageStep.SELECT_DATA, - StorageStep.BACKUP, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.ROLES) - ); + model.setExcludeSteps(Arrays.asList(StorageStep.SELECT_DATA, + StorageStep.BACKUP, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.ROLES)); model.setCanCreateLocalService(modes.contains(DbMode.CREATE_LOCAL)); model.setCanUseLocalService(modes.contains(DbMode.USE_LOCAL)); model.setCanUseRemoteService(modes.contains(DbMode.USE_REMOTE)); @@ -185,8 +180,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod @Override protected void doAction(StorageUI ui) { super.doAction(ui); - StorageUIHandler handler = getStorageUIHandler(); - handler.doChangeStorage(ui.getModel()); + getStorageUIHandler().doChangeStorage(ui.getModel()); } }.start(); @@ -205,9 +199,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param model le modèle de source de données à utiliser * @see StorageUI */ - public static void obtainRemoteConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model) { + public static void obtainRemoteConnexion(JAXXContext context, Window mainUI, StorageUIModel model) { obtainConnexion(context, mainUI, model, t("observe.title.connect.remoteDB"), DbMode.USE_REMOTE); } @@ -224,9 +216,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param model le modèle de source de données à utiliser * @see StorageUI */ - public static void obtainServerConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model) { + public static void obtainServerConnexion(JAXXContext context, Window mainUI, StorageUIModel model) { obtainConnexion(context, mainUI, model, t("observe.title.connect.serverDB"), DbMode.USE_SERVER); } @@ -242,25 +232,17 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param mainUI la fenetre principale parent (peut etre null) * @param model le modèle de source de données à utiliser * @param title le titre de la fenêtre - * @param dbMode le type deconnexion (base distante ou serveur distant) + * @param dbMode le type deconnexion (base distante ou serveur distant) * @see StorageUI */ - public static void obtainConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model, - String title, - DbMode dbMode) { + public static void obtainConnexion(JAXXContext context, Window mainUI, StorageUIModel model, String title, DbMode dbMode) { if (mainUI == null) { mainUI = ObserveSwingApplicationContext.get().getMainUI(); } addStorageUIHandler(context); - StorageUILauncher launcher = new StorageUILauncher( - context, - mainUI, - model, - title) { + StorageUILauncher launcher = new StorageUILauncher(context, mainUI, model, title) { @Override protected void init(StorageUI ui) { @@ -272,13 +254,13 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod model.setCanUseServerService(true); model.setExcludeSteps(Arrays.asList( - StorageStep.CHOOSE_DB_MODE, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.SELECT_DATA, - StorageStep.ROLES, - StorageStep.BACKUP, - StorageStep.CONFIRM) + StorageStep.CHOOSE_DB_MODE, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.SELECT_DATA, + StorageStep.ROLES, + StorageStep.BACKUP, + StorageStep.CONFIRM) ); model.setSteps(StorageStep.CONFIG); model.updateUniverse(); @@ -295,12 +277,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod if (!(mainUI instanceof JAXXObject)) { mainUI = null; } - return super.createUI(context, - mainUI, - storageUIClass, - modelClass, - model - ); + return super.createUI(context, mainUI, storageUIClass, modelClass, model); } @Override @@ -317,103 +294,6 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod launcher.start(); } -// /** -// * Méthode pour lancer l'action de connexion à une base locale. -// * -// * @param context le context applicatif -// * @param mainUI la fenetre principale parent (peut etre null) -// * @param model le modèle de source de données à utiliser -// * @see StorageUI -// */ -// public static void obtainLocalConnexion(final JAXXContext context, -// Window mainUI, -// final StorageUIModel model) { -// -// if (mainUI == null) { -// mainUI = ObserveSwingApplicationContext.get().getMainUI(); -// } -// -// addStorageUIHandler(context); -// -// StorageUILauncher launcher = new StorageUILauncher( -// context, -// mainUI, -// model, -// t("observe.title.connect.localDB")) { -// -// @Override -// protected StorageUI createUI(JAXXContext context, -// Window mainUI, -// Class<StorageUI> storageUIClass, -// Class<StorageUIModel> modelClass, -// StorageUIModel model) throws Exception { -// if (!(mainUI instanceof JAXXObject)) { -// // sinon on a pas de context propagé... -// mainUI = null; -// } -// return super.createUI(context, mainUI, storageUIClass, modelClass, model); -// } -// -// @Override -// protected void init(StorageUI ui) { -// StorageUIModel model = ui.getModel(); -// -// int nbModes = 0; -// -// DbMode mode = null; -// if (model.isCanCreateLocalService()) { -// nbModes++; -// mode = DbMode.CREATE_LOCAL; -// } -// if (model.isCanUseLocalService()) { -// nbModes++; -// mode = DbMode.USE_LOCAL; -// } -// if (model.isCanUseRemoteService()) { -// nbModes++; -// mode = DbMode.USE_REMOTE; -// } -// if (model.isCanUseServerService()) { -// nbModes++; -// mode = DbMode.USE_SERVER; -// } -// -// if (nbModes == 1) { -// -// if (log.isDebugEnabled()) { -// log.debug("Only one mode available [" + mode + -// "], set it in model"); -// } -// -// // un seul mode possible, on le sélectionne -// model.setDbMode(mode); -// } -// -// // on supprime des étapes -// model.setExcludeSteps(Arrays.asList( -// StorageStep.BACKUP, -// StorageStep.CONFIG_REFERENTIEL, -// StorageStep.CONFIG_DATA, -// StorageStep.SELECT_DATA, -// StorageStep.CONFIRM)); -// -// model.updateUniverse(); -// } -// -// @Override -// protected void doAction(StorageUI ui) { -// super.doAction(ui); -// if (log.isDebugEnabled()) { -// log.debug("Apply new local connexion to " + model); -// } -// ui.getModel().copyTo(model); -// model.validate(); -// } -// }; -// -// launcher.start(); -// } - /** * Méthode pour lancer l'action de connexion à une base locale ou distante. * @@ -428,11 +308,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod mainUI = ObserveSwingApplicationContext.get().getMainUI(); } addStorageUIHandler(context); - StorageUILauncher launcher = new StorageUILauncher( - context, - mainUI, - model, - t("observe.title.connect.existingDB")) { + StorageUILauncher launcher = new StorageUILauncher(context, mainUI, model, t("observe.title.connect.existingDB")) { @Override protected void init(StorageUI ui) { @@ -441,12 +317,12 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod // exclusion des étapes non requises model.setExcludeSteps(Arrays.asList( - StorageStep.SELECT_DATA, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.ROLES, - StorageStep.BACKUP, - StorageStep.CONFIRM) + StorageStep.SELECT_DATA, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.ROLES, + StorageStep.BACKUP, + StorageStep.CONFIRM) ); model.setSteps(StorageStep.CONFIG); model.updateUniverse(); @@ -469,12 +345,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod if (!(mainUI instanceof JAXXObject)) { mainUI = null; } - return super.createUI(context, - mainUI, - storageUIClass, - modelClass, - model - ); + return super.createUI(context, mainUI, storageUIClass, modelClass, model); } @Override @@ -492,8 +363,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod } protected static void addStorageUIHandler(JAXXContext context) { - StorageUIHandler handler = - context.getContextValue(StorageUIHandler.class); + StorageUIHandler handler = context.getContextValue(StorageUIHandler.class); if (handler == null) { handler = new StorageUIHandler(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx index 5046859..39f9735 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx @@ -63,8 +63,7 @@ public void init() { <JPanel id='configContent'> <!-- configurer creation base locale a partir d'une sauvegarde --> - <Table id='IMPORT_EXTERNAL_DUMP' - constraints='"IMPORT_EXTERNAL_DUMP"'> + <Table id='IMPORT_EXTERNAL_DUMP' constraints='"IMPORT_EXTERNAL_DUMP"'> <row> <cell> <JLabel text='observe.storage.importExternalDump.config'/> @@ -76,36 +75,13 @@ public void init() { onKeyReleased='getModel().setDumpFile(new File(((JTextField)event.getSource()).getText()))'/> </cell> <cell anchor="east"> - <JButton id="fileChooserAction" - onActionPerformed="getHandler().chooseDumpFile(this)"/> + <JButton id="fileChooserAction" onActionPerformed="getHandler().chooseDumpFile(this)"/> </cell> </row> </Table> <!-- configurer creation base locale et import referentiel depuis base distante --> - <!--Table id='IMPORT_LOCAL_STORAGE' - constraints='"IMPORT_LOCAL_STORAGE"' - _description='n("observe.storage.importLocalStorage.description")'> - <row> - <cell> - <JLabel text='observe.storage.importLocalStorage.config'/> - </cell> - </row> - <row weighty='1'> - <cell weightx='1' fill="horizontal"> - <JTextField text='{model.getLocalStorageFile()+""}' - onKeyReleased='getModel().setLocalStorageFile(new File(((JTextField)event.getSource()).getText()))'/> - </cell> - <cell anchor="east"> - <JButton actionIcon='fileChooser' onActionPerformed="chooseLocalStorageFile()"/> - </cell> - </row> - </Table--> - - <!-- configurer creation base locale et import referentiel depuis base distante --> - <Table id='IMPORT_REMOTE_STORAGE' - fill="both" - constraints='"IMPORT_REMOTE_STORAGE"'> + <Table id='IMPORT_REMOTE_STORAGE' fill="both" constraints='"IMPORT_REMOTE_STORAGE"'> <row> <cell> <JLabel text='observe.storage.importRemoteStorage.config'/> @@ -120,9 +96,7 @@ public void init() { </Table> <!-- configurer creation base locale et import referentiel depuis un server distant --> - <Table id='IMPORT_SERVER_STORAGE' - fill="both" - constraints='"IMPORT_SERVER_STORAGE"'> + <Table id='IMPORT_SERVER_STORAGE' fill="both" constraints='"IMPORT_SERVER_STORAGE"'> <row> <cell> <JLabel text='observe.storage.importServerStorage.config'/> @@ -137,8 +111,7 @@ public void init() { </Table> <!-- configurer connexion a base distante --> - <Table id='USE_REMOTE' - constraints='"USE_REMOTE"' fill='both'> + <Table id='USE_REMOTE' constraints='"USE_REMOTE"' fill='both'> <row> <cell> <JLabel text='observe.storage.useRemoteStorage.config'/> @@ -146,15 +119,13 @@ public void init() { </row> <row> <cell weighty='1' weightx='1'> - <JPanel id='USE_REMOTE_content' - minimumSize='{new Dimension(20,300)}'/> + <JPanel id='USE_REMOTE_content' minimumSize='{new Dimension(20,300)}'/> </cell> </row> </Table> <!-- configurer connexion au server base distante --> - <Table id='USE_SERVER' - constraints='"USE_SERVER"' fill='both'> + <Table id='USE_SERVER' constraints='"USE_SERVER"' fill='both'> <row> <cell> <JLabel text='observe.storage.useServerStorage.config'/> @@ -162,16 +133,14 @@ public void init() { </row> <row> <cell weighty='1' weightx='1'> - <JPanel id='USE_SERVER_content' - minimumSize='{new Dimension(20,300)}'/> + <JPanel id='USE_SERVER_content' minimumSize='{new Dimension(20,300)}'/> </cell> </row> </Table> <JPanel constraints='"$$hideme$$"' visible='false'> <JPanel id='remoteConfig'> - <Table constraints='BorderLayout.CENTER' - fill="both"> + <Table constraints='BorderLayout.CENTER' fill="both"> <row> <cell anchor='west'> <JLabel text='observe.storage.remote.url'/> @@ -201,8 +170,7 @@ public void init() { </row> <row> <cell anchor='west'> - <JLabel id="serverDataBaseLabel" - text='observe.storage.server.dataBase'/> + <JLabel id="serverDataBaseLabel" text='observe.storage.server.dataBase'/> </cell> <cell weightx='1' fill="both" anchor='east'> <JTextField id="serverDataBase" @@ -215,41 +183,6 @@ public void init() { onActionPerformed='getModel().setUseSsl(((JCheckBox)event.getSource()).isSelected())'/> </cell> </row> - <!--row weighty='1'--> - <!--row> - <cell columns='2'> - <Table insets='0'> - <row> - <cell weightx='1' - fill="horizontal"> - <JTextField - id="remoteSslCertificatFile" - onKeyReleased='getModel().setSslCertificatFile(new File(((JTextField)event.getSource()).getText()))'/> - </cell> - <cell anchor="east"> - <JButton - id="remoteSslCertificatFileChooseaction" - onActionPerformed="getHandler().chooseSslCertificatFile(this)"/> - </cell> - </row> - </Table> - </cell> - </row--> - <!--row> - <cell columns='2'> - <Table insets='0'> - <row> - <cell anchor='west'> - <JLabel text='observe.storage.remote.ssl.password'/> - </cell> - <cell weightx='1' fill="both" anchor='east'> - <JPasswordField id="remoteSslCertificatPassword" - onKeyReleased='getModel().setSslCertificatPassword(((JPasswordField)event.getSource()).getPassword())'/> - </cell> - </row> - </Table> - </cell> - </row--> <!-- sauver dans la configuration --> <row> @@ -261,14 +194,12 @@ public void init() { <!-- tester la connexion --> <row> <cell columns='2'> - <JButton id="testRemoteAction" - onActionPerformed='getModel().testRemote()'/> + <JButton id="testRemoteAction" onActionPerformed='getModel().testRemote()'/> </cell> </row> </Table> <!-- résumé du test de connexion --> - <Table constraints='BorderLayout.SOUTH' fill='both' - insets='0'> + <Table constraints='BorderLayout.SOUTH' fill='both' insets='0'> <row> <cell weightx='1' weighty='1'> <JScrollPane id="connexionStatusPanel"> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java index a49ba42..6c0739c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class CatchLonglineNavigationTreeNode extends ClassNavigationTreeNode<Cat public Class<CatchLonglineUI> getContentClass() { return CatchLonglineUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java index bcbbbd3..41cec82 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java @@ -250,8 +250,8 @@ public class SelectionTreeModel extends DefaultTreeTableModel { public ImmutableSet<Class<? extends ReferentialDto>> getSelectedReferentiel() { ImmutableSet.Builder<Class<? extends ReferentialDto>> builder = ImmutableSet.builder(); for (ReferentialsSelectionTreeNode programNode : getRoot().getReferentialsNodes()) { - if (!programNode.isLeaf()) { - ImmutableList<Class<? extends ReferentialDto>> selected = programNode.getSelected(); + ImmutableList<Class<? extends ReferentialDto>> selected = programNode.getSelected(); + if (!selected.isEmpty()) { builder.addAll(selected); } } @@ -261,8 +261,8 @@ public class SelectionTreeModel extends DefaultTreeTableModel { public Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> getSelectedDataByProgram() { ImmutableMap.Builder<ReferentialReference<ProgramDto>, List<DataReference<?>>> result = ImmutableMap.builder(); for (ProgramSelectionTreeNode programNode : getRoot()) { - if (!programNode.isLeaf()) { - ImmutableList<DataReference<?>> trips = programNode.getSelected(); + ImmutableList<DataReference<?>> trips = programNode.getSelected(); + if (!trips.isEmpty()) { result.put(programNode.getData(), trips); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 6804ee830bd419d64a2c416030cd8ed9319e5ed7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:20:11 2016 +0100 refs #8554 Ajout de logs sur le sql --- .../observe/application/swing/db/ObserveSwingDataSource.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java index 442d0fd..82182db 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java @@ -41,6 +41,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceType; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; @@ -58,17 +59,15 @@ import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseDestroyNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.LastUpdateDateService; -import fr.ird.observe.services.service.data.NavigationService; -import fr.ird.observe.services.service.referential.ObserveReferentialCache; import fr.ird.observe.services.service.PingService; -import fr.ird.observe.services.service.referential.ReferentialService; -import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; import fr.ird.observe.services.service.actions.report.ReportService; import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffService; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalService; import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeService; import fr.ird.observe.services.service.actions.validate.ValidateService; +import fr.ird.observe.services.service.data.NavigationService; +import fr.ird.observe.services.service.data.TripManagementService; import fr.ird.observe.services.service.data.longline.ActivityLongLineEncounterService; import fr.ird.observe.services.service.data.longline.ActivityLongLineSensorUsedService; import fr.ird.observe.services.service.data.longline.ActivityLonglineService; @@ -94,7 +93,9 @@ import fr.ird.observe.services.service.data.seine.TargetSampleService; import fr.ird.observe.services.service.data.seine.TransmittingBuoyOperationService; import fr.ird.observe.services.service.data.seine.TripSeineGearUseService; import fr.ird.observe.services.service.data.seine.TripSeineService; -import fr.ird.observe.services.service.data.TripManagementService; +import fr.ird.observe.services.service.referential.ObserveReferentialCache; +import fr.ird.observe.services.service.referential.ReferentialService; +import fr.ird.observe.services.service.sql.SqlScriptProducerService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractSerializableBean; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit e67fb0956d32a522ea32aa91c96ee243c64ddaa1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:21:14 2016 +0100 refs #8429 fix referential access --- .../nodes/referential/ReferentialNavigationTreeNode.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java index 9c37361..0126402 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/referential/ReferentialNavigationTreeNode.java @@ -23,7 +23,18 @@ public class ReferentialNavigationTreeNode<D extends ReferentialDto> extends Cla @Override public Class<? extends ContentUI<?, ?>> getContentClass() { - String className = String.format("fr.ird.observe.application.swing.ui.content.ref.impl.%sUI", StringUtils.removeEnd(getData().getSimpleName(), "Dto")); + String packageName = getData().getPackage().getName(); + String packagePrefix; + if (packageName.endsWith("longline")) { + packagePrefix = "longline."; + } else if (packageName.endsWith("seine")) { + packagePrefix = "seine."; + + } else { + packagePrefix = ""; + } + + String className = String.format("fr.ird.observe.application.swing.ui.content.ref.impl.%s%sUI", packagePrefix, StringUtils.removeEnd(getData().getSimpleName(), "Dto")); try { return (Class) Class.forName(className); } catch (ClassNotFoundException e) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 905a69b8081b6d43f275b6a7b4b497409b8b57ad Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:21:42 2016 +0100 [iso] clean code --- .../services/topia/ObserveServiceContextTopia.java | 46 +++++++--------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java index d6b7c6b..1995529 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceContextTopia.java @@ -28,21 +28,14 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceFactory; import fr.ird.observe.services.ObserveServiceInitializer; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConnectionTopia; import fr.ird.observe.services.dto.constants.ReferentialLocale; -import fr.ird.observe.services.topia.entity.EntitiesSetFactory; import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.attribute.FileAttribute; -import java.nio.file.attribute.PosixFilePermission; -import java.nio.file.attribute.PosixFilePermissions; import java.util.Date; import java.util.Locale; -import java.util.Set; /** * Contexte d'un service ToPIA. @@ -63,8 +56,6 @@ public class ObserveServiceContextTopia { protected ObserveTopiaApplicationContext topiaApplicationContext; - protected EntitiesSetFactory entitiesSetFactory; - public ObserveServiceContextTopia(ObserveServiceInitializer observeServiceInitializer, ObserveServiceFactory mainServiceFactory, ObserveServiceFactory serviceFactory) { @@ -109,13 +100,6 @@ public class ObserveServiceContextTopia { return new Date(); } - public EntitiesSetFactory getEntitiesSetFactory() { - if (entitiesSetFactory == null) { - entitiesSetFactory = new EntitiesSetFactory(observeServiceInitializer.getSpeciesListConfiguration()); - } - return entitiesSetFactory; - } - public <S extends ObserveService> S newService(Class<S> serviceType) { return serviceFactory.newService(observeServiceInitializer, serviceType); } @@ -142,19 +126,19 @@ public class ObserveServiceContextTopia { this.topiaPersistenceContext = topiaPersistenceContext; } - public void closeTopiaPersistenceContext() { - topiaPersistenceContext.close(); - topiaPersistenceContext = null; - } - - public File createTemporaryDirectory(String prefix) { - Set<PosixFilePermission> posixFilePermissions = PosixFilePermissions.fromString("rwxr-x---"); - FileAttribute<Set<PosixFilePermission>> fileAttribute = PosixFilePermissions.asFileAttribute(posixFilePermissions); - try { - return Files.createTempDirectory(getTemporaryDirectoryRoot().toPath(), prefix, fileAttribute).toFile(); - } catch (IOException e) { - throw new RuntimeException("Could not create temporary directory with preifx: " + prefix, e); - } - } +// public void closeTopiaPersistenceContext() { +// topiaPersistenceContext.close(); +// topiaPersistenceContext = null; +// } +// +// public File createTemporaryDirectory(String prefix) { +// Set<PosixFilePermission> posixFilePermissions = PosixFilePermissions.fromString("rwxr-x---"); +// FileAttribute<Set<PosixFilePermission>> fileAttribute = PosixFilePermissions.asFileAttribute(posixFilePermissions); +// try { +// return Files.createTempDirectory(getTemporaryDirectoryRoot().toPath(), prefix, fileAttribute).toFile(); +// } catch (IOException e) { +// throw new RuntimeException("Could not create temporary directory with preifx: " + prefix, e); +// } +// } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm