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
February 2020
- 1 participants
- 22 discussions
[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
[Git][ultreiaio/ird-observe][develop] 2 commits: [EXPORT CARTE] Le nom de fichier est généré sans l'extension PNG - Closes #1434
by Tony CHEMIT 13 Feb '20
by Tony CHEMIT 13 Feb '20
13 Feb '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
137b6b48 by tchemit at 2020-02-13T12:55:38+01:00
[EXPORT CARTE] Le nom de fichier est généré sans l'extension PNG - Closes #1434
- - - - -
3d6870bc by tchemit at 2020-02-13T12:59:17+01:00
[LL] Contrôle sur nombre de baskets trop limité - Closes #1433
- - - - -
26 changed files:
- client-core/src/main/java/fr/ird/observe/client/util/UIHelper.java
- client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/report/actions/ChooseFileReport.java
- client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/actions/ConfigDataUIChooseDumpFileAction.java
- client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/actions/ConfigReferentialUIChooseDumpFileAction.java
- client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/actions/ConfigUIChooseDumpFileAction.java
- client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/actions/ExportPng.java
- client-datasource-editor-ll/pom.xml
- 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/ObserveLLKeyStrokes.java
- client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SensorUsedUI.jaxx
- client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SensorUsedUI.jcss
- client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SensorUsedUIHandler.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/TdrUI.jcss
- 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/actions/SensorUsedUIActionSupport.java
- + client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/SensorUsedUIDeleteData.java
- + client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/SensorUsedUIExportData.java
- + client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/SensorUsedUIImportData.java
- + client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/TdrUIActionSupport.java
- + client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/TdrUIDeleteData.java
- + client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/TdrUIExportData.java
- + client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/TdrUIImportData.java
- validation/src/main/resources/fr/ird/observe/dto/data/ll/observation/SetDto-create-error-validation.xml
- validation/src/main/resources/fr/ird/observe/dto/data/ll/observation/SetDto-update-error-validation.xml
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/util/UIHelper.java
=====================================
@@ -173,16 +173,16 @@ public class UIHelper extends SwingUtil {
/**
* Choisir un fichier via un sélecteur graphique de fichiers.
*
- * @param parent le component swing appelant le controle
- * @param title le titre du dialogue de sélection
- * @param buttonLabel le label du boutton d'acceptation
- * @param incoming le fichier de base à utilier
- * @param filters les filtres + descriptions sur le sélecteur de
- * fichiers
+ * @param parent le component swing appelant le controle
+ * @param title le titre du dialogue de sélection
+ * @param buttonLabel le label du boutton d'acceptation
+ * @param incoming le fichier de base à utilier
+ * @param mainExtension l'extension principale (à rajouter sur le nom du fichier si besoin)
+ * @param filters les filtres + descriptions sur le sélecteur de fichiers
* @return le fichier choisi ou le fichier incoming si l'opération a été
* annulée
*/
- public static File chooseFile(Component parent, String title, String buttonLabel, File incoming, String... filters) {
+ public static File chooseFile(Component parent, String title, String buttonLabel, File incoming, String mainExtension, String... filters) {
JaxxFileChooser.ToLoadFile toLoadFile = JaxxFileChooser.forLoadingFile()
.setParent(parent)
@@ -199,7 +199,7 @@ public class UIHelper extends SwingUtil {
if (log.isDebugEnabled()) {
log.debug(title + " : " + file);
}
- return file == null ? incoming : file;
+ return file == null ? incoming : ensureFileExtension(file, mainExtension);
}
/**
@@ -229,6 +229,13 @@ public class UIHelper extends SwingUtil {
return file;
}
+ public static File ensureFileExtension(File file, String extension) {
+ if (extension != null && !file.getName().toLowerCase().endsWith(extension)) {
+ file = file.toPath().getParent().resolve(file.getName() + extension).toFile();
+ }
+ return file;
+ }
+
private static File getParentDirectoryIfExist(File incoming) {
if (incoming != null) {
File basedir;
=====================================
client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/report/actions/ChooseFileReport.java
=====================================
@@ -26,6 +26,7 @@ import fr.ird.observe.client.datasource.actions.report.ReportConfigUI;
import fr.ird.observe.client.datasource.actions.report.ReportModel;
import fr.ird.observe.client.util.ObserveKeyStrokesSupport;
import fr.ird.observe.client.util.UIHelper;
+import fr.ird.observe.dto.ObserveUtil;
import org.nuiton.jaxx.runtime.swing.action.JComponentActionSupport;
import java.awt.event.ActionEvent;
@@ -42,13 +43,13 @@ public class ChooseFileReport extends JComponentActionSupport<ReportConfigUI> {
@Override
protected void doActionPerformed(ActionEvent e, ReportConfigUI ui) {
ReportModel model = ui.getModel().getReportModel();
- File f = UIHelper.chooseFile(
- ui,
- t("observe.title.choose.reportFile"),
- t("observe.action.choose.reportFile"),
- model.getReportFile(),
- "^.+\\.properties$",
- t("observe.action.choose.reportFile.description"));
+ File f = UIHelper.chooseFile(ui,
+ t("observe.title.choose.reportFile"),
+ t("observe.action.choose.reportFile"),
+ model.getReportFile(),
+ ObserveUtil.PROPERTIES_EXTENSION,
+ ObserveUtil.PROPERTIES_EXTENSION_PATTERN,
+ t("observe.action.choose.reportFile.description"));
if (f != null) {
model.setReportFile(f);
}
=====================================
client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/actions/ConfigDataUIChooseDumpFileAction.java
=====================================
@@ -41,11 +41,12 @@ public class ConfigDataUIChooseDumpFileAction extends StorageTabUIActionSupport<
@Override
protected void doActionPerformed(ActionEvent e, ConfigDataUI ui) {
File f = UIHelper.chooseFile(ui,
- t("observe.title.choose.db.dump"),
- t("observe.action.choose.db.dump"),
- ui.getModel().getDumpFile(),
- ObserveUtil.SQL_GZ_EXTENSION_PATTERN,
- t("observe.action.choose.db.dump.description"));
+ t("observe.title.choose.db.dump"),
+ t("observe.action.choose.db.dump"),
+ ui.getModel().getDumpFile(),
+ ObserveUtil.SQL_GZ_EXTENSION,
+ ObserveUtil.SQL_GZ_EXTENSION_PATTERN,
+ t("observe.action.choose.db.dump.description"));
if (f != null) {
ui.getHandler().setDumpFile(f.getAbsolutePath());
}
=====================================
client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/actions/ConfigReferentialUIChooseDumpFileAction.java
=====================================
@@ -41,11 +41,12 @@ public class ConfigReferentialUIChooseDumpFileAction extends StorageTabUIActionS
@Override
protected void doActionPerformed(ActionEvent e, ConfigReferentialUI ui) {
File f = UIHelper.chooseFile(ui,
- t("observe.title.choose.db.dump"),
- t("observe.action.choose.db.dump"),
- ui.getModel().getDumpFile(),
- ObserveUtil.SQL_GZ_EXTENSION_PATTERN,
- t("observe.action.choose.db.dump.description"));
+ t("observe.title.choose.db.dump"),
+ t("observe.action.choose.db.dump"),
+ ui.getModel().getDumpFile(),
+ ObserveUtil.SQL_GZ_EXTENSION,
+ ObserveUtil.SQL_GZ_EXTENSION_PATTERN,
+ t("observe.action.choose.db.dump.description"));
if (f != null) {
ui.getHandler().setDumpFile(f.getAbsolutePath());
}
=====================================
client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/actions/ConfigUIChooseDumpFileAction.java
=====================================
@@ -41,11 +41,12 @@ public class ConfigUIChooseDumpFileAction extends StorageTabUIActionSupport<Conf
@Override
protected void doActionPerformed(ActionEvent event, ConfigUI ui) {
File f = UIHelper.chooseFile(ui,
- t("observe.title.choose.db.dump"),
- t("observe.action.choose.db.dump"),
- ui.getModel().getDumpFile(),
- ObserveUtil.SQL_GZ_EXTENSION_PATTERN,
- t("observe.action.choose.db.dump.description"));
+ t("observe.title.choose.db.dump"),
+ t("observe.action.choose.db.dump"),
+ ui.getModel().getDumpFile(),
+ ObserveUtil.SQL_GZ_EXTENSION,
+ ObserveUtil.SQL_GZ_EXTENSION_PATTERN,
+ t("observe.action.choose.db.dump.description"));
if (f != null) {
ui.getHandler().setDumpFile(f.getAbsolutePath());
}
=====================================
client-datasource-editor-common/src/main/java/fr/ird/observe/client/datasource/editor/content/data/trip/map/actions/ExportPng.java
=====================================
@@ -26,6 +26,7 @@ import fr.ird.observe.client.datasource.editor.content.data.trip.map.TripMapUI;
import fr.ird.observe.client.util.ObserveKeyStrokesSupport;
import fr.ird.observe.client.util.ObserveSwingTechnicalException;
import fr.ird.observe.client.util.UIHelper;
+import fr.ird.observe.dto.ObserveUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -57,13 +58,13 @@ public class ExportPng extends TripMapUIActionSupport {
@Override
protected void doActionPerformed(ActionEvent event, TripMapUI ui) {
- File file = UIHelper.chooseFile(
- ui,
- t("observe.content.map.export.chooseFile.title"),
- t("observe.content.map.export.chooseFile.ok"),
- null,
- "^.+\\.png|.+\\.PNG$",
- t("observe.content.map.export.chooseFile.png"));
+ File file = UIHelper.chooseFile(ui,
+ t("observe.content.map.export.chooseFile.title"),
+ t("observe.content.map.export.chooseFile.ok"),
+ null,
+ ObserveUtil.PNG_EXTENSION,
+ ObserveUtil.PNG_EXTENSION_PATTERN,
+ t("observe.content.map.export.chooseFile.png"));
if (file != null && UIHelper.confirmOverwriteFileIfExist(ui, file)) {
=====================================
client-datasource-editor-ll/pom.xml
=====================================
@@ -137,10 +137,6 @@
<groupId>io.ultreia.java4all.jaxx</groupId>
<artifactId>jaxx-widgets-datetime</artifactId>
</dependency>
- <dependency>
- <groupId>io.ultreia.java4all.jaxx</groupId>
- <artifactId>jaxx-widgets-status</artifactId>
- </dependency>
<dependency>
<groupId>io.ultreia.java4all.jaxx</groupId>
<artifactId>jaxx-widgets-select</artifactId>
=====================================
client-datasource-editor-ll/src/main/i18n/getters/java.getter
=====================================
@@ -225,7 +225,12 @@ observe.data.ll.observation.SensorUsed.action.importData
observe.data.ll.observation.SensorUsed.choose.title.exportData
observe.data.ll.observation.SensorUsed.choose.title.importData
observe.data.ll.observation.SensorUsed.delete.data.message
-observe.data.ll.observation.SensorUsed.message.data.exported
+observe.data.ll.observation.SensorUsed.deleteData
+observe.data.ll.observation.SensorUsed.deleteData.tip
+observe.data.ll.observation.SensorUsed.exportData
+observe.data.ll.observation.SensorUsed.exportData.tip
+observe.data.ll.observation.SensorUsed.importData
+observe.data.ll.observation.SensorUsed.importData.tip
observe.data.ll.observation.SensorUsed.replace.data.message
observe.data.ll.observation.SensorUsed.table.data
observe.data.ll.observation.SensorUsed.table.data.tip
@@ -289,7 +294,12 @@ observe.data.ll.observation.Tdr.action.exportData
observe.data.ll.observation.Tdr.action.importData
observe.data.ll.observation.Tdr.choose.title.exportData
observe.data.ll.observation.Tdr.choose.title.importData
-observe.data.ll.observation.Tdr.delete.data.message
+observe.data.ll.observation.Tdr.deleteData
+observe.data.ll.observation.Tdr.deleteData.tip
+observe.data.ll.observation.Tdr.exportData
+observe.data.ll.observation.Tdr.exportData.tip
+observe.data.ll.observation.Tdr.importData
+observe.data.ll.observation.Tdr.importData.tip
observe.data.ll.observation.Tdr.replace.data.message
observe.data.ll.observation.Tdr.table.data
observe.data.ll.observation.Tdr.table.data.tip
=====================================
client-datasource-editor-ll/src/main/i18n/getters/jaxx.getter
=====================================
@@ -319,12 +319,6 @@ observe.data.ll.observation.SensorUsed.action.create.tip
observe.data.ll.observation.SensorUsed.data
observe.data.ll.observation.SensorUsed.dataLocation
observe.data.ll.observation.SensorUsed.dataLocation.tip
-observe.data.ll.observation.SensorUsed.deleteData
-observe.data.ll.observation.SensorUsed.deleteData.tip
-observe.data.ll.observation.SensorUsed.exportData
-observe.data.ll.observation.SensorUsed.exportData.tip
-observe.data.ll.observation.SensorUsed.importData
-observe.data.ll.observation.SensorUsed.importData.tip
observe.data.ll.observation.SensorUsed.sensorBrand
observe.data.ll.observation.SensorUsed.sensorDataFormat
observe.data.ll.observation.SensorUsed.sensorSerialNo
@@ -414,22 +408,16 @@ observe.data.ll.observation.Tdr.caracteristicsTab
observe.data.ll.observation.Tdr.data
observe.data.ll.observation.Tdr.dataLocation
observe.data.ll.observation.Tdr.dataLocation.tip
-observe.data.ll.observation.Tdr.deleteData
-observe.data.ll.observation.Tdr.deleteData.tip
observe.data.ll.observation.Tdr.deployementEnd
observe.data.ll.observation.Tdr.deployementStart
observe.data.ll.observation.Tdr.enableTimestamp
observe.data.ll.observation.Tdr.enableTimestamp.tip
-observe.data.ll.observation.Tdr.exportData
-observe.data.ll.observation.Tdr.exportData.tip
observe.data.ll.observation.Tdr.fishingEnd
observe.data.ll.observation.Tdr.fishingEndDepth
observe.data.ll.observation.Tdr.fishingStart
observe.data.ll.observation.Tdr.fishingStartDepth
observe.data.ll.observation.Tdr.floatline1Length
observe.data.ll.observation.Tdr.floatline2Length
-observe.data.ll.observation.Tdr.importData
-observe.data.ll.observation.Tdr.importData.tip
observe.data.ll.observation.Tdr.itemHorizontalPosition
observe.data.ll.observation.Tdr.itemVerticalPosition
observe.data.ll.observation.Tdr.keyDataTab
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/ObserveLLKeyStrokes.java
=====================================
@@ -41,4 +41,7 @@ public class ObserveLLKeyStrokes extends ObserveKeyStrokesSupport {
public static final KeyStroke KEY_STROKE_ADD_SET_LONGLINE = KeyStroke.getKeyStroke("ctrl pressed L");
public static final KeyStroke KEY_STROKE_ADD_SAMPLE_LONGLINE = KeyStroke.getKeyStroke("ctrl pressed M");
public static final KeyStroke KEY_STROKE_GENERATE_ID = KeyStroke.getKeyStroke("ctrl pressed G");
+ public static final KeyStroke KEY_STROKE_IMPORT_DATA = KeyStroke.getKeyStroke("ctrl pressed I");
+ public static final KeyStroke KEY_STROKE_DELETE_DATA = KeyStroke.getKeyStroke("shift ctrl pressed D");
+ public static final KeyStroke KEY_STROKE_EXPORT_DATA = KeyStroke.getKeyStroke("ctrl pressed E");
}
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SensorUsedUI.jaxx
=====================================
@@ -126,9 +126,9 @@
</cell>
<cell weightx='1' anchor='east'>
<JPanel layout='{new GridLayout()}'>
- <JButton id="importDataButton" onActionPerformed="getHandler().importData()"/>
- <JButton id="exportDataButton" onActionPerformed="getHandler().exportData()"/>
- <JButton id="deleteDataButton" onActionPerformed="getHandler().deleteData()"/>
+ <JButton id="importData"/>
+ <JButton id="exportData"/>
+ <JButton id="deleteData"/>
</JPanel>
</cell>
</row>
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SensorUsedUI.jcss
=====================================
@@ -24,22 +24,10 @@
toolTipText:"observe.data.ll.observation.SensorUsed.dataLocation.tip";
}
-#importDataButton {
- actionIcon:data-import;
- text:"observe.data.ll.observation.SensorUsed.importData";
- toolTipText:"observe.data.ll.observation.SensorUsed.importData.tip";
-}
-
-#exportDataButton {
- actionIcon:data-export;
- text:"observe.data.ll.observation.SensorUsed.exportData";
- toolTipText:"observe.data.ll.observation.SensorUsed.exportData.tip";
+#exportData {
enabled:{tableEditBean.isHasData()};
}
-#deleteDataButton {
- actionIcon:delete;
- text:"observe.data.ll.observation.SensorUsed.deleteData";
- toolTipText:"observe.data.ll.observation.SensorUsed.deleteData.tip";
+#deleteData {
enabled:{tableEditBean.isHasData()};
}
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/SensorUsedUIHandler.java
=====================================
@@ -22,13 +22,9 @@ package fr.ird.observe.client.datasource.editor.content.data.ll.observation;
* #L%
*/
-import fr.ird.observe.client.ClientUIContextApplicationComponent;
import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUIHandler;
import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUILayoutFocusTraversalPolicy;
-import fr.ird.observe.client.main.ObserveMainUI;
-import fr.ird.observe.client.util.ObserveSwingTechnicalException;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.dto.data.DataFileDto;
import fr.ird.observe.dto.data.ll.observation.ActivitySensorUsedDto;
import fr.ird.observe.dto.data.ll.observation.SensorUsedDto;
import fr.ird.observe.dto.form.Form;
@@ -39,19 +35,13 @@ import fr.ird.observe.dto.result.SaveResultDto;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.spi.UIHandler;
-import org.nuiton.jaxx.widgets.file.JaxxFileChooser;
-import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.Component;
import java.awt.Container;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
import static io.ultreia.java4all.i18n.I18n.n;
-import static io.ultreia.java4all.i18n.I18n.t;
/**
* Created on 8/31/14.
@@ -138,78 +128,4 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivitySensorUse
saveResult.toDto(bean);
}
- public void importData() {
- SensorUsedDto tableEditBean = getModel().getTableEditBean();
- if (tableEditBean.isHasData()) {
- DataFileDto dataFile = tableEditBean.getData();
- if (dataFile == null) {
- dataFile = getLlObservationActivitySensorUsedService().getDataFile(tableEditBean.getId());
- }
- int response = UIHelper.askUser(ui,
- t("observe.title.confirmReplace"),
- t("observe.data.ll.observation.SensorUsed.replace.data.message", dataFile.getName()),
- JOptionPane.WARNING_MESSAGE,
- new Object[]{t("observe.choice.confirm.replace"),
- t("observe.choice.cancel")},
- 1);
- boolean doReplace = response == 0;
- if (!doReplace) {
- return;
- }
- }
- File file = UIHelper.chooseFile(ui,
- t("observe.data.ll.observation.SensorUsed.choose.title.importData"),
- t("observe.data.ll.observation.SensorUsed.action.importData"),
- null);
- if (file != null) {
- log.info(prefix + "Set data from file: " + file);
- DataFileDto dataFileDto = UIHelper.fileToDataFileDto(file);
- tableEditBean.setData(dataFileDto);
- tableEditBean.setHasData(true);
- }
- }
-
- public void deleteData() {
- int response = UIHelper.askUser(ui,
- t("observe.title.delete"),
- t("observe.data.ll.observation.SensorUsed.delete.data.message"),
- JOptionPane.WARNING_MESSAGE,
- new Object[]{t("observe.choice.confirm.delete"),
- t("observe.choice.cancel")},
- 1);
- boolean doDelete = response == 0;
- if (doDelete) {
- SensorUsedDto tableEditBean = getModel().getTableEditBean();
- log.info(prefix + "Delete sensorUsed data " + tableEditBean.getData());
- tableEditBean.setData(null);
- tableEditBean.setHasData(false);
- }
- }
-
- public void exportData() {
- SensorUsedDto tableEditBean = getModel().getTableEditBean();
- DataFileDto dataFile = tableEditBean.getData();
- if (dataFile == null) {
- dataFile = getLlObservationActivitySensorUsedService().getDataFile(tableEditBean.getId());
- }
- File file = JaxxFileChooser
- .forSaving()
- .setParent(ui)
- .setTitle(t("observe.data.ll.observation.SensorUsed.choose.title.exportData"))
- .setApprovalText(t("observe.data.ll.observation.SensorUsed.action.exportData"))
- .setFilename(dataFile.getName())
- .setUseAcceptAllFileFilter(true)
- .choose();
-
- if (file != null && UIHelper.confirmOverwriteFileIfExist(ui, file)) {
- log.info(prefix + "save sensorUsed data to " + file);
- try {
- Files.write(file.toPath(), dataFile.getContent());
- ObserveMainUI mainUI = ClientUIContextApplicationComponent.value().getMainUI();
- mainUI.getStatus().setStatus(t("observe.data.ll.observation.SensorUsed.message.data.exported", file));
- } catch (IOException e) {
- throw new ObserveSwingTechnicalException("Could not save binary data to " + file, e);
- }
- }
- }
}
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/TdrUI.jaxx
=====================================
@@ -133,9 +133,9 @@
</cell>
<cell weightx='1' anchor='east'>
<JPanel layout='{new GridLayout()}'>
- <JButton id="importDataButton" onActionPerformed="getHandler().importData()"/>
- <JButton id="exportDataButton" onActionPerformed="getHandler().exportData()"/>
- <JButton id="deleteDataButton" onActionPerformed="getHandler().deleteData()"/>
+ <JButton id="importData"/>
+ <JButton id="exportData"/>
+ <JButton id="deleteData"/>
</JPanel>
</cell>
</row>
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/TdrUI.jcss
=====================================
@@ -28,23 +28,11 @@
toolTipText:"observe.data.ll.observation.Tdr.dataLocation.tip";
}
-#importDataButton {
- actionIcon:data-import;
- text:"observe.data.ll.observation.Tdr.importData";
- toolTipText:"observe.data.ll.observation.Tdr.importData.tip";
-}
-
-#exportDataButton {
- actionIcon:data-export;
- text:"observe.data.ll.observation.Tdr.exportData";
- toolTipText:"observe.data.ll.observation.Tdr.exportData.tip";
+#exportData {
enabled:{tableEditBean.isHasData()};
}
-#deleteDataButton {
- actionIcon:delete;
- text:"observe.data.ll.observation.Tdr.deleteData";
- toolTipText:"observe.data.ll.observation.Tdr.deleteData.tip";
+#deleteData {
enabled:{tableEditBean.isHasData()};
}
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/TdrUIHandler.java
=====================================
@@ -22,16 +22,12 @@ package fr.ird.observe.client.datasource.editor.content.data.ll.observation;
* #L%
*/
-import fr.ird.observe.client.ClientUIContextApplicationComponent;
import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableModel;
import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUIHandler;
import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUILayoutFocusTraversalPolicy;
import fr.ird.observe.client.datasource.editor.content.data.table.ContentTableUIModel;
import fr.ird.observe.client.datasource.editor.content.spi.ContentUIReferenceCache;
-import fr.ird.observe.client.main.ObserveMainUI;
-import fr.ird.observe.client.util.ObserveSwingTechnicalException;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.dto.data.DataFileDto;
import fr.ird.observe.dto.data.ll.observation.SetTdrDto;
import fr.ird.observe.dto.data.ll.observation.TdrDto;
import fr.ird.observe.dto.form.Form;
@@ -40,20 +36,14 @@ import fr.ird.observe.dto.result.SaveResultDto;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.spi.UIHandler;
-import org.nuiton.jaxx.widgets.file.JaxxFileChooser;
import javax.swing.JComponent;
-import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
import java.util.Date;
import java.util.List;
import static io.ultreia.java4all.i18n.I18n.n;
-import static io.ultreia.java4all.i18n.I18n.t;
/**
* Created on 9/30/14.
@@ -214,85 +204,6 @@ public class TdrUIHandler extends ContentTableUIHandler<SetTdrDto, TdrDto, TdrUI
setTimestamp(bean, timeStamp);
}
- public void importData() {
- TdrDto tableEditBean = getModel().getTableEditBean();
- if (tableEditBean.isHasData()) {
- DataFileDto dataFile = tableEditBean.getData();
- if (dataFile == null) {
- dataFile = getLlObservationSetTdrService().getDataFile(tableEditBean.getId());
- }
- int response = UIHelper.askUser(ui,
- t("observe.title.confirmReplace"),
- t("observe.data.ll.observation.Tdr.replace.data.message", dataFile.getName()),
- JOptionPane.WARNING_MESSAGE,
- new Object[]{t("observe.choice.confirm.replace"),
- t("observe.choice.cancel")},
- 1);
- boolean doReplace = response == 0;
- if (!doReplace) {
- return;
- }
- }
-
- File file = UIHelper.chooseFile(ui,
- t("observe.data.ll.observation.Tdr.choose.title.importData"),
- t("observe.data.ll.observation.Tdr.action.importData"),
- null);
- if (file != null) {
- log.info("Set data from file: " + file);
- DataFileDto dataFileDto = UIHelper.fileToDataFileDto(file);
- tableEditBean.setData(dataFileDto);
- tableEditBean.setHasData(true);
- }
- }
-
- public void deleteData() {
- int response = UIHelper.askUser(ui,
- t("observe.title.delete"),
- t("observe.data.ll.observation.Tdr.delete.data.message"),
- JOptionPane.WARNING_MESSAGE,
- new Object[]{t("observe.choice.confirm.delete"),
- t("observe.choice.cancel")},
- 1);
- boolean doDelete = response == 0;
- if (doDelete) {
- TdrDto tableEditBean = getModel().getTableEditBean();
- log.info("Delete tdr data " + tableEditBean.getData());
- tableEditBean.setData(null);
- tableEditBean.setHasData(false);
- }
- }
-
- public void exportData() {
-
- TdrDto tableEditBean = getModel().getTableEditBean();
- DataFileDto dataFile = tableEditBean.getData();
-
- if (dataFile == null) {
- dataFile = getLlObservationSetTdrService().getDataFile(tableEditBean.getId());
- }
-
- File file = JaxxFileChooser
- .forSaving()
- .setParent(ui)
- .setTitle(t("observe.data.ll.observation.Tdr.choose.title.exportData"))
- .setApprovalText(t("observe.data.ll.observation.Tdr.action.exportData"))
- .setFilename(dataFile.getName())
- .setUseAcceptAllFileFilter(true)
- .choose();
-
- if (file != null && UIHelper.confirmOverwriteFileIfExist(ui, file)) {
- log.info("save tdr data to " + file);
- try {
- Files.write(file.toPath(), dataFile.getContent());
- ObserveMainUI mainUI = ClientUIContextApplicationComponent.value().getMainUI();
- mainUI.getStatus().setStatus(t("observe.data.ll.observation.SensorUsed.message.data.exported", file));
- } catch (IOException e) {
- throw new ObserveSwingTechnicalException("Could not save binary data to " + file, e);
- }
- }
- }
-
private void setTimestamp(TdrDto bean, Date timestamp) {
bean.setDeployementStart(timestamp);
bean.setDeployementEnd(timestamp);
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/SensorUsedUIActionSupport.java
=====================================
@@ -0,0 +1,41 @@
+package fr.ird.observe.client.datasource.editor.content.data.ll.observation.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client DataSource Editor LL
+ * %%
+ * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.datasource.editor.content.actions.ContentUIActionSupport;
+import fr.ird.observe.client.datasource.editor.content.data.ll.observation.SensorUsedUI;
+
+import javax.swing.KeyStroke;
+
+/**
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8
+ */
+public abstract class SensorUsedUIActionSupport extends ContentUIActionSupport<SensorUsedUI> {
+
+ protected SensorUsedUIActionSupport(String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) {
+ super(label, shortDescription, actionIcon, acceleratorKey);
+ }
+
+}
+
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/SensorUsedUIDeleteData.java
=====================================
@@ -0,0 +1,68 @@
+package fr.ird.observe.client.datasource.editor.content.data.ll.observation.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client DataSource Editor LL
+ * %%
+ * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.datasource.editor.content.ObserveLLKeyStrokes;
+import fr.ird.observe.client.datasource.editor.content.data.ll.observation.SensorUsedUI;
+import fr.ird.observe.client.util.UIHelper;
+import fr.ird.observe.dto.data.ll.observation.SensorUsedDto;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import javax.swing.JOptionPane;
+import java.awt.event.ActionEvent;
+
+import static io.ultreia.java4all.i18n.I18n.n;
+import static io.ultreia.java4all.i18n.I18n.t;
+
+/**
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since ?
+ */
+public class SensorUsedUIDeleteData extends SensorUsedUIActionSupport {
+
+ private static final Logger log = LogManager.getLogger(SensorUsedUIDeleteData.class);
+
+ public SensorUsedUIDeleteData() {
+ super(n("observe.data.ll.observation.SensorUsed.deleteData"), n("observe.data.ll.observation.SensorUsed.deleteData.tip"), "delete", ObserveLLKeyStrokes.KEY_STROKE_DELETE_DATA);
+ }
+
+ @Override
+ protected void doActionPerformed(ActionEvent e, SensorUsedUI ui) {
+ int response = UIHelper.askUser(ui,
+ t("observe.title.delete"),
+ t("observe.data.ll.observation.SensorUsed.delete.data.message"),
+ JOptionPane.WARNING_MESSAGE,
+ new Object[]{t("observe.choice.confirm.delete"),
+ t("observe.choice.cancel")},
+ 1);
+ boolean doDelete = response == 0;
+ if (doDelete) {
+ SensorUsedDto tableEditBean = ui.getModel().getTableEditBean();
+ log.info(String.format("%s Delete sensorUsed data %s", ui.getModel().getPrefix(), tableEditBean.getData()));
+ tableEditBean.setData(null);
+ tableEditBean.setHasData(false);
+ }
+
+ }
+}
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/SensorUsedUIExportData.java
=====================================
@@ -0,0 +1,81 @@
+package fr.ird.observe.client.datasource.editor.content.data.ll.observation.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client DataSource Editor LL
+ * %%
+ * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.datasource.editor.content.ObserveLLKeyStrokes;
+import fr.ird.observe.client.datasource.editor.content.data.ll.observation.SensorUsedUI;
+import fr.ird.observe.client.util.ObserveSwingTechnicalException;
+import fr.ird.observe.client.util.UIHelper;
+import fr.ird.observe.dto.data.DataFileDto;
+import fr.ird.observe.dto.data.ll.observation.SensorUsedDto;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.nuiton.jaxx.widgets.file.JaxxFileChooser;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+
+import static io.ultreia.java4all.i18n.I18n.n;
+import static io.ultreia.java4all.i18n.I18n.t;
+
+/**
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8
+ */
+public class SensorUsedUIExportData extends SensorUsedUIActionSupport {
+
+ private static final Logger log = LogManager.getLogger(SensorUsedUIExportData.class);
+
+ public SensorUsedUIExportData() {
+ super(n("observe.data.ll.observation.SensorUsed.exportData"), n("observe.data.ll.observation.SensorUsed.exportData.tip"), "data-export", ObserveLLKeyStrokes.KEY_STROKE_EXPORT_DATA);
+ }
+
+ @Override
+ protected void doActionPerformed(ActionEvent event, SensorUsedUI ui) {
+
+ SensorUsedDto tableEditBean = ui.getModel().getTableEditBean();
+ DataFileDto dataFile = tableEditBean.getData();
+ if (dataFile == null) {
+ dataFile = getDataSource().getLlObservationActivitySensorUsedService().getDataFile(tableEditBean.getId());
+ }
+ File file = JaxxFileChooser
+ .forSaving()
+ .setParent(ui)
+ .setTitle(t("observe.data.ll.observation.SensorUsed.choose.title.exportData"))
+ .setApprovalText(t("observe.data.ll.observation.SensorUsed.action.exportData"))
+ .setFilename(dataFile.getName())
+ .setUseAcceptAllFileFilter(true)
+ .choose();
+
+ if (file != null && UIHelper.confirmOverwriteFileIfExist(ui, file)) {
+ log.info(String.format("%s save sensorUsed data to %s", ui.getModel().getPrefix(), file));
+ try {
+ Files.write(file.toPath(), dataFile.getContent());
+ } catch (IOException e) {
+ throw new ObserveSwingTechnicalException("Could not save binary data to " + file, e);
+ }
+ }
+ }
+}
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/SensorUsedUIImportData.java
=====================================
@@ -0,0 +1,85 @@
+package fr.ird.observe.client.datasource.editor.content.data.ll.observation.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client DataSource Editor LL
+ * %%
+ * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.datasource.editor.content.ObserveLLKeyStrokes;
+import fr.ird.observe.client.datasource.editor.content.data.ll.observation.SensorUsedUI;
+import fr.ird.observe.client.util.UIHelper;
+import fr.ird.observe.dto.data.DataFileDto;
+import fr.ird.observe.dto.data.ll.observation.SensorUsedDto;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import javax.swing.JOptionPane;
+import java.awt.event.ActionEvent;
+import java.io.File;
+
+import static io.ultreia.java4all.i18n.I18n.n;
+import static io.ultreia.java4all.i18n.I18n.t;
+
+/**
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8
+ */
+public class SensorUsedUIImportData extends SensorUsedUIActionSupport {
+
+ private static final Logger log = LogManager.getLogger(SensorUsedUIImportData.class);
+
+ public SensorUsedUIImportData() {
+ super(n("observe.data.ll.observation.SensorUsed.importData"), n("observe.data.ll.observation.SensorUsed.importData.tip"), "data-import", ObserveLLKeyStrokes.KEY_STROKE_IMPORT_DATA);
+ }
+
+ @Override
+ protected void doActionPerformed(ActionEvent e, SensorUsedUI ui) {
+ SensorUsedDto tableEditBean = ui.getModel().getTableEditBean();
+ if (tableEditBean.isHasData()) {
+ DataFileDto dataFile = tableEditBean.getData();
+ if (dataFile == null) {
+ dataFile = getDataSource().getLlObservationActivitySensorUsedService().getDataFile(tableEditBean.getId());
+ }
+ int response = UIHelper.askUser(ui,
+ t("observe.title.confirmReplace"),
+ t("observe.data.ll.observation.SensorUsed.replace.data.message", dataFile.getName()),
+ JOptionPane.WARNING_MESSAGE,
+ new Object[]{t("observe.choice.confirm.replace"),
+ t("observe.choice.cancel")},
+ 1);
+ boolean doReplace = response == 0;
+ if (!doReplace) {
+ return;
+ }
+ }
+
+ File file = UIHelper.chooseFile(ui,
+ t("observe.data.ll.observation.SensorUsed.choose.title.importData"),
+ t("observe.data.ll.observation.SensorUsed.action.importData"),
+ null,
+ null);
+ if (file != null) {
+ log.info(String.format("%s Import sensorUsed data from file: %s", ui.getModel().getPrefix(), file));
+ DataFileDto dataFileDto = UIHelper.fileToDataFileDto(file);
+ tableEditBean.setData(dataFileDto);
+ tableEditBean.setHasData(true);
+ }
+ }
+}
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/TdrUIActionSupport.java
=====================================
@@ -0,0 +1,52 @@
+package fr.ird.observe.client.datasource.editor.content.data.ll.observation.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client DataSource Editor LL
+ * %%
+ * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.datasource.editor.content.actions.ContentUIActionSupport;
+import fr.ird.observe.client.datasource.editor.content.data.ll.observation.TdrUI;
+
+import javax.swing.KeyStroke;
+
+/**
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8
+ */
+public abstract class TdrUIActionSupport extends ContentUIActionSupport<TdrUI> {
+
+ protected TdrUIActionSupport(String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) {
+ super(label, shortDescription, actionIcon, acceleratorKey);
+ }
+
+ protected TdrUIActionSupport(String actionCommandKey, String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) {
+ super(actionCommandKey, label, shortDescription, actionIcon, acceleratorKey);
+ }
+
+ protected TdrUIActionSupport(String label, String shortDescription, String actionIcon, char acceleratorKey) {
+ super(label, shortDescription, actionIcon, acceleratorKey);
+ }
+
+ protected TdrUIActionSupport(String actionCommandKey, String label, String shortDescription, String actionIcon, char acceleratorKey) {
+ super(actionCommandKey, label, shortDescription, actionIcon, acceleratorKey);
+ }
+}
+
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/TdrUIDeleteData.java
=====================================
@@ -0,0 +1,67 @@
+package fr.ird.observe.client.datasource.editor.content.data.ll.observation.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client DataSource Editor LL
+ * %%
+ * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.datasource.editor.content.ObserveLLKeyStrokes;
+import fr.ird.observe.client.datasource.editor.content.data.ll.observation.TdrUI;
+import fr.ird.observe.client.util.UIHelper;
+import fr.ird.observe.dto.data.ll.observation.TdrDto;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import javax.swing.JOptionPane;
+import java.awt.event.ActionEvent;
+
+import static io.ultreia.java4all.i18n.I18n.n;
+import static io.ultreia.java4all.i18n.I18n.t;
+
+/**
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8
+ */
+public class TdrUIDeleteData extends TdrUIActionSupport {
+
+ private static final Logger log = LogManager.getLogger(TdrUIDeleteData.class);
+
+ public TdrUIDeleteData() {
+ super(n("observe.data.ll.observation.Tdr.deleteData"), n("observe.data.ll.observation.Tdr.deleteData.tip"), "delete", ObserveLLKeyStrokes.KEY_STROKE_DELETE_DATA);
+ }
+
+ @Override
+ protected void doActionPerformed(ActionEvent e, TdrUI ui) {
+ int response = UIHelper.askUser(ui,
+ t("observe.title.delete"),
+ t("observe.data.ll.observation.SensorUsed.delete.data.message"),
+ JOptionPane.WARNING_MESSAGE,
+ new Object[]{t("observe.choice.confirm.delete"),
+ t("observe.choice.cancel")},
+ 1);
+ boolean doDelete = response == 0;
+ if (doDelete) {
+ TdrDto tableEditBean = ui.getModel().getTableEditBean();
+ log.info(String.format("%s Delete tdr data %s", ui.getModel().getPrefix(), tableEditBean.getData()));
+ tableEditBean.setData(null);
+ tableEditBean.setHasData(false);
+ }
+ }
+}
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/TdrUIExportData.java
=====================================
@@ -0,0 +1,83 @@
+package fr.ird.observe.client.datasource.editor.content.data.ll.observation.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client DataSource Editor LL
+ * %%
+ * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.datasource.editor.content.ObserveLLKeyStrokes;
+import fr.ird.observe.client.datasource.editor.content.data.ll.observation.TdrUI;
+import fr.ird.observe.client.util.ObserveSwingTechnicalException;
+import fr.ird.observe.client.util.UIHelper;
+import fr.ird.observe.dto.data.DataFileDto;
+import fr.ird.observe.dto.data.ll.observation.TdrDto;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.nuiton.jaxx.widgets.file.JaxxFileChooser;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+
+import static io.ultreia.java4all.i18n.I18n.n;
+import static io.ultreia.java4all.i18n.I18n.t;
+
+/**
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8
+ */
+public class TdrUIExportData extends TdrUIActionSupport {
+
+ private static final Logger log = LogManager.getLogger(TdrUIExportData.class);
+
+ public TdrUIExportData() {
+ super(n("observe.data.ll.observation.Tdr.exportData"), n("observe.data.ll.observation.Tdr.exportData.tip"), "data-export", ObserveLLKeyStrokes.KEY_STROKE_EXPORT_DATA);
+ }
+
+ @Override
+ protected void doActionPerformed(ActionEvent event, TdrUI ui) {
+
+ TdrDto tableEditBean = ui.getModel().getTableEditBean();
+ DataFileDto dataFile = tableEditBean.getData();
+
+ if (dataFile == null) {
+ dataFile = getDataSource().getLlObservationSetTdrService().getDataFile(tableEditBean.getId());
+ }
+
+ File file = JaxxFileChooser
+ .forSaving()
+ .setParent(ui)
+ .setTitle(t("observe.data.ll.observation.Tdr.choose.title.exportData"))
+ .setApprovalText(t("observe.data.ll.observation.Tdr.action.exportData"))
+ .setFilename(dataFile.getName())
+ .setUseAcceptAllFileFilter(true)
+ .choose();
+
+ if (file != null && UIHelper.confirmOverwriteFileIfExist(ui, file)) {
+ try {
+ log.info(String.format("%s save tdr data to %s", ui.getModel().getPrefix(), file));
+ Files.write(file.toPath(), dataFile.getContent());
+ } catch (IOException e) {
+ throw new ObserveSwingTechnicalException("Could not save binary data to " + file, e);
+ }
+ }
+ }
+}
=====================================
client-datasource-editor-ll/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ll/observation/actions/TdrUIImportData.java
=====================================
@@ -0,0 +1,85 @@
+package fr.ird.observe.client.datasource.editor.content.data.ll.observation.actions;
+
+/*-
+ * #%L
+ * ObServe :: Client DataSource Editor LL
+ * %%
+ * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.client.datasource.editor.content.ObserveLLKeyStrokes;
+import fr.ird.observe.client.datasource.editor.content.data.ll.observation.TdrUI;
+import fr.ird.observe.client.util.UIHelper;
+import fr.ird.observe.dto.data.DataFileDto;
+import fr.ird.observe.dto.data.ll.observation.TdrDto;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import javax.swing.JOptionPane;
+import java.awt.event.ActionEvent;
+import java.io.File;
+
+import static io.ultreia.java4all.i18n.I18n.n;
+import static io.ultreia.java4all.i18n.I18n.t;
+
+/**
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 8
+ */
+public class TdrUIImportData extends TdrUIActionSupport {
+
+ private static final Logger log = LogManager.getLogger(TdrUIImportData.class);
+
+ public TdrUIImportData() {
+ super(n("observe.data.ll.observation.Tdr.importData"), n("observe.data.ll.observation.Tdr.importData.tip"), "data-import", ObserveLLKeyStrokes.KEY_STROKE_IMPORT_DATA);
+ }
+
+ @Override
+ protected void doActionPerformed(ActionEvent e, TdrUI ui) {
+ TdrDto tableEditBean = ui.getModel().getTableEditBean();
+ if (tableEditBean.isHasData()) {
+ DataFileDto dataFile = tableEditBean.getData();
+ if (dataFile == null) {
+ dataFile = getDataSource().getLlObservationSetTdrService().getDataFile(tableEditBean.getId());
+ }
+ int response = UIHelper.askUser(ui,
+ t("observe.title.confirmReplace"),
+ t("observe.data.ll.observation.Tdr.replace.data.message", dataFile.getName()),
+ JOptionPane.WARNING_MESSAGE,
+ new Object[]{t("observe.choice.confirm.replace"),
+ t("observe.choice.cancel")},
+ 1);
+ boolean doReplace = response == 0;
+ if (!doReplace) {
+ return;
+ }
+ }
+
+ File file = UIHelper.chooseFile(ui,
+ t("observe.data.ll.observation.Tdr.choose.title.importData"),
+ t("observe.data.ll.observation.Tdr.action.importData"),
+ null,
+ null);
+ if (file != null) {
+ log.info(String.format("%s Import tdr data from file: %s", ui.getModel().getPrefix(), file));
+ DataFileDto dataFileDto = UIHelper.fileToDataFileDto(file);
+ tableEditBean.setData(dataFileDto);
+ tableEditBean.setHasData(true);
+ }
+ }
+}
=====================================
validation/src/main/resources/fr/ird/observe/dto/data/ll/observation/SetDto-create-error-validation.xml
=====================================
@@ -100,41 +100,6 @@
<message/>
</field-validator>
</field>
- <field name="haulingStartTimeStamp">
- <field-validator type="mandatory" short-circuit="true">
- <message/>
- </field-validator>
-
- <!-- settingEndTimeStamp < haulingStartTimeStamp -->
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[ settingEndTimeStamp == null || settingEndTimeStamp.time < haulingStartTimeStamp.time ]]>
- </param>
- <message>observe.validation.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp</message>
- </field-validator>
- </field>
- <field name="haulingEndTimeStamp">
- <field-validator type="mandatory" short-circuit="true">
- <message/>
- </field-validator>
-
- <!-- haulingStartTimeStamp < haulingEndTimeStamp -->
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[ haulingStartTimeStamp == null || haulingStartTimeStamp.time < haulingEndTimeStamp.time ]]>
- </param>
- <message>observe.validation.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp</message>
- </field-validator>
- </field>
- <field name="settingStartQuadrant">
- <field-validator type="mandatory" short-circuit="true">
- <message/>
- </field-validator>
- <field-validator type="quadrantDto" short-circuit="true">
- <param name="ocean">currentLlCommonTrip.ocean</param>
- <message/>
- </field-validator>
- </field>
<field name="settingStartLatitude">
<field-validator type="mandatory" short-circuit="true">
<message/>
@@ -153,7 +118,7 @@
<message/>
</field-validator>
</field>
- <field name="settingEndQuadrant">
+ <field name="settingStartQuadrant">
<field-validator type="mandatory" short-circuit="true">
<message/>
</field-validator>
@@ -180,7 +145,7 @@
<message/>
</field-validator>
</field>
- <field name="haulingStartQuadrant">
+ <field name="settingEndQuadrant">
<field-validator type="mandatory" short-circuit="true">
<message/>
</field-validator>
@@ -207,7 +172,7 @@
<message/>
</field-validator>
</field>
- <field name="haulingEndQuadrant">
+ <field name="haulingStartQuadrant">
<field-validator type="mandatory" short-circuit="true">
<message/>
</field-validator>
@@ -234,6 +199,15 @@
<message/>
</field-validator>
</field>
+ <field name="haulingEndQuadrant">
+ <field-validator type="mandatory" short-circuit="true">
+ <message/>
+ </field-validator>
+ <field-validator type="quadrantDto" short-circuit="true">
+ <param name="ocean">currentLlCommonTrip.ocean</param>
+ <message/>
+ </field-validator>
+ </field>
<field name="totalSectionsCount">
<field-validator type="mandatory" short-circuit="true">
<message/>
@@ -267,7 +241,7 @@
<field name="totalBasketsCount">
<field-validator type="boundNumber" short-circuit="true">
<param name="min">0.0</param>
- <param name="max">1000.0</param>
+ <param name="max">400.0</param>
<message/>
</field-validator>
</field>
=====================================
validation/src/main/resources/fr/ird/observe/dto/data/ll/observation/SetDto-update-error-validation.xml
=====================================
@@ -49,6 +49,7 @@
<field-validator type="mandatory" short-circuit="true">
<message/>
</field-validator>
+
<!-- settingStartTimeStamp < settingEndTimeStamp -->
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
@@ -57,30 +58,6 @@
<message>observe.validation.setLongline.settingStartTimeStamp.before.settingEndTimeStamp</message>
</field-validator>
</field>
- <field name="haulingStartTimeStamp">
- <field-validator type="mandatory" short-circuit="true">
- <message/>
- </field-validator>
- <!-- settingEndTimeStamp < haulingStartTimeStamp -->
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[ settingEndTimeStamp == null || settingEndTimeStamp.time < haulingStartTimeStamp.time ]]>
- </param>
- <message>observe.validation.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp</message>
- </field-validator>
- </field>
- <field name="haulingEndTimeStamp">
- <field-validator type="mandatory" short-circuit="true">
- <message/>
- </field-validator>
- <!-- haulingStartTimeStamp < haulingEndTimeStamp -->
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[ haulingStartTimeStamp == null || haulingStartTimeStamp.time < haulingEndTimeStamp.time ]]>
- </param>
- <message>observe.validation.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp</message>
- </field-validator>
- </field>
<field name="settingVesselSpeed">
<field-validator type="boundNumber" short-circuit="true">
<param name="min">0.0</param>
@@ -264,7 +241,7 @@
<field name="totalBasketsCount">
<field-validator type="boundNumber" short-circuit="true">
<param name="min">0.0</param>
- <param name="max">1000.0</param>
+ <param name="max">400.0</param>
<message/>
</field-validator>
</field>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c6c83b3b5bb3b974e310a2b2…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c6c83b3b5bb3b974e310a2b2…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] [LL] Contrôle sur nombre de baskets trop limité - Closes #1433
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:
fe8162d9 by tchemit at 2020-02-13T12:12:37+01:00
[LL] Contrôle sur nombre de baskets trop limité - Closes #1433
- - - - -
2 changed files:
- 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-update-error-validation.xml
Changes:
=====================================
validation/src/main/resources/fr/ird/observe/dto/data/longline/SetLonglineDto-create-error-validation.xml
=====================================
@@ -58,6 +58,30 @@
<message>observe.validation.setLongline.settingStartTimeStamp.before.settingEndTimeStamp</message>
</field-validator>
</field>
+ <field name="haulingStartTimeStamp">
+ <field-validator type="mandatory" short-circuit="true">
+ <message/>
+ </field-validator>
+ <!-- settingEndTimeStamp < haulingStartTimeStamp -->
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[ settingEndTimeStamp == null || settingEndTimeStamp.time < haulingStartTimeStamp.time ]]>
+ </param>
+ <message>observe.validation.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp</message>
+ </field-validator>
+ </field>
+ <field name="haulingEndTimeStamp">
+ <field-validator type="mandatory" short-circuit="true">
+ <message/>
+ </field-validator>
+ <!-- haulingStartTimeStamp < haulingEndTimeStamp -->
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[ haulingStartTimeStamp == null || haulingStartTimeStamp.time < haulingEndTimeStamp.time ]]>
+ </param>
+ <message>observe.validation.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp</message>
+ </field-validator>
+ </field>
<field name="settingVesselSpeed">
<field-validator type="boundNumber" short-circuit="true">
<param name="min">0.0</param>
@@ -100,41 +124,6 @@
<message/>
</field-validator>
</field>
- <field name="haulingStartTimeStamp">
- <field-validator type="mandatory" short-circuit="true">
- <message/>
- </field-validator>
-
- <!-- settingEndTimeStamp < haulingStartTimeStamp -->
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[ settingEndTimeStamp == null || settingEndTimeStamp.time < haulingStartTimeStamp.time ]]>
- </param>
- <message>observe.validation.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp</message>
- </field-validator>
- </field>
- <field name="haulingEndTimeStamp">
- <field-validator type="mandatory" short-circuit="true">
- <message/>
- </field-validator>
-
- <!-- haulingStartTimeStamp < haulingEndTimeStamp -->
- <field-validator type="fieldexpression" short-circuit="true">
- <param name="expression">
- <![CDATA[ haulingStartTimeStamp == null || haulingStartTimeStamp.time < haulingEndTimeStamp.time ]]>
- </param>
- <message>observe.validation.setLongline.haulingStartTimeStamp.before.haulingEndTimeStamp</message>
- </field-validator>
- </field>
- <field name="settingStartQuadrant">
- <field-validator type="mandatory" short-circuit="true">
- <message/>
- </field-validator>
- <field-validator type="quadrantDto" short-circuit="true">
- <param name="ocean">currentTripLongline.ocean</param>
- <message/>
- </field-validator>
- </field>
<field name="settingStartLatitude">
<field-validator type="mandatory" short-circuit="true">
<message/>
@@ -153,7 +142,7 @@
<message/>
</field-validator>
</field>
- <field name="settingEndQuadrant">
+ <field name="settingStartQuadrant">
<field-validator type="mandatory" short-circuit="true">
<message/>
</field-validator>
@@ -180,7 +169,7 @@
<message/>
</field-validator>
</field>
- <field name="haulingStartQuadrant">
+ <field name="settingEndQuadrant">
<field-validator type="mandatory" short-circuit="true">
<message/>
</field-validator>
@@ -207,7 +196,7 @@
<message/>
</field-validator>
</field>
- <field name="haulingEndQuadrant">
+ <field name="haulingStartQuadrant">
<field-validator type="mandatory" short-circuit="true">
<message/>
</field-validator>
@@ -234,6 +223,15 @@
<message/>
</field-validator>
</field>
+ <field name="haulingEndQuadrant">
+ <field-validator type="mandatory" short-circuit="true">
+ <message/>
+ </field-validator>
+ <field-validator type="quadrantDto" short-circuit="true">
+ <param name="ocean">currentTripLongline.ocean</param>
+ <message/>
+ </field-validator>
+ </field>
<field name="totalSectionsCount">
<field-validator type="mandatory" short-circuit="true">
<message/>
@@ -267,7 +265,7 @@
<field name="totalBasketsCount">
<field-validator type="boundNumber" short-circuit="true">
<param name="min">0.0</param>
- <param name="max">100.0</param>
+ <param name="max">400.0</param>
<message/>
</field-validator>
</field>
=====================================
validation/src/main/resources/fr/ird/observe/dto/data/longline/SetLonglineDto-update-error-validation.xml
=====================================
@@ -49,6 +49,7 @@
<field-validator type="mandatory" short-circuit="true">
<message/>
</field-validator>
+
<!-- settingStartTimeStamp < settingEndTimeStamp -->
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
@@ -264,7 +265,7 @@
<field name="totalBasketsCount">
<field-validator type="boundNumber" short-circuit="true">
<param name="min">0.0</param>
- <param name="max">1000.0</param>
+ <param name="max">400.0</param>
<message/>
</field-validator>
</field>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fe8162d94548348ffddf21f80…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fe8162d94548348ffddf21f80…
You're receiving this email because of your account on gitlab.com.
1
0
13 Feb '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
ba28c9d7 by tchemit at 2020-02-13T12:00:19+01:00
move to version 7.3.1-SNAPSHOT
- - - - -
16 changed files:
- client-configuration/pom.xml
- client-core/pom.xml
- client-runner/pom.xml
- dto/pom.xml
- observe-i18n/pom.xml
- observe/pom.xml
- persistence/pom.xml
- pom.xml
- server-configuration/pom.xml
- server-core/pom.xml
- server-runner/pom.xml
- services-client/pom.xml
- services-local/pom.xml
- services/pom.xml
- test/pom.xml
- validation/pom.xml
Changes:
=====================================
client-configuration/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>client-configuration</artifactId>
=====================================
client-core/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>client-core</artifactId>
=====================================
client-runner/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>client-runner</artifactId>
=====================================
dto/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>dto</artifactId>
=====================================
observe-i18n/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>observe-i18n</artifactId>
=====================================
observe/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>observe</artifactId>
=====================================
persistence/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>persistence</artifactId>
=====================================
pom.xml
=====================================
@@ -31,7 +31,7 @@
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>ObServe :: Pom</name>
=====================================
server-configuration/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>server-configuration</artifactId>
=====================================
server-core/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>server-core</artifactId>
=====================================
server-runner/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>server-runner</artifactId>
=====================================
services-client/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>services-client</artifactId>
=====================================
services-local/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>services-local</artifactId>
=====================================
services/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>services</artifactId>
=====================================
test/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>test</artifactId>
=====================================
validation/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.4.0-SNAPSHOT</version>
+ <version>7.3.1-SNAPSHOT</version>
</parent>
<artifactId>validation</artifactId>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/ba28c9d7c1b8d577c3ab36ec6…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/ba28c9d7c1b8d577c3ab36ec6…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] [EXPORT CARTE] Le nom de fichier est généré sans l'extension PNG - Closes #1434
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:
fac65120 by tchemit at 2020-02-13T11:59:41+01:00
[EXPORT CARTE] Le nom de fichier est généré sans l'extension PNG - Closes #1434
- - - - -
8 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/actions/tripMap/ExportPngUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/SensorUsedUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/TdrUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/storage/tabs/ConfigDataUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/storage/tabs/ConfigReferentielUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/storage/tabs/ConfigUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/util/UIHelper.java
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/actions/tripMap/ExportPngUIAction.java
=====================================
@@ -61,6 +61,7 @@ public class ExportPngUIAction extends TripMapActionSupport {
t("observe.content.map.export.chooseFile.title"),
t("observe.content.map.export.chooseFile.ok"),
null,
+ ".png",
"^.+\\.png|.+\\.PNG$",
t("observe.content.map.export.chooseFile.png"));
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java
=====================================
@@ -245,6 +245,7 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa
t("observe.title.choose.reportFile"),
t("observe.action.choose.reportFile"),
model.getReportFile(),
+ ".properties",
"^.+\\.properties$",
t("observe.action.choose.reportFile.description"));
model.setReportFile(f);
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/SensorUsedUIHandler.java
=====================================
@@ -137,6 +137,7 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineS
File file = UIHelper.chooseFile(ui,
t("observe.common.SensorUsedDto.choose.title.importData"),
t("observe.common.SensorUsedDto.action.importData"),
+ null,
null);
if (file != null) {
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/TdrUIHandler.java
=====================================
@@ -301,6 +301,7 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt
File file = UIHelper.chooseFile(ui,
t("observe.common.TdrDto.choose.title.importData"),
t("observe.common.TdrDto.action.importData"),
+ null,
null);
if (file != null) {
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/storage/tabs/ConfigDataUIHandler.java
=====================================
@@ -86,6 +86,7 @@ public class ConfigDataUIHandler extends StorageTabUIHandler<ConfigDataUI> imple
t("observe.title.choose.db.dump"),
t("observe.action.choose.db.dump"),
ui.getModel().getDumpFile(),
+ ".sql.gz",
"^.+\\.sql\\.gz$",
t("observe.action.choose.db.dump.description"));
ui.getCentralSourceModel().setDumpFile(f);
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/storage/tabs/ConfigReferentielUIHandler.java
=====================================
@@ -111,6 +111,7 @@ public class ConfigReferentielUIHandler extends StorageTabUIHandler<ConfigRefere
t("observe.title.choose.db.dump"),
t("observe.action.choose.db.dump"),
ui.getModel().getDumpFile(),
+ ".sql.gz",
"^.+\\.sql\\.gz$",
t("observe.action.choose.db.dump.description"));
ui.getCentralSourceModel().setDumpFile(f);
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/storage/tabs/ConfigUIHandler.java
=====================================
@@ -204,6 +204,7 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI
t("observe.title.choose.db.dump"),
t("observe.action.choose.db.dump"),
ui.getModel().getDumpFile(),
+ ".sql.gz",
"^.+\\.sql\\.gz$",
t("observe.action.choose.db.dump.description"));
ui.getModel().setDumpFile(f);
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/util/UIHelper.java
=====================================
@@ -255,12 +255,12 @@ public class UIHelper extends SwingUtil {
* @param title le titre du dialogue de sélection
* @param buttonLabel le label du boutton d'acceptation
* @param incoming le fichier de base à utilier
- * @param filters les filtres + descriptions sur le sélecteur de
- * fichiers
+ * @param mainExtension l'extension principale (à rajouter sur le nom du fichier si besoin)
+ * @param filters les filtres + descriptions sur le sélecteur de fichiers
* @return le fichier choisi ou le fichier incoming si l'opération a été
* annulée
*/
- public static File chooseFile(Component parent, String title, String buttonLabel, File incoming, String... filters) {
+ public static File chooseFile(Component parent, String title, String buttonLabel, File incoming,String mainExtension, String... filters) {
JaxxFileChooser.ToLoadFile toLoadFile = JaxxFileChooser.forLoadingFile()
.setParent(parent)
@@ -277,7 +277,7 @@ public class UIHelper extends SwingUtil {
if (log.isDebugEnabled()) {
log.debug(title + " : " + file);
}
- return file == null ? incoming : file;
+ return file == null ? incoming : ensureFileExtension(file, mainExtension);
}
/**
@@ -307,6 +307,13 @@ public class UIHelper extends SwingUtil {
return file;
}
+ public static File ensureFileExtension(File file, String extension) {
+ if (extension!=null && !file.getName().toLowerCase().endsWith(extension)) {
+ file = file.toPath().getParent().resolve(file.getName() + extension).toFile();
+ }
+ return file;
+ }
+
private static File getParentDirectoryIfExist(File incoming) {
if (incoming != null) {
File basedir;
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fac65120f5e9a85b5d22f6328…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/fac65120f5e9a85b5d22f6328…
You're receiving this email because of your account on gitlab.com.
1
0