mailman.cloud.codelutin.com
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Observe-commits

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2013 -----
  • December
  • November
  • October
  • September
observe-commits@list.forge.codelutin.com

  • 7199 discussions
[Git][ultreiaio/ird-observe][develop-7.x] [SYNCHRO AVANCEE] Double connexion à la même base - Closes #1441
by Tony CHEMIT 19 Feb '20

19 Feb '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: d986e1a1 by tchemit at 2020-02-19T16:40:58+01:00 [SYNCHRO AVANCEE] Double connexion à la même base - Closes #1441 - - - - - 2 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java ===================================== @@ -333,17 +333,12 @@ public class ConfigModel extends AdminActionModel { if (validate && uiModel.containsOperation(AdminStep.REFERENTIAL_SYNCHRONIZE)) { - // les deux bases (source et referentiel) doivent etre different - validate = validateNotSameDataSources(); - ObserveDataSourceInformation leftDataSourceInformation = getLocalSourceInformation(); if (leftDataSourceInformation == null) { return false; } if (!(leftDataSourceInformation.canReadReferential())) { - if (log.isDebugEnabled()) { - log.debug("can not read and write referential on left data source"); - } + log.info("can not read and write referential on left data source"); return false; } @@ -353,12 +348,16 @@ public class ConfigModel extends AdminActionModel { } if (!(rightDataSourceInformation.canReadReferential())) { - if (log.isDebugEnabled()) { - log.debug("can not read and write referential on right data source"); - } + log.info("can not read and write referential on right data source"); return false; } + // les deux bases (source et referentiel) doivent etre different + validate = validateNotSameDataSources(); + if (!validate) { + log.info("Data sources are equals!"); + return false; + } ReferentialSynchronizeMode synchronizeMode = uiModel.getReferentialSynchroModel().getSynchronizeMode(); if (synchronizeMode == null) { return false; ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java ===================================== @@ -366,4 +366,6 @@ public class ReferentialSynchroModel extends AdminActionModel { setShowProperties(true); ((ReferentialSynchroUI)ui.getStepUI(AdminStep.REFERENTIAL_SYNCHRONIZE)).getApplyAction().setEnabled(false); } + + } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/d986e1a1e24001f7e61b1d817… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/d986e1a1e24001f7e61b1d817… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] 2 commits: [SYNCHRO AVANCEE] Lorsqu'aucune action de synchro n'est empilée, 'Appliquer'...
by Tony CHEMIT 19 Feb '20

19 Feb '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: c60939d4 by tchemit at 2020-02-19T16:19:50+01:00 [SYNCHRO AVANCEE] Lorsqu&#39;aucune action de synchro n&#39;est empilée, &#39;Appliquer&#39; devrait être inactif - Closes #1444 - - - - - cecddb82 by tchemit at 2020-02-19T16:24:36+01:00 [SYNCHRO AVANCEE] Fonctionnement des sélections - Closes #1440 - - - - - 3 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/action/RegisterTasksActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/tree/ReferentialSelectionTree.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java ===================================== @@ -364,5 +364,6 @@ public class ReferentialSynchroModel extends AdminActionModel { setSynchronizeMode(ReferentialSynchronizeMode.FROM_LEFT_TO_RIGHT); setShowProperties(true); + ((ReferentialSynchroUI)ui.getStepUI(AdminStep.REFERENTIAL_SYNCHRONIZE)).getApplyAction().setEnabled(false); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/action/RegisterTasksActionSupport.java ===================================== @@ -226,6 +226,9 @@ public abstract class RegisterTasksActionSupport extends ObserveActionSupport { treeModel.removeReferenceNodes(removedNodes); ui.getStepModel().getTasks().addTasks(addedTasks); + if (!ui.getStepModel().getTasks().isEmpty()) { + ui.getApplyAction().setEnabled(true); + } } protected Collection<ReferenceReferentialSynchroNodeSupport> getReferenceReferentialSynchroNodes(Predicate<ReferenceReferentialSynchroNodeSupport> predicate) { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/tree/ReferentialSelectionTree.java ===================================== @@ -120,9 +120,7 @@ public class ReferentialSelectionTree extends JXTree { ReferentialSynchroNodeSupport node = (ReferentialSynchroNodeSupport) lastPathComponent; boolean newValue = !node.isSelected(); log.info(String.format("Node: %s - new selected value: %s", node, newValue)); - node.setSelected(newValue); - getModel().valueForPathChanged(path, node.getUserObject()); - updateActions(); + getTreeModel().setValueAt(node, newValue); } } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/0016aa37b80bf3e0f89720d8… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/0016aa37b80bf3e0f89720d8… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] 3 commits: Go to version 7.4.0 (and change model version)
by Tony CHEMIT 18 Feb '20

18 Feb '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 53375524 by tchemit at 2020-02-18T11:58:26+01:00 Go to version 7.4.0 (and change model version) - - - - - eea99bdc by tchemit at 2020-02-18T12:09:58+01:00 [V7-V8] Ajustement du modèle - Part 1 - See #1438 - - - - - 0016aa37 by tchemit at 2020-02-18T16:49:12+01:00 [V7-V8] Ajustement du modèle - Part 3 - Closes #1438 - - - - - 30 changed files: - client-configuration/pom.xml - client-configuration/src/main/config/Client.ini - client-core/pom.xml - client-core/src/main/i18n/getters/java.getter - client-core/src/main/i18n/getters/jaxx.getter - client-core/src/main/java/fr/ird/observe/client/ui/actions/main/menu/config/ShowConfigAction.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIModel.java - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/common/ProgramUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/common/ProgramUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/common/ProgramUIModel.java - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/HealthnessUI.jaxx → client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/HealthStatusUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/HealthnessUIHandler.java → client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/HealthStatusUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/HealthnessUIModel.java → client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/HealthStatusUIModel.java - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/StomacFullnessUI.jaxx → client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/StomachFullnessUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/StomacFullnessUIHandler.java → client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/StomachFullnessUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/StomacFullnessUIModel.java → client-core/src/main/java/fr/ird/observe/client/ui/content/ref/longline/StomachFullnessUIModel.java - client-runner/pom.xml - dto/pom.xml - dto/src/main/i18n/getters/eugene.getter - dto/src/main/java/fr/ird/observe/binder/referential/longline/HealthnessDtoReferenceBinder.java → dto/src/main/java/fr/ird/observe/binder/referential/longline/HealthStatusDtoReferenceBinder.java - dto/src/main/java/fr/ird/observe/binder/referential/longline/StomacFullnessDtoReferenceBinder.java → dto/src/main/java/fr/ird/observe/binder/referential/longline/StomachFullnessDtoReferenceBinder.java - dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java - dto/src/main/java/fr/ird/observe/spi/DtoModelClasses.java - dto/src/main/models/Observe.model - observe-i18n/pom.xml - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/ec7af112eda9d89493e8ccb3… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/ec7af112eda9d89493e8ccb3… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 3 commits: [V7-V8] Ajustement du modèle - Part 1 - See #1438
by Tony CHEMIT 18 Feb '20

18 Feb '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 0ff6521a by tchemit at 2020-02-18T12:10:35+01:00 [V7-V8] Ajustement du modèle - Part 1 - See #1438 - - - - - 7aab79f2 by tchemit at 2020-02-18T12:38:04+01:00 [V7-V8] Ajustement du modèle - Part 2 - See #1438 - - - - - dfc54d99 by tchemit at 2020-02-18T19:30:23+01:00 [V7-V8] Ajustement du modèle - Part 3 - Closes #1438 - - - - - 30 changed files: - client-configuration/src/main/config/Client.ini - client-core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java - client-datasource-editor-common/src/main/i18n/getters/jaxx.getter - client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/common/ProgramUI.jaxx - client-datasource-editor-ll/src/main/i18n/getters/java.getter - client-datasource-editor-ll/src/main/i18n/getters/jaxx.getter - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/logbook/CatchUI.jaxx - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/logbook/CatchUIHandler.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/logbook/CatchUIModel.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/CatchUI.jaxx - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/CatchUIHandler.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/CatchUIModel.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/TdrUI.jaxx - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/TdrUIHandler.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/TdrUIModel.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/common/HealthnessUI.jaxx → client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/common/HealthStatusUI.jaxx - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/common/HealthnessUIHandler.java → client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/common/HealthStatusUIHandler.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/common/HealthnessUIModel.java → client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/common/HealthStatusUIModel.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/observation/StomacFullnessUI.jaxx → client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/observation/StomachFullnessUI.jaxx - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/observation/StomacFullnessUIHandler.java → client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/observation/StomachFullnessUIHandler.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/observation/StomacFullnessUIModel.java → client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/ll/observation/StomachFullnessUIModel.java - dto/src/main/i18n/getters/eugene.getter - dto/src/main/java/fr/ird/observe/dto/ProtectedIds.java - dto/src/main/java/fr/ird/observe/dto/decoration/init/ReferentialLlCommonModelDecoratorInitializer.java - dto/src/main/java/fr/ird/observe/dto/decoration/init/ReferentialLlObservationModelDecoratorInitializer.java - dto/src/main/java/fr/ird/observe/spi/DtoModelClasses.java - dto/src/main/models/Observe-01-referential-common.model - dto/src/main/models/Observe-10-referential-ll-common.model - dto/src/main/models/Observe-11-referential-ll-observation.model - dto/src/main/models/Observe-20-data-ps-observation.model The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/f8e27c3845e212f11957a933… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/f8e27c3845e212f11957a933… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 5 commits: Possibilité de décider, lors de la mise à jour d'une référence, des champs que...
by Tony CHEMIT 18 Feb '20

18 Feb '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 911f9573 by tchemit at 2020-02-17T10:10:31+01:00 Possibilité de décider, lors de la mise à jour d&#39;une référence, des champs que l&#39;on veut voir pris en compte dans la synchronisation - Closes #1329 - - - - - a653b87d by tchemit at 2020-02-17T10:21:23+01:00 clean code - - - - - 4dc0124b by tchemit at 2020-02-17T15:15:58+01:00 clean code - - - - - 04ec05db by tchemit at 2020-02-17T17:23:49+01:00 add validation tag value and model then generate validators - - - - - f8e27c38 by tchemit at 2020-02-18T02:57:45+01:00 S&#39;assurer de la compatibilité de ObServe 8 avec Java 10 - Closes #1152 - - - - - 30 changed files: - .gitlab-ci.yml - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/ReferentialSynchroUIActionSupport.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/RegisterTasksActionSupport.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/Start.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSynchronizeTreeModelsBuilder.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/tree/navigation/NavigationTree.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/tree/selection/SelectionTreeModel.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/tree/selection/nodes/ProgramSelectionTreeNode.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/tree/selection/nodes/ReferenceSelectionTreeNodeSupport.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/tree/selection/nodes/RootSelectionTreeNode.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/tree/selection/nodes/SelectionTreeNodeSupport.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SetDetailCompositionUIHandler.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SetDetailCompositionUIValidationHelper.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SetDetailCompositionValidationContext.java - client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SetDetailCompositionValidatorService.java - client-runner/src/test/java/fr/ird/observe/client/longline/SetDetailCompositionValidatorServiceTest.java - dto/src/main/models/Observe-01-referential-common.model - dto/src/main/models/Observe-03-referential-ps-observation.model - dto/src/main/models/Observe-11-referential-ll-observation.model - dto/src/main/models/Observe-20-data-ps-observation.model - dto/src/main/models/Observe-25-data-ps.model - dto/src/main/models/Observe-30-data-ll-observation.model - dto/src/main/models/Observe-31-data-ll-logbook.model - dto/src/main/models/Observe-32-data-ll-landing.model - dto/src/main/models/Observe-35-data-ll.model - persistence/pom.xml - pom.xml - server-core/pom.xml - services-local/pom.xml - services-local/src/test/java/fr/ird/observe/services/local/service/actions/validate/ValidateServiceLocalTest.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/3d6870bcda119f4c554e825b… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/3d6870bcda119f4c554e825b… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] add validation tag value and model then generate validators
by Tony CHEMIT 17 Feb '20

17 Feb '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: ec7af112 by tchemit at 2020-02-17T17:37:29+01:00 add validation tag value and model then generate validators - - - - - 30 changed files: - dto/src/main/models/Observe.model - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties - pom.xml - services-local/src/test/java/fr/ird/observe/services/local/service/actions/validate/ValidateServiceLocalTest.java - test/src/main/java/fr/ird/observe/test/ObserveFixtures.java - validation/src/main/i18n/getters/validation-fields.getter - validation/src/main/i18n/getters/validation-messages.getter - validation/src/main/resources/fr/ird/observe/dto/data/longline/ActivityLonglineDto-create-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/ActivityLonglineDto-create-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/ActivityLonglineDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/ActivityLonglineDto-update-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/BaitsCompositionDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/BranchlineDto-update-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/BranchlinesCompositionDto-update-error-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/CatchLonglineDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/EncounterDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/EncounterDto-update-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/FloatlinesCompositionDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/GearUseFeaturesLonglineDto-update-error-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/HooksCompositionDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/SensorUsedDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/SensorUsedDto-update-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/SetLonglineDto-create-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/SetLonglineDto-create-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/SetLonglineDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/SetLonglineDto-update-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/TripLonglineDto-create-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/TripLonglineDto-create-warning-validation.xml The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/ec7af112eda9d89493e8ccb33… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/ec7af112eda9d89493e8ccb33… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] 5 commits: always copy config files to user resources directory if using snapshot version
by Tony CHEMIT 16 Feb '20

16 Feb '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: df67be05 by tchemit at 2020-02-13T17:30:29+01:00 always copy config files to user resources directory if using snapshot version - - - - - 19a17531 by tchemit at 2020-02-14T13:06:15+01:00 Possibilité de décider, lors de la mise à jour d&#39;une référence, des champs que l&#39;on veut voir pris en compte dans la synchronisation - Closes #1329 - - - - - 2a5be643 by tchemit at 2020-02-14T14:07:10+01:00 rename templates module in toolkit project - - - - - 2a7ac485 by tchemit at 2020-02-16T21:57:46+01:00 clean code - - - - - bec96a2a by tchemit at 2020-02-16T21:58:24+01:00 add validation tag value and model then generate validators - - - - - 30 changed files: - client-core/src/main/java/fr/ird/observe/client/ObserveRunner.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/action/RegisterTasksActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/tree/ReferentialSynchronizeTreeModelsBuilder.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIValidationHelper.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionValidatorService.java - client-runner/src/test/java/fr/ird/observe/client/simple/longline/LonglineDetailCompositionValidatorServiceTest.java - dto/pom.xml - dto/src/main/models/Observe.model - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties - persistence/pom.xml - pom.xml - services-local/src/test/java/fr/ird/observe/services/local/service/actions/validate/ValidateServiceLocalTest.java - services/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/diff/ReferentialSynchronizeDiffState.java - test/src/main/java/fr/ird/observe/test/ObserveFixtures.java - validation/pom.xml - validation/src/main/i18n/getters/validation-fields.getter - validation/src/main/i18n/getters/validation-messages.getter - validation/src/main/resources/fr/ird/observe/dto/data/longline/ActivityLonglineDto-create-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/ActivityLonglineDto-create-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/ActivityLonglineDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/ActivityLonglineDto-update-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/BaitsCompositionDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/BranchlineDto-update-warning-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/BranchlinesCompositionDto-update-error-validation.xml - validation/src/main/resources/fr/ird/observe/dto/data/longline/CatchLonglineDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/EncounterDto-update-error-validation.xml - − validation/src/main/resources/fr/ird/observe/dto/data/longline/EncounterDto-update-warning-validation.xml The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/26c6cb5ee9da5ddaca49ac19… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/26c6cb5ee9da5ddaca49ac19… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] Petit problème sur déplacement d'activité - Closes #1435
by Tony CHEMIT 13 Feb '20

13 Feb '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 26c6cb5e by tchemit at 2020-02-13T16:20:50+01:00 Petit problème sur déplacement d&#39;activité - Closes #1435 - - - - - 14 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglineUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglinesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeineUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeinesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveMultipleDataUIActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRouteUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRoutesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveSingleDataUIActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripSeinesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripsUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTree.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeModel.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglineUIAction.java ===================================== @@ -25,14 +25,10 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.client.ui.tree.navigation.nodes.longline.TripLonglineNavigationTreeNode; -import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.longline.ActivityLonglineDto; import fr.ird.observe.dto.data.longline.TripLonglineReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; -import javax.swing.JOptionPane; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -60,7 +56,7 @@ public class MoveActivityLonglineUIAction extends MoveSingleDataUIActionSupport } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewTripLongline(mainUI, oldParentNode); } @@ -76,44 +72,21 @@ public class MoveActivityLonglineUIAction extends MoveSingleDataUIActionSupport } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - NavigationTreeNodeSupport tripLonglineNode = treeHelper.getChild(grandParentNode, newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class); - return treeHelper.getChild(tripLonglineNode, activitiesNodeId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId); + return parentNode.findChildByClass(ActivityLonglineDto.class); } - static Optional<String> chooseNewTripLongline(ObserveMainUI ui, NavigationTreeNodeSupport oldParentNode) { + static Optional<String> chooseNewTripLongline(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { - NavigationTreeNodeSupport programNode = oldParentNode.getParent(); - String oldTripLonglineId = oldParentNode.getId(); - int tripLonglineNb = programNode.getChildCount(); + NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent(); + String oldId = oldParentNode.getId(); ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); DataReferenceDecorator<TripLonglineReference> decorator = applicationContext.getDecoratorService().getDataReferenceDecorator(TripLonglineReference.class); - //on crée un tableau avec une marée en moins car on ne propose pas la marée actuelle - DecoratedNodeEntity[] decoratedTripLonglines = new DecoratedNodeEntity[tripLonglineNb - 1]; - - int j = 0; - for (int i = 0; i < tripLonglineNb; i++) { - - TripLonglineNavigationTreeNode tripLonglineNode = (TripLonglineNavigationTreeNode) programNode.getChildAt(i); - - String tripLonglineId = tripLonglineNode.getId(); - - if (!oldTripLonglineId.equals(tripLonglineId)) { - decoratedTripLonglines[j++] = DecoratedNodeEntity.newDecoratedNodeEntity(tripLonglineNode, decorator); - } - } - - Object decoratedTripLongline = JOptionPane.showInputDialog(ui, - t("observe.action.choose.tripLongline.message"), - t("observe.action.choose.tripLongline.title"), - JOptionPane.QUESTION_MESSAGE, - null, - decoratedTripLonglines, - null); - return Optional.ofNullable(decoratedTripLongline != null ? ((DecoratedNodeEntity) decoratedTripLongline).getId() : null); + return chooseCandidate(mainUI, grandParentNode, oldId, decorator, t("observe.action.choose.tripLongline.message"), + t("observe.action.choose.tripLongline.title")); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglinesUIAction.java ===================================== @@ -29,9 +29,9 @@ import fr.ird.observe.client.ui.content.data.longline.ActivityLonglinesUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.longline.ActivityLonglineDto; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import java.util.List; +import java.util.Objects; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -64,22 +64,21 @@ public class MoveActivityLonglinesUIAction extends MoveMultipleDataUIActionSuppo } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveActivityLonglineUIAction.chooseNewTripLongline(getMainUI(), oldParentNode); } @Override - void updateUI(ActivityLonglinesUI ui, NavigationTreeNodeSupport oldActivitiesNode, String tripLonglineId, ImmutableSet<String> activityIds, List<Integer> positions) { + void updateUI(ActivityLonglinesUI ui, NavigationTreeNodeSupport<?> oldActivitiesNode, String tripLonglineId, ImmutableSet<String> activityIds, List<Integer> positions) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport oldTripLonglineNode = oldActivitiesNode.getParent(); - NavigationTreeNodeSupport programNode = oldTripLonglineNode.getParent(); - NavigationTreeNodeSupport newTripLonglineNode = treeHelper.getChild(programNode, tripLonglineId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class); - NavigationTreeNodeSupport newActivitiesNode = treeHelper.getChild(newTripLonglineNode, activitiesNodeId); + NavigationTreeNodeSupport<?> oldTripLonglineNode = Objects.requireNonNull(oldActivitiesNode.getParent()); + NavigationTreeNodeSupport<?> programNode = Objects.requireNonNull(oldTripLonglineNode.getParent()); + NavigationTreeNodeSupport<?> newTripLonglineNode = Objects.requireNonNull(programNode.findChildById(tripLonglineId)); + NavigationTreeNodeSupport<?> newActivitiesNode = Objects.requireNonNull(newTripLonglineNode.findChildByClass(ActivityLonglineDto.class)); // Let's check if we're moving an open activity Optional<String> openActivity = activityIds @@ -93,7 +92,7 @@ public class MoveActivityLonglinesUIAction extends MoveMultipleDataUIActionSuppo // 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); - treeHelper.reloadNodeSubTree(newActivitiesNode); + treeHelper.reloadNodeSubTree(newActivitiesNode, true); // Let's put the focus on the activities node which received the activities treeHelper.selectSafeNode(newActivitiesNode); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeineUIAction.java ===================================== @@ -25,14 +25,10 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.client.ui.tree.navigation.nodes.seine.RouteSeineNavigationTreeNode; -import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.seine.ActivitySeineDto; import fr.ird.observe.dto.data.seine.RouteReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; -import javax.swing.JOptionPane; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -60,7 +56,7 @@ public class MoveActivitySeineUIAction extends MoveSingleDataUIActionSupport { } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewRoute(mainUI, oldParentNode); } @@ -75,45 +71,21 @@ public class MoveActivitySeineUIAction extends MoveSingleDataUIActionSupport { } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - NavigationTreeNodeSupport routeNode = treeHelper.getChild(grandParentNode, newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); - return treeHelper.getChild(routeNode, activitiesNodeId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId); + return parentNode.findChildByClass( ActivitySeineDto.class); } - static Optional<String> chooseNewRoute(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + static Optional<String> chooseNewRoute(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { - NavigationTreeNodeSupport routesNode = oldParentNode.getParent(); - String oldRouteId = oldParentNode.getId(); - int routeNb = routesNode.getChildCount(); + NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent(); + String oldId = oldParentNode.getId(); ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); DataReferenceDecorator<RouteReference> decorator = applicationContext.getDecoratorService().getDataReferenceDecorator(RouteReference.class); - //on crée un tableau avec une route en moins car on ne propose pas la route actuel - DecoratedNodeEntity[] decoratedRoutes = new DecoratedNodeEntity[routeNb - 1]; - - int j = 0; - for (int i = 0; i < routeNb; i++) { - - RouteSeineNavigationTreeNode routeNode = (RouteSeineNavigationTreeNode) routesNode.getChildAt(i); - - String routeId = routeNode.getId(); - - if (!oldRouteId.equals(routeId)) { - decoratedRoutes[j++] = DecoratedNodeEntity.newDecoratedNodeEntity(routeNode, decorator); - } - } - - Object decoratedRoute = JOptionPane.showInputDialog(mainUI, - t("observe.action.choose.route.message"), - t("observe.action.choose.route.title"), - JOptionPane.QUESTION_MESSAGE, - null, - decoratedRoutes, - null); - - return Optional.ofNullable(decoratedRoute != null ? ((DecoratedNodeEntity) decoratedRoute).getId() : null); + return chooseCandidate(mainUI, grandParentNode, oldId, decorator, t("observe.action.choose.route.message"), + t("observe.action.choose.route.title")); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeinesUIAction.java ===================================== @@ -29,9 +29,9 @@ import fr.ird.observe.client.ui.content.data.seine.ActivitySeinesUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.seine.ActivitySeineDto; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import java.util.List; +import java.util.Objects; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -59,7 +59,7 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveActivitySeineUIAction.chooseNewRoute(getMainUI(), oldParentNode); } @@ -69,17 +69,16 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< } @Override - void updateUI(ActivitySeinesUI ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { + void updateUI(ActivitySeinesUI ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport oldRouteNode = oldParentNode.getParent(); - NavigationTreeNodeSupport routesNode = oldRouteNode.getParent(); - NavigationTreeNodeSupport newRouteNode = treeHelper.getChild(routesNode, newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); - NavigationTreeNodeSupport newActivitiesNode = treeHelper.getChild(newRouteNode, activitiesNodeId); + NavigationTreeNodeSupport<?> oldRouteNode = Objects.requireNonNull(oldParentNode.getParent()); + NavigationTreeNodeSupport<?> routesNode = Objects.requireNonNull(oldRouteNode.getParent()); + NavigationTreeNodeSupport<?> newRouteNode = Objects.requireNonNull(routesNode.findChildById(newParentId)); + NavigationTreeNodeSupport<?> newActivitiesNode = Objects.requireNonNull(newRouteNode.findChildByClass(ActivitySeineDto.class)); // Let's check if we're moving an open activity Optional<String> openActivity = dataIds @@ -93,7 +92,7 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< // 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(oldParentNode); - treeHelper.reloadNodeSubTree(newActivitiesNode); + treeHelper.reloadNodeSubTree(newActivitiesNode, true); // Let's put the focus on the activities node which received the activities treeHelper.selectSafeNode(newActivitiesNode); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveMultipleDataUIActionSupport.java ===================================== @@ -73,9 +73,9 @@ public abstract class MoveMultipleDataUIActionSupport<U extends ContentListUI<?, @SuppressWarnings("unchecked") U ui = (U) ui1; NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport oldParentNode = node.getParent().isRoot() ? node : node.getParent(); + NavigationTreeNodeSupport<?> oldParentNode = node.getParent().isRoot() ? node : node.getParent(); Optional<String> optionalNewParentId = getNewParentId(getMainUI(), oldParentNode); @@ -90,10 +90,10 @@ public abstract class MoveMultipleDataUIActionSupport<U extends ContentListUI<?, } - abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode); + abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode); abstract List<Integer> moveData(ImmutableSet<String> dataIds, String newParentId); - abstract void updateUI(U ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions); + abstract void updateUI(U ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions); } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRouteUIAction.java ===================================== @@ -25,14 +25,10 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.client.ui.tree.navigation.nodes.seine.TripSeineNavigationTreeNode; -import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.seine.RouteDto; import fr.ird.observe.dto.data.seine.TripSeineReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; -import javax.swing.JOptionPane; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -60,7 +56,7 @@ public class MoveRouteUIAction extends MoveSingleDataUIActionSupport { } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewTripSeine(mainUI, oldParentNode); } @@ -75,43 +71,20 @@ public class MoveRouteUIAction extends MoveSingleDataUIActionSupport { } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - NavigationTreeNodeSupport tripNode = treeHelper.getChild(grandParentNode, newParentId); - String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); - return treeHelper.getChild(tripNode, routesNodeId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId); + return parentNode.findChildByClass(RouteDto.class); } - static Optional<String> chooseNewTripSeine(ObserveMainUI mainUI, NavigationTreeNodeSupport oldTripSeineNode) { - NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent(); - String oldTripSeineId = oldTripSeineNode.getId(); - int tripSeineNb = programNode.getChildCount(); + static Optional<String> chooseNewTripSeine(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { + NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent(); + String oldId = oldParentNode.getId(); ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); DataReferenceDecorator<TripSeineReference> decorator = applicationContext.getDecoratorService().getDataReferenceDecorator(TripSeineReference.class); - //on crée un tableau avec une marée en moins car on ne propose pas la marée actuel - DecoratedNodeEntity[] decoratedTripSeines = new DecoratedNodeEntity[tripSeineNb - 1]; - - int j = 0; - for (int i = 0; i < tripSeineNb; i++) { - - TripSeineNavigationTreeNode tripSeineNode = (TripSeineNavigationTreeNode) programNode.getChildAt(i); - - String tripSeineId = tripSeineNode.getId(); - - if (!oldTripSeineId.equals(tripSeineId)) { - decoratedTripSeines[j++] = DecoratedNodeEntity.newDecoratedNodeEntity(tripSeineNode, decorator); - } - } - - Object decoratedTripSeine = JOptionPane.showInputDialog(mainUI, - t("observe.action.choose.tripSeine.message"), - t("observe.action.choose.tripSeine.title"), - JOptionPane.QUESTION_MESSAGE, - null, - decoratedTripSeines, - null); - return Optional.ofNullable(decoratedTripSeine != null ? ((DecoratedNodeEntity) decoratedTripSeine).getId() : null); + return chooseCandidate(mainUI, grandParentNode, oldId, decorator, t("observe.action.choose.tripSeine.message"), + t("observe.action.choose.tripSeine.title")); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRoutesUIAction.java ===================================== @@ -28,9 +28,9 @@ import fr.ird.observe.client.ui.content.data.seine.RoutesUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.seine.RouteDto; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import java.util.List; +import java.util.Objects; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -58,7 +58,7 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveRouteUIAction.chooseNewTripSeine(getMainUI(), oldParentNode); } @@ -69,16 +69,15 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI @Override - void updateUI(RoutesUI ui, NavigationTreeNodeSupport oldRoutesNode, String tripSeineId, ImmutableSet<String> routeIds, List<Integer> positions) { + void updateUI(RoutesUI ui, NavigationTreeNodeSupport<?> oldRoutesNode, String tripSeineId, ImmutableSet<String> routeIds, List<Integer> positions) { ObserveOpenDataManager openDataManager = getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport oldTripSeineNode = oldRoutesNode.getParent(); - NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent(); - NavigationTreeNodeSupport newTripSeineNode = treeHelper.getChild(programNode, tripSeineId); - String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); - NavigationTreeNodeSupport newRoutesNode = treeHelper.getChild(newTripSeineNode, routesNodeId); + NavigationTreeNodeSupport<?> oldTripSeineNode = Objects.requireNonNull(oldRoutesNode.getParent()); + NavigationTreeNodeSupport<?> programNode = Objects.requireNonNull(oldTripSeineNode.getParent()); + NavigationTreeNodeSupport<?> newTripSeineNode = Objects.requireNonNull(programNode.findChildById(tripSeineId)); + NavigationTreeNodeSupport<?> newRoutesNode = Objects.requireNonNull(newTripSeineNode.findChildByClass(RouteDto.class)); // Let's check if we're moving an open route Optional<String> openRoute = routeIds @@ -92,7 +91,7 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI // 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); - treeHelper.reloadNodeSubTree(newRoutesNode); + treeHelper.reloadNodeSubTree(newRoutesNode, true); // 1. Select the newRoutesNode : // only a selected node can be reloaded (@see fr.ird.observe.client.ui.tree.ObserveTreeBridge.canLoadChild). ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveSingleDataUIActionSupport.java ===================================== @@ -28,10 +28,18 @@ import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.actions.UIActionSupport; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.client.ui.util.DecoratedNodeEntity; +import fr.ird.observe.dto.decoration.decorators.ObserveDecorator; +import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; import java.util.Optional; +import java.util.function.Predicate; /** * Created by tchemit on 12/06/17. @@ -52,22 +60,22 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { public final void actionPerformed(ActionEvent e) { NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport oldParentNode = node.getParent().getParent().equals(node.getRoot()) ? node.getParent() : node.getParent().getParent(); + NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport<?> oldParentNode = node.getParent().getParent().equals(node.getRoot()) ? node.getParent() : node.getParent().getParent(); Optional<String> optionalNewParentId = getNewParentId(getMainUI(), oldParentNode); optionalNewParentId.ifPresent(newParentId -> SwingUtilities.invokeLater(() -> apply(oldParentNode, node.getId(), newParentId))); } - abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode); + abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode); - private void apply(NavigationTreeNodeSupport oldParentNode, String dataId, String newParentId) { + private void apply(NavigationTreeNodeSupport<?> oldParentNode, String dataId, String newParentId) { NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport grandParentNode = oldParentNode.getParent(); - NavigationTreeNodeSupport newParentNode = getNewParentNode(treeHelper, grandParentNode, newParentId); + NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent(); + NavigationTreeNodeSupport<?> newParentNode = getNewParentNode(treeHelper, grandParentNode, newParentId); closeNode(node.getId()); @@ -77,7 +85,7 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { treeHelper.removeNode(node); - NavigationTreeNodeSupport newNode = treeHelper.getChild(newParentNode, dataId); + NavigationTreeNodeSupport<?> newNode = treeHelper.getChild(newParentNode, dataId); if (newNode == null) { @@ -95,5 +103,38 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { abstract void closeNode(String dataId); - abstract NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId); + abstract NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId); + + static Optional<String> chooseCandidate(ObserveMainUI mainUI, + NavigationTreeNodeSupport<?> grandParentNode, + String oldId, + ObserveDecorator<?> decorator, + String title, + String message) { + return chooseCandidate(mainUI, grandParentNode, decorator, title, message, n -> n instanceof ReferenceNavigationTreeNodeSupport<?, ?> && !oldId.equals(n.getId())); + } + + static Optional<String> chooseCandidate(ObserveMainUI mainUI, + NavigationTreeNodeSupport<?> grandParentNode, + ObserveDecorator<?> decorator, + String title, + String message, + Predicate<NavigationTreeNodeSupport<?>> filter) { + List<DecoratedNodeEntity> candidateList = new ArrayList<>(); + Enumeration<?> children = grandParentNode.children(); + while (children.hasMoreElements()) { + NavigationTreeNodeSupport<?> candidateNode = (NavigationTreeNodeSupport<?>) children.nextElement(); + if (filter.test(candidateNode)) { + candidateList.add(DecoratedNodeEntity.newDecoratedNodeEntity((ReferenceNavigationTreeNodeSupport<?, ?>) candidateNode, decorator)); + } + } + DecoratedNodeEntity selectedEntity = (DecoratedNodeEntity) JOptionPane.showInputDialog(mainUI, + title, + message, + JOptionPane.QUESTION_MESSAGE, + null, + candidateList.toArray(new DecoratedNodeEntity[0]), + null); + return Optional.ofNullable(selectedEntity).map(DecoratedNodeEntity::getId); + } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripSeinesUIAction.java ===================================== @@ -54,7 +54,7 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeinesUI> { @Override protected void updateModelData(TripSeinesUI ui) { TripSeinesUIModel model = ui.getModel(); - List<TripSeineReference> data = new ArrayList(model.getData()); + List<TripSeineReference> data = new ArrayList<>(model.getData()); data.removeAll(model.getSelectedDatas()); model.setData(data); } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripUIAction.java ===================================== @@ -25,17 +25,14 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.client.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; import fr.ird.observe.client.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; -import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.IdHelper; import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; import fr.ird.observe.dto.referential.GearType; import fr.ird.observe.dto.referential.ProgramReference; -import javax.swing.JOptionPane; -import java.util.ArrayList; -import java.util.List; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.t; @@ -65,7 +62,7 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewProgram(mainUI, gearType, oldParentNode.getId()); } @@ -88,58 +85,31 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - return treeHelper.getChild(grandParentNode, newParentId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + return grandParentNode.findChildById(newParentId); } - static Optional<String> chooseNewProgram(ObserveMainUI mainUI, GearType gearType, String oldProgramId) { + static Optional<String> chooseNewProgram(ObserveMainUI mainUI, GearType gearType, String oldId) { NavigationTree treeHelper = mainUI.getNavigationUI().getTree(); // racine - NavigationTreeNodeSupport rootNode = treeHelper.getRootNode(); - - //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel - List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>(); - - ReferentialReferenceDecorator<ProgramReference> programDecorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferentialReferenceDecorator(ProgramReference.class); - - for (int i = 0, n = rootNode.getChildCount(); i < n; 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 (programId != null && IdHelper.isProgramId(programId) && !oldProgramId.equals(programId)) { - - if (programNode instanceof ProgramSeineNavigationTreeNode && GearType.seine == gearType) { - - ProgramSeineNavigationTreeNode node = (ProgramSeineNavigationTreeNode) programNode; - decoratedProgramList.add(DecoratedNodeEntity.newDecoratedNodeEntity(node, programDecorator)); - - } else if (programNode instanceof ProgramLonglineNavigationTreeNode && GearType.longline == gearType) { - - ProgramLonglineNavigationTreeNode node = (ProgramLonglineNavigationTreeNode) programNode; - decoratedProgramList.add(DecoratedNodeEntity.newDecoratedNodeEntity(node, programDecorator)); - - } - - } - } - - DecoratedNodeEntity[] decoratedPrograms = - decoratedProgramList.toArray(new DecoratedNodeEntity[0]); - - DecoratedNodeEntity decoratedProgram = (DecoratedNodeEntity) JOptionPane.showInputDialog(mainUI, - t("observe.action.choose.program.message"), - t("observe.action.choose.program.title"), - JOptionPane.QUESTION_MESSAGE, - null, - decoratedPrograms, - null); - - return Optional.ofNullable(decoratedProgram == null ? null : decoratedProgram.getId()); + NavigationTreeNodeSupport<?> grandParentNode = treeHelper.getRootNode(); + + ReferentialReferenceDecorator<ProgramReference> decorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferentialReferenceDecorator(ProgramReference.class); + + return chooseCandidate(mainUI, grandParentNode, decorator, t("observe.action.choose.program.message"), + t("observe.action.choose.program.title"), + node -> { + if (!(node instanceof ReferenceNavigationTreeNodeSupport<?, ?>)) { + return false; + } + ReferenceNavigationTreeNodeSupport<?, ?> candidateNode = (ReferenceNavigationTreeNodeSupport<?, ?>) node; + String candidateId = candidateNode.getId(); + return (candidateId != null && IdHelper.isProgramId(candidateId) && !oldId.equals(candidateId)) + && ((candidateNode instanceof ProgramSeineNavigationTreeNode && GearType.seine == gearType) + || (candidateNode instanceof ProgramLonglineNavigationTreeNode && GearType.longline == gearType)); + }); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripsUIAction.java ===================================== @@ -66,12 +66,12 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveTripUIAction.chooseNewProgram(getMainUI(), gearType, oldParentNode.getId()); } @Override - void updateUI(U ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { + void updateUI(U ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { String oldProgramId = oldParentNode.getId(); @@ -79,14 +79,14 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport rootNode = treeHelper.getRootNode(); - NavigationTreeNodeSupport newProgramNode = treeHelper.getChild(rootNode, newParentId); + NavigationTreeNodeSupport<?> rootNode = treeHelper.getRootNode(); + NavigationTreeNodeSupport<?> newProgramNode = rootNode.findChildById(newParentId); UnmodifiableIterator<String> iterator = dataIds.iterator(); for (Integer position : positions) { String tripId = iterator.next(); - NavigationTreeNodeSupport tripNode = treeHelper.getChild(oldParentNode, tripId); + NavigationTreeNodeSupport<?> tripNode = oldParentNode.findChildById(tripId); boolean wasOpen = tripNode.isOpen(); treeHelper.removeNode(tripNode); @@ -95,7 +95,7 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext openDataManager.openProgram(newParentId); } - NavigationTreeNodeSupport newTripNode = treeHelper.getChild(newProgramNode, tripId); + NavigationTreeNodeSupport<?> newTripNode = treeHelper.getChild(newProgramNode, tripId); if (newTripNode == null) { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTree.java ===================================== @@ -407,20 +407,17 @@ public class NavigationTree extends JXTree { SwingUtilities.invokeLater(this::grabFocus); } - public void reloadNodeSubTree(NavigationTreeNodeSupport node) { - Objects.requireNonNull(node, "node is null, we can not reload its structure"); + public void reloadNodeSubTree(NavigationTreeNodeSupport<?> node) { + reloadNodeSubTree(node, false); + } - // 1. Let's clear node structure - while (node.getChildCount() > 0) { - removeNode((NavigationTreeNodeSupport) node.getFirstChild()); + public void reloadNodeSubTree(NavigationTreeNodeSupport<?> node, boolean expand) { + Objects.requireNonNull(node, "node is null, we can not reload its structure"); + getTreeModel().update(node); + if (expand) { + // Fix bug (if no child in parent node, it will not expand...) + fireTreeExpanded(new TreePath(node.getPath())); } - - // 3. Let's re-generate node's children by populating the node : this will call the child loaders. - node.updateNode(); - - // Fix bug (if no child in parent node, it will not expand...) - fireTreeExpanded(new TreePath(node.getPath())); - } public void reloadNode(NavigationTreeNodeSupport<?> node, boolean deep) { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeModel.java ===================================== @@ -79,6 +79,11 @@ public class NavigationTreeModel extends DefaultTreeModel { super.reload(node); } + public <N extends NavigationTreeNodeSupport> void update(N node) { + node.updateNode(); + super.reload(node); + } + public <N extends NavigationTreeNodeSupport> void open(N node) { if (node instanceof WithChildsToReload) { boolean updated = node.populateChilds(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java ===================================== @@ -25,8 +25,8 @@ package fr.ird.observe.client.ui.tree.navigation.nodes; import fr.ird.observe.client.ui.actions.content.SelectNodeUIAction; import fr.ird.observe.client.ui.content.ContentUI; import fr.ird.observe.client.ui.tree.ObserveTreeNodeSupport; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.JAXXObject; import javax.swing.AbstractAction; @@ -163,9 +163,9 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor // au final le noeud est une feuille, donc ne convient pas return null; } - Enumeration<NavigationTreeNodeSupport> children = children(); + Enumeration<NavigationTreeNodeSupport<?>> children = children(); while (children.hasMoreElements()) { - NavigationTreeNodeSupport node = children.nextElement(); + NavigationTreeNodeSupport<?> node = children.nextElement(); if (childType.isAssignableFrom(node.getClass())) { return node; } @@ -187,10 +187,10 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor // au final le noeud est une feuille, donc ne convient pas return null; } - Enumeration<NavigationTreeNodeSupport> children = children(); + Enumeration<NavigationTreeNodeSupport<?>> children = children(); while (children.hasMoreElements()) { - NavigationTreeNodeSupport node = children.nextElement(); - if (childType.isAssignableFrom((Class) node.getUserObject())) { + NavigationTreeNodeSupport<?> node = children.nextElement(); + if (childType.isAssignableFrom(node.getDataType())) { return node; } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/26c6cb5ee9da5ddaca49ac19d… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/26c6cb5ee9da5ddaca49ac19d… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] 2 commits: Si on ne peut pas ouvrir un nœud on ne bloque pas l'ui
by Tony CHEMIT 13 Feb '20

13 Feb '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: be42fca0 by tchemit at 2020-02-13T16:17:00+01:00 Si on ne peut pas ouvrir un nœud on ne bloque pas l&#39;ui - - - - - 27451db1 by tchemit at 2020-02-13T16:17:04+01:00 Petit problème sur déplacement d&#39;activité - Closes #1435 - - - - - 15 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUIInitializer.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglineUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglinesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeineUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeinesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveMultipleDataUIActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRouteUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRoutesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveSingleDataUIActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripSeinesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripsUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTree.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeModel.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUIInitializer.java ===================================== @@ -545,7 +545,12 @@ public class ObserveMainUIInitializer { progressModel.incrementsCurrentStep(); // select initial node - tree.selectInitialNode(); + try { + tree.selectInitialNode(); + } catch (Exception e) { + UIHelper.handlingError(e); + } + progressModel.incrementsCurrentStep(); tree.setVisible(true); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglineUIAction.java ===================================== @@ -25,14 +25,10 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.client.ui.tree.navigation.nodes.longline.TripLonglineNavigationTreeNode; -import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.longline.ActivityLonglineDto; import fr.ird.observe.dto.data.longline.TripLonglineReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; -import javax.swing.JOptionPane; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -60,7 +56,7 @@ public class MoveActivityLonglineUIAction extends MoveSingleDataUIActionSupport } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewTripLongline(mainUI, oldParentNode); } @@ -76,44 +72,21 @@ public class MoveActivityLonglineUIAction extends MoveSingleDataUIActionSupport } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - NavigationTreeNodeSupport tripLonglineNode = treeHelper.getChild(grandParentNode, newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class); - return treeHelper.getChild(tripLonglineNode, activitiesNodeId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId); + return parentNode.findChildByClass(ActivityLonglineDto.class); } - static Optional<String> chooseNewTripLongline(ObserveMainUI ui, NavigationTreeNodeSupport oldParentNode) { + static Optional<String> chooseNewTripLongline(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { - NavigationTreeNodeSupport programNode = oldParentNode.getParent(); - String oldTripLonglineId = oldParentNode.getId(); - int tripLonglineNb = programNode.getChildCount(); + NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent(); + String oldId = oldParentNode.getId(); ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); DataReferenceDecorator<TripLonglineReference> decorator = applicationContext.getDecoratorService().getDataReferenceDecorator(TripLonglineReference.class); - //on crée un tableau avec une marée en moins car on ne propose pas la marée actuelle - DecoratedNodeEntity[] decoratedTripLonglines = new DecoratedNodeEntity[tripLonglineNb - 1]; - - int j = 0; - for (int i = 0; i < tripLonglineNb; i++) { - - TripLonglineNavigationTreeNode tripLonglineNode = (TripLonglineNavigationTreeNode) programNode.getChildAt(i); - - String tripLonglineId = tripLonglineNode.getId(); - - if (!oldTripLonglineId.equals(tripLonglineId)) { - decoratedTripLonglines[j++] = DecoratedNodeEntity.newDecoratedNodeEntity(tripLonglineNode, decorator); - } - } - - Object decoratedTripLongline = JOptionPane.showInputDialog(ui, - t("observe.action.choose.tripLongline.message"), - t("observe.action.choose.tripLongline.title"), - JOptionPane.QUESTION_MESSAGE, - null, - decoratedTripLonglines, - null); - return Optional.ofNullable(decoratedTripLongline != null ? ((DecoratedNodeEntity) decoratedTripLongline).getId() : null); + return chooseCandidate(mainUI, grandParentNode, oldId, decorator, t("observe.action.choose.tripLongline.message"), + t("observe.action.choose.tripLongline.title")); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglinesUIAction.java ===================================== @@ -29,9 +29,9 @@ import fr.ird.observe.client.ui.content.data.longline.ActivityLonglinesUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.longline.ActivityLonglineDto; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import java.util.List; +import java.util.Objects; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -64,22 +64,21 @@ public class MoveActivityLonglinesUIAction extends MoveMultipleDataUIActionSuppo } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveActivityLonglineUIAction.chooseNewTripLongline(getMainUI(), oldParentNode); } @Override - void updateUI(ActivityLonglinesUI ui, NavigationTreeNodeSupport oldActivitiesNode, String tripLonglineId, ImmutableSet<String> activityIds, List<Integer> positions) { + void updateUI(ActivityLonglinesUI ui, NavigationTreeNodeSupport<?> oldActivitiesNode, String tripLonglineId, ImmutableSet<String> activityIds, List<Integer> positions) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport oldTripLonglineNode = oldActivitiesNode.getParent(); - NavigationTreeNodeSupport programNode = oldTripLonglineNode.getParent(); - NavigationTreeNodeSupport newTripLonglineNode = treeHelper.getChild(programNode, tripLonglineId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class); - NavigationTreeNodeSupport newActivitiesNode = treeHelper.getChild(newTripLonglineNode, activitiesNodeId); + NavigationTreeNodeSupport<?> oldTripLonglineNode = Objects.requireNonNull(oldActivitiesNode.getParent()); + NavigationTreeNodeSupport<?> programNode = Objects.requireNonNull(oldTripLonglineNode.getParent()); + NavigationTreeNodeSupport<?> newTripLonglineNode = Objects.requireNonNull(programNode.findChildById(tripLonglineId)); + NavigationTreeNodeSupport<?> newActivitiesNode = Objects.requireNonNull(newTripLonglineNode.findChildByClass(ActivityLonglineDto.class)); // Let's check if we're moving an open activity Optional<String> openActivity = activityIds @@ -93,7 +92,7 @@ public class MoveActivityLonglinesUIAction extends MoveMultipleDataUIActionSuppo // 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); - treeHelper.reloadNodeSubTree(newActivitiesNode); + treeHelper.reloadNodeSubTree(newActivitiesNode, true); // Let's put the focus on the activities node which received the activities treeHelper.selectSafeNode(newActivitiesNode); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeineUIAction.java ===================================== @@ -25,14 +25,10 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.client.ui.tree.navigation.nodes.seine.RouteSeineNavigationTreeNode; -import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.seine.ActivitySeineDto; import fr.ird.observe.dto.data.seine.RouteReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; -import javax.swing.JOptionPane; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -60,7 +56,7 @@ public class MoveActivitySeineUIAction extends MoveSingleDataUIActionSupport { } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewRoute(mainUI, oldParentNode); } @@ -75,45 +71,21 @@ public class MoveActivitySeineUIAction extends MoveSingleDataUIActionSupport { } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - NavigationTreeNodeSupport routeNode = treeHelper.getChild(grandParentNode, newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); - return treeHelper.getChild(routeNode, activitiesNodeId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId); + return parentNode.findChildByClass( ActivitySeineDto.class); } - static Optional<String> chooseNewRoute(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + static Optional<String> chooseNewRoute(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { - NavigationTreeNodeSupport routesNode = oldParentNode.getParent(); - String oldRouteId = oldParentNode.getId(); - int routeNb = routesNode.getChildCount(); + NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent(); + String oldId = oldParentNode.getId(); ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); DataReferenceDecorator<RouteReference> decorator = applicationContext.getDecoratorService().getDataReferenceDecorator(RouteReference.class); - //on crée un tableau avec une route en moins car on ne propose pas la route actuel - DecoratedNodeEntity[] decoratedRoutes = new DecoratedNodeEntity[routeNb - 1]; - - int j = 0; - for (int i = 0; i < routeNb; i++) { - - RouteSeineNavigationTreeNode routeNode = (RouteSeineNavigationTreeNode) routesNode.getChildAt(i); - - String routeId = routeNode.getId(); - - if (!oldRouteId.equals(routeId)) { - decoratedRoutes[j++] = DecoratedNodeEntity.newDecoratedNodeEntity(routeNode, decorator); - } - } - - Object decoratedRoute = JOptionPane.showInputDialog(mainUI, - t("observe.action.choose.route.message"), - t("observe.action.choose.route.title"), - JOptionPane.QUESTION_MESSAGE, - null, - decoratedRoutes, - null); - - return Optional.ofNullable(decoratedRoute != null ? ((DecoratedNodeEntity) decoratedRoute).getId() : null); + return chooseCandidate(mainUI, grandParentNode, oldId, decorator, t("observe.action.choose.route.message"), + t("observe.action.choose.route.title")); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeinesUIAction.java ===================================== @@ -29,9 +29,9 @@ import fr.ird.observe.client.ui.content.data.seine.ActivitySeinesUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.seine.ActivitySeineDto; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import java.util.List; +import java.util.Objects; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -59,7 +59,7 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveActivitySeineUIAction.chooseNewRoute(getMainUI(), oldParentNode); } @@ -69,17 +69,16 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< } @Override - void updateUI(ActivitySeinesUI ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { + void updateUI(ActivitySeinesUI ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport oldRouteNode = oldParentNode.getParent(); - NavigationTreeNodeSupport routesNode = oldRouteNode.getParent(); - NavigationTreeNodeSupport newRouteNode = treeHelper.getChild(routesNode, newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); - NavigationTreeNodeSupport newActivitiesNode = treeHelper.getChild(newRouteNode, activitiesNodeId); + NavigationTreeNodeSupport<?> oldRouteNode = Objects.requireNonNull(oldParentNode.getParent()); + NavigationTreeNodeSupport<?> routesNode = Objects.requireNonNull(oldRouteNode.getParent()); + NavigationTreeNodeSupport<?> newRouteNode = Objects.requireNonNull(routesNode.findChildById(newParentId)); + NavigationTreeNodeSupport<?> newActivitiesNode = Objects.requireNonNull(newRouteNode.findChildByClass(ActivitySeineDto.class)); // Let's check if we're moving an open activity Optional<String> openActivity = dataIds @@ -93,7 +92,7 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< // 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(oldParentNode); - treeHelper.reloadNodeSubTree(newActivitiesNode); + treeHelper.reloadNodeSubTree(newActivitiesNode, true); // Let's put the focus on the activities node which received the activities treeHelper.selectSafeNode(newActivitiesNode); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveMultipleDataUIActionSupport.java ===================================== @@ -73,9 +73,9 @@ public abstract class MoveMultipleDataUIActionSupport<U extends ContentListUI<?, @SuppressWarnings("unchecked") U ui = (U) ui1; NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport oldParentNode = node.getParent().isRoot() ? node : node.getParent(); + NavigationTreeNodeSupport<?> oldParentNode = node.getParent().isRoot() ? node : node.getParent(); Optional<String> optionalNewParentId = getNewParentId(getMainUI(), oldParentNode); @@ -90,10 +90,10 @@ public abstract class MoveMultipleDataUIActionSupport<U extends ContentListUI<?, } - abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode); + abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode); abstract List<Integer> moveData(ImmutableSet<String> dataIds, String newParentId); - abstract void updateUI(U ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions); + abstract void updateUI(U ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions); } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRouteUIAction.java ===================================== @@ -25,14 +25,10 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.client.ui.tree.navigation.nodes.seine.TripSeineNavigationTreeNode; -import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.seine.RouteDto; import fr.ird.observe.dto.data.seine.TripSeineReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; -import javax.swing.JOptionPane; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -60,7 +56,7 @@ public class MoveRouteUIAction extends MoveSingleDataUIActionSupport { } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewTripSeine(mainUI, oldParentNode); } @@ -75,43 +71,20 @@ public class MoveRouteUIAction extends MoveSingleDataUIActionSupport { } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - NavigationTreeNodeSupport tripNode = treeHelper.getChild(grandParentNode, newParentId); - String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); - return treeHelper.getChild(tripNode, routesNodeId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId); + return parentNode.findChildByClass(RouteDto.class); } - static Optional<String> chooseNewTripSeine(ObserveMainUI mainUI, NavigationTreeNodeSupport oldTripSeineNode) { - NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent(); - String oldTripSeineId = oldTripSeineNode.getId(); - int tripSeineNb = programNode.getChildCount(); + static Optional<String> chooseNewTripSeine(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { + NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent(); + String oldId = oldParentNode.getId(); ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); DataReferenceDecorator<TripSeineReference> decorator = applicationContext.getDecoratorService().getDataReferenceDecorator(TripSeineReference.class); - //on crée un tableau avec une marée en moins car on ne propose pas la marée actuel - DecoratedNodeEntity[] decoratedTripSeines = new DecoratedNodeEntity[tripSeineNb - 1]; - - int j = 0; - for (int i = 0; i < tripSeineNb; i++) { - - TripSeineNavigationTreeNode tripSeineNode = (TripSeineNavigationTreeNode) programNode.getChildAt(i); - - String tripSeineId = tripSeineNode.getId(); - - if (!oldTripSeineId.equals(tripSeineId)) { - decoratedTripSeines[j++] = DecoratedNodeEntity.newDecoratedNodeEntity(tripSeineNode, decorator); - } - } - - Object decoratedTripSeine = JOptionPane.showInputDialog(mainUI, - t("observe.action.choose.tripSeine.message"), - t("observe.action.choose.tripSeine.title"), - JOptionPane.QUESTION_MESSAGE, - null, - decoratedTripSeines, - null); - return Optional.ofNullable(decoratedTripSeine != null ? ((DecoratedNodeEntity) decoratedTripSeine).getId() : null); + return chooseCandidate(mainUI, grandParentNode, oldId, decorator, t("observe.action.choose.tripSeine.message"), + t("observe.action.choose.tripSeine.title")); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRoutesUIAction.java ===================================== @@ -28,9 +28,9 @@ import fr.ird.observe.client.ui.content.data.seine.RoutesUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.seine.RouteDto; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import java.util.List; +import java.util.Objects; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -58,7 +58,7 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveRouteUIAction.chooseNewTripSeine(getMainUI(), oldParentNode); } @@ -69,16 +69,15 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI @Override - void updateUI(RoutesUI ui, NavigationTreeNodeSupport oldRoutesNode, String tripSeineId, ImmutableSet<String> routeIds, List<Integer> positions) { + void updateUI(RoutesUI ui, NavigationTreeNodeSupport<?> oldRoutesNode, String tripSeineId, ImmutableSet<String> routeIds, List<Integer> positions) { ObserveOpenDataManager openDataManager = getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport oldTripSeineNode = oldRoutesNode.getParent(); - NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent(); - NavigationTreeNodeSupport newTripSeineNode = treeHelper.getChild(programNode, tripSeineId); - String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); - NavigationTreeNodeSupport newRoutesNode = treeHelper.getChild(newTripSeineNode, routesNodeId); + NavigationTreeNodeSupport<?> oldTripSeineNode = Objects.requireNonNull(oldRoutesNode.getParent()); + NavigationTreeNodeSupport<?> programNode = Objects.requireNonNull(oldTripSeineNode.getParent()); + NavigationTreeNodeSupport<?> newTripSeineNode = Objects.requireNonNull(programNode.findChildById(tripSeineId)); + NavigationTreeNodeSupport<?> newRoutesNode = Objects.requireNonNull(newTripSeineNode.findChildByClass(RouteDto.class)); // Let's check if we're moving an open route Optional<String> openRoute = routeIds @@ -92,7 +91,7 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI // 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); - treeHelper.reloadNodeSubTree(newRoutesNode); + treeHelper.reloadNodeSubTree(newRoutesNode, true); // 1. Select the newRoutesNode : // only a selected node can be reloaded (@see fr.ird.observe.client.ui.tree.ObserveTreeBridge.canLoadChild). ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveSingleDataUIActionSupport.java ===================================== @@ -28,10 +28,18 @@ import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.actions.UIActionSupport; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; +import fr.ird.observe.client.ui.util.DecoratedNodeEntity; +import fr.ird.observe.dto.decoration.decorators.ObserveDecorator; +import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; import java.util.Optional; +import java.util.function.Predicate; /** * Created by tchemit on 12/06/17. @@ -52,22 +60,22 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { public final void actionPerformed(ActionEvent e) { NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport oldParentNode = node.getParent().getParent().equals(node.getRoot()) ? node.getParent() : node.getParent().getParent(); + NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport<?> oldParentNode = node.getParent().getParent().equals(node.getRoot()) ? node.getParent() : node.getParent().getParent(); Optional<String> optionalNewParentId = getNewParentId(getMainUI(), oldParentNode); optionalNewParentId.ifPresent(newParentId -> SwingUtilities.invokeLater(() -> apply(oldParentNode, node.getId(), newParentId))); } - abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode); + abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode); - private void apply(NavigationTreeNodeSupport oldParentNode, String dataId, String newParentId) { + private void apply(NavigationTreeNodeSupport<?> oldParentNode, String dataId, String newParentId) { NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport grandParentNode = oldParentNode.getParent(); - NavigationTreeNodeSupport newParentNode = getNewParentNode(treeHelper, grandParentNode, newParentId); + NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent(); + NavigationTreeNodeSupport<?> newParentNode = getNewParentNode(treeHelper, grandParentNode, newParentId); closeNode(node.getId()); @@ -77,7 +85,7 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { treeHelper.removeNode(node); - NavigationTreeNodeSupport newNode = treeHelper.getChild(newParentNode, dataId); + NavigationTreeNodeSupport<?> newNode = treeHelper.getChild(newParentNode, dataId); if (newNode == null) { @@ -95,5 +103,38 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { abstract void closeNode(String dataId); - abstract NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId); + abstract NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId); + + static Optional<String> chooseCandidate(ObserveMainUI mainUI, + NavigationTreeNodeSupport<?> grandParentNode, + String oldId, + ObserveDecorator<?> decorator, + String title, + String message) { + return chooseCandidate(mainUI, grandParentNode, decorator, title, message, n -> n instanceof ReferenceNavigationTreeNodeSupport<?, ?> && !oldId.equals(n.getId())); + } + + static Optional<String> chooseCandidate(ObserveMainUI mainUI, + NavigationTreeNodeSupport<?> grandParentNode, + ObserveDecorator<?> decorator, + String title, + String message, + Predicate<NavigationTreeNodeSupport<?>> filter) { + List<DecoratedNodeEntity> candidateList = new ArrayList<>(); + Enumeration<?> children = grandParentNode.children(); + while (children.hasMoreElements()) { + NavigationTreeNodeSupport<?> candidateNode = (NavigationTreeNodeSupport<?>) children.nextElement(); + if (filter.test(candidateNode)) { + candidateList.add(DecoratedNodeEntity.newDecoratedNodeEntity((ReferenceNavigationTreeNodeSupport<?, ?>) candidateNode, decorator)); + } + } + DecoratedNodeEntity selectedEntity = (DecoratedNodeEntity) JOptionPane.showInputDialog(mainUI, + title, + message, + JOptionPane.QUESTION_MESSAGE, + null, + candidateList.toArray(new DecoratedNodeEntity[0]), + null); + return Optional.ofNullable(selectedEntity).map(DecoratedNodeEntity::getId); + } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripSeinesUIAction.java ===================================== @@ -54,7 +54,7 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeinesUI> { @Override protected void updateModelData(TripSeinesUI ui) { TripSeinesUIModel model = ui.getModel(); - List<TripSeineReference> data = new ArrayList(model.getData()); + List<TripSeineReference> data = new ArrayList<>(model.getData()); data.removeAll(model.getSelectedDatas()); model.setData(data); } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripUIAction.java ===================================== @@ -25,17 +25,14 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.ui.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; import fr.ird.observe.client.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; import fr.ird.observe.client.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; -import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.IdHelper; import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; import fr.ird.observe.dto.referential.GearType; import fr.ird.observe.dto.referential.ProgramReference; -import javax.swing.JOptionPane; -import java.util.ArrayList; -import java.util.List; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.t; @@ -65,7 +62,7 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewProgram(mainUI, gearType, oldParentNode.getId()); } @@ -88,58 +85,63 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - return treeHelper.getChild(grandParentNode, newParentId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + return grandParentNode.findChildById(newParentId); } - static Optional<String> chooseNewProgram(ObserveMainUI mainUI, GearType gearType, String oldProgramId) { + static Optional<String> chooseNewProgram(ObserveMainUI mainUI, GearType gearType, String oldId) { NavigationTree treeHelper = mainUI.getNavigationUI().getTree(); // racine - NavigationTreeNodeSupport rootNode = treeHelper.getRootNode(); - - //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel - List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>(); - - ReferentialReferenceDecorator<ProgramReference> programDecorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferentialReferenceDecorator(ProgramReference.class); - - for (int i = 0, n = rootNode.getChildCount(); i < n; 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 (programId != null && IdHelper.isProgramId(programId) && !oldProgramId.equals(programId)) { - - if (programNode instanceof ProgramSeineNavigationTreeNode && GearType.seine == gearType) { - - ProgramSeineNavigationTreeNode node = (ProgramSeineNavigationTreeNode) programNode; - decoratedProgramList.add(DecoratedNodeEntity.newDecoratedNodeEntity(node, programDecorator)); - - } else if (programNode instanceof ProgramLonglineNavigationTreeNode && GearType.longline == gearType) { - - ProgramLonglineNavigationTreeNode node = (ProgramLonglineNavigationTreeNode) programNode; - decoratedProgramList.add(DecoratedNodeEntity.newDecoratedNodeEntity(node, programDecorator)); - - } - - } - } - - DecoratedNodeEntity[] decoratedPrograms = - decoratedProgramList.toArray(new DecoratedNodeEntity[0]); - - DecoratedNodeEntity decoratedProgram = (DecoratedNodeEntity) JOptionPane.showInputDialog(mainUI, - t("observe.action.choose.program.message"), - t("observe.action.choose.program.title"), - JOptionPane.QUESTION_MESSAGE, - null, - decoratedPrograms, - null); - - return Optional.ofNullable(decoratedProgram == null ? null : decoratedProgram.getId()); + NavigationTreeNodeSupport<?> grandParentNode = treeHelper.getRootNode(); + + ReferentialReferenceDecorator<ProgramReference> decorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferentialReferenceDecorator(ProgramReference.class); + + return chooseCandidate(mainUI, grandParentNode, decorator, t("observe.action.choose.program.message"), + t("observe.action.choose.program.title"), + node -> { + if (!(node instanceof ReferenceNavigationTreeNodeSupport<?, ?>)) { + return false; + } + ReferenceNavigationTreeNodeSupport<?, ?> candidateNode = (ReferenceNavigationTreeNodeSupport<?, ?>) node; + String candidateId = candidateNode.getId(); + return (candidateId != null && IdHelper.isProgramId(candidateId) && !oldId.equals(candidateId)) + && ((candidateNode instanceof ProgramSeineNavigationTreeNode && GearType.seine == gearType) + || (candidateNode instanceof ProgramLonglineNavigationTreeNode && GearType.longline == gearType)); + }); +// +// //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel +// List<DecoratedNodeEntity> candidateList = new ArrayList<>(); +// +// +// Enumeration<?> children = grandParentNode.children(); +// while (children.hasMoreElements()) { +// NavigationTreeNodeSupport<?> node = (NavigationTreeNodeSupport<?>) children.nextElement(); +// if (!(node instanceof ReferenceNavigationTreeNodeSupport<?, ?>)) { +// continue; +// } +// ReferenceNavigationTreeNodeSupport<?, ?> candidateNode = (ReferenceNavigationTreeNodeSupport<?, ?>) node; +// String candidateId = candidateNode.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 (candidateId != null && IdHelper.isProgramId(candidateId) && !oldId.equals(candidateId)) { +// if ((candidateNode instanceof ProgramSeineNavigationTreeNode && GearType.seine == gearType) +// || (candidateNode instanceof ProgramLonglineNavigationTreeNode && GearType.longline == gearType)) { +// candidateList.add(DecoratedNodeEntity.newDecoratedNodeEntity(candidateNode, decorator)); +// } +// } +// } +// +// DecoratedNodeEntity selectedEntity = (DecoratedNodeEntity) JOptionPane.showInputDialog(mainUI, +// t("observe.action.choose.program.message"), +// t("observe.action.choose.program.title"), +// JOptionPane.QUESTION_MESSAGE, +// null, +// candidateList.toArray(new DecoratedNodeEntity[0]), +// null); +// +// return Optional.ofNullable(selectedEntity).map(DecoratedNodeEntity::getId); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripsUIAction.java ===================================== @@ -66,12 +66,12 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveTripUIAction.chooseNewProgram(getMainUI(), gearType, oldParentNode.getId()); } @Override - void updateUI(U ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { + void updateUI(U ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { String oldProgramId = oldParentNode.getId(); @@ -79,14 +79,14 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport rootNode = treeHelper.getRootNode(); - NavigationTreeNodeSupport newProgramNode = treeHelper.getChild(rootNode, newParentId); + NavigationTreeNodeSupport<?> rootNode = treeHelper.getRootNode(); + NavigationTreeNodeSupport<?> newProgramNode = rootNode.findChildById(newParentId); UnmodifiableIterator<String> iterator = dataIds.iterator(); for (Integer position : positions) { String tripId = iterator.next(); - NavigationTreeNodeSupport tripNode = treeHelper.getChild(oldParentNode, tripId); + NavigationTreeNodeSupport<?> tripNode = oldParentNode.findChildById(tripId); boolean wasOpen = tripNode.isOpen(); treeHelper.removeNode(tripNode); @@ -95,7 +95,7 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext openDataManager.openProgram(newParentId); } - NavigationTreeNodeSupport newTripNode = treeHelper.getChild(newProgramNode, tripId); + NavigationTreeNodeSupport<?> newTripNode = treeHelper.getChild(newProgramNode, tripId); if (newTripNode == null) { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTree.java ===================================== @@ -407,20 +407,17 @@ public class NavigationTree extends JXTree { SwingUtilities.invokeLater(this::grabFocus); } - public void reloadNodeSubTree(NavigationTreeNodeSupport node) { - Objects.requireNonNull(node, "node is null, we can not reload its structure"); + public void reloadNodeSubTree(NavigationTreeNodeSupport<?> node) { + reloadNodeSubTree(node, false); + } - // 1. Let's clear node structure - while (node.getChildCount() > 0) { - removeNode((NavigationTreeNodeSupport) node.getFirstChild()); + public void reloadNodeSubTree(NavigationTreeNodeSupport<?> node, boolean expand) { + Objects.requireNonNull(node, "node is null, we can not reload its structure"); + getTreeModel().update(node); + if (expand) { + // Fix bug (if no child in parent node, it will not expand...) + fireTreeExpanded(new TreePath(node.getPath())); } - - // 3. Let's re-generate node's children by populating the node : this will call the child loaders. - node.updateNode(); - - // Fix bug (if no child in parent node, it will not expand...) - fireTreeExpanded(new TreePath(node.getPath())); - } public void reloadNode(NavigationTreeNodeSupport<?> node, boolean deep) { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeModel.java ===================================== @@ -79,6 +79,11 @@ public class NavigationTreeModel extends DefaultTreeModel { super.reload(node); } + public <N extends NavigationTreeNodeSupport> void update(N node) { + node.updateNode(); + super.reload(node); + } + public <N extends NavigationTreeNodeSupport> void open(N node) { if (node instanceof WithChildsToReload) { boolean updated = node.populateChilds(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java ===================================== @@ -25,8 +25,8 @@ package fr.ird.observe.client.ui.tree.navigation.nodes; import fr.ird.observe.client.ui.actions.content.SelectNodeUIAction; import fr.ird.observe.client.ui.content.ContentUI; import fr.ird.observe.client.ui.tree.ObserveTreeNodeSupport; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.JAXXObject; import javax.swing.AbstractAction; @@ -163,9 +163,9 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor // au final le noeud est une feuille, donc ne convient pas return null; } - Enumeration<NavigationTreeNodeSupport> children = children(); + Enumeration<NavigationTreeNodeSupport<?>> children = children(); while (children.hasMoreElements()) { - NavigationTreeNodeSupport node = children.nextElement(); + NavigationTreeNodeSupport<?> node = children.nextElement(); if (childType.isAssignableFrom(node.getClass())) { return node; } @@ -187,10 +187,10 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor // au final le noeud est une feuille, donc ne convient pas return null; } - Enumeration<NavigationTreeNodeSupport> children = children(); + Enumeration<NavigationTreeNodeSupport<?>> children = children(); while (children.hasMoreElements()) { - NavigationTreeNodeSupport node = children.nextElement(); - if (childType.isAssignableFrom((Class) node.getUserObject())) { + NavigationTreeNodeSupport<?> node = children.nextElement(); + if (childType.isAssignableFrom(node.getDataType())) { return node; } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/195e34fb951a533cb69328d7… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/195e34fb951a533cb69328d7… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] Petit problème sur déplacement d'activité - Closes #1435
by Tony CHEMIT 13 Feb '20

13 Feb '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 195e34fb by tchemit at 2020-02-13T14:51:58+01:00 Petit problème sur déplacement d&#39;activité - Closes #1435 - - - - - 14 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglineUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglinesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeineUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeinesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveMultipleDataUIActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRouteUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRoutesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveSingleDataUIActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripSeinesUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripsUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTree.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeModel.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglineUIAction.java ===================================== @@ -29,7 +29,6 @@ import fr.ird.observe.client.ui.tree.navigation.nodes.longline.TripLonglineNavig import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.longline.ActivityLonglineDto; import fr.ird.observe.dto.data.longline.TripLonglineReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; import javax.swing.JOptionPane; @@ -60,7 +59,7 @@ public class MoveActivityLonglineUIAction extends MoveSingleDataUIActionSupport } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewTripLongline(mainUI, oldParentNode); } @@ -76,15 +75,14 @@ public class MoveActivityLonglineUIAction extends MoveSingleDataUIActionSupport } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - NavigationTreeNodeSupport tripLonglineNode = treeHelper.getChild(grandParentNode, newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class); - return treeHelper.getChild(tripLonglineNode, activitiesNodeId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId); + return parentNode.findChildByClass(ActivityLonglineDto.class); } - static Optional<String> chooseNewTripLongline(ObserveMainUI ui, NavigationTreeNodeSupport oldParentNode) { + static Optional<String> chooseNewTripLongline(ObserveMainUI ui, NavigationTreeNodeSupport<?> oldParentNode) { - NavigationTreeNodeSupport programNode = oldParentNode.getParent(); + NavigationTreeNodeSupport<?> programNode = oldParentNode.getParent(); String oldTripLonglineId = oldParentNode.getId(); int tripLonglineNb = programNode.getChildCount(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglinesUIAction.java ===================================== @@ -29,9 +29,9 @@ import fr.ird.observe.client.ui.content.data.longline.ActivityLonglinesUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.longline.ActivityLonglineDto; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import java.util.List; +import java.util.Objects; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -64,22 +64,21 @@ public class MoveActivityLonglinesUIAction extends MoveMultipleDataUIActionSuppo } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveActivityLonglineUIAction.chooseNewTripLongline(getMainUI(), oldParentNode); } @Override - void updateUI(ActivityLonglinesUI ui, NavigationTreeNodeSupport oldActivitiesNode, String tripLonglineId, ImmutableSet<String> activityIds, List<Integer> positions) { + void updateUI(ActivityLonglinesUI ui, NavigationTreeNodeSupport<?> oldActivitiesNode, String tripLonglineId, ImmutableSet<String> activityIds, List<Integer> positions) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport oldTripLonglineNode = oldActivitiesNode.getParent(); - NavigationTreeNodeSupport programNode = oldTripLonglineNode.getParent(); - NavigationTreeNodeSupport newTripLonglineNode = treeHelper.getChild(programNode, tripLonglineId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class); - NavigationTreeNodeSupport newActivitiesNode = treeHelper.getChild(newTripLonglineNode, activitiesNodeId); + NavigationTreeNodeSupport<?> oldTripLonglineNode = Objects.requireNonNull(oldActivitiesNode.getParent()); + NavigationTreeNodeSupport<?> programNode = Objects.requireNonNull(oldTripLonglineNode.getParent()); + NavigationTreeNodeSupport<?> newTripLonglineNode = Objects.requireNonNull(programNode.findChildById(tripLonglineId)); + NavigationTreeNodeSupport<?> newActivitiesNode = Objects.requireNonNull(newTripLonglineNode.findChildByClass(ActivityLonglineDto.class)); // Let's check if we're moving an open activity Optional<String> openActivity = activityIds @@ -93,7 +92,7 @@ public class MoveActivityLonglinesUIAction extends MoveMultipleDataUIActionSuppo // 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); - treeHelper.reloadNodeSubTree(newActivitiesNode); + treeHelper.reloadNodeSubTree(newActivitiesNode, true); // Let's put the focus on the activities node which received the activities treeHelper.selectSafeNode(newActivitiesNode); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeineUIAction.java ===================================== @@ -29,7 +29,6 @@ import fr.ird.observe.client.ui.tree.navigation.nodes.seine.RouteSeineNavigation import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.seine.ActivitySeineDto; import fr.ird.observe.dto.data.seine.RouteReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; import javax.swing.JOptionPane; @@ -60,7 +59,7 @@ public class MoveActivitySeineUIAction extends MoveSingleDataUIActionSupport { } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewRoute(mainUI, oldParentNode); } @@ -75,15 +74,14 @@ public class MoveActivitySeineUIAction extends MoveSingleDataUIActionSupport { } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - NavigationTreeNodeSupport routeNode = treeHelper.getChild(grandParentNode, newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); - return treeHelper.getChild(routeNode, activitiesNodeId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId); + return parentNode.findChildByClass( ActivitySeineDto.class); } - static Optional<String> chooseNewRoute(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + static Optional<String> chooseNewRoute(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { - NavigationTreeNodeSupport routesNode = oldParentNode.getParent(); + NavigationTreeNodeSupport<?> routesNode = oldParentNode.getParent(); String oldRouteId = oldParentNode.getId(); int routeNb = routesNode.getChildCount(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeinesUIAction.java ===================================== @@ -29,9 +29,9 @@ import fr.ird.observe.client.ui.content.data.seine.ActivitySeinesUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.seine.ActivitySeineDto; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import java.util.List; +import java.util.Objects; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -59,7 +59,7 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveActivitySeineUIAction.chooseNewRoute(getMainUI(), oldParentNode); } @@ -69,17 +69,16 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< } @Override - void updateUI(ActivitySeinesUI ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { + void updateUI(ActivitySeinesUI ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport oldRouteNode = oldParentNode.getParent(); - NavigationTreeNodeSupport routesNode = oldRouteNode.getParent(); - NavigationTreeNodeSupport newRouteNode = treeHelper.getChild(routesNode, newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); - NavigationTreeNodeSupport newActivitiesNode = treeHelper.getChild(newRouteNode, activitiesNodeId); + NavigationTreeNodeSupport<?> oldRouteNode = Objects.requireNonNull(oldParentNode.getParent()); + NavigationTreeNodeSupport<?> routesNode = Objects.requireNonNull(oldRouteNode.getParent()); + NavigationTreeNodeSupport<?> newRouteNode = Objects.requireNonNull(routesNode.findChildById(newParentId)); + NavigationTreeNodeSupport<?> newActivitiesNode = Objects.requireNonNull(newRouteNode.findChildByClass(ActivitySeineDto.class)); // Let's check if we're moving an open activity Optional<String> openActivity = dataIds @@ -93,7 +92,7 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< // 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(oldParentNode); - treeHelper.reloadNodeSubTree(newActivitiesNode); + treeHelper.reloadNodeSubTree(newActivitiesNode, true); // Let's put the focus on the activities node which received the activities treeHelper.selectSafeNode(newActivitiesNode); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveMultipleDataUIActionSupport.java ===================================== @@ -73,9 +73,9 @@ public abstract class MoveMultipleDataUIActionSupport<U extends ContentListUI<?, @SuppressWarnings("unchecked") U ui = (U) ui1; NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport oldParentNode = node.getParent().isRoot() ? node : node.getParent(); + NavigationTreeNodeSupport<?> oldParentNode = node.getParent().isRoot() ? node : node.getParent(); Optional<String> optionalNewParentId = getNewParentId(getMainUI(), oldParentNode); @@ -90,10 +90,10 @@ public abstract class MoveMultipleDataUIActionSupport<U extends ContentListUI<?, } - abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode); + abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode); abstract List<Integer> moveData(ImmutableSet<String> dataIds, String newParentId); - abstract void updateUI(U ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions); + abstract void updateUI(U ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions); } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRouteUIAction.java ===================================== @@ -29,7 +29,6 @@ import fr.ird.observe.client.ui.tree.navigation.nodes.seine.TripSeineNavigationT import fr.ird.observe.client.ui.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.seine.RouteDto; import fr.ird.observe.dto.data.seine.TripSeineReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; import javax.swing.JOptionPane; @@ -60,7 +59,7 @@ public class MoveRouteUIAction extends MoveSingleDataUIActionSupport { } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewTripSeine(mainUI, oldParentNode); } @@ -75,14 +74,13 @@ public class MoveRouteUIAction extends MoveSingleDataUIActionSupport { } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - NavigationTreeNodeSupport tripNode = treeHelper.getChild(grandParentNode, newParentId); - String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); - return treeHelper.getChild(tripNode, routesNodeId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId); + return parentNode.findChildByClass(RouteDto.class); } - static Optional<String> chooseNewTripSeine(ObserveMainUI mainUI, NavigationTreeNodeSupport oldTripSeineNode) { - NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent(); + static Optional<String> chooseNewTripSeine(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldTripSeineNode) { + NavigationTreeNodeSupport<?> programNode = oldTripSeineNode.getParent(); String oldTripSeineId = oldTripSeineNode.getId(); int tripSeineNb = programNode.getChildCount(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRoutesUIAction.java ===================================== @@ -28,9 +28,9 @@ import fr.ird.observe.client.ui.content.data.seine.RoutesUI; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.seine.RouteDto; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import java.util.List; +import java.util.Objects; import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -58,7 +58,7 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveRouteUIAction.chooseNewTripSeine(getMainUI(), oldParentNode); } @@ -69,16 +69,15 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI @Override - void updateUI(RoutesUI ui, NavigationTreeNodeSupport oldRoutesNode, String tripSeineId, ImmutableSet<String> routeIds, List<Integer> positions) { + void updateUI(RoutesUI ui, NavigationTreeNodeSupport<?> oldRoutesNode, String tripSeineId, ImmutableSet<String> routeIds, List<Integer> positions) { ObserveOpenDataManager openDataManager = getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport oldTripSeineNode = oldRoutesNode.getParent(); - NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent(); - NavigationTreeNodeSupport newTripSeineNode = treeHelper.getChild(programNode, tripSeineId); - String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); - NavigationTreeNodeSupport newRoutesNode = treeHelper.getChild(newTripSeineNode, routesNodeId); + NavigationTreeNodeSupport<?> oldTripSeineNode = Objects.requireNonNull(oldRoutesNode.getParent()); + NavigationTreeNodeSupport<?> programNode = Objects.requireNonNull(oldTripSeineNode.getParent()); + NavigationTreeNodeSupport<?> newTripSeineNode = Objects.requireNonNull(programNode.findChildById(tripSeineId)); + NavigationTreeNodeSupport<?> newRoutesNode = Objects.requireNonNull(newTripSeineNode.findChildByClass(RouteDto.class)); // Let's check if we're moving an open route Optional<String> openRoute = routeIds @@ -92,7 +91,7 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI // 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); - treeHelper.reloadNodeSubTree(newRoutesNode); + treeHelper.reloadNodeSubTree(newRoutesNode, true); // 1. Select the newRoutesNode : // only a selected node can be reloaded (@see fr.ird.observe.client.ui.tree.ObserveTreeBridge.canLoadChild). ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveSingleDataUIActionSupport.java ===================================== @@ -52,22 +52,22 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { public final void actionPerformed(ActionEvent e) { NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport oldParentNode = node.getParent().getParent().equals(node.getRoot()) ? node.getParent() : node.getParent().getParent(); + NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport<?> oldParentNode = node.getParent().getParent().equals(node.getRoot()) ? node.getParent() : node.getParent().getParent(); Optional<String> optionalNewParentId = getNewParentId(getMainUI(), oldParentNode); optionalNewParentId.ifPresent(newParentId -> SwingUtilities.invokeLater(() -> apply(oldParentNode, node.getId(), newParentId))); } - abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode); + abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode); - private void apply(NavigationTreeNodeSupport oldParentNode, String dataId, String newParentId) { + private void apply(NavigationTreeNodeSupport<?> oldParentNode, String dataId, String newParentId) { NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport node = treeHelper.getSelectedNode(); - NavigationTreeNodeSupport grandParentNode = oldParentNode.getParent(); - NavigationTreeNodeSupport newParentNode = getNewParentNode(treeHelper, grandParentNode, newParentId); + NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode(); + NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent(); + NavigationTreeNodeSupport<?> newParentNode = getNewParentNode(treeHelper, grandParentNode, newParentId); closeNode(node.getId()); @@ -77,7 +77,7 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { treeHelper.removeNode(node); - NavigationTreeNodeSupport newNode = treeHelper.getChild(newParentNode, dataId); + NavigationTreeNodeSupport<?> newNode = treeHelper.getChild(newParentNode, dataId); if (newNode == null) { @@ -95,5 +95,5 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { abstract void closeNode(String dataId); - abstract NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId); + abstract NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId); } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripSeinesUIAction.java ===================================== @@ -54,7 +54,7 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeinesUI> { @Override protected void updateModelData(TripSeinesUI ui) { TripSeinesUIModel model = ui.getModel(); - List<TripSeineReference> data = new ArrayList(model.getData()); + List<TripSeineReference> data = new ArrayList<>(model.getData()); data.removeAll(model.getSelectedDatas()); model.setData(data); } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripUIAction.java ===================================== @@ -65,7 +65,7 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return chooseNewProgram(mainUI, gearType, oldParentNode.getId()); } @@ -88,8 +88,8 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { } @Override - NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) { - return treeHelper.getChild(grandParentNode, newParentId); + NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) { + return grandParentNode.findChildById(newParentId); } static Optional<String> chooseNewProgram(ObserveMainUI mainUI, GearType gearType, String oldProgramId) { @@ -97,7 +97,7 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { NavigationTree treeHelper = mainUI.getNavigationUI().getTree(); // racine - NavigationTreeNodeSupport rootNode = treeHelper.getRootNode(); + NavigationTreeNodeSupport<?> rootNode = treeHelper.getRootNode(); //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>(); @@ -106,7 +106,7 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { for (int i = 0, n = rootNode.getChildCount(); i < n; i++) { - NavigationTreeNodeSupport programNode = (NavigationTreeNodeSupport) 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 ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripsUIAction.java ===================================== @@ -66,12 +66,12 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext } @Override - Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) { + Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) { return MoveTripUIAction.chooseNewProgram(getMainUI(), gearType, oldParentNode.getId()); } @Override - void updateUI(U ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { + void updateUI(U ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) { String oldProgramId = oldParentNode.getId(); @@ -79,14 +79,14 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); NavigationTree treeHelper = getMainUI().getNavigationUI().getTree(); - NavigationTreeNodeSupport rootNode = treeHelper.getRootNode(); - NavigationTreeNodeSupport newProgramNode = treeHelper.getChild(rootNode, newParentId); + NavigationTreeNodeSupport<?> rootNode = treeHelper.getRootNode(); + NavigationTreeNodeSupport<?> newProgramNode = rootNode.findChildById(newParentId); UnmodifiableIterator<String> iterator = dataIds.iterator(); for (Integer position : positions) { String tripId = iterator.next(); - NavigationTreeNodeSupport tripNode = treeHelper.getChild(oldParentNode, tripId); + NavigationTreeNodeSupport<?> tripNode = oldParentNode.findChildById(tripId); boolean wasOpen = tripNode.isOpen(); treeHelper.removeNode(tripNode); @@ -95,7 +95,7 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext openDataManager.openProgram(newParentId); } - NavigationTreeNodeSupport newTripNode = treeHelper.getChild(newProgramNode, tripId); + NavigationTreeNodeSupport<?> newTripNode = treeHelper.getChild(newProgramNode, tripId); if (newTripNode == null) { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTree.java ===================================== @@ -407,20 +407,17 @@ public class NavigationTree extends JXTree { SwingUtilities.invokeLater(this::grabFocus); } - public void reloadNodeSubTree(NavigationTreeNodeSupport node) { - Objects.requireNonNull(node, "node is null, we can not reload its structure"); + public void reloadNodeSubTree(NavigationTreeNodeSupport<?> node) { + reloadNodeSubTree(node, false); + } - // 1. Let's clear node structure - while (node.getChildCount() > 0) { - removeNode((NavigationTreeNodeSupport) node.getFirstChild()); + public void reloadNodeSubTree(NavigationTreeNodeSupport<?> node, boolean expand) { + Objects.requireNonNull(node, "node is null, we can not reload its structure"); + getTreeModel().update(node); + if (expand) { + // Fix bug (if no child in parent node, it will not expand...) + fireTreeExpanded(new TreePath(node.getPath())); } - - // 3. Let's re-generate node's children by populating the node : this will call the child loaders. - node.updateNode(); - - // Fix bug (if no child in parent node, it will not expand...) - fireTreeExpanded(new TreePath(node.getPath())); - } public void reloadNode(NavigationTreeNodeSupport<?> node, boolean deep) { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeModel.java ===================================== @@ -79,6 +79,11 @@ public class NavigationTreeModel extends DefaultTreeModel { super.reload(node); } + public <N extends NavigationTreeNodeSupport> void update(N node) { + node.updateNode(); + super.reload(node); + } + public <N extends NavigationTreeNodeSupport> void open(N node) { if (node instanceof WithChildsToReload) { boolean updated = node.populateChilds(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java ===================================== @@ -25,8 +25,8 @@ package fr.ird.observe.client.ui.tree.navigation.nodes; import fr.ird.observe.client.ui.actions.content.SelectNodeUIAction; import fr.ird.observe.client.ui.content.ContentUI; import fr.ird.observe.client.ui.tree.ObserveTreeNodeSupport; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.JAXXObject; import javax.swing.AbstractAction; @@ -163,9 +163,9 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor // au final le noeud est une feuille, donc ne convient pas return null; } - Enumeration<NavigationTreeNodeSupport> children = children(); + Enumeration<NavigationTreeNodeSupport<?>> children = children(); while (children.hasMoreElements()) { - NavigationTreeNodeSupport node = children.nextElement(); + NavigationTreeNodeSupport<?> node = children.nextElement(); if (childType.isAssignableFrom(node.getClass())) { return node; } @@ -187,10 +187,10 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor // au final le noeud est une feuille, donc ne convient pas return null; } - Enumeration<NavigationTreeNodeSupport> children = children(); + Enumeration<NavigationTreeNodeSupport<?>> children = children(); while (children.hasMoreElements()) { - NavigationTreeNodeSupport node = children.nextElement(); - if (childType.isAssignableFrom((Class) node.getUserObject())) { + NavigationTreeNodeSupport<?> node = children.nextElement(); + if (childType.isAssignableFrom(node.getDataType())) { return node; } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/195e34fb951a533cb69328d7d… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/195e34fb951a533cb69328d7d… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • ...
  • 720
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.