Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
-
195e34fb
by tchemit at 2020-02-13T14:51:58+01:00
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:
| ... | ... | @@ -29,7 +29,6 @@ import fr.ird.observe.client.ui.tree.navigation.nodes.longline.TripLonglineNavig |
| 29 | 29 |
import fr.ird.observe.client.ui.util.DecoratedNodeEntity;
|
| 30 | 30 |
import fr.ird.observe.dto.data.longline.ActivityLonglineDto;
|
| 31 | 31 |
import fr.ird.observe.dto.data.longline.TripLonglineReference;
|
| 32 |
-import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
|
|
| 33 | 32 |
import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator;
|
| 34 | 33 |
|
| 35 | 34 |
import javax.swing.JOptionPane;
|
| ... | ... | @@ -60,7 +59,7 @@ public class MoveActivityLonglineUIAction extends MoveSingleDataUIActionSupport |
| 60 | 59 |
}
|
| 61 | 60 |
|
| 62 | 61 |
@Override
|
| 63 |
- Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) {
|
|
| 62 |
+ Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 64 | 63 |
return chooseNewTripLongline(mainUI, oldParentNode);
|
| 65 | 64 |
}
|
| 66 | 65 |
|
| ... | ... | @@ -76,15 +75,14 @@ public class MoveActivityLonglineUIAction extends MoveSingleDataUIActionSupport |
| 76 | 75 |
}
|
| 77 | 76 |
|
| 78 | 77 |
@Override
|
| 79 |
- NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) {
|
|
| 80 |
- NavigationTreeNodeSupport tripLonglineNode = treeHelper.getChild(grandParentNode, newParentId);
|
|
| 81 |
- String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class);
|
|
| 82 |
- return treeHelper.getChild(tripLonglineNode, activitiesNodeId);
|
|
| 78 |
+ NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) {
|
|
| 79 |
+ NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId);
|
|
| 80 |
+ return parentNode.findChildByClass(ActivityLonglineDto.class);
|
|
| 83 | 81 |
}
|
| 84 | 82 |
|
| 85 |
- static Optional<String> chooseNewTripLongline(ObserveMainUI ui, NavigationTreeNodeSupport oldParentNode) {
|
|
| 83 |
+ static Optional<String> chooseNewTripLongline(ObserveMainUI ui, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 86 | 84 |
|
| 87 |
- NavigationTreeNodeSupport programNode = oldParentNode.getParent();
|
|
| 85 |
+ NavigationTreeNodeSupport<?> programNode = oldParentNode.getParent();
|
|
| 88 | 86 |
String oldTripLonglineId = oldParentNode.getId();
|
| 89 | 87 |
int tripLonglineNb = programNode.getChildCount();
|
| 90 | 88 |
|
| ... | ... | @@ -29,9 +29,9 @@ import fr.ird.observe.client.ui.content.data.longline.ActivityLonglinesUI; |
| 29 | 29 |
import fr.ird.observe.client.ui.tree.navigation.NavigationTree;
|
| 30 | 30 |
import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport;
|
| 31 | 31 |
import fr.ird.observe.dto.data.longline.ActivityLonglineDto;
|
| 32 |
-import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
|
|
| 33 | 32 |
|
| 34 | 33 |
import java.util.List;
|
| 34 |
+import java.util.Objects;
|
|
| 35 | 35 |
import java.util.Optional;
|
| 36 | 36 |
|
| 37 | 37 |
import static io.ultreia.java4all.i18n.I18n.n;
|
| ... | ... | @@ -64,22 +64,21 @@ public class MoveActivityLonglinesUIAction extends MoveMultipleDataUIActionSuppo |
| 64 | 64 |
}
|
| 65 | 65 |
|
| 66 | 66 |
@Override
|
| 67 |
- Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) {
|
|
| 67 |
+ Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 68 | 68 |
return MoveActivityLonglineUIAction.chooseNewTripLongline(getMainUI(), oldParentNode);
|
| 69 | 69 |
}
|
| 70 | 70 |
|
| 71 | 71 |
@Override
|
| 72 |
- void updateUI(ActivityLonglinesUI ui, NavigationTreeNodeSupport oldActivitiesNode, String tripLonglineId, ImmutableSet<String> activityIds, List<Integer> positions) {
|
|
| 72 |
+ void updateUI(ActivityLonglinesUI ui, NavigationTreeNodeSupport<?> oldActivitiesNode, String tripLonglineId, ImmutableSet<String> activityIds, List<Integer> positions) {
|
|
| 73 | 73 |
|
| 74 | 74 |
ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get();
|
| 75 | 75 |
ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager();
|
| 76 | 76 |
NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
|
| 77 | 77 |
|
| 78 |
- NavigationTreeNodeSupport oldTripLonglineNode = oldActivitiesNode.getParent();
|
|
| 79 |
- NavigationTreeNodeSupport programNode = oldTripLonglineNode.getParent();
|
|
| 80 |
- NavigationTreeNodeSupport newTripLonglineNode = treeHelper.getChild(programNode, tripLonglineId);
|
|
| 81 |
- String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineDto.class);
|
|
| 82 |
- NavigationTreeNodeSupport newActivitiesNode = treeHelper.getChild(newTripLonglineNode, activitiesNodeId);
|
|
| 78 |
+ NavigationTreeNodeSupport<?> oldTripLonglineNode = Objects.requireNonNull(oldActivitiesNode.getParent());
|
|
| 79 |
+ NavigationTreeNodeSupport<?> programNode = Objects.requireNonNull(oldTripLonglineNode.getParent());
|
|
| 80 |
+ NavigationTreeNodeSupport<?> newTripLonglineNode = Objects.requireNonNull(programNode.findChildById(tripLonglineId));
|
|
| 81 |
+ NavigationTreeNodeSupport<?> newActivitiesNode = Objects.requireNonNull(newTripLonglineNode.findChildByClass(ActivityLonglineDto.class));
|
|
| 83 | 82 |
|
| 84 | 83 |
// Let's check if we're moving an open activity
|
| 85 | 84 |
Optional<String> openActivity = activityIds
|
| ... | ... | @@ -93,7 +92,7 @@ public class MoveActivityLonglinesUIAction extends MoveMultipleDataUIActionSuppo |
| 93 | 92 |
// Let's reload the sub tree of each activities node.
|
| 94 | 93 |
// As the change have already be done in database, we just call the child loaders to regenerate the activities nodes sub trees
|
| 95 | 94 |
treeHelper.reloadNodeSubTree(oldActivitiesNode);
|
| 96 |
- treeHelper.reloadNodeSubTree(newActivitiesNode);
|
|
| 95 |
+ treeHelper.reloadNodeSubTree(newActivitiesNode, true);
|
|
| 97 | 96 |
|
| 98 | 97 |
// Let's put the focus on the activities node which received the activities
|
| 99 | 98 |
treeHelper.selectSafeNode(newActivitiesNode);
|
| ... | ... | @@ -29,7 +29,6 @@ import fr.ird.observe.client.ui.tree.navigation.nodes.seine.RouteSeineNavigation |
| 29 | 29 |
import fr.ird.observe.client.ui.util.DecoratedNodeEntity;
|
| 30 | 30 |
import fr.ird.observe.dto.data.seine.ActivitySeineDto;
|
| 31 | 31 |
import fr.ird.observe.dto.data.seine.RouteReference;
|
| 32 |
-import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
|
|
| 33 | 32 |
import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator;
|
| 34 | 33 |
|
| 35 | 34 |
import javax.swing.JOptionPane;
|
| ... | ... | @@ -60,7 +59,7 @@ public class MoveActivitySeineUIAction extends MoveSingleDataUIActionSupport { |
| 60 | 59 |
}
|
| 61 | 60 |
|
| 62 | 61 |
@Override
|
| 63 |
- Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) {
|
|
| 62 |
+ Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 64 | 63 |
return chooseNewRoute(mainUI, oldParentNode);
|
| 65 | 64 |
}
|
| 66 | 65 |
|
| ... | ... | @@ -75,15 +74,14 @@ public class MoveActivitySeineUIAction extends MoveSingleDataUIActionSupport { |
| 75 | 74 |
}
|
| 76 | 75 |
|
| 77 | 76 |
@Override
|
| 78 |
- NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) {
|
|
| 79 |
- NavigationTreeNodeSupport routeNode = treeHelper.getChild(grandParentNode, newParentId);
|
|
| 80 |
- String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class);
|
|
| 81 |
- return treeHelper.getChild(routeNode, activitiesNodeId);
|
|
| 77 |
+ NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) {
|
|
| 78 |
+ NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId);
|
|
| 79 |
+ return parentNode.findChildByClass( ActivitySeineDto.class);
|
|
| 82 | 80 |
}
|
| 83 | 81 |
|
| 84 |
- static Optional<String> chooseNewRoute(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) {
|
|
| 82 |
+ static Optional<String> chooseNewRoute(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 85 | 83 |
|
| 86 |
- NavigationTreeNodeSupport routesNode = oldParentNode.getParent();
|
|
| 84 |
+ NavigationTreeNodeSupport<?> routesNode = oldParentNode.getParent();
|
|
| 87 | 85 |
String oldRouteId = oldParentNode.getId();
|
| 88 | 86 |
int routeNb = routesNode.getChildCount();
|
| 89 | 87 |
|
| ... | ... | @@ -29,9 +29,9 @@ import fr.ird.observe.client.ui.content.data.seine.ActivitySeinesUI; |
| 29 | 29 |
import fr.ird.observe.client.ui.tree.navigation.NavigationTree;
|
| 30 | 30 |
import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport;
|
| 31 | 31 |
import fr.ird.observe.dto.data.seine.ActivitySeineDto;
|
| 32 |
-import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
|
|
| 33 | 32 |
|
| 34 | 33 |
import java.util.List;
|
| 34 |
+import java.util.Objects;
|
|
| 35 | 35 |
import java.util.Optional;
|
| 36 | 36 |
|
| 37 | 37 |
import static io.ultreia.java4all.i18n.I18n.n;
|
| ... | ... | @@ -59,7 +59,7 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< |
| 59 | 59 |
}
|
| 60 | 60 |
|
| 61 | 61 |
@Override
|
| 62 |
- Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) {
|
|
| 62 |
+ Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 63 | 63 |
return MoveActivitySeineUIAction.chooseNewRoute(getMainUI(), oldParentNode);
|
| 64 | 64 |
}
|
| 65 | 65 |
|
| ... | ... | @@ -69,17 +69,16 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< |
| 69 | 69 |
}
|
| 70 | 70 |
|
| 71 | 71 |
@Override
|
| 72 |
- void updateUI(ActivitySeinesUI ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) {
|
|
| 72 |
+ void updateUI(ActivitySeinesUI ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) {
|
|
| 73 | 73 |
|
| 74 | 74 |
ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get();
|
| 75 | 75 |
ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager();
|
| 76 | 76 |
NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
|
| 77 | 77 |
|
| 78 |
- NavigationTreeNodeSupport oldRouteNode = oldParentNode.getParent();
|
|
| 79 |
- NavigationTreeNodeSupport routesNode = oldRouteNode.getParent();
|
|
| 80 |
- NavigationTreeNodeSupport newRouteNode = treeHelper.getChild(routesNode, newParentId);
|
|
| 81 |
- String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class);
|
|
| 82 |
- NavigationTreeNodeSupport newActivitiesNode = treeHelper.getChild(newRouteNode, activitiesNodeId);
|
|
| 78 |
+ NavigationTreeNodeSupport<?> oldRouteNode = Objects.requireNonNull(oldParentNode.getParent());
|
|
| 79 |
+ NavigationTreeNodeSupport<?> routesNode = Objects.requireNonNull(oldRouteNode.getParent());
|
|
| 80 |
+ NavigationTreeNodeSupport<?> newRouteNode = Objects.requireNonNull(routesNode.findChildById(newParentId));
|
|
| 81 |
+ NavigationTreeNodeSupport<?> newActivitiesNode = Objects.requireNonNull(newRouteNode.findChildByClass(ActivitySeineDto.class));
|
|
| 83 | 82 |
|
| 84 | 83 |
// Let's check if we're moving an open activity
|
| 85 | 84 |
Optional<String> openActivity = dataIds
|
| ... | ... | @@ -93,7 +92,7 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport< |
| 93 | 92 |
// Let's reload the sub tree of each activities node.
|
| 94 | 93 |
// As the change have already be done in database, we just call the child loaders to regenerate the activities nodes sub trees
|
| 95 | 94 |
treeHelper.reloadNodeSubTree(oldParentNode);
|
| 96 |
- treeHelper.reloadNodeSubTree(newActivitiesNode);
|
|
| 95 |
+ treeHelper.reloadNodeSubTree(newActivitiesNode, true);
|
|
| 97 | 96 |
|
| 98 | 97 |
// Let's put the focus on the activities node which received the activities
|
| 99 | 98 |
treeHelper.selectSafeNode(newActivitiesNode);
|
| ... | ... | @@ -73,9 +73,9 @@ public abstract class MoveMultipleDataUIActionSupport<U extends ContentListUI<?, |
| 73 | 73 |
@SuppressWarnings("unchecked") U ui = (U) ui1;
|
| 74 | 74 |
|
| 75 | 75 |
NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
|
| 76 |
- NavigationTreeNodeSupport node = treeHelper.getSelectedNode();
|
|
| 76 |
+ NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode();
|
|
| 77 | 77 |
|
| 78 |
- NavigationTreeNodeSupport oldParentNode = node.getParent().isRoot() ? node : node.getParent();
|
|
| 78 |
+ NavigationTreeNodeSupport<?> oldParentNode = node.getParent().isRoot() ? node : node.getParent();
|
|
| 79 | 79 |
|
| 80 | 80 |
Optional<String> optionalNewParentId = getNewParentId(getMainUI(), oldParentNode);
|
| 81 | 81 |
|
| ... | ... | @@ -90,10 +90,10 @@ public abstract class MoveMultipleDataUIActionSupport<U extends ContentListUI<?, |
| 90 | 90 |
|
| 91 | 91 |
}
|
| 92 | 92 |
|
| 93 |
- abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode);
|
|
| 93 |
+ abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode);
|
|
| 94 | 94 |
|
| 95 | 95 |
abstract List<Integer> moveData(ImmutableSet<String> dataIds, String newParentId);
|
| 96 | 96 |
|
| 97 |
- abstract void updateUI(U ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions);
|
|
| 97 |
+ abstract void updateUI(U ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions);
|
|
| 98 | 98 |
|
| 99 | 99 |
}
|
| ... | ... | @@ -29,7 +29,6 @@ import fr.ird.observe.client.ui.tree.navigation.nodes.seine.TripSeineNavigationT |
| 29 | 29 |
import fr.ird.observe.client.ui.util.DecoratedNodeEntity;
|
| 30 | 30 |
import fr.ird.observe.dto.data.seine.RouteDto;
|
| 31 | 31 |
import fr.ird.observe.dto.data.seine.TripSeineReference;
|
| 32 |
-import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
|
|
| 33 | 32 |
import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator;
|
| 34 | 33 |
|
| 35 | 34 |
import javax.swing.JOptionPane;
|
| ... | ... | @@ -60,7 +59,7 @@ public class MoveRouteUIAction extends MoveSingleDataUIActionSupport { |
| 60 | 59 |
}
|
| 61 | 60 |
|
| 62 | 61 |
@Override
|
| 63 |
- Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) {
|
|
| 62 |
+ Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 64 | 63 |
return chooseNewTripSeine(mainUI, oldParentNode);
|
| 65 | 64 |
}
|
| 66 | 65 |
|
| ... | ... | @@ -75,14 +74,13 @@ public class MoveRouteUIAction extends MoveSingleDataUIActionSupport { |
| 75 | 74 |
}
|
| 76 | 75 |
|
| 77 | 76 |
@Override
|
| 78 |
- NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) {
|
|
| 79 |
- NavigationTreeNodeSupport tripNode = treeHelper.getChild(grandParentNode, newParentId);
|
|
| 80 |
- String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class);
|
|
| 81 |
- return treeHelper.getChild(tripNode, routesNodeId);
|
|
| 77 |
+ NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) {
|
|
| 78 |
+ NavigationTreeNodeSupport<?> parentNode = grandParentNode.findChildById(newParentId);
|
|
| 79 |
+ return parentNode.findChildByClass(RouteDto.class);
|
|
| 82 | 80 |
}
|
| 83 | 81 |
|
| 84 |
- static Optional<String> chooseNewTripSeine(ObserveMainUI mainUI, NavigationTreeNodeSupport oldTripSeineNode) {
|
|
| 85 |
- NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent();
|
|
| 82 |
+ static Optional<String> chooseNewTripSeine(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldTripSeineNode) {
|
|
| 83 |
+ NavigationTreeNodeSupport<?> programNode = oldTripSeineNode.getParent();
|
|
| 86 | 84 |
String oldTripSeineId = oldTripSeineNode.getId();
|
| 87 | 85 |
int tripSeineNb = programNode.getChildCount();
|
| 88 | 86 |
|
| ... | ... | @@ -28,9 +28,9 @@ import fr.ird.observe.client.ui.content.data.seine.RoutesUI; |
| 28 | 28 |
import fr.ird.observe.client.ui.tree.navigation.NavigationTree;
|
| 29 | 29 |
import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport;
|
| 30 | 30 |
import fr.ird.observe.dto.data.seine.RouteDto;
|
| 31 |
-import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
|
|
| 32 | 31 |
|
| 33 | 32 |
import java.util.List;
|
| 33 |
+import java.util.Objects;
|
|
| 34 | 34 |
import java.util.Optional;
|
| 35 | 35 |
|
| 36 | 36 |
import static io.ultreia.java4all.i18n.I18n.n;
|
| ... | ... | @@ -58,7 +58,7 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI |
| 58 | 58 |
}
|
| 59 | 59 |
|
| 60 | 60 |
@Override
|
| 61 |
- Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) {
|
|
| 61 |
+ Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 62 | 62 |
return MoveRouteUIAction.chooseNewTripSeine(getMainUI(), oldParentNode);
|
| 63 | 63 |
}
|
| 64 | 64 |
|
| ... | ... | @@ -69,16 +69,15 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI |
| 69 | 69 |
|
| 70 | 70 |
|
| 71 | 71 |
@Override
|
| 72 |
- void updateUI(RoutesUI ui, NavigationTreeNodeSupport oldRoutesNode, String tripSeineId, ImmutableSet<String> routeIds, List<Integer> positions) {
|
|
| 72 |
+ void updateUI(RoutesUI ui, NavigationTreeNodeSupport<?> oldRoutesNode, String tripSeineId, ImmutableSet<String> routeIds, List<Integer> positions) {
|
|
| 73 | 73 |
|
| 74 | 74 |
ObserveOpenDataManager openDataManager = getOpenDataManager();
|
| 75 | 75 |
NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
|
| 76 | 76 |
|
| 77 |
- NavigationTreeNodeSupport oldTripSeineNode = oldRoutesNode.getParent();
|
|
| 78 |
- NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent();
|
|
| 79 |
- NavigationTreeNodeSupport newTripSeineNode = treeHelper.getChild(programNode, tripSeineId);
|
|
| 80 |
- String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class);
|
|
| 81 |
- NavigationTreeNodeSupport newRoutesNode = treeHelper.getChild(newTripSeineNode, routesNodeId);
|
|
| 77 |
+ NavigationTreeNodeSupport<?> oldTripSeineNode = Objects.requireNonNull(oldRoutesNode.getParent());
|
|
| 78 |
+ NavigationTreeNodeSupport<?> programNode = Objects.requireNonNull(oldTripSeineNode.getParent());
|
|
| 79 |
+ NavigationTreeNodeSupport<?> newTripSeineNode = Objects.requireNonNull(programNode.findChildById(tripSeineId));
|
|
| 80 |
+ NavigationTreeNodeSupport<?> newRoutesNode = Objects.requireNonNull(newTripSeineNode.findChildByClass(RouteDto.class));
|
|
| 82 | 81 |
|
| 83 | 82 |
// Let's check if we're moving an open route
|
| 84 | 83 |
Optional<String> openRoute = routeIds
|
| ... | ... | @@ -92,7 +91,7 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI |
| 92 | 91 |
// Let's reload the sub tree of each routes node.
|
| 93 | 92 |
// As the change have already be done in database, we just call the child loaders to regenerate the routes nodes sub trees
|
| 94 | 93 |
treeHelper.reloadNodeSubTree(oldRoutesNode);
|
| 95 |
- treeHelper.reloadNodeSubTree(newRoutesNode);
|
|
| 94 |
+ treeHelper.reloadNodeSubTree(newRoutesNode, true);
|
|
| 96 | 95 |
|
| 97 | 96 |
// 1. Select the newRoutesNode :
|
| 98 | 97 |
// only a selected node can be reloaded (@see fr.ird.observe.client.ui.tree.ObserveTreeBridge.canLoadChild).
|
| ... | ... | @@ -52,22 +52,22 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { |
| 52 | 52 |
public final void actionPerformed(ActionEvent e) {
|
| 53 | 53 |
|
| 54 | 54 |
NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
|
| 55 |
- NavigationTreeNodeSupport node = treeHelper.getSelectedNode();
|
|
| 56 |
- NavigationTreeNodeSupport oldParentNode = node.getParent().getParent().equals(node.getRoot()) ? node.getParent() : node.getParent().getParent();
|
|
| 55 |
+ NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode();
|
|
| 56 |
+ NavigationTreeNodeSupport<?> oldParentNode = node.getParent().getParent().equals(node.getRoot()) ? node.getParent() : node.getParent().getParent();
|
|
| 57 | 57 |
Optional<String> optionalNewParentId = getNewParentId(getMainUI(), oldParentNode);
|
| 58 | 58 |
|
| 59 | 59 |
optionalNewParentId.ifPresent(newParentId -> SwingUtilities.invokeLater(() -> apply(oldParentNode, node.getId(), newParentId)));
|
| 60 | 60 |
}
|
| 61 | 61 |
|
| 62 |
- abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode);
|
|
| 62 |
+ abstract Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode);
|
|
| 63 | 63 |
|
| 64 |
- private void apply(NavigationTreeNodeSupport oldParentNode, String dataId, String newParentId) {
|
|
| 64 |
+ private void apply(NavigationTreeNodeSupport<?> oldParentNode, String dataId, String newParentId) {
|
|
| 65 | 65 |
|
| 66 | 66 |
NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
|
| 67 | 67 |
|
| 68 |
- NavigationTreeNodeSupport node = treeHelper.getSelectedNode();
|
|
| 69 |
- NavigationTreeNodeSupport grandParentNode = oldParentNode.getParent();
|
|
| 70 |
- NavigationTreeNodeSupport newParentNode = getNewParentNode(treeHelper, grandParentNode, newParentId);
|
|
| 68 |
+ NavigationTreeNodeSupport<?> node = treeHelper.getSelectedNode();
|
|
| 69 |
+ NavigationTreeNodeSupport<?> grandParentNode = oldParentNode.getParent();
|
|
| 70 |
+ NavigationTreeNodeSupport<?> newParentNode = getNewParentNode(treeHelper, grandParentNode, newParentId);
|
|
| 71 | 71 |
|
| 72 | 72 |
closeNode(node.getId());
|
| 73 | 73 |
|
| ... | ... | @@ -77,7 +77,7 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { |
| 77 | 77 |
|
| 78 | 78 |
treeHelper.removeNode(node);
|
| 79 | 79 |
|
| 80 |
- NavigationTreeNodeSupport newNode = treeHelper.getChild(newParentNode, dataId);
|
|
| 80 |
+ NavigationTreeNodeSupport<?> newNode = treeHelper.getChild(newParentNode, dataId);
|
|
| 81 | 81 |
|
| 82 | 82 |
if (newNode == null) {
|
| 83 | 83 |
|
| ... | ... | @@ -95,5 +95,5 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport { |
| 95 | 95 |
|
| 96 | 96 |
abstract void closeNode(String dataId);
|
| 97 | 97 |
|
| 98 |
- abstract NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId);
|
|
| 98 |
+ abstract NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId);
|
|
| 99 | 99 |
}
|
| ... | ... | @@ -54,7 +54,7 @@ public class MoveTripSeinesUIAction extends MoveTripsUIAction<TripSeinesUI> { |
| 54 | 54 |
@Override
|
| 55 | 55 |
protected void updateModelData(TripSeinesUI ui) {
|
| 56 | 56 |
TripSeinesUIModel model = ui.getModel();
|
| 57 |
- List<TripSeineReference> data = new ArrayList(model.getData());
|
|
| 57 |
+ List<TripSeineReference> data = new ArrayList<>(model.getData());
|
|
| 58 | 58 |
data.removeAll(model.getSelectedDatas());
|
| 59 | 59 |
model.setData(data);
|
| 60 | 60 |
}
|
| ... | ... | @@ -65,7 +65,7 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { |
| 65 | 65 |
}
|
| 66 | 66 |
|
| 67 | 67 |
@Override
|
| 68 |
- Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) {
|
|
| 68 |
+ Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 69 | 69 |
return chooseNewProgram(mainUI, gearType, oldParentNode.getId());
|
| 70 | 70 |
}
|
| 71 | 71 |
|
| ... | ... | @@ -88,8 +88,8 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { |
| 88 | 88 |
}
|
| 89 | 89 |
|
| 90 | 90 |
@Override
|
| 91 |
- NavigationTreeNodeSupport getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport grandParentNode, String newParentId) {
|
|
| 92 |
- return treeHelper.getChild(grandParentNode, newParentId);
|
|
| 91 |
+ NavigationTreeNodeSupport<?> getNewParentNode(NavigationTree treeHelper, NavigationTreeNodeSupport<?> grandParentNode, String newParentId) {
|
|
| 92 |
+ return grandParentNode.findChildById(newParentId);
|
|
| 93 | 93 |
}
|
| 94 | 94 |
|
| 95 | 95 |
static Optional<String> chooseNewProgram(ObserveMainUI mainUI, GearType gearType, String oldProgramId) {
|
| ... | ... | @@ -97,7 +97,7 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { |
| 97 | 97 |
NavigationTree treeHelper = mainUI.getNavigationUI().getTree();
|
| 98 | 98 |
|
| 99 | 99 |
// racine
|
| 100 |
- NavigationTreeNodeSupport rootNode = treeHelper.getRootNode();
|
|
| 100 |
+ NavigationTreeNodeSupport<?> rootNode = treeHelper.getRootNode();
|
|
| 101 | 101 |
|
| 102 | 102 |
//on crée un tableau avec un programme en moins car on ne propose pas le programme actuel
|
| 103 | 103 |
List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>();
|
| ... | ... | @@ -106,7 +106,7 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport { |
| 106 | 106 |
|
| 107 | 107 |
for (int i = 0, n = rootNode.getChildCount(); i < n; i++) {
|
| 108 | 108 |
|
| 109 |
- NavigationTreeNodeSupport programNode = (NavigationTreeNodeSupport) rootNode.getChildAt(i);
|
|
| 109 |
+ NavigationTreeNodeSupport<?> programNode = (NavigationTreeNodeSupport<?>) rootNode.getChildAt(i);
|
|
| 110 | 110 |
String programId = programNode.getId();
|
| 111 | 111 |
|
| 112 | 112 |
// si le noeud programme n'est pas le même que le parent actuel
|
| ... | ... | @@ -66,12 +66,12 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext |
| 66 | 66 |
}
|
| 67 | 67 |
|
| 68 | 68 |
@Override
|
| 69 |
- Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport oldParentNode) {
|
|
| 69 |
+ Optional<String> getNewParentId(ObserveMainUI mainUI, NavigationTreeNodeSupport<?> oldParentNode) {
|
|
| 70 | 70 |
return MoveTripUIAction.chooseNewProgram(getMainUI(), gearType, oldParentNode.getId());
|
| 71 | 71 |
}
|
| 72 | 72 |
|
| 73 | 73 |
@Override
|
| 74 |
- void updateUI(U ui, NavigationTreeNodeSupport oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) {
|
|
| 74 |
+ void updateUI(U ui, NavigationTreeNodeSupport<?> oldParentNode, String newParentId, ImmutableSet<String> dataIds, List<Integer> positions) {
|
|
| 75 | 75 |
|
| 76 | 76 |
String oldProgramId = oldParentNode.getId();
|
| 77 | 77 |
|
| ... | ... | @@ -79,14 +79,14 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext |
| 79 | 79 |
ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager();
|
| 80 | 80 |
NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
|
| 81 | 81 |
|
| 82 |
- NavigationTreeNodeSupport rootNode = treeHelper.getRootNode();
|
|
| 83 |
- NavigationTreeNodeSupport newProgramNode = treeHelper.getChild(rootNode, newParentId);
|
|
| 82 |
+ NavigationTreeNodeSupport<?> rootNode = treeHelper.getRootNode();
|
|
| 83 |
+ NavigationTreeNodeSupport<?> newProgramNode = rootNode.findChildById(newParentId);
|
|
| 84 | 84 |
|
| 85 | 85 |
UnmodifiableIterator<String> iterator = dataIds.iterator();
|
| 86 | 86 |
for (Integer position : positions) {
|
| 87 | 87 |
|
| 88 | 88 |
String tripId = iterator.next();
|
| 89 |
- NavigationTreeNodeSupport tripNode = treeHelper.getChild(oldParentNode, tripId);
|
|
| 89 |
+ NavigationTreeNodeSupport<?> tripNode = oldParentNode.findChildById(tripId);
|
|
| 90 | 90 |
boolean wasOpen = tripNode.isOpen();
|
| 91 | 91 |
treeHelper.removeNode(tripNode);
|
| 92 | 92 |
|
| ... | ... | @@ -95,7 +95,7 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext |
| 95 | 95 |
openDataManager.openProgram(newParentId);
|
| 96 | 96 |
}
|
| 97 | 97 |
|
| 98 |
- NavigationTreeNodeSupport newTripNode = treeHelper.getChild(newProgramNode, tripId);
|
|
| 98 |
+ NavigationTreeNodeSupport<?> newTripNode = treeHelper.getChild(newProgramNode, tripId);
|
|
| 99 | 99 |
|
| 100 | 100 |
if (newTripNode == null) {
|
| 101 | 101 |
|
| ... | ... | @@ -407,20 +407,17 @@ public class NavigationTree extends JXTree { |
| 407 | 407 |
SwingUtilities.invokeLater(this::grabFocus);
|
| 408 | 408 |
}
|
| 409 | 409 |
|
| 410 |
- public void reloadNodeSubTree(NavigationTreeNodeSupport node) {
|
|
| 411 |
- Objects.requireNonNull(node, "node is null, we can not reload its structure");
|
|
| 410 |
+ public void reloadNodeSubTree(NavigationTreeNodeSupport<?> node) {
|
|
| 411 |
+ reloadNodeSubTree(node, false);
|
|
| 412 |
+ }
|
|
| 412 | 413 |
|
| 413 |
- // 1. Let's clear node structure
|
|
| 414 |
- while (node.getChildCount() > 0) {
|
|
| 415 |
- removeNode((NavigationTreeNodeSupport) node.getFirstChild());
|
|
| 414 |
+ public void reloadNodeSubTree(NavigationTreeNodeSupport<?> node, boolean expand) {
|
|
| 415 |
+ Objects.requireNonNull(node, "node is null, we can not reload its structure");
|
|
| 416 |
+ getTreeModel().update(node);
|
|
| 417 |
+ if (expand) {
|
|
| 418 |
+ // Fix bug (if no child in parent node, it will not expand...)
|
|
| 419 |
+ fireTreeExpanded(new TreePath(node.getPath()));
|
|
| 416 | 420 |
}
|
| 417 |
- |
|
| 418 |
- // 3. Let's re-generate node's children by populating the node : this will call the child loaders.
|
|
| 419 |
- node.updateNode();
|
|
| 420 |
- |
|
| 421 |
- // Fix bug (if no child in parent node, it will not expand...)
|
|
| 422 |
- fireTreeExpanded(new TreePath(node.getPath()));
|
|
| 423 |
- |
|
| 424 | 421 |
}
|
| 425 | 422 |
|
| 426 | 423 |
public void reloadNode(NavigationTreeNodeSupport<?> node, boolean deep) {
|
| ... | ... | @@ -79,6 +79,11 @@ public class NavigationTreeModel extends DefaultTreeModel { |
| 79 | 79 |
super.reload(node);
|
| 80 | 80 |
}
|
| 81 | 81 |
|
| 82 |
+ public <N extends NavigationTreeNodeSupport> void update(N node) {
|
|
| 83 |
+ node.updateNode();
|
|
| 84 |
+ super.reload(node);
|
|
| 85 |
+ }
|
|
| 86 |
+ |
|
| 82 | 87 |
public <N extends NavigationTreeNodeSupport> void open(N node) {
|
| 83 | 88 |
if (node instanceof WithChildsToReload) {
|
| 84 | 89 |
boolean updated = node.populateChilds();
|
| ... | ... | @@ -25,8 +25,8 @@ package fr.ird.observe.client.ui.tree.navigation.nodes; |
| 25 | 25 |
import fr.ird.observe.client.ui.actions.content.SelectNodeUIAction;
|
| 26 | 26 |
import fr.ird.observe.client.ui.content.ContentUI;
|
| 27 | 27 |
import fr.ird.observe.client.ui.tree.ObserveTreeNodeSupport;
|
| 28 |
-import org.apache.logging.log4j.Logger;
|
|
| 29 | 28 |
import org.apache.logging.log4j.LogManager;
|
| 29 |
+import org.apache.logging.log4j.Logger;
|
|
| 30 | 30 |
import org.nuiton.jaxx.runtime.JAXXObject;
|
| 31 | 31 |
|
| 32 | 32 |
import javax.swing.AbstractAction;
|
| ... | ... | @@ -163,9 +163,9 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor |
| 163 | 163 |
// au final le noeud est une feuille, donc ne convient pas
|
| 164 | 164 |
return null;
|
| 165 | 165 |
}
|
| 166 |
- Enumeration<NavigationTreeNodeSupport> children = children();
|
|
| 166 |
+ Enumeration<NavigationTreeNodeSupport<?>> children = children();
|
|
| 167 | 167 |
while (children.hasMoreElements()) {
|
| 168 |
- NavigationTreeNodeSupport node = children.nextElement();
|
|
| 168 |
+ NavigationTreeNodeSupport<?> node = children.nextElement();
|
|
| 169 | 169 |
if (childType.isAssignableFrom(node.getClass())) {
|
| 170 | 170 |
return node;
|
| 171 | 171 |
}
|
| ... | ... | @@ -187,10 +187,10 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor |
| 187 | 187 |
// au final le noeud est une feuille, donc ne convient pas
|
| 188 | 188 |
return null;
|
| 189 | 189 |
}
|
| 190 |
- Enumeration<NavigationTreeNodeSupport> children = children();
|
|
| 190 |
+ Enumeration<NavigationTreeNodeSupport<?>> children = children();
|
|
| 191 | 191 |
while (children.hasMoreElements()) {
|
| 192 |
- NavigationTreeNodeSupport node = children.nextElement();
|
|
| 193 |
- if (childType.isAssignableFrom((Class) node.getUserObject())) {
|
|
| 192 |
+ NavigationTreeNodeSupport<?> node = children.nextElement();
|
|
| 193 |
+ if (childType.isAssignableFrom(node.getDataType())) {
|
|
| 194 | 194 |
return node;
|
| 195 | 195 |
}
|
| 196 | 196 |
}
|