Observe-commits
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
- 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
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
[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
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'aucune action de synchro n'est empilée, 'Appliquer' 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
[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
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
[Git][ultreiaio/ird-observe][develop] 3 commits: [V7-V8] Ajustement du modèle - Part 1 - See #1438
by Tony CHEMIT 18 Feb '20
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
[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
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'une référence, des champs que l'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'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
[Git][ultreiaio/ird-observe][develop-7.x] add validation tag value and model then generate validators
by Tony CHEMIT 17 Feb '20
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
[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
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'une référence, des champs que l'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
[Git][ultreiaio/ird-observe][develop-7.x] Petit problème sur déplacement d'activité - Closes #1435
by Tony CHEMIT 13 Feb '20
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'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
[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
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'ui
- - - - -
27451db1 by tchemit at 2020-02-13T16:17:04+01:00
Petit problème sur déplacement d'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
[Git][ultreiaio/ird-observe][develop-7.x] Petit problème sur déplacement d'activité - Closes #1435
by Tony CHEMIT 13 Feb '20
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'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