branch develop updated (63416d7 -> fb11637)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from 63416d7 Effet de bord kevin new e12b6de ajout de la méthode pour déplacer une activité seine (refs #7623) new f918af6 refactoring des menus contextuels de l'arbre + correction des actions (refs #7623) new 2e46280 refactoring des menus contextuels de l'arbre + ajout des menus sur les activites seines (refs #7623) new b5b63d4 ajout des méthodes pour déplacer plusieurs activités seine (refs #7623) new 96cb83e ajout de l'action pour déplacer plusieurs actvités seine (refs #7623) new 51c988f wording (refs #7623) new 0d0ff3f correction dans le déplacement des routes (récupération des marées via les noeuds de l'arbre, fix npe quand on clique sur annuler pendant le choix de la marée, mise à jour du model inutile vu qu'on a déjà changer de noeud) (refs #7622) new 1aaea37 correction dans le déplacement des marées (récupération des programmes via les noeuds de l'arbre, fix npe quand on clique sur annuler pendant le choix de la marée) (refs #7621) new a3bfa37 fix icons new fb11637 fixes #7623 [PS] Ajout de nouvelles fonctionnalités sur la liste des activités The 10 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit fb11637125c6cd11fc44d9e9f81ba8966168a60c Merge: 63416d7 a3bfa37 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:55:04 2015 +0100 fixes #7623 [PS] Ajout de nouvelles fonctionnalités sur la liste des activités commit a3bfa3701877aee402b8fd5a3d3a75e87efce29d Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:52:11 2015 +0100 fix icons commit 1aaea37fb04971f4469d679359fe72d96dfe6a3a Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:47:24 2015 +0100 correction dans le déplacement des marées (récupération des programmes via les noeuds de l'arbre, fix npe quand on clique sur annuler pendant le choix de la marée) (refs #7621) commit 0d0ff3fdb705c7fd275116381fe661f6cfbdbc7b Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:46:43 2015 +0100 correction dans le déplacement des routes (récupération des marées via les noeuds de l'arbre, fix npe quand on clique sur annuler pendant le choix de la marée, mise à jour du model inutile vu qu'on a déjà changer de noeud) (refs #7622) commit 51c988f0d6d6edea8cb0f9a507fffbd7e913741c Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:44:21 2015 +0100 wording (refs #7623) commit 96cb83ef101777745771071303820cab1d1b5a6b Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:44:01 2015 +0100 ajout de l'action pour déplacer plusieurs actvités seine (refs #7623) commit b5b63d464e7641c673162969784b72d7aa7fdbb7 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:43:06 2015 +0100 ajout des méthodes pour déplacer plusieurs activités seine (refs #7623) commit 2e46280d7804999e9bb9fbb2d6381313bfaf7121 Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 17 18:16:16 2015 +0100 refactoring des menus contextuels de l'arbre + ajout des menus sur les activites seines (refs #7623) commit f918af6e5d2d0a19319bdb30ac8ed656055362b4 Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 17 18:15:52 2015 +0100 refactoring des menus contextuels de l'arbre + correction des actions (refs #7623) commit e12b6de8a0a74403cffa3b5be55bc65a61f970fd Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 17 18:14:01 2015 +0100 ajout de la méthode pour déplacer une activité seine (refs #7623) Summary of changes: .../src/main/filters/observe-ui.properties | 2 + .../observe/ObserveSwingApplicationContext.java | 2 + .../actions/shared/MoveActivitySeinesUIAction.java | 225 +++++++++++++++++++++ .../ui/actions/shared/MoveRoutesUIAction.java | 78 ++++--- .../ui/actions/shared/MoveTripsUIAction.java | 84 ++++++-- .../content/list/impl/seine/ActivitySeinesUI.css | 6 + .../content/list/impl/seine/ActivitySeinesUI.jaxx | 2 + .../tree/ObserveNavigationTreeShowPopupAction.java | 153 +++----------- .../java/fr/ird/observe/ui/tree/ObserveNode.java | 12 +- ...java => ChangeActivityRouteActionListener.java} | 49 +++-- .../actions/ChangeRouteTripActionListener.java | 14 +- .../actions/ChangeTripProgramActionListener.java | 4 +- .../ui/tree/actions/NodeChangeActionListener.java | 13 +- .../ui/tree/menu/MoveActivitySeineNodeData.java | 65 ++++++ .../fr/ird/observe/ui/tree/menu/MoveNodeData.java | 37 ++++ .../observe/ui/tree/menu/MoveRouteNodeData.java | 66 ++++++ .../ird/observe/ui/tree/menu/MoveTripNodeData.java | 75 +++++++ .../observe-application-swing_en_GB.properties | 10 + .../observe-application-swing_es_ES.properties | 10 + .../observe-application-swing_fr_FR.properties | 8 + ...-move-routes.png => action-move-activities.png} | Bin .../main/resources/icons/action-move-routes.png | Bin 953 -> 943 bytes .../v1/seine/ActivitySeineServiceController.java | 11 + .../service/seine/ActivitySeineService.java | 9 + .../service/seine/ActivitySeineServiceTopia.java | 34 ++++ .../services/service/seine/RouteServiceTopia.java | 4 + 26 files changed, 754 insertions(+), 219 deletions(-) create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.java copy observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/{ChangeRouteTripActionListener.java => ChangeActivityRouteActionListener.java} (55%) create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeData.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeData.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeData.java create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeData.java copy observe-application-swing/src/main/resources/icons/{action-move-routes.png => action-move-activities.png} (100%) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit e12b6de8a0a74403cffa3b5be55bc65a61f970fd Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 17 18:14:01 2015 +0100 ajout de la méthode pour déplacer une activité seine (refs #7623) --- .../v1/seine/ActivitySeineServiceController.java | 4 ++++ .../services/service/seine/ActivitySeineService.java | 3 +++ .../services/service/seine/ActivitySeineServiceTopia.java | 14 ++++++++++++++ .../observe/services/service/seine/RouteServiceTopia.java | 4 ++++ 4 files changed, 25 insertions(+) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java index 7339cf0..033d735 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java @@ -89,4 +89,8 @@ public class ActivitySeineServiceController extends ObserveAuthenticatedServiceC service.delete(routeId, activitySeineId); } + @Override + public int moveActivitySeineToRoute(String activitySeineId, String routeId) { + return service.moveActivitySeineToRoute(activitySeineId, routeId); + } } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java index 1fb15f8..29b8b77 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java @@ -73,4 +73,7 @@ public interface ActivitySeineService extends ObserveService { @DeleteRequest void delete(String routeId, String activitySeineId); + @Write + @WriteDataPermission + int moveActivitySeineToRoute(String activitySeineId, String routeId); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java index a822aa3..bed0d8c 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java @@ -25,6 +25,7 @@ package fr.ird.observe.services.service.seine; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.referentiel.FpaZone; import fr.ird.observe.entities.seine.ActivitySeine; @@ -234,4 +235,17 @@ public class ActivitySeineServiceTopia extends ObserveServiceTopia implements Ac } + @Override + public int moveActivitySeineToRoute(String activitySeineId, String routeId) { + ActivitySeine activitySeine = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineId); + Route route = loadEntity(RouteDto.class, Route.class, routeId); + route.addActivitySeine(activitySeine); + saveEntity(Route.class, route); + + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); + persistenceContext.flush(); + + return getActivitySeinePositionInRoute(routeId, activitySeineId); + } + } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/RouteServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/RouteServiceTopia.java index 7e41a96..11d6c8f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/RouteServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/RouteServiceTopia.java @@ -269,6 +269,10 @@ public class RouteServiceTopia extends ObserveServiceTopia implements RouteServi TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); tripSeine.addRoute(route); saveEntity(TripSeine.class, tripSeine); + + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); + persistenceContext.flush(); + return getRoutePositionInTripSeine(tripSeineId, routeId); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit f918af6e5d2d0a19319bdb30ac8ed656055362b4 Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 17 18:15:52 2015 +0100 refactoring des menus contextuels de l'arbre + correction des actions (refs #7623) --- .../actions/ChangeRouteTripActionListener.java | 14 +++- .../actions/ChangeTripProgramActionListener.java | 4 +- .../ui/tree/actions/NodeChangeActionListener.java | 13 ++-- .../fr/ird/observe/ui/tree/menu/MoveNodeData.java | 37 +++++++++++ .../observe/ui/tree/menu/MoveRouteNodeData.java | 66 +++++++++++++++++++ .../ird/observe/ui/tree/menu/MoveTripNodeData.java | 75 ++++++++++++++++++++++ 6 files changed, 197 insertions(+), 12 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeRouteTripActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeRouteTripActionListener.java index 23bdd99..e7f8e1c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeRouteTripActionListener.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeRouteTripActionListener.java @@ -84,8 +84,18 @@ public class ChangeRouteTripActionListener extends NodeChangeActionListener { } @Override - protected void openParent(String parentNodeId, String grandParentNodeId) { + protected void openParent(ObserveNode routesNode) { + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - applicationContext.getOpenDataManager().openTripSeine(grandParentNodeId, parentNodeId); + + ObserveNode tripNode = routesNode.getParent(); + String tripId = tripNode.getId(); + + ObserveNode programNode = tripNode.getParent(); + String programId = programNode.getId(); + + applicationContext.getOpenDataManager().openTripSeine(programId, tripId); + + getTreeHelper().reloadNode(programNode, true); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java index b41f3c4..2b57c35 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java @@ -86,8 +86,8 @@ public class ChangeTripProgramActionListener extends NodeChangeActionListener { } @Override - protected void openParent(String parentNodeId, String grandParentNodeId) { + protected void openParent(ObserveNode programNode) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - applicationContext.getOpenDataManager().openProgram(parentNodeId); + applicationContext.getOpenDataManager().openProgram(programNode.getId()); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/NodeChangeActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/NodeChangeActionListener.java index ad4320f..6854c5a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/NodeChangeActionListener.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/NodeChangeActionListener.java @@ -68,13 +68,14 @@ public abstract class NodeChangeActionListener implements ActionListener { ObserveNode oldParentNode = getParentNode(node); String oldParentId = oldParentNode.getId(); ObserveNode grandParentNode = oldParentNode.getParent(); - String grandParentNodeId = grandParentNode.getId(); ObserveNode newParentNode = getNewParentNode(grandParentNode, parentNodeId); closeParent(oldParentId); int position = moveNodeToParent(nodeId, parentNodeId); + treeHelper.selectNode(newParentNode); + treeHelper.removeNode(node); ObserveNode newNode = treeHelper.getChild(newParentNode, nodeId); @@ -89,17 +90,13 @@ public abstract class NodeChangeActionListener implements ActionListener { newNode = node; } - openParent(parentNodeId, grandParentNodeId); + openParent(newParentNode); - treeHelper.reloadNode(grandParentNode, true); -// treeHelper.reloadNode(newParentNode, true); -// treeHelper.refreshNode(oldParentNode, true); -// treeHelper.refreshNode(newParentNode, true); treeHelper.selectNode(newNode); } - public ObserveTreeHelper getTreeHelper() { + protected ObserveTreeHelper getTreeHelper() { return treeHelper; } @@ -111,5 +108,5 @@ public abstract class NodeChangeActionListener implements ActionListener { protected abstract int moveNodeToParent(String nodeId, String parentNodeId); - protected abstract void openParent(String parentNodeId, String grandParentNodeId); + protected abstract void openParent(ObserveNode parentNode); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeData.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeData.java new file mode 100644 index 0000000..5211e1a --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeData.java @@ -0,0 +1,37 @@ +package fr.ird.observe.ui.tree.menu; + +import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.ui.tree.ObserveNode; +import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.actions.NodeChangeActionListener; + +import java.util.Map; + +/** + * @author Kevin Morin (Code Lutin) + * @since 5.0 + */ +public abstract class MoveNodeData { + + /** + * Crée une action pour déplacer le noeud quand on sélectionne le menu du nouveau parent + * @param treeHelper + * @param dataSource + * @param id + * @param parentId + * @return + */ + public abstract NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, + ObserveSwingDataSource dataSource, + String id, + String parentId); + + /** + * + * @param node + * @param treeHelper + * @return + */ + public abstract Map<String, String> getPossibleParentNodes(ObserveNode node, ObserveTreeHelper treeHelper); + +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeData.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeData.java new file mode 100644 index 0000000..6ca89b6 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeData.java @@ -0,0 +1,66 @@ +package fr.ird.observe.ui.tree.menu; + +import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.IdDtos; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.ui.DecoratorService; +import fr.ird.observe.ui.tree.DtoNodeSupport; +import fr.ird.observe.ui.tree.ObserveNode; +import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.actions.ChangeRouteTripActionListener; +import fr.ird.observe.ui.tree.actions.NodeChangeActionListener; +import org.nuiton.decorator.Decorator; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author Kevin Morin (Code Lutin) + * @since x.x + */ +public class MoveRouteNodeData extends MoveNodeData { + + @Override + public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, + ObserveSwingDataSource dataSource, + String id, + String parentId) { + return new ChangeRouteTripActionListener(treeHelper, dataSource, id, parentId); + } + + @Override + public Map<String,String> getPossibleParentNodes(ObserveNode routeNode, ObserveTreeHelper treeHelper) { + + // noeud de marée parent + ObserveNode parentNode = routeNode.getParent().getParent(); + + // noeud de marée du programme sans le parent actuel + Map<String, String> possibleParents = new LinkedHashMap<>(); + + // noeud du programme + ObserveNode programNode = parentNode.getParent(); + + + DecoratorService decoratorService = treeHelper.getTreeCellRenderer().getDecoratorService(); + Decorator<ReferenceDto> tripDecorator = + decoratorService.getDecoratorByType(ReferenceDto.class, TripSeineDto.class.getSimpleName()); + + for (int i = 0, n = programNode.getChildCount() ; i < n ; i++) { + + ObserveNode tripNode = programNode.getChildAt(i); + String tripId = tripNode.getId(); + + // si le noeud de marée n'est pas le même que le parent actuel + if (!parentNode.equals(tripNode) + // si le noeud est bien un noeud de marée seine + && IdDtos.isTripSeineId(tripId)) { + + String decoratedTrip = tripDecorator.toString(((DtoNodeSupport) tripNode).getEntity()); + possibleParents.put(tripId, decoratedTrip); + } + } + + return possibleParents; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeData.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeData.java new file mode 100644 index 0000000..6169037 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeData.java @@ -0,0 +1,75 @@ +package fr.ird.observe.ui.tree.menu; + +import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.IdDtos; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.ui.DecoratorService; +import fr.ird.observe.ui.tree.DtoNodeSupport; +import fr.ird.observe.ui.tree.ObserveNode; +import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.actions.ChangeTripProgramActionListener; +import fr.ird.observe.ui.tree.actions.NodeChangeActionListener; +import org.nuiton.decorator.Decorator; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author Kevin Morin (Code Lutin) + * @since x.x + */ +public class MoveTripNodeData extends MoveNodeData { + + @Override + public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, + ObserveSwingDataSource dataSource, + String id, + String parentId) { + return new ChangeTripProgramActionListener(treeHelper, dataSource, id, parentId); + } + + @Override + public Map<String, String> getPossibleParentNodes(ObserveNode tripNode, ObserveTreeHelper treeHelper) { + + // noeud du programme parent + ObserveNode parentNode = tripNode.getParent(); + + // programmes du même type que le noeud de marée, sans le parent actuel + Map<String, String> possibleParents = new LinkedHashMap<>(); + + // noeud longline ? + GearType geartype = IdDtos.isLonglineId(tripNode.getId()) ? GearType.longline : GearType.seine; + + // racine + ObserveNode rootNode = treeHelper.getRootNode(); + + DecoratorService decoratorService = treeHelper.getTreeCellRenderer().getDecoratorService(); + Decorator<ReferenceDto> programDecorator = + decoratorService.getDecoratorByType(ReferenceDto.class, ProgramDto.class.getSimpleName()); + + for (int i = 0, n = rootNode.getChildCount() ; i < n ; i++) { + + ObserveNode programNode = rootNode.getChildAt(i); + String programId = programNode.getId(); + + // si le noeud programme n'est pas le même que le parent actuel + if (!parentNode.equals(programNode) + // si le noeud est bien un noeud de programme + && IdDtos.isProgramId(programId)) { + + ReferenceDto<ProgramDto> program = ((DtoNodeSupport) programNode).getEntity(); + + // si le type de marée et le type de prgramme sont les même + if (geartype.equals(program.getPropertyValue(ProgramDto.PROPERTY_GEAR_TYPE))) { + + String decoratedProgram = programDecorator.toString(program); + possibleParents.put(programId, decoratedProgram); + } + } + } + + return possibleParents; + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 2e46280d7804999e9bb9fbb2d6381313bfaf7121 Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 17 18:16:16 2015 +0100 refactoring des menus contextuels de l'arbre + ajout des menus sur les activites seines (refs #7623) --- .../tree/ObserveNavigationTreeShowPopupAction.java | 153 ++++----------------- .../java/fr/ird/observe/ui/tree/ObserveNode.java | 12 +- .../actions/ChangeActivityRouteActionListener.java | 102 ++++++++++++++ .../ui/tree/menu/MoveActivitySeineNodeData.java | 65 +++++++++ 4 files changed, 206 insertions(+), 126 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java index 90f6379..cd0dc65 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java @@ -22,30 +22,20 @@ package fr.ird.observe.ui.tree; * #L% */ -import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Lists; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.IdDtos; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramDtos; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.ReferentialService; -import fr.ird.observe.services.service.seine.TripSeineService; import fr.ird.observe.ui.content.ContentUI; import fr.ird.observe.ui.content.open.ContentOpenableUI; -import fr.ird.observe.ui.tree.actions.ChangeRouteTripActionListener; -import fr.ird.observe.ui.tree.actions.ChangeTripProgramActionListener; -import fr.ird.observe.ui.tree.actions.NodeChangeActionListener; +import fr.ird.observe.ui.tree.menu.MoveActivitySeineNodeData; +import fr.ird.observe.ui.tree.menu.MoveNodeData; +import fr.ird.observe.ui.tree.menu.MoveRouteNodeData; +import fr.ird.observe.ui.tree.menu.MoveTripNodeData; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.decorator.Decorator; import javax.swing.JButton; import javax.swing.JMenuItem; @@ -61,9 +51,7 @@ import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.lang.reflect.Constructor; -import java.util.LinkedHashSet; -import java.util.List; +import java.util.Map; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -81,10 +69,12 @@ public class ObserveNavigationTreeShowPopupAction { private static final String TRIP_MENU_ITEMS = "trip"; private static final String ROUTE_MENU_ITEMS = "route"; + private static final String ACTIVITY_SEINE_MENU_ITEMS = "activitySeine"; static { n("observe.navigationMenu.move.trip"); n("observe.navigationMenu.move.route"); + n("observe.navigationMenu.move.activity"); } private final ObserveTreeHelper treeHelper; @@ -101,9 +91,9 @@ public class ObserveNavigationTreeShowPopupAction { private final JMenuItem moveAction; private final JMenuItem deleteAction; - private final ImmutableMap<String, NavigationPopupMenuItems> menuItemsByNodeType; + private final ImmutableMap<String, MoveNodeData> moveNodeDataByNodeType; - public ObserveNavigationTreeShowPopupAction(ObserveTreeHelper treeHelper, JScrollPane pane, JPopupMenu popup) { + public ObserveNavigationTreeShowPopupAction(final ObserveTreeHelper treeHelper, JScrollPane pane, JPopupMenu popup) { this.treeHelper = treeHelper; this.pane = pane; @@ -142,46 +132,9 @@ public class ObserveNavigationTreeShowPopupAction { this.moveAction = moveComponent; this.deleteAction = deleteActionComponent; - Function<String, List<ReferenceDto>> getProgramsFunction = new Function<String, List<ReferenceDto>>() { - - @Override - public List<ReferenceDto> apply(String nodeId) { - GearType gearType = IdDtos.isLonglineId(nodeId) ? GearType.longline : GearType.seine; - - ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - - LinkedHashSet<ReferenceDto> allPrograms = applicationContext.newService(ReferentialService.class) - .getReferentialReferenceSet(ProgramDto.class) - .getReference(); - - List<ReferenceDto> result = Lists.newArrayList(ProgramDtos.filterReferencesByGearType(allPrograms, gearType)); - - return result; - } - }; - NavigationPopupMenuItems tripItems = new NavigationPopupMenuItems(ProgramDto.class, - ChangeTripProgramActionListener.class, - getProgramsFunction); - - Function<String, List<ReferenceDto>> getTripSeinesFunction = new Function<String, List<ReferenceDto>>() { - - @Override - public List<ReferenceDto> apply(String nodeId) { - - ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - - LinkedHashSet<ReferenceDto> allTripSeine = applicationContext.newService(TripSeineService.class) - .getAllTripSeine() - .getReference(); - - return Lists.newArrayList(allTripSeine); - } - }; - NavigationPopupMenuItems routeItems = new NavigationPopupMenuItems(TripSeineDto.class, - ChangeRouteTripActionListener.class, - getTripSeinesFunction); - - menuItemsByNodeType = ImmutableMap.of(TRIP_MENU_ITEMS, tripItems, ROUTE_MENU_ITEMS, routeItems); + moveNodeDataByNodeType = ImmutableMap.of(TRIP_MENU_ITEMS, new MoveTripNodeData(), + ROUTE_MENU_ITEMS, new MoveRouteNodeData(), + ACTIVITY_SEINE_MENU_ITEMS, new MoveActivitySeineNodeData()); KeyAdapter keyAdapter = new KeyAdapter() { @Override @@ -317,6 +270,13 @@ public class ObserveNavigationTreeShowPopupAction { openAction.setEnabled(!dataContext.isOpenRoute()); closeAction.setEnabled(closeActionEnabled); + } else if (selectedNode.isActivitySeineNode()) { + + beforeOpenMenu(selectedNode, ACTIVITY_SEINE_MENU_ITEMS); + + openAction.setEnabled(!dataContext.isOpenActivitySeine()); + closeAction.setEnabled(closeActionEnabled); + } else { popup.add(noAction); @@ -328,7 +288,7 @@ public class ObserveNavigationTreeShowPopupAction { log.info("Will load popup for " + nodeType + " node."); } - NavigationPopupMenuItems items = menuItemsByNodeType.get(nodeType); + MoveNodeData moveNodeData = moveNodeDataByNodeType.get(nodeType); ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); @@ -350,48 +310,20 @@ public class ObserveNavigationTreeShowPopupAction { ObserveSwingDataSource dataSource = treeHelper.getDataProvider().getDataSource(); - List<ReferenceDto> parents = items.getGetParentsFunction().apply(id); + Map<String, String> possibleParentNodes = moveNodeData.getPossibleParentNodes(selectedNode, treeHelper); + for (String possibleParentId : possibleParentNodes.keySet()) { - Class<?> parentClass = items.getParentClass(); - String[] openIds = applicationContext.getDataContext().getOpenIds(parentClass); - String openParentId = openIds[openIds.length - 1]; + JMenuItem item = new JMenuItem(possibleParentNodes.get(possibleParentId)); + item.setName(possibleParentId); - Decorator<ReferenceDto> decorator = applicationContext.getDecorator(ReferenceDto.class, - parentClass.getSimpleName()); - for (ReferenceDto parent : parents) { - - String parentId = parent.getId(); - - if (!parentId.equals(openParentId)) { - - JMenuItem item = new JMenuItem(decorator.toString(parent)); - item.setName(parentId); - - try { - Constructor<? extends NodeChangeActionListener> actionListenerConstructor = - items.getChangeActionListenerClass().getConstructor(ObserveTreeHelper.class, - ObserveSwingDataSource.class, - String.class, - String.class); - - item.addActionListener(actionListenerConstructor.newInstance(treeHelper, - dataSource, - id, - parentId)); - - moveAction.add(item); - - } catch (ReflectiveOperationException e) { - if (log.isErrorEnabled()) { - log.error("error while creating the item listener", e); - } - } - - - } + item.addActionListener(moveNodeData.createChangeActionListener(treeHelper, + dataSource, + id, + possibleParentId)); + moveAction.add(item); } } else { @@ -441,31 +373,4 @@ public class ObserveNavigationTreeShowPopupAction { } - private class NavigationPopupMenuItems { - - private final Class<?> parentClass; - private final Class<? extends NodeChangeActionListener> changeActionListenerClass; - private final Function<String, List<ReferenceDto>> getParentsFunction; - - public NavigationPopupMenuItems(Class<?> parentClass, - Class<? extends NodeChangeActionListener> changeActionListenerClass, - Function<String, List<ReferenceDto>> getParentsFunction) { - this.parentClass = parentClass; - this.changeActionListenerClass = changeActionListenerClass; - this.getParentsFunction = getParentsFunction; - } - - public Class<?> getParentClass() { - return parentClass; - } - - public Class<? extends NodeChangeActionListener> getChangeActionListenerClass() { - return changeActionListenerClass; - } - - public Function<String, List<ReferenceDto>> getGetParentsFunction() { - return getParentsFunction; - } - } - } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java index 5bb8f23..ab547b7 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNode.java @@ -22,7 +22,9 @@ package fr.ird.observe.ui.tree; import fr.ird.observe.services.dto.OpenableDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import jaxx.runtime.swing.nav.tree.NavTreeNode; @@ -104,8 +106,14 @@ public class ObserveNode extends NavTreeNode<ObserveNode> { } public boolean isRouteNode() { - return isDataNode() && - (RouteDto.class.isAssignableFrom(internalClass)); + return isDataNode() && RouteDto.class.isAssignableFrom(internalClass); + } + + public boolean isActivitySeineNode() { + return isDataNode() && ActivitySeineDto.class.isAssignableFrom(internalClass); } + public boolean isActivityLonglineNode() { + return isDataNode() && ActivityLonglineDto.class.isAssignableFrom(internalClass); + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityRouteActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityRouteActionListener.java new file mode 100644 index 0000000..75c13eb --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityRouteActionListener.java @@ -0,0 +1,102 @@ +package fr.ird.observe.ui.tree.actions; + +/* + * #%L + * ObServe :: Swing + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + + +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.service.seine.ActivitySeineService; +import fr.ird.observe.ui.DecoratorService; +import fr.ird.observe.ui.tree.ObserveNode; +import fr.ird.observe.ui.tree.ObserveTreeHelper; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * Created on 1/9/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.11 + */ +public class ChangeActivityRouteActionListener extends NodeChangeActionListener { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ChangeActivityRouteActionListener.class); + + public ChangeActivityRouteActionListener(ObserveTreeHelper treeHelper, + ObserveSwingDataSource dataSource, + String activityId, + String routeId) { + super(treeHelper, dataSource, activityId, routeId); + } + + @Override + protected ObserveNode getParentNode(ObserveNode node) { + return node.getParent().getParent(); + } + + @Override + protected ObserveNode getNewParentNode(ObserveNode grandParentNode, String parentNodeId) { + ObserveNode routeNode = getTreeHelper().getChild(grandParentNode, parentNodeId); + String activitiesNodeId = DecoratorService.getPropertyLabel(ObserveTreeHelper.TREE_NODE_PREFIX, + RouteDto.PROPERTY_ACTIVITY_SEINE); + ObserveNode activities = getTreeHelper().getChild(routeNode, activitiesNodeId); + return activities; + } + + @Override + protected void closeParent(String oldParentId) { + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + applicationContext.getOpenDataManager().closeRoute(oldParentId); + } + + @Override + protected int moveNodeToParent(String nodeId, String parentNodeId) { + int position; + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + + ActivitySeineService service = applicationContext.newService(ActivitySeineService.class); + position = service.moveActivitySeineToRoute(nodeId, parentNodeId); + + return position; + } + + @Override + protected void openParent(ObserveNode activitiesNode) { + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + + ObserveNode routeNode = activitiesNode.getParent(); + String routeId = routeNode.getId(); + + ObserveNode routesNode = routeNode.getParent(); + ObserveNode tripNode = routesNode.getParent(); + String tripId = tripNode.getId(); + + applicationContext.getOpenDataManager().openRoute(tripId, routeId); + + getTreeHelper().reloadNode(tripNode, true); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeData.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeData.java new file mode 100644 index 0000000..bfc508b --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeData.java @@ -0,0 +1,65 @@ +package fr.ird.observe.ui.tree.menu; + +import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.IdDtos; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.ui.DecoratorService; +import fr.ird.observe.ui.tree.DtoNodeSupport; +import fr.ird.observe.ui.tree.ObserveNode; +import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.ui.tree.actions.ChangeActivityRouteActionListener; +import fr.ird.observe.ui.tree.actions.NodeChangeActionListener; +import org.nuiton.decorator.Decorator; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author Kevin Morin (Code Lutin) + * @since x.x + */ +public class MoveActivitySeineNodeData extends MoveNodeData { + + @Override + public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, + ObserveSwingDataSource dataSource, + String id, + String parentId) { + return new ChangeActivityRouteActionListener(treeHelper, dataSource, id, parentId); + } + + @Override + public Map<String, String> getPossibleParentNodes(ObserveNode activitySeineNode, ObserveTreeHelper treeHelper) { + + // noeud de route parent + ObserveNode parentNode = activitySeineNode.getParent().getParent(); + + // noeud de route de la marée sans le parent actuel + Map<String, String> possibleParents = new LinkedHashMap<>(); + + // noeud de la marée + ObserveNode routesNode = parentNode.getParent(); + + DecoratorService decoratorService = treeHelper.getTreeCellRenderer().getDecoratorService(); + Decorator<ReferenceDto> routeDecorator = + decoratorService.getDecoratorByType(ReferenceDto.class, RouteDto.class.getSimpleName()); + + for (int i = 0, n = routesNode.getChildCount() ; i < n ; i++) { + + ObserveNode routeNode = routesNode.getChildAt(i); + String routeId = routeNode.getId(); + + // si le noeud de marée n'est pas le même que le parent actuel + if (!parentNode.equals(routeNode) + // si le noeud est bien un noeud de marée seine + && IdDtos.isRouteId(routeId)) { + + String decoratedRoute = routeDecorator.toString(((DtoNodeSupport) routeNode).getEntity()); + possibleParents.put(routeId, decoratedRoute); + } + } + + return possibleParents; + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit b5b63d464e7641c673162969784b72d7aa7fdbb7 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:43:06 2015 +0100 ajout des méthodes pour déplacer plusieurs activités seine (refs #7623) --- .../v1/seine/ActivitySeineServiceController.java | 7 +++++++ .../services/service/seine/ActivitySeineService.java | 6 ++++++ .../service/seine/ActivitySeineServiceTopia.java | 20 ++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java index 033d735..0c25098 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/ActivitySeineServiceController.java @@ -30,6 +30,8 @@ import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.service.seine.ActivitySeineService; +import java.util.List; + /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @@ -93,4 +95,9 @@ public class ActivitySeineServiceController extends ObserveAuthenticatedServiceC public int moveActivitySeineToRoute(String activitySeineId, String routeId) { return service.moveActivitySeineToRoute(activitySeineId, routeId); } + + @Override + public List<Integer> moveActivitySeinesToRoute(List<String> activitySeineIds, String routeId) { + return service.moveActivitySeinesToRoute(activitySeineIds, routeId); + } } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java index 29b8b77..f459c82 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java @@ -34,6 +34,8 @@ import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; +import java.util.List; + /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @@ -76,4 +78,8 @@ public interface ActivitySeineService extends ObserveService { @Write @WriteDataPermission int moveActivitySeineToRoute(String activitySeineId, String routeId); + + @Write + @WriteDataPermission + List<Integer> moveActivitySeinesToRoute(List<String> activitySeineIds, String routeId); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java index bed0d8c..7513163 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java @@ -47,6 +47,7 @@ import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.type.CoordinateHelper; import org.nuiton.util.DateUtil; +import java.util.ArrayList; import java.util.Date; import java.util.LinkedHashSet; import java.util.List; @@ -248,4 +249,23 @@ public class ActivitySeineServiceTopia extends ObserveServiceTopia implements Ac return getActivitySeinePositionInRoute(routeId, activitySeineId); } + @Override + public List<Integer> moveActivitySeinesToRoute(List<String> activitySeineIds, String routeId) { + Route route = loadEntity(RouteDto.class, Route.class, routeId); + + List<Integer> result = new ArrayList<>(); + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); + + for (String activityId : activitySeineIds) { + ActivitySeine activity = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activityId); + route.addActivitySeine(activity); + + saveEntity(Route.class, route); + persistenceContext.flush(); + + result.add(getActivitySeinePositionInRoute(routeId, activityId)); + } + + return result; + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 96cb83ef101777745771071303820cab1d1b5a6b Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:44:01 2015 +0100 ajout de l'action pour déplacer plusieurs actvités seine (refs #7623) --- .../src/main/filters/observe-ui.properties | 2 + .../observe/ObserveSwingApplicationContext.java | 2 + .../actions/shared/MoveActivitySeinesUIAction.java | 225 +++++++++++++++++++++ .../content/list/impl/seine/ActivitySeinesUI.css | 6 + .../content/list/impl/seine/ActivitySeinesUI.jaxx | 2 + 5 files changed, 237 insertions(+) diff --git a/observe-application-swing/src/main/filters/observe-ui.properties b/observe-application-swing/src/main/filters/observe-ui.properties index 3f62e54..466ce03 100644 --- a/observe-application-swing/src/main/filters/observe-ui.properties +++ b/observe-application-swing/src/main/filters/observe-ui.properties @@ -152,6 +152,8 @@ icon.action.move-trip=action-move-trips.png icon.action.move-trips=action-move-trips.png icon.action.move-route=action-move-routes.png icon.action.move-routes=action-move-routes.png +icon.action.move-activitySeine=action-move-activities.png +icon.action.move-activities=action-move-activities.png icon.action.translate=action-translate.png icon.action.application-reload=action-application-reload.png icon.action.report=action-report.png diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java index 422b4c7..a566e67 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java @@ -25,6 +25,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import fr.ird.observe.db.DataContext; +import fr.ird.observe.ui.actions.shared.MoveActivitySeinesUIAction; import fr.ird.observe.ui.actions.shared.MoveRoutesUIAction; import fr.ird.observe.util.gps.GPSService; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; @@ -913,6 +914,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im registerMainAction(actionMap, new MoveTripLonglinesUIAction(ui)); registerMainAction(actionMap, new MoveTripSeinesUIAction(ui)); registerMainAction(actionMap, new MoveRoutesUIAction(ui)); + registerMainAction(actionMap, new MoveActivitySeinesUIAction(ui)); } public void registerMainAction(ActionMap actionMap, AbstractUIAction action) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.java new file mode 100644 index 0000000..d117a50 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.java @@ -0,0 +1,225 @@ +/* + * #%L + * ObServe :: Swing + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.ui.actions.shared; + +import com.google.common.collect.Lists; +import fr.ird.observe.ObserveOpenDataManager; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceDtos; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.service.seine.ActivitySeineService; +import fr.ird.observe.ui.DecoratorService; +import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.ui.content.ContentUI; +import fr.ird.observe.ui.content.list.ContentListUIModel; +import fr.ird.observe.ui.content.list.impl.seine.ActivitySeinesUI; +import fr.ird.observe.ui.tree.DtoNodeSupport; +import fr.ird.observe.ui.tree.ObserveNode; +import fr.ird.observe.ui.tree.ObserveTreeHelper; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.decorator.Decorator; + +import javax.swing.JComponent; +import javax.swing.JOptionPane; +import javax.swing.SwingUtilities; +import java.awt.event.ActionEvent; +import java.util.List; + +import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; + +/** + * Action pour changer le programme d'une ou plusieurs marée dans la liste. + * + * @author Kevin Morin (Code Lutin) + * @since 5.0 + */ +public class MoveActivitySeinesUIAction extends AbstractUIAction { + + private static final long serialVersionUID = 1L; + + /** + * Logger. + */ + private static final Log log = LogFactory.getLog(MoveActivitySeinesUIAction.class); + + public static final String ACTION_NAME = "moveActivities"; + + public MoveActivitySeinesUIAction(ObserveMainUI mainUI) { + super(mainUI, + ACTION_NAME, + n("observe.action.move.activities"), + n("observe.action.move.activities.tip"), + "move-activities" + ); + } + + @Override + public void actionPerformed(final ActionEvent e) { + + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + JComponent c = (JComponent) e.getSource(); + ContentUI<?> ui = (ContentUI<?>) + c.getClientProperty("ui"); + if (ui == null) { + throw new IllegalStateException( + "could not find client property " + + "ui on component" + c); + } + + if (!(ui instanceof ActivitySeinesUI)) { + throw new IllegalStateException("Can not come here!"); + } + + // get current route id + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + ObserveNode oldActivitiesNode = treeHelper.getSelectedNode(); + ObserveNode oldRouteNode = oldActivitiesNode.getParent(); + String oldRouteId = oldRouteNode.getId(); + + // choose the new route + String routeId = chooseNewRoute(ui, oldRouteNode); + + if (routeId != null) { + // change the route of the selected activities + List<ReferenceDto> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); + List<String> activityIds = Lists.transform(selectedDatas, ReferenceDtos.getIdFunction()); + ActivitySeineService service = ObserveSwingApplicationContext.get().newService(ActivitySeineService.class); + List<Integer> positions = service.moveActivitySeinesToRoute(activityIds, routeId); + + // update the tree + updateTree(oldActivitiesNode, oldRouteId, routeId, activityIds, positions); + } + + } + }); + + } + + protected String chooseNewRoute(ContentUI<?> ui, ObserveNode oldRouteNode) { + ObserveNode routesNode = oldRouteNode.getParent(); + String oldRouteId = oldRouteNode.getId(); + int routeNb = routesNode.getChildCount(); + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + Decorator<ReferenceDto> decorator = applicationContext.getDecorator(ReferenceDto.class, + RouteDto.class.getSimpleName()); + + //on crée un tableau avec une route en moins car on ne propose pas la route actuel + DecoratedRoute[] decoratedRoutes = new DecoratedRoute[routeNb - 1]; + + int j = 0; + for (int i = 0 ; i < routeNb ; i++) { + + ObserveNode routeNode = routesNode.getChildAt(i); + + String routeId = routeNode.getId(); + + if (!oldRouteId.equals(routeId)) { + decoratedRoutes[j++] = new DecoratedRoute(routeId, decorator.toString(((DtoNodeSupport) routeNode).getEntity())); + } + } + + Object decoratedRoute = JOptionPane.showInputDialog(ui, + t("observe.action.choose.route.message"), + t("observe.action.choose.route.title"), + JOptionPane.QUESTION_MESSAGE, + null, + decoratedRoutes, + null); + + return decoratedRoute != null ? ((DecoratedRoute) decoratedRoute).getId() : null; + } + + protected void updateTree(ObserveNode oldActivitiesNode, + String oldRouteId, + String routeId, + List<String> activitiyIds, + List<Integer> positions) { + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + + ObserveNode oldRouteNode = oldActivitiesNode.getParent(); + ObserveNode routesNode = oldRouteNode.getParent(); + ObserveNode tripNode = routesNode.getParent(); + ObserveNode newRouteNode = treeHelper.getChild(routesNode, routeId); + String activitiesNodeId = DecoratorService.getPropertyLabel(ObserveTreeHelper.TREE_NODE_PREFIX, + RouteDto.PROPERTY_ACTIVITY_SEINE); + ObserveNode newActivitiesNode = treeHelper.getChild(newRouteNode, activitiesNodeId); + + treeHelper.selectNode(newActivitiesNode); + + for (int i = 0, s = positions.size(); i < s; i++) { + + String actvityId = activitiyIds.get(i); + ObserveNode activityNode = treeHelper.getChild(oldActivitiesNode, actvityId); + boolean wasOpen = activityNode.isOpen(); + treeHelper.removeNode(activityNode); + + if (wasOpen) { + openDataManager.closeRoute(oldRouteId); + String tripSeineId = tripNode.getId(); + openDataManager.openRoute(tripSeineId, routeId); + } + + ObserveNode newActivityNode = treeHelper.getChild(newActivitiesNode, actvityId); + + if (newActivityNode == null) { + + // create it + if (log.isInfoEnabled()) { + log.info("Insert activity node: "); + } + treeHelper.insertNode(newActivitiesNode, activityNode, positions.get(i)); + } + } + + treeHelper.reloadNode(tripNode, true); + } + + public static class DecoratedRoute { + + private final String id; + private final String label; + + public DecoratedRoute(String id, String label) { + this.id = id; + this.label = label; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return label; + } + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUI.css index 2f02d05..43e4f44 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUI.css @@ -49,3 +49,9 @@ _text:{t("observe.action.closeAndCreate.activity")}; _toolTipText:{t("observe.action.closeAndCreate.activity.tip")}; } + +#moveSelectedChildren { + text:"observe.action.move.activities"; + toolTipText:"observe.action.move.activities.tip"; + _observeAction:{MoveActivitySeinesUIAction.ACTION_NAME}; +} \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUI.jaxx index 0604942..1d23fe9 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUI.jaxx @@ -30,6 +30,7 @@ fr.ird.observe.ui.actions.shared.CloseAndCreateUIAction fr.ird.observe.ui.actions.shared.CloseOpenUIAction fr.ird.observe.ui.actions.shared.SelectOpenNodeUIAction + fr.ird.observe.ui.actions.shared.MoveActivitySeinesUIAction static org.nuiton.i18n.I18n.n </import> @@ -51,6 +52,7 @@ <JButton id='gotoOpenChild' styleClass='gotoOpenActivity'/> <JButton id='gotoOpenChild2' styleClass='gotoOpenActivity2'/> <JButton id='createChild'/> + <JButton id='moveSelectedChildren'/> <!-- extra actions --> <Table id='extraActions' fill="both" weightx="1" insets='2'> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 51c988f0d6d6edea8cb0f9a507fffbd7e913741c Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:44:21 2015 +0100 wording (refs #7623) --- .../observe/ui/tree/ObserveNavigationTreeShowPopupAction.java | 2 +- .../resources/i18n/observe-application-swing_en_GB.properties | 10 ++++++++++ .../resources/i18n/observe-application-swing_es_ES.properties | 10 ++++++++++ .../resources/i18n/observe-application-swing_fr_FR.properties | 8 ++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java index cd0dc65..38ca04e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java @@ -74,7 +74,7 @@ public class ObserveNavigationTreeShowPopupAction { static { n("observe.navigationMenu.move.trip"); n("observe.navigationMenu.move.route"); - n("observe.navigationMenu.move.activity"); + n("observe.navigationMenu.move.activitySeine"); } private final ObserveTreeHelper treeHelper; diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties index f6f520e..93f97b3 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties @@ -55,10 +55,14 @@ observe.action.choose.program.title= observe.action.choose.report.directory=Choose reports directory observe.action.choose.reportFile=Choose the reports directory observe.action.choose.reportFile.description=Report's file (*.properties) +observe.action.choose.route.message= +observe.action.choose.route.title= observe.action.choose.sensorUsed.exportData= observe.action.choose.sensorUsed.importData= observe.action.choose.tdr.exportData= observe.action.choose.tdr.importData= +observe.action.choose.tripSeine.message= +observe.action.choose.tripSeine.title= observe.action.close=Close observe.action.close.activity.tip=Close the opened activity observe.action.close.maree.tip=Clse the opened maree @@ -284,6 +288,10 @@ observe.action.mitigationType.detail.tip= observe.action.mitigationType.modify.tip= observe.action.mitigationType.save.tip= observe.action.modify=Modify +observe.action.move.activities= +observe.action.move.activities.tip= +observe.action.move.actvities= +observe.action.move.actvities.tip= observe.action.move.maree= observe.action.move.maree.tip= observe.action.move.routes= @@ -1560,6 +1568,8 @@ observe.navigationMenu.closeRouteAction= observe.navigationMenu.closeTripAction= observe.navigationMenu.deleteRouteAction= observe.navigationMenu.deleteTripAction= +observe.navigationMenu.move.activity= +observe.navigationMenu.move.activitySeine= observe.navigationMenu.move.route= observe.navigationMenu.move.trip= observe.navigationMenu.moveRoute= diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties index 48f5351..a92dbfb 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties @@ -55,10 +55,14 @@ observe.action.choose.program.title= observe.action.choose.report.directory=Elegir el directorio de los informes observe.action.choose.reportFile=Elegir el archivo de definición de informe observe.action.choose.reportFile.description=Archivo de definición (*.properties) +observe.action.choose.route.message= +observe.action.choose.route.title= observe.action.choose.sensorUsed.exportData= observe.action.choose.sensorUsed.importData= observe.action.choose.tdr.exportData= observe.action.choose.tdr.importData= +observe.action.choose.tripSeine.message= +observe.action.choose.tripSeine.title= observe.action.close=Cerrar observe.action.close.activity.tip=Cierre de la actividad abierta observe.action.close.maree.tip=Cierre de la marea abierta @@ -284,6 +288,10 @@ observe.action.mitigationType.detail.tip= observe.action.mitigationType.modify.tip= observe.action.mitigationType.save.tip= observe.action.modify=Modificar +observe.action.move.activities= +observe.action.move.activities.tip= +observe.action.move.actvities= +observe.action.move.actvities.tip= observe.action.move.maree= observe.action.move.maree.tip= observe.action.move.routes= @@ -1562,6 +1570,8 @@ observe.navigationMenu.closeRouteAction= observe.navigationMenu.closeTripAction= observe.navigationMenu.deleteRouteAction= observe.navigationMenu.deleteTripAction= +observe.navigationMenu.move.activity= +observe.navigationMenu.move.activitySeine= observe.navigationMenu.move.route= observe.navigationMenu.move.trip= observe.navigationMenu.moveRoute= diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties index b1bbaaa..cf4f7e9 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties @@ -53,10 +53,14 @@ observe.action.choose.program.title=Changer le programme des marées observe.action.choose.report.directory=Choisir le répertoire des rapports observe.action.choose.reportFile=Choisir le fichier de définition de report observe.action.choose.reportFile.description=Fichier de définition (*.properties) +observe.action.choose.route.message=A quelle route voulez-vous associer les activités sélectionnées ? +observe.action.choose.route.title=Changer la route des activités observe.action.choose.sensorUsed.exportData=Exporter le fichier de données observe.action.choose.sensorUsed.importData=Importer le fichier de données observe.action.choose.tdr.exportData=Exporter le fichier de données observe.action.choose.tdr.importData=Importer le fichier de données +observe.action.choose.tripSeine.message=A quelle marée voulez-vous associer les routes sélectionnées ? +observe.action.choose.tripSeine.title=Changer la marée des routes observe.action.close=Fermer observe.action.close.activity.tip=Clôturer l'activité ouverte observe.action.close.maree.tip=Clôturer la marée ouverte @@ -282,6 +286,8 @@ observe.action.mitigationType.detail.tip=Voir les détails du type de mesure d'a observe.action.mitigationType.modify.tip=Modifier le type de mesure d'atténuation sélectionné observe.action.mitigationType.save.tip=Sauver les modifications du type de mesure d'atténuation observe.action.modify=Modifier +observe.action.move.activities=Changer de route +observe.action.move.activities.tip=Changer la route des activités sélectionnées observe.action.move.routes=Changer de marée observe.action.move.routes.tip=Changer la marée des routes sélectionnées observe.action.move.trips=Changer de programme @@ -1551,6 +1557,8 @@ observe.navigationMenu.closeRouteAction=Clôturer la route observe.navigationMenu.closeTripAction=Clôturer la marée observe.navigationMenu.deleteRouteAction=Supprimer la route observe.navigationMenu.deleteTripAction=Supprimer la marée +observe.navigationMenu.move.activity=Changer de route +observe.navigationMenu.move.activitySeine= observe.navigationMenu.move.route=Changer de marée observe.navigationMenu.move.trip=Réallocation du programme observe.navigationMenu.noAction=< Aucune action définie > -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 0d0ff3fdb705c7fd275116381fe661f6cfbdbc7b Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:46:43 2015 +0100 correction dans le déplacement des routes (récupération des marées via les noeuds de l'arbre, fix npe quand on clique sur annuler pendant le choix de la marée, mise à jour du model inutile vu qu'on a déjà changer de noeud) (refs #7622) --- .../ui/actions/shared/MoveRoutesUIAction.java | 78 +++++++++++----------- 1 file changed, 38 insertions(+), 40 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java index 1077cec..4a87d2a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java @@ -28,12 +28,12 @@ import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceDtos; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.seine.RouteService; -import fr.ird.observe.services.service.seine.TripSeineService; import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.content.ContentUI; import fr.ird.observe.ui.content.list.ContentListUIModel; import fr.ird.observe.ui.content.list.impl.seine.RoutesUI; +import fr.ird.observe.ui.tree.DtoNodeSupport; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import org.apache.commons.logging.Log; @@ -44,8 +44,6 @@ import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; -import java.util.ArrayList; -import java.util.LinkedHashSet; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -100,59 +98,64 @@ public class MoveRoutesUIAction extends AbstractUIAction { // get current tripseine id ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); ObserveNode oldRoutesNode = treeHelper.getSelectedNode(); - String oldTripSeineId = oldRoutesNode.getParent().getId(); + ObserveNode oldTripSeineNode = oldRoutesNode.getParent(); + String oldTripSeineId = oldTripSeineNode.getId(); // choose the new tripseine - String tripSeineId = chooseNewTripSeine(ui, oldTripSeineId); + String tripSeineId = chooseNewTripSeine(ui, oldTripSeineNode); - // change the tripseine of the selected routes - List<ReferenceDto> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); - List<String> routeIds = Lists.transform(selectedDatas, ReferenceDtos.getIdFunction()); - RouteService service = ObserveSwingApplicationContext.get().newService(RouteService.class); - List<Integer> positions = service.moveRoutesToTripSeine(routeIds, tripSeineId); + if (tripSeineId != null) { + // change the tripseine of the selected routes + List<ReferenceDto> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); + List<String> routeIds = Lists.transform(selectedDatas, ReferenceDtos.getIdFunction()); + RouteService service = ObserveSwingApplicationContext.get().newService(RouteService.class); + List<Integer> positions = service.moveRoutesToTripSeine(routeIds, tripSeineId); - // update the tree - updateTree(ui, oldRoutesNode, oldTripSeineId, tripSeineId, routeIds, positions); + // update the tree + updateTree(oldRoutesNode, oldTripSeineId, tripSeineId, routeIds, positions); + } } }); } - protected String chooseNewTripSeine(ContentUI<?> ui, String oldProgramId) { - ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); - - LinkedHashSet<ReferenceDto> allTripSeines = applicationContext.newService(TripSeineService.class) - .getAllTripSeine() - .getReference(); - - List<ReferenceDto<TripSeineDto>> tripSeines = new ArrayList<>(ReferenceDtos.castToCollectionOfReferenceDto(allTripSeines)); + protected String chooseNewTripSeine(ContentUI<?> ui, ObserveNode oldTripSeineNode) { + ObserveNode programNode = oldTripSeineNode.getParent(); + String oldTripSeineId = oldTripSeineNode.getId(); + int tripSeineNb = programNode.getChildCount(); + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); Decorator<ReferenceDto> decorator = applicationContext.getDecorator(ReferenceDto.class, TripSeineDto.class.getSimpleName()); - //on crée un tableau avec un tripseine en moins car on ne propose pas le tripseine actuel - DecoratedTripSeine[] decoratedTripSeines = new DecoratedTripSeine[tripSeines.size() - 1]; + //on crée un tableau avec une route en moins car on ne propose pas la route actuel + DecoratedTripSeine[] decoratedTripSeines = new DecoratedTripSeine[tripSeineNb - 1]; int j = 0; - for (ReferenceDto tripSeine : tripSeines) { - if (!oldProgramId.equals(tripSeine.getId())) { - decoratedTripSeines[j++] = new DecoratedTripSeine(tripSeine.getId(), decorator.toString(tripSeine)); + for (int i = 0 ; i < tripSeineNb ; i++) { + + ObserveNode tripSeineNode = programNode.getChildAt(i); + + String tripSeineId = tripSeineNode.getId(); + + if (!oldTripSeineId.equals(tripSeineId)) { + decoratedTripSeines[j++] = new DecoratedTripSeine(tripSeineId, + decorator.toString(((DtoNodeSupport) tripSeineNode).getEntity())); } } - Object decoratedProgram = JOptionPane.showInputDialog(ui, - t("observe.action.choose.program.message"), - t("observe.action.choose.program.title"), - JOptionPane.QUESTION_MESSAGE, - null, - decoratedTripSeines, - null); - return ((DecoratedTripSeine) decoratedProgram).getId(); + Object decoratedTripSeine = JOptionPane.showInputDialog(ui, + t("observe.action.choose.tripSeine.message"), + t("observe.action.choose.tripSeine.title"), + JOptionPane.QUESTION_MESSAGE, + null, + decoratedTripSeines, + null); + return decoratedTripSeine != null ? ((DecoratedTripSeine) decoratedTripSeine).getId() : null; } - protected void updateTree(ContentUI<?> ui, - ObserveNode oldRoutesNode, + protected void updateTree(ObserveNode oldRoutesNode, String oldTripSeineId, String tripSeineId, List<String> routeIds, @@ -197,11 +200,6 @@ public class MoveRoutesUIAction extends AbstractUIAction { treeHelper.reloadNode(programNode, true); - ContentListUIModel model = (ContentListUIModel) ui.getModel(); - List<ReferenceDto> data = new ArrayList<>(model.getData()); - data.removeAll(model.getSelectedDatas()); - model.setData(data); - } public static class DecoratedTripSeine { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 1aaea37fb04971f4469d679359fe72d96dfe6a3a Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:47:24 2015 +0100 correction dans le déplacement des marées (récupération des programmes via les noeuds de l'arbre, fix npe quand on clique sur annuler pendant le choix de la marée) (refs #7621) --- .../ui/actions/shared/MoveTripsUIAction.java | 84 ++++++++++++++++------ 1 file changed, 62 insertions(+), 22 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java index 181b41a..1538fb2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java @@ -24,15 +24,15 @@ package fr.ird.observe.ui.actions.shared; import com.google.common.collect.Lists; import fr.ird.observe.ObserveOpenDataManager; import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceDtos; import fr.ird.observe.services.dto.constants.GearType; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.ProgramDtos; -import fr.ird.observe.services.service.ReferentialService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.content.ContentUI; import fr.ird.observe.ui.content.list.ContentListUIModel; +import fr.ird.observe.ui.tree.DtoNodeSupport; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import org.apache.commons.logging.Log; @@ -44,7 +44,6 @@ import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; import java.util.ArrayList; -import java.util.LinkedHashSet; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -102,13 +101,16 @@ public abstract class MoveTripsUIAction extends AbstractUIAction { // choose the new program String programId = chooseNewProgram(ui, oldProgramId); - // change the program of the selected trips - List<ReferenceDto> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); - List<String> tripIds = Lists.transform(selectedDatas, ReferenceDtos.getIdFunction()); - List<Integer> positions = getPositions(tripIds, programId); + if (programId != null) { - // update the tree - updateTree(ui, oldProgramNode, oldProgramId, programId, tripIds, positions); + // change the program of the selected trips + List<ReferenceDto> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); + List<String> tripIds = Lists.transform(selectedDatas, ReferenceDtos.getIdFunction()); + List<Integer> positions = getPositions(tripIds, programId); + + // update the tree + updateTree(ui, oldProgramNode, oldProgramId, programId, tripIds, positions); + } } }); @@ -116,31 +118,68 @@ public abstract class MoveTripsUIAction extends AbstractUIAction { } protected String chooseNewProgram(ContentUI<?> ui, String oldProgramId) { + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); +// +// LinkedHashSet<ReferenceDto> allPrograms = applicationContext.newService(ReferentialService.class) +// .getReferentialReferenceSet(ProgramDto.class) +// .getReference(); +// +// GearType gearType = getGearType(ui); +// +// List<ReferenceDto> filteredPrograms = Lists.newArrayList(ProgramDtos.filterReferencesByGearType(allPrograms, gearType)); +// List<ReferenceDto<ProgramDto>> programs = new ArrayList<>(ReferenceDtos.castToCollectionOfReferenceDto(filteredPrograms)); +// ObserveTreeHelper.sortPrograms(programs); +// +// Decorator<ReferenceDto> decorator = applicationContext.getDecorator(ReferenceDto.class, +// ProgramDto.class.getSimpleName()); +// +// //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel +// DecoratedProgram[] decoratedPrograms = new DecoratedProgram[programs.size() - 1]; +// +// int j = 0; +// for (ReferenceDto program : programs) { +// if (!oldProgramId.equals(program.getId())) { +// decoratedPrograms[j++] = new DecoratedProgram(program.getId(), decorator.toString(program)); +// } +// } - LinkedHashSet<ReferenceDto> allPrograms = applicationContext.newService(ReferentialService.class) - .getReferentialReferenceSet(ProgramDto.class) - .getReference(); + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); - GearType gearType = getGearType(ui); + GearType geartype = getGearType(ui); - List<ReferenceDto> filteredPrograms = Lists.newArrayList(ProgramDtos.filterReferencesByGearType(allPrograms, gearType)); - List<ReferenceDto<ProgramDto>> programs = new ArrayList<>(ReferenceDtos.castToCollectionOfReferenceDto(filteredPrograms)); - ObserveTreeHelper.sortPrograms(programs); + // racine + ObserveNode rootNode = treeHelper.getRootNode(); Decorator<ReferenceDto> decorator = applicationContext.getDecorator(ReferenceDto.class, ProgramDto.class.getSimpleName()); //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel - DecoratedProgram[] decoratedPrograms = new DecoratedProgram[programs.size() - 1]; + List<DecoratedProgram> decoratedProgramList = new ArrayList<>(); + + for (int i = 0, n = rootNode.getChildCount() ; i < n ; i++) { + + ObserveNode programNode = rootNode.getChildAt(i); + String programId = programNode.getId(); - int j = 0; - for (ReferenceDto program : programs) { - if (!oldProgramId.equals(program.getId())) { - decoratedPrograms[j++] = new DecoratedProgram(program.getId(), decorator.toString(program)); + // si le noeud programme n'est pas le même que le parent actuel + if (!oldProgramId.equals(programId) + // si le noeud est bien un noeud de programme + && IdDtos.isProgramId(programId)) { + + ReferenceDto<ProgramDto> program = ((DtoNodeSupport) programNode).getEntity(); + + // si le type de marée et le type de prgramme sont les même + if (geartype.equals(program.getPropertyValue(ProgramDto.PROPERTY_GEAR_TYPE))) { + + String decoratedProgram = decorator.toString(program); + decoratedProgramList.add(new DecoratedProgram(programId, decoratedProgram)); + } } } + DecoratedProgram[] decoratedPrograms = decoratedProgramList.toArray(new DecoratedProgram[decoratedProgramList.size()]); + Object decoratedProgram = JOptionPane.showInputDialog(ui, t("observe.action.choose.program.message"), t("observe.action.choose.program.title"), @@ -148,7 +187,8 @@ public abstract class MoveTripsUIAction extends AbstractUIAction { null, decoratedPrograms, null); - return ((DecoratedProgram) decoratedProgram).getId(); + + return decoratedProgram != null ? ((DecoratedProgram) decoratedProgram).getId() : null; } protected void updateTree(ContentUI<?> ui, -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit a3bfa3701877aee402b8fd5a3d3a75e87efce29d Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:52:11 2015 +0100 fix icons --- ...ction-move-routes.png => action-move-activities.png} | Bin .../src/main/resources/icons/action-move-routes.png | Bin 953 -> 943 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/observe-application-swing/src/main/resources/icons/action-move-routes.png b/observe-application-swing/src/main/resources/icons/action-move-activities.png similarity index 100% copy from observe-application-swing/src/main/resources/icons/action-move-routes.png copy to observe-application-swing/src/main/resources/icons/action-move-activities.png diff --git a/observe-application-swing/src/main/resources/icons/action-move-routes.png b/observe-application-swing/src/main/resources/icons/action-move-routes.png index d7ee543..29b81c6 100644 Binary files a/observe-application-swing/src/main/resources/icons/action-move-routes.png and b/observe-application-swing/src/main/resources/icons/action-move-routes.png differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit fb11637125c6cd11fc44d9e9f81ba8966168a60c Merge: 63416d7 a3bfa37 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:55:04 2015 +0100 fixes #7623 [PS] Ajout de nouvelles fonctionnalités sur la liste des activités .../src/main/filters/observe-ui.properties | 2 + .../observe/ObserveSwingApplicationContext.java | 2 + .../actions/shared/MoveActivitySeinesUIAction.java | 225 +++++++++++++++++++++ .../ui/actions/shared/MoveRoutesUIAction.java | 78 ++++--- .../ui/actions/shared/MoveTripsUIAction.java | 84 ++++++-- .../content/list/impl/seine/ActivitySeinesUI.css | 6 + .../content/list/impl/seine/ActivitySeinesUI.jaxx | 2 + .../tree/ObserveNavigationTreeShowPopupAction.java | 153 +++----------- .../java/fr/ird/observe/ui/tree/ObserveNode.java | 12 +- ...java => ChangeActivityRouteActionListener.java} | 49 +++-- .../actions/ChangeRouteTripActionListener.java | 14 +- .../actions/ChangeTripProgramActionListener.java | 4 +- .../ui/tree/actions/NodeChangeActionListener.java | 13 +- .../ui/tree/menu/MoveActivitySeineNodeData.java | 65 ++++++ .../fr/ird/observe/ui/tree/menu/MoveNodeData.java | 37 ++++ .../observe/ui/tree/menu/MoveRouteNodeData.java | 66 ++++++ .../ird/observe/ui/tree/menu/MoveTripNodeData.java | 75 +++++++ .../observe-application-swing_en_GB.properties | 10 + .../observe-application-swing_es_ES.properties | 10 + .../observe-application-swing_fr_FR.properties | 8 + ...-move-routes.png => action-move-activities.png} | Bin .../main/resources/icons/action-move-routes.png | Bin 953 -> 943 bytes .../v1/seine/ActivitySeineServiceController.java | 11 + .../service/seine/ActivitySeineService.java | 9 + .../service/seine/ActivitySeineServiceTopia.java | 34 ++++ .../services/service/seine/RouteServiceTopia.java | 4 + 26 files changed, 754 insertions(+), 219 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm