branch feature/7624 created (now c46d642)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7624 in repository observe. See http://git.codelutin.com/observe.git at c46d642 ajout de l'action de déplacement des activités dans la liste (fixes #7624) This branch includes the following new commits: new 8d81cfc ajout d'une annotation oubliée new 942f1df on évite de sauver n fois les entités new 6cefceb ajout de la méthode pour déplacer une activité longline (refs #7624) new 2a8eeff ajout du menu de déplacement d'un noeud d'activité longline new 28de073 renommage new 471fe45 refactor new a4ce97d reload program node (refs #7624) new 187d336 refactor new d355416 ajout des méthodes pour déplacer plusieurs activites longline (refs #7624) new c46d642 ajout de l'action de déplacement des activités dans la liste (fixes #7624) 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 c46d642f5cf9b4d2c467c33aeb0e479e0a7f6933 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 16:20:28 2015 +0100 ajout de l'action de déplacement des activités dans la liste (fixes #7624) commit d355416d1682b7f601733579e5ff8921de91071c Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 16:13:37 2015 +0100 ajout des méthodes pour déplacer plusieurs activites longline (refs #7624) commit 187d3364795bd02aca2ab73393e5d6ad895c54f0 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 16:13:08 2015 +0100 refactor commit a4ce97d14c8c5509cddba855b82bc23e3bd7d55c Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 15:33:35 2015 +0100 reload program node (refs #7624) commit 471fe456d72272b449c750ac70274c58076ceb09 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 15:33:17 2015 +0100 refactor commit 28de073a02a3e2c8d710447d31af84e6a5a3eaf1 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:54:47 2015 +0100 renommage commit 2a8eeff60250666274b6c7a812ce4baa747d48e5 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:53:31 2015 +0100 ajout du menu de déplacement d'un noeud d'activité longline commit 6cefceb7a91d5ec61bf7b2feff402112c467df6a Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:45:54 2015 +0100 ajout de la méthode pour déplacer une activité longline (refs #7624) commit 942f1df355f00933d1ce04d796605206563d4f92 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:45:21 2015 +0100 on évite de sauver n fois les entités commit 8d81cfce58fdbf046c863b8f6fa0fe45b82009ca Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:19:18 2015 +0100 ajout d'une annotation oubliée -- 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit 8d81cfce58fdbf046c863b8f6fa0fe45b82009ca Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:19:18 2015 +0100 ajout d'une annotation oubliée --- .../fr/ird/observe/services/service/seine/ActivitySeineService.java | 2 ++ .../main/java/fr/ird/observe/services/service/seine/RouteService.java | 2 ++ 2 files changed, 4 insertions(+) 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 f459c82..0acb68a 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 @@ -77,9 +77,11 @@ public interface ActivitySeineService extends ObserveService { @Write @WriteDataPermission + @PostRequest int moveActivitySeineToRoute(String activitySeineId, String routeId); @Write @WriteDataPermission + @PostRequest List<Integer> moveActivitySeinesToRoute(List<String> activitySeineIds, String routeId); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java index b055129..9d4d151 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java @@ -77,9 +77,11 @@ public interface RouteService extends ObserveService { @Write @WriteDataPermission + @PostRequest int moveRouteToTripSeine(String routeId, String tripSeineId); @Write @WriteDataPermission + @PostRequest List<Integer> moveRoutesToTripSeine(List<String> routeIds, String tripSeineId); } -- 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit 942f1df355f00933d1ce04d796605206563d4f92 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:45:21 2015 +0100 on évite de sauver n fois les entités --- .../service/seine/ActivitySeineServiceTopia.java | 23 +++++++++++----------- .../services/service/seine/RouteServiceTopia.java | 18 +++++++++-------- 2 files changed, 21 insertions(+), 20 deletions(-) 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 7513163..c96e044 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,7 +25,6 @@ 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; @@ -95,9 +94,7 @@ public class ActivitySeineServiceTopia extends ObserveServiceTopia implements Ac ActivitySeine activitySeine = route.getActivitySeineByTopiaId(activitySeineId); - int position = Iterables.size(Iterables.filter( - route.getActivitySeine(), - ActivitySeines.newDateBeforePredicate(activitySeine.getTime()))); + int position = getActivitySeinePositionInRoute(route, activitySeine); return position; } @@ -240,13 +237,11 @@ public class ActivitySeineServiceTopia extends ObserveServiceTopia implements Ac 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); + return getActivitySeinePositionInRoute(route, activitySeine); } @Override @@ -254,18 +249,22 @@ public class ActivitySeineServiceTopia extends ObserveServiceTopia implements Ac 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)); } + saveEntity(Route.class, route); + return result; } + + protected int getActivitySeinePositionInRoute(Route route, ActivitySeine activitySeine) { + return Iterables.size(Iterables.filter( + route.getActivitySeine(), + ActivitySeines.newDateBeforePredicate(activitySeine.getTime()))); + } } 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 11d6c8f..2f3e494 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 @@ -89,9 +89,7 @@ public class RouteServiceTopia extends ObserveServiceTopia implements RouteServi Route route = tripSeine.getRouteByTopiaId(routeId); - int position = Iterables.size(Iterables.filter( - tripSeine.getRoute(), - Routes.newDateBeforePredicate(route.getDate()))); + int position = getRoutePositionInTripSeine(tripSeine, route); return position; @@ -281,18 +279,22 @@ public class RouteServiceTopia extends ObserveServiceTopia implements RouteServi TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); List<Integer> result = new ArrayList<>(); - ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); for (String routeId : routeIds) { Route route = loadEntity(RouteDto.class, Route.class, routeId); tripSeine.addRoute(route); - saveEntity(TripSeine.class, tripSeine); - persistenceContext.flush(); - - result.add(getRoutePositionInTripSeine(tripSeineId, routeId)); + result.add(getRoutePositionInTripSeine(tripSeine, route)); } + saveEntity(TripSeine.class, tripSeine); + return result; } + + protected int getRoutePositionInTripSeine(TripSeine tripSeine, Route route) { + return Iterables.size(Iterables.filter( + tripSeine.getRoute(), + Routes.newDateBeforePredicate(route.getDate()))); + } } -- 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit 6cefceb7a91d5ec61bf7b2feff402112c467df6a Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:45:54 2015 +0100 ajout de la méthode pour déplacer une activité longline (refs #7624) --- .../longline/ActivityLonglineServiceController.java | 7 ++++++- .../service/longline/ActivityLonglineService.java | 4 ++++ .../longline/ActivityLonglineServiceTopia.java | 20 +++++++++++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java index 0c654b2..04ddf49 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java @@ -88,4 +88,9 @@ public class ActivityLonglineServiceController extends ObserveAuthenticatedServi public boolean delete(String tripLonglineId, String activityLonglineId) { return service.delete(tripLonglineId, activityLonglineId); } -} + + @Override + public int moveActivityLonglineToTripLongline(String activityLonglineId, String tripLonglineId) { + return service.moveActivityLonglineToTripLongline(activityLonglineId, tripLonglineId); + } +} \ No newline at end of file diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java index bf22503..d2207a3 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java @@ -76,4 +76,8 @@ public interface ActivityLonglineService extends ObserveService { */ boolean delete(String tripLonglineId, String activityLonglineId); + @Write + @WriteDataPermission + @PostRequest + int moveActivityLonglineToTripLongline(String activityLonglineId, String tripLonglineId); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java index 2fd8d7c..235410c 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java @@ -84,9 +84,7 @@ public class ActivityLonglineServiceTopia extends ObserveServiceTopia implements ActivityLongline activityLongline = tripLongline.getActivityLonglineByTopiaId(activityLonglineId); - int position = Iterables.size(Iterables.filter( - tripLongline.getActivityLongline(), - ActivityLonglines.newTimeStampBeforePredicate(activityLongline.getTimeStamp()))); + int position = getActivityLonglinePositionInTripLongline(tripLongline, activityLongline); return position; } @@ -235,4 +233,20 @@ public class ActivityLonglineServiceTopia extends ObserveServiceTopia implements return wasEndDateUpdated; } + @Override + public int moveActivityLonglineToTripLongline(String activityLonglineId, String tripLonglineId) { + ActivityLongline activityLongline = loadEntity(ActivityLonglineDto.class, ActivityLongline.class, activityLonglineId); + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + tripLongline.addActivityLongline(activityLongline); + saveEntity(TripLongline.class, tripLongline); + + return getActivityLonglinePositionInTripLongline(tripLongline, activityLongline); + } + + protected int getActivityLonglinePositionInTripLongline(TripLongline tripLongline, ActivityLongline activityLongline) { + return Iterables.size(Iterables.filter( + tripLongline.getActivityLongline(), + ActivityLonglines.newTimeStampBeforePredicate(activityLongline.getTimeStamp()))); + } } -- 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit 2a8eeff60250666274b6c7a812ce4baa747d48e5 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:53:31 2015 +0100 ajout du menu de déplacement d'un noeud d'activité longline --- .../tree/ObserveNavigationTreeShowPopupAction.java | 13 ++- .../actions/ChangeActivityTripActionListener.java | 101 +++++++++++++++++++++ .../ui/tree/menu/MoveActivityLonglineNodeData.java | 65 +++++++++++++ 3 files changed, 178 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 38ca04e..5578d04 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 @@ -29,6 +29,7 @@ import fr.ird.observe.db.DataContext; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.ui.content.ContentUI; import fr.ird.observe.ui.content.open.ContentOpenableUI; +import fr.ird.observe.ui.tree.menu.MoveActivityLonglineNodeData; import fr.ird.observe.ui.tree.menu.MoveActivitySeineNodeData; import fr.ird.observe.ui.tree.menu.MoveNodeData; import fr.ird.observe.ui.tree.menu.MoveRouteNodeData; @@ -70,11 +71,13 @@ 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"; + private static final String ACTIVITY_LONGLINE_MENU_ITEMS = "activityLongline"; static { n("observe.navigationMenu.move.trip"); n("observe.navigationMenu.move.route"); n("observe.navigationMenu.move.activitySeine"); + n("observe.navigationMenu.move.activityLongline"); } private final ObserveTreeHelper treeHelper; @@ -134,7 +137,8 @@ public class ObserveNavigationTreeShowPopupAction { moveNodeDataByNodeType = ImmutableMap.of(TRIP_MENU_ITEMS, new MoveTripNodeData(), ROUTE_MENU_ITEMS, new MoveRouteNodeData(), - ACTIVITY_SEINE_MENU_ITEMS, new MoveActivitySeineNodeData()); + ACTIVITY_SEINE_MENU_ITEMS, new MoveActivitySeineNodeData(), + ACTIVITY_LONGLINE_MENU_ITEMS, new MoveActivityLonglineNodeData()); KeyAdapter keyAdapter = new KeyAdapter() { @Override @@ -277,6 +281,13 @@ public class ObserveNavigationTreeShowPopupAction { openAction.setEnabled(!dataContext.isOpenActivitySeine()); closeAction.setEnabled(closeActionEnabled); + } else if (selectedNode.isActivityLonglineNode()) { + + beforeOpenMenu(selectedNode, ACTIVITY_LONGLINE_MENU_ITEMS); + + openAction.setEnabled(!dataContext.isOpenActivityLongline()); + closeAction.setEnabled(closeActionEnabled); + } else { popup.add(noAction); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java new file mode 100644 index 0000000..7b5c97f --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java @@ -0,0 +1,101 @@ +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.longline.TripLonglineDto; +import fr.ird.observe.services.service.longline.ActivityLonglineService; +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 ChangeActivityTripActionListener extends NodeChangeActionListener { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ChangeActivityTripActionListener.class); + + public ChangeActivityTripActionListener(ObserveTreeHelper treeHelper, + ObserveSwingDataSource dataSource, + String activityId, + String tripLonglineId) { + super(treeHelper, dataSource, activityId, tripLonglineId); + } + + @Override + protected ObserveNode getParentNode(ObserveNode node) { + return node.getParent().getParent(); + } + + @Override + protected ObserveNode getNewParentNode(ObserveNode grandParentNode, String parentNodeId) { + ObserveNode tripLonglineNode = getTreeHelper().getChild(grandParentNode, parentNodeId); + String activitiesNodeId = DecoratorService.getPropertyLabel(ObserveTreeHelper.TREE_NODE_PREFIX, + TripLonglineDto.PROPERTY_ACTIVITY_LONGLINE); + ObserveNode activities = getTreeHelper().getChild(tripLonglineNode, activitiesNodeId); + return activities; + } + + @Override + protected void closeParent(String oldParentId) { + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + applicationContext.getOpenDataManager().closeTripLongline(oldParentId); + } + + @Override + protected int moveNodeToParent(String nodeId, String parentNodeId) { + int position; + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + + ActivityLonglineService service = applicationContext.newService(ActivityLonglineService.class); + position = service.moveActivityLonglineToTripLongline(nodeId, parentNodeId); + + return position; + } + + @Override + protected void openParent(ObserveNode activitiesNode) { + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + + ObserveNode tripLonglineNode = activitiesNode.getParent(); + String tripLonglineId = tripLonglineNode.getId(); + + ObserveNode programNode = tripLonglineNode.getParent(); + String programId = programNode.getId(); + + applicationContext.getOpenDataManager().openTripLongline(programId, tripLonglineId); + + getTreeHelper().reloadNode(tripLonglineNode, true); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeData.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeData.java new file mode 100644 index 0000000..ddf373a --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeData.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.longline.TripLonglineDto; +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 5.0 + */ +public class MoveActivityLonglineNodeData 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 activityLonglineNode, ObserveTreeHelper treeHelper) { + + // noeud de marée parent + ObserveNode parentNode = activityLonglineNode.getParent().getParent(); + + // noeud de route de la marée 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, TripLonglineDto.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 longline + && IdDtos.isTripLonglineId(tripId)) { + + String decoratedTrip = tripDecorator.toString(((DtoNodeSupport) tripNode).getEntity()); + possibleParents.put(tripId, decoratedTrip); + } + } + + 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit 28de073a02a3e2c8d710447d31af84e6a5a3eaf1 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 14:54:47 2015 +0100 renommage --- .../tree/ObserveNavigationTreeShowPopupAction.java | 22 +++++++++++----------- ... => MoveActivityLonglineNodeMenuPopulator.java} | 2 +- ...ava => MoveActivitySeineNodeMenuPopulator.java} | 6 +++--- ...oveNodeData.java => MoveNodeMenuPopulator.java} | 12 +++++++----- ...deData.java => MoveRouteNodeMenuPopulator.java} | 5 ++--- ...odeData.java => MoveTripNodeMenuPopulator.java} | 2 +- 6 files changed, 25 insertions(+), 24 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 5578d04..6eb9877 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 @@ -29,11 +29,11 @@ import fr.ird.observe.db.DataContext; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.ui.content.ContentUI; import fr.ird.observe.ui.content.open.ContentOpenableUI; -import fr.ird.observe.ui.tree.menu.MoveActivityLonglineNodeData; -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 fr.ird.observe.ui.tree.menu.MoveActivityLonglineNodeMenuPopulator; +import fr.ird.observe.ui.tree.menu.MoveActivitySeineNodeMenuPopulator; +import fr.ird.observe.ui.tree.menu.MoveNodeMenuPopulator; +import fr.ird.observe.ui.tree.menu.MoveRouteNodeMenuPopulator; +import fr.ird.observe.ui.tree.menu.MoveTripNodeMenuPopulator; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -94,7 +94,7 @@ public class ObserveNavigationTreeShowPopupAction { private final JMenuItem moveAction; private final JMenuItem deleteAction; - private final ImmutableMap<String, MoveNodeData> moveNodeDataByNodeType; + private final ImmutableMap<String, MoveNodeMenuPopulator> moveNodeDataByNodeType; public ObserveNavigationTreeShowPopupAction(final ObserveTreeHelper treeHelper, JScrollPane pane, JPopupMenu popup) { @@ -135,10 +135,10 @@ public class ObserveNavigationTreeShowPopupAction { this.moveAction = moveComponent; this.deleteAction = deleteActionComponent; - moveNodeDataByNodeType = ImmutableMap.of(TRIP_MENU_ITEMS, new MoveTripNodeData(), - ROUTE_MENU_ITEMS, new MoveRouteNodeData(), - ACTIVITY_SEINE_MENU_ITEMS, new MoveActivitySeineNodeData(), - ACTIVITY_LONGLINE_MENU_ITEMS, new MoveActivityLonglineNodeData()); + moveNodeDataByNodeType = ImmutableMap.of(TRIP_MENU_ITEMS, new MoveTripNodeMenuPopulator(), + ROUTE_MENU_ITEMS, new MoveRouteNodeMenuPopulator(), + ACTIVITY_SEINE_MENU_ITEMS, new MoveActivitySeineNodeMenuPopulator(), + ACTIVITY_LONGLINE_MENU_ITEMS, new MoveActivityLonglineNodeMenuPopulator()); KeyAdapter keyAdapter = new KeyAdapter() { @Override @@ -299,7 +299,7 @@ public class ObserveNavigationTreeShowPopupAction { log.info("Will load popup for " + nodeType + " node."); } - MoveNodeData moveNodeData = moveNodeDataByNodeType.get(nodeType); + MoveNodeMenuPopulator moveNodeData = moveNodeDataByNodeType.get(nodeType); ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeData.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java similarity index 96% rename from observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeData.java rename to observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java index ddf373a..8fb9f6d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeData.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java @@ -19,7 +19,7 @@ import java.util.Map; * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public class MoveActivityLonglineNodeData extends MoveNodeData { +public class MoveActivityLonglineNodeMenuPopulator extends MoveNodeMenuPopulator { @Override public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, 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/MoveActivitySeineNodeMenuPopulator.java similarity index 94% rename from observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeData.java rename to observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java index bfc508b..50ee5bb 100644 --- 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/MoveActivitySeineNodeMenuPopulator.java @@ -17,9 +17,9 @@ import java.util.Map; /** * @author Kevin Morin (Code Lutin) - * @since x.x + * @since 5.0 */ -public class MoveActivitySeineNodeData extends MoveNodeData { +public class MoveActivitySeineNodeMenuPopulator extends MoveNodeMenuPopulator { @Override public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, @@ -38,7 +38,7 @@ public class MoveActivitySeineNodeData extends MoveNodeData { // noeud de route de la marée sans le parent actuel Map<String, String> possibleParents = new LinkedHashMap<>(); - // noeud de la marée + // noeud des routes de la marée ObserveNode routesNode = parentNode.getParent(); DecoratorService decoratorService = treeHelper.getTreeCellRenderer().getDecoratorService(); 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/MoveNodeMenuPopulator.java similarity index 74% rename from observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeData.java rename to observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeMenuPopulator.java index 5211e1a..0a751da 100644 --- 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/MoveNodeMenuPopulator.java @@ -8,10 +8,12 @@ import fr.ird.observe.ui.tree.actions.NodeChangeActionListener; import java.util.Map; /** + * Objets pour créer les items du menu déplacer dans le menu contextuel de l'arbre + * * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public abstract class MoveNodeData { +public abstract class MoveNodeMenuPopulator { /** * Crée une action pour déplacer le noeud quand on sélectionne le menu du nouveau parent @@ -27,10 +29,10 @@ public abstract class MoveNodeData { String parentId); /** - * - * @param node - * @param treeHelper - * @return + * Récupère les parents dans lesquels on peut déplacer le noeud sélectionné + * @param node le noeud sélectionné + * @param treeHelper le treehelper + * @return une map contenant les libellés des noeuds par id */ 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/MoveRouteNodeMenuPopulator.java similarity index 96% rename from observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeData.java rename to observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeMenuPopulator.java index 6ca89b6..bddac46 100644 --- 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/MoveRouteNodeMenuPopulator.java @@ -17,9 +17,9 @@ import java.util.Map; /** * @author Kevin Morin (Code Lutin) - * @since x.x + * @since 5.0 */ -public class MoveRouteNodeData extends MoveNodeData { +public class MoveRouteNodeMenuPopulator extends MoveNodeMenuPopulator { @Override public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, @@ -41,7 +41,6 @@ public class MoveRouteNodeData extends MoveNodeData { // noeud du programme ObserveNode programNode = parentNode.getParent(); - DecoratorService decoratorService = treeHelper.getTreeCellRenderer().getDecoratorService(); Decorator<ReferenceDto> tripDecorator = decoratorService.getDecoratorByType(ReferenceDto.class, TripSeineDto.class.getSimpleName()); 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/MoveTripNodeMenuPopulator.java similarity index 97% rename from observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeData.java rename to observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeMenuPopulator.java index 6169037..ce0aacc 100644 --- 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/MoveTripNodeMenuPopulator.java @@ -20,7 +20,7 @@ import java.util.Map; * @author Kevin Morin (Code Lutin) * @since x.x */ -public class MoveTripNodeData extends MoveNodeData { +public class MoveTripNodeMenuPopulator extends MoveNodeMenuPopulator { @Override public NodeChangeActionListener createChangeActionListener(ObserveTreeHelper treeHelper, -- 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit 471fe456d72272b449c750ac70274c58076ceb09 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 15:33:17 2015 +0100 refactor --- .../actions/shared/MoveActivitySeinesUIAction.java | 27 ++++---------------- .../ui/actions/shared/MoveRoutesUIAction.java | 28 ++++----------------- .../ui/actions/shared/MoveTripsUIAction.java | 29 +++++----------------- .../tree/ObserveNavigationTreeShowPopupAction.java | 10 +++++--- .../MoveActivityLonglineNodeMenuPopulator.java | 15 +++++------ .../menu/MoveActivitySeineNodeMenuPopulator.java | 11 ++++---- .../ui/tree/menu/MoveNodeMenuPopulator.java | 7 +++--- .../ui/tree/menu/MoveRouteNodeMenuPopulator.java | 11 ++++---- .../ui/tree/menu/MoveTripNodeMenuPopulator.java | 11 ++++---- .../ird/observe/ui/util/DecoratedNodeEntity.java | 26 +++++++++++++++++++ 10 files changed, 78 insertions(+), 97 deletions(-) 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 index d117a50..a211045 100644 --- 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 @@ -36,6 +36,7 @@ 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 fr.ird.observe.ui.util.DecoratedNodeEntity; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -130,7 +131,7 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { 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]; + DecoratedNodeEntity[] decoratedRoutes = new DecoratedNodeEntity[routeNb - 1]; int j = 0; for (int i = 0 ; i < routeNb ; i++) { @@ -140,7 +141,8 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { String routeId = routeNode.getId(); if (!oldRouteId.equals(routeId)) { - decoratedRoutes[j++] = new DecoratedRoute(routeId, decorator.toString(((DtoNodeSupport) routeNode).getEntity())); + decoratedRoutes[j++] = new DecoratedNodeEntity(routeId, + decorator.toString(((DtoNodeSupport) routeNode).getEntity())); } } @@ -152,7 +154,7 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { decoratedRoutes, null); - return decoratedRoute != null ? ((DecoratedRoute) decoratedRoute).getId() : null; + return decoratedRoute != null ? ((DecoratedNodeEntity) decoratedRoute).getId() : null; } protected void updateTree(ObserveNode oldActivitiesNode, @@ -203,23 +205,4 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { 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/actions/shared/MoveRoutesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveRoutesUIAction.java index 4a87d2a..3330dff 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 @@ -36,6 +36,7 @@ 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 fr.ird.observe.ui.util.DecoratedNodeEntity; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -130,7 +131,7 @@ public class MoveRoutesUIAction extends AbstractUIAction { TripSeineDto.class.getSimpleName()); //on crée un tableau avec une route en moins car on ne propose pas la route actuel - DecoratedTripSeine[] decoratedTripSeines = new DecoratedTripSeine[tripSeineNb - 1]; + DecoratedNodeEntity[] decoratedTripSeines = new DecoratedNodeEntity[tripSeineNb - 1]; int j = 0; for (int i = 0 ; i < tripSeineNb ; i++) { @@ -140,8 +141,8 @@ public class MoveRoutesUIAction extends AbstractUIAction { String tripSeineId = tripSeineNode.getId(); if (!oldTripSeineId.equals(tripSeineId)) { - decoratedTripSeines[j++] = new DecoratedTripSeine(tripSeineId, - decorator.toString(((DtoNodeSupport) tripSeineNode).getEntity())); + decoratedTripSeines[j++] = new DecoratedNodeEntity(tripSeineId, + decorator.toString(((DtoNodeSupport) tripSeineNode).getEntity())); } } @@ -152,7 +153,7 @@ public class MoveRoutesUIAction extends AbstractUIAction { null, decoratedTripSeines, null); - return decoratedTripSeine != null ? ((DecoratedTripSeine) decoratedTripSeine).getId() : null; + return decoratedTripSeine != null ? ((DecoratedNodeEntity) decoratedTripSeine).getId() : null; } protected void updateTree(ObserveNode oldRoutesNode, @@ -202,23 +203,4 @@ public class MoveRoutesUIAction extends AbstractUIAction { } - public static class DecoratedTripSeine { - - private final String id; - private final String label; - - public DecoratedTripSeine(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/actions/shared/MoveTripsUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripsUIAction.java index 1538fb2..47760f2 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 @@ -35,6 +35,7 @@ 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 fr.ird.observe.ui.util.DecoratedNodeEntity; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -155,7 +156,7 @@ public abstract class MoveTripsUIAction extends AbstractUIAction { ProgramDto.class.getSimpleName()); //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel - List<DecoratedProgram> decoratedProgramList = new ArrayList<>(); + List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>(); for (int i = 0, n = rootNode.getChildCount() ; i < n ; i++) { @@ -173,12 +174,13 @@ public abstract class MoveTripsUIAction extends AbstractUIAction { if (geartype.equals(program.getPropertyValue(ProgramDto.PROPERTY_GEAR_TYPE))) { String decoratedProgram = decorator.toString(program); - decoratedProgramList.add(new DecoratedProgram(programId, decoratedProgram)); + decoratedProgramList.add(new DecoratedNodeEntity(programId, decoratedProgram)); } } } - DecoratedProgram[] decoratedPrograms = decoratedProgramList.toArray(new DecoratedProgram[decoratedProgramList.size()]); + DecoratedNodeEntity[] decoratedPrograms = + decoratedProgramList.toArray(new DecoratedNodeEntity[decoratedProgramList.size()]); Object decoratedProgram = JOptionPane.showInputDialog(ui, t("observe.action.choose.program.message"), @@ -188,7 +190,7 @@ public abstract class MoveTripsUIAction extends AbstractUIAction { decoratedPrograms, null); - return decoratedProgram != null ? ((DecoratedProgram) decoratedProgram).getId() : null; + return decoratedProgram != null ? ((DecoratedNodeEntity) decoratedProgram).getId() : null; } protected void updateTree(ContentUI<?> ui, @@ -244,23 +246,4 @@ public abstract class MoveTripsUIAction extends AbstractUIAction { protected abstract void updateModelData(ContentUI<?> ui); - public static class DecoratedProgram { - - private final String id; - private final String label; - - public DecoratedProgram(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/tree/ObserveNavigationTreeShowPopupAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java index 6eb9877..fa365b3 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 @@ -34,6 +34,7 @@ import fr.ird.observe.ui.tree.menu.MoveActivitySeineNodeMenuPopulator; import fr.ird.observe.ui.tree.menu.MoveNodeMenuPopulator; import fr.ird.observe.ui.tree.menu.MoveRouteNodeMenuPopulator; import fr.ird.observe.ui.tree.menu.MoveTripNodeMenuPopulator; +import fr.ird.observe.ui.util.DecoratedNodeEntity; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -52,7 +53,7 @@ import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.util.Map; +import java.util.List; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -321,11 +322,12 @@ public class ObserveNavigationTreeShowPopupAction { ObserveSwingDataSource dataSource = treeHelper.getDataProvider().getDataSource(); - Map<String, String> possibleParentNodes = moveNodeData.getPossibleParentNodes(selectedNode, treeHelper); + List<DecoratedNodeEntity> possibleParentNodes = moveNodeData.getPossibleParentNodes(selectedNode, treeHelper); - for (String possibleParentId : possibleParentNodes.keySet()) { + for (DecoratedNodeEntity possibleParent : possibleParentNodes) { - JMenuItem item = new JMenuItem(possibleParentNodes.get(possibleParentId)); + String possibleParentId = possibleParent.getId(); + JMenuItem item = new JMenuItem(possibleParent.toString()); item.setName(possibleParentId); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java index 8fb9f6d..4697333 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivityLonglineNodeMenuPopulator.java @@ -8,12 +8,13 @@ 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.ChangeActivityTripActionListener; import fr.ird.observe.ui.tree.actions.NodeChangeActionListener; +import fr.ird.observe.ui.util.DecoratedNodeEntity; import org.nuiton.decorator.Decorator; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.ArrayList; +import java.util.List; /** * @author Kevin Morin (Code Lutin) @@ -26,17 +27,17 @@ public class MoveActivityLonglineNodeMenuPopulator extends MoveNodeMenuPopulator ObserveSwingDataSource dataSource, String id, String parentId) { - return new ChangeActivityRouteActionListener(treeHelper, dataSource, id, parentId); + return new ChangeActivityTripActionListener(treeHelper, dataSource, id, parentId); } @Override - public Map<String, String> getPossibleParentNodes(ObserveNode activityLonglineNode, ObserveTreeHelper treeHelper) { + public List<DecoratedNodeEntity> getPossibleParentNodes(ObserveNode activityLonglineNode, ObserveTreeHelper treeHelper) { // noeud de marée parent ObserveNode parentNode = activityLonglineNode.getParent().getParent(); // noeud de route de la marée sans le parent actuel - Map<String, String> possibleParents = new LinkedHashMap<>(); + List<DecoratedNodeEntity> possibleParents = new ArrayList<>(); // noeud du programme ObserveNode programNode = parentNode.getParent(); @@ -56,7 +57,7 @@ public class MoveActivityLonglineNodeMenuPopulator extends MoveNodeMenuPopulator && IdDtos.isTripLonglineId(tripId)) { String decoratedTrip = tripDecorator.toString(((DtoNodeSupport) tripNode).getEntity()); - possibleParents.put(tripId, decoratedTrip); + possibleParents.add(new DecoratedNodeEntity(tripId, decoratedTrip)); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java index 50ee5bb..719c393 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveActivitySeineNodeMenuPopulator.java @@ -10,10 +10,11 @@ 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 fr.ird.observe.ui.util.DecoratedNodeEntity; import org.nuiton.decorator.Decorator; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.ArrayList; +import java.util.List; /** * @author Kevin Morin (Code Lutin) @@ -30,13 +31,13 @@ public class MoveActivitySeineNodeMenuPopulator extends MoveNodeMenuPopulator { } @Override - public Map<String, String> getPossibleParentNodes(ObserveNode activitySeineNode, ObserveTreeHelper treeHelper) { + public List<DecoratedNodeEntity> 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<>(); + List<DecoratedNodeEntity> possibleParents = new ArrayList<>(); // noeud des routes de la marée ObserveNode routesNode = parentNode.getParent(); @@ -56,7 +57,7 @@ public class MoveActivitySeineNodeMenuPopulator extends MoveNodeMenuPopulator { && IdDtos.isRouteId(routeId)) { String decoratedRoute = routeDecorator.toString(((DtoNodeSupport) routeNode).getEntity()); - possibleParents.put(routeId, decoratedRoute); + possibleParents.add(new DecoratedNodeEntity(routeId, decoratedRoute)); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeMenuPopulator.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeMenuPopulator.java index 0a751da..9dcb0a0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeMenuPopulator.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveNodeMenuPopulator.java @@ -4,8 +4,9 @@ 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 fr.ird.observe.ui.util.DecoratedNodeEntity; -import java.util.Map; +import java.util.List; /** * Objets pour créer les items du menu déplacer dans le menu contextuel de l'arbre @@ -32,8 +33,8 @@ public abstract class MoveNodeMenuPopulator { * Récupère les parents dans lesquels on peut déplacer le noeud sélectionné * @param node le noeud sélectionné * @param treeHelper le treehelper - * @return une map contenant les libellés des noeuds par id + * @return une liste contenant les ids et les libellés des noeuds */ - public abstract Map<String, String> getPossibleParentNodes(ObserveNode node, ObserveTreeHelper treeHelper); + public abstract List<DecoratedNodeEntity> getPossibleParentNodes(ObserveNode node, ObserveTreeHelper treeHelper); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeMenuPopulator.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeMenuPopulator.java index bddac46..b9ea140 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeMenuPopulator.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveRouteNodeMenuPopulator.java @@ -10,10 +10,11 @@ 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 fr.ird.observe.ui.util.DecoratedNodeEntity; import org.nuiton.decorator.Decorator; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.ArrayList; +import java.util.List; /** * @author Kevin Morin (Code Lutin) @@ -30,13 +31,13 @@ public class MoveRouteNodeMenuPopulator extends MoveNodeMenuPopulator { } @Override - public Map<String,String> getPossibleParentNodes(ObserveNode routeNode, ObserveTreeHelper treeHelper) { + public List<DecoratedNodeEntity> 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<>(); + List<DecoratedNodeEntity> possibleParents = new ArrayList<>(); // noeud du programme ObserveNode programNode = parentNode.getParent(); @@ -56,7 +57,7 @@ public class MoveRouteNodeMenuPopulator extends MoveNodeMenuPopulator { && IdDtos.isTripSeineId(tripId)) { String decoratedTrip = tripDecorator.toString(((DtoNodeSupport) tripNode).getEntity()); - possibleParents.put(tripId, decoratedTrip); + possibleParents.add(new DecoratedNodeEntity(tripId, decoratedTrip)); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeMenuPopulator.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeMenuPopulator.java index ce0aacc..be084c7 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeMenuPopulator.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/menu/MoveTripNodeMenuPopulator.java @@ -11,10 +11,11 @@ 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 fr.ird.observe.ui.util.DecoratedNodeEntity; import org.nuiton.decorator.Decorator; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.ArrayList; +import java.util.List; /** * @author Kevin Morin (Code Lutin) @@ -31,13 +32,13 @@ public class MoveTripNodeMenuPopulator extends MoveNodeMenuPopulator { } @Override - public Map<String, String> getPossibleParentNodes(ObserveNode tripNode, ObserveTreeHelper treeHelper) { + public List<DecoratedNodeEntity> 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<>(); + List<DecoratedNodeEntity> possibleParents = new ArrayList<>(); // noeud longline ? GearType geartype = IdDtos.isLonglineId(tripNode.getId()) ? GearType.longline : GearType.seine; @@ -65,7 +66,7 @@ public class MoveTripNodeMenuPopulator extends MoveNodeMenuPopulator { if (geartype.equals(program.getPropertyValue(ProgramDto.PROPERTY_GEAR_TYPE))) { String decoratedProgram = programDecorator.toString(program); - possibleParents.put(programId, decoratedProgram); + possibleParents.add(new DecoratedNodeEntity(programId, decoratedProgram)); } } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/DecoratedNodeEntity.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/DecoratedNodeEntity.java new file mode 100644 index 0000000..6006192 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/DecoratedNodeEntity.java @@ -0,0 +1,26 @@ +package fr.ird.observe.ui.util; + +/** + * @author Kevin Morin (Code Lutin) + * @since 5.0 + */ +public class DecoratedNodeEntity { + + private final String id; + private final String label; + + public DecoratedNodeEntity(String id, String label) { + this.id = id; + this.label = label; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return label; + } + +} -- 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit a4ce97d14c8c5509cddba855b82bc23e3bd7d55c Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 15:33:35 2015 +0100 reload program node (refs #7624) --- .../ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java index 7b5c97f..57f0341 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeActivityTripActionListener.java @@ -96,6 +96,6 @@ public class ChangeActivityTripActionListener extends NodeChangeActionListener { applicationContext.getOpenDataManager().openTripLongline(programId, tripLonglineId); - getTreeHelper().reloadNode(tripLonglineNode, true); + getTreeHelper().reloadNode(programNode, true); } } -- 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit 187d3364795bd02aca2ab73393e5d6ad895c54f0 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 16:13:08 2015 +0100 refactor --- .../ui/actions/shared/MoveActivitySeinesUIAction.java | 9 ++++----- .../ird/observe/ui/actions/shared/MoveRoutesUIAction.java | 5 ++--- .../java/fr/ird/observe/ui/util/DecoratedNodeEntity.java | 13 +++++++++++++ 3 files changed, 19 insertions(+), 8 deletions(-) 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 index a211045..6ea1874 100644 --- 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 @@ -65,13 +65,13 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { */ private static final Log log = LogFactory.getLog(MoveActivitySeinesUIAction.class); - public static final String ACTION_NAME = "moveActivities"; + public static final String ACTION_NAME = "moveActivitySeines"; public MoveActivitySeinesUIAction(ObserveMainUI mainUI) { super(mainUI, ACTION_NAME, - n("observe.action.move.activities"), - n("observe.action.move.activities.tip"), + n("observe.action.move.activities.seine"), + n("observe.action.move.activities.seine.tip"), "move-activities" ); } @@ -141,8 +141,7 @@ public class MoveActivitySeinesUIAction extends AbstractUIAction { String routeId = routeNode.getId(); if (!oldRouteId.equals(routeId)) { - decoratedRoutes[j++] = new DecoratedNodeEntity(routeId, - decorator.toString(((DtoNodeSupport) routeNode).getEntity())); + decoratedRoutes[j++] = new DecoratedNodeEntity((DtoNodeSupport) routeNode, decorator); } } 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 3330dff..408b194 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 @@ -130,7 +130,7 @@ public class MoveRoutesUIAction extends AbstractUIAction { Decorator<ReferenceDto> decorator = applicationContext.getDecorator(ReferenceDto.class, TripSeineDto.class.getSimpleName()); - //on crée un tableau avec une route en moins car on ne propose pas la route actuel + //on crée un tableau avec une marée en moins car on ne propose pas la marée actuel DecoratedNodeEntity[] decoratedTripSeines = new DecoratedNodeEntity[tripSeineNb - 1]; int j = 0; @@ -141,8 +141,7 @@ public class MoveRoutesUIAction extends AbstractUIAction { String tripSeineId = tripSeineNode.getId(); if (!oldTripSeineId.equals(tripSeineId)) { - decoratedTripSeines[j++] = new DecoratedNodeEntity(tripSeineId, - decorator.toString(((DtoNodeSupport) tripSeineNode).getEntity())); + decoratedTripSeines[j++] = new DecoratedNodeEntity((DtoNodeSupport) tripSeineNode, decorator); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/DecoratedNodeEntity.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/DecoratedNodeEntity.java index 6006192..0b61312 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/DecoratedNodeEntity.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/DecoratedNodeEntity.java @@ -1,5 +1,10 @@ package fr.ird.observe.ui.util; +import com.google.common.base.Preconditions; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.ui.tree.DtoNodeSupport; +import org.nuiton.decorator.Decorator; + /** * @author Kevin Morin (Code Lutin) * @since 5.0 @@ -14,6 +19,14 @@ public class DecoratedNodeEntity { this.label = label; } + public DecoratedNodeEntity(DtoNodeSupport node, Decorator<ReferenceDto> decorator) { + Preconditions.checkNotNull(node); + Preconditions.checkNotNull(decorator); + + this.id = node.getId(); + this.label = decorator.toString(node.getEntity()); + } + public String getId() { return id; } -- 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit d355416d1682b7f601733579e5ff8921de91071c Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 16:13:37 2015 +0100 ajout des méthodes pour déplacer plusieurs activites longline (refs #7624) --- .../longline/ActivityLonglineServiceController.java | 7 +++++++ .../service/longline/ActivityLonglineService.java | 7 +++++++ .../longline/ActivityLonglineServiceTopia.java | 19 +++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java index 04ddf49..078ba79 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/ActivityLonglineServiceController.java @@ -30,6 +30,8 @@ import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.result.TripChildSaveResultDto; import fr.ird.observe.services.service.longline.ActivityLonglineService; +import java.util.List; + /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @@ -93,4 +95,9 @@ public class ActivityLonglineServiceController extends ObserveAuthenticatedServi public int moveActivityLonglineToTripLongline(String activityLonglineId, String tripLonglineId) { return service.moveActivityLonglineToTripLongline(activityLonglineId, tripLonglineId); } + + @Override + public List<Integer> moveActivityLonglinesToTripLongline(List<String> activityLonglineIds, String tripLonglineId) { + return service.moveActivityLonglinesToTripLongline(activityLonglineIds, tripLonglineId); + } } \ No newline at end of file diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java index d2207a3..b3a7093 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.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 */ @@ -80,4 +82,9 @@ public interface ActivityLonglineService extends ObserveService { @WriteDataPermission @PostRequest int moveActivityLonglineToTripLongline(String activityLonglineId, String tripLonglineId); + + @Write + @WriteDataPermission + @PostRequest + List<Integer> moveActivityLonglinesToTripLongline(List<String> activityLonglineIds, String tripLonglineId); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java index 235410c..69fd30b 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineServiceTopia.java @@ -43,6 +43,7 @@ import fr.ird.observe.services.dto.result.TripChildSaveResultDto; import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.type.CoordinateHelper; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.LinkedHashSet; @@ -244,6 +245,24 @@ public class ActivityLonglineServiceTopia extends ObserveServiceTopia implements return getActivityLonglinePositionInTripLongline(tripLongline, activityLongline); } + @Override + public List<Integer> moveActivityLonglinesToTripLongline(List<String> activityLonglineIds, String tripLonglineId) { + TripLongline tripLongline = loadEntity(TripLonglineDto.class, TripLongline.class, tripLonglineId); + + List<Integer> result = new ArrayList<>(); + + for (String activityId : activityLonglineIds) { + ActivityLongline activityLongline = loadEntity(ActivityLonglineDto.class, ActivityLongline.class, activityId); + tripLongline.addActivityLongline(activityLongline); + + result.add(getActivityLonglinePositionInTripLongline(tripLongline, activityLongline)); + } + + saveEntity(TripLongline.class, tripLongline); + + return result; + } + protected int getActivityLonglinePositionInTripLongline(TripLongline tripLongline, ActivityLongline activityLongline) { return Iterables.size(Iterables.filter( tripLongline.getActivityLongline(), -- 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 feature/7624 in repository observe. See http://git.codelutin.com/observe.git commit c46d642f5cf9b4d2c467c33aeb0e479e0a7f6933 Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 16:20:28 2015 +0100 ajout de l'action de déplacement des activités dans la liste (fixes #7624) --- .../observe/ObserveSwingApplicationContext.java | 10 +- .../shared/MoveActivityLonglinesUIAction.java | 205 +++++++++++++++++++++ .../list/impl/longline/ActivityLonglinesUI.css | 6 + .../list/impl/longline/ActivityLonglinesUI.jaxx | 2 + .../observe-application-swing_en_GB.properties | 7 + .../observe-application-swing_es_ES.properties | 7 + .../observe-application-swing_fr_FR.properties | 13 +- 7 files changed, 243 insertions(+), 7 deletions(-) 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 a566e67..4d1bba6 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 @@ -24,11 +24,8 @@ package fr.ird.observe; 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; +import fr.ird.observe.db.DataContext; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.db.constants.DbMode; import fr.ird.observe.db.event.ObserveSwingDataSourceEvent; @@ -70,6 +67,9 @@ import fr.ird.observe.ui.actions.shared.DeleteDataUIAction; import fr.ird.observe.ui.actions.shared.DeleteReferenceUIAction; import fr.ird.observe.ui.actions.shared.GoDownUIAction; import fr.ird.observe.ui.actions.shared.GoUpUIAction; +import fr.ird.observe.ui.actions.shared.MoveActivityLonglinesUIAction; +import fr.ird.observe.ui.actions.shared.MoveActivitySeinesUIAction; +import fr.ird.observe.ui.actions.shared.MoveRoutesUIAction; import fr.ird.observe.ui.actions.shared.MoveTripLonglinesUIAction; import fr.ird.observe.ui.actions.shared.MoveTripSeinesUIAction; import fr.ird.observe.ui.actions.shared.ReOpenUIAction; @@ -79,6 +79,7 @@ import fr.ird.observe.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.ui.actions.shared.SelectOpenNodeUIAction; import fr.ird.observe.ui.content.ContentUI; import fr.ird.observe.ui.tree.ObserveTreeHelper; +import fr.ird.observe.util.gps.GPSService; import fr.ird.observe.validation.ObserveSwingValidator; import fr.ird.observe.validation.ValidationContext; import jaxx.runtime.JAXXUtil; @@ -915,6 +916,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im registerMainAction(actionMap, new MoveTripSeinesUIAction(ui)); registerMainAction(actionMap, new MoveRoutesUIAction(ui)); registerMainAction(actionMap, new MoveActivitySeinesUIAction(ui)); + registerMainAction(actionMap, new MoveActivityLonglinesUIAction(ui)); } public void registerMainAction(ActionMap actionMap, AbstractUIAction action) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivityLonglinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivityLonglinesUIAction.java new file mode 100644 index 0000000..14bed07 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivityLonglinesUIAction.java @@ -0,0 +1,205 @@ +/* + * #%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.longline.TripLonglineDto; +import fr.ird.observe.services.service.longline.ActivityLonglineService; +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.longline.ActivityLonglinesUI; +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.util.DecoratedNodeEntity; +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 MoveActivityLonglinesUIAction extends AbstractUIAction { + + private static final long serialVersionUID = 1L; + + /** + * Logger. + */ + private static final Log log = LogFactory.getLog(MoveActivityLonglinesUIAction.class); + + public static final String ACTION_NAME = "moveActivityLonglines"; + + public MoveActivityLonglinesUIAction(ObserveMainUI mainUI) { + super(mainUI, + ACTION_NAME, + n("observe.action.move.activities.longline"), + n("observe.action.move.activities.longline.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 ActivityLonglinesUI)) { + throw new IllegalStateException("Can not come here!"); + } + + // get current triplongline id + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + ObserveNode oldActivitiesNode = treeHelper.getSelectedNode(); + ObserveNode oldTripLonglineNode = oldActivitiesNode.getParent(); + String oldTripLonglineId = oldTripLonglineNode.getId(); + + // choose the new tripLongline + String tripLonglineId = chooseNewTripLongline(ui, oldTripLonglineNode); + + if (tripLonglineId != null) { + // change the tripLongline of the selected activities + List<ReferenceDto> selectedDatas = ((ContentListUIModel) ui.getModel()).getSelectedDatas(); + List<String> activityIds = Lists.transform(selectedDatas, ReferenceDtos.getIdFunction()); + ActivityLonglineService service = ObserveSwingApplicationContext.get().newService(ActivityLonglineService.class); + List<Integer> positions = service.moveActivityLonglinesToTripLongline(activityIds, tripLonglineId); + + // update the tree + updateTree(oldActivitiesNode, oldTripLonglineId, tripLonglineId, activityIds, positions); + } + + } + }); + + } + + protected String chooseNewTripLongline(ContentUI<?> ui, ObserveNode oldTripLonglineNode) { + ObserveNode programNode = oldTripLonglineNode.getParent(); + String oldTripLonglineId = oldTripLonglineNode.getId(); + int tripLonglineNb = programNode.getChildCount(); + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + Decorator<ReferenceDto> decorator = applicationContext.getDecorator(ReferenceDto.class, + TripLonglineDto.class.getSimpleName()); + + //on crée un tableau avec une marée en moins car on ne propose pas la marée actuelle + DecoratedNodeEntity[] decoratedTripLonglines = new DecoratedNodeEntity[tripLonglineNb - 1]; + + int j = 0; + for (int i = 0 ; i < tripLonglineNb ; i++) { + + ObserveNode tripLonglineNode = programNode.getChildAt(i); + + String tripLonglineId = tripLonglineNode.getId(); + + if (!oldTripLonglineId.equals(tripLonglineId)) { + decoratedTripLonglines[j++] = new DecoratedNodeEntity((DtoNodeSupport) tripLonglineNode, decorator); + } + } + + Object decoratedTripLongline = JOptionPane.showInputDialog(ui, + t("observe.action.choose.tripLongline.message"), + t("observe.action.choose.tripLongline.title"), + JOptionPane.QUESTION_MESSAGE, + null, + decoratedTripLonglines, + null); + return decoratedTripLongline != null ? ((DecoratedNodeEntity) decoratedTripLongline).getId() : null; + } + + protected void updateTree(ObserveNode oldActivitiesNode, + String oldTripLonglineId, + String tripLonglineId, + List<String> activityIds, + List<Integer> positions) { + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager(); + ObserveTreeHelper treeHelper = getMainUI().getTreeHelper(); + + ObserveNode oldTripLonglineNode = oldActivitiesNode.getParent(); + ObserveNode programNode = oldTripLonglineNode.getParent(); + ObserveNode newTripLonglineNode = treeHelper.getChild(programNode, tripLonglineId); + String activitiesNodeId = DecoratorService.getPropertyLabel(ObserveTreeHelper.TREE_NODE_PREFIX, + TripLonglineDto.PROPERTY_ACTIVITY_LONGLINE); + ObserveNode newActivitiesNode = treeHelper.getChild(newTripLonglineNode, activitiesNodeId); + + treeHelper.selectNode(newActivitiesNode); + + for (int i = 0, s = positions.size(); i < s; i++) { + + String activityId = activityIds.get(i); + ObserveNode activityNode = treeHelper.getChild(oldActivitiesNode, activityId); + boolean wasOpen = activityNode.isOpen(); + treeHelper.removeNode(activityNode); + + if (wasOpen) { + openDataManager.closeTripLongline(oldTripLonglineId); + openDataManager.openTripLongline(programNode.getId(), tripLonglineId); + } + + ObserveNode newRouteNode = treeHelper.getChild(newActivitiesNode, activityId); + + if (newRouteNode == null) { + + // create it + if (log.isInfoEnabled()) { + log.info("Insert activity node: "); + } + treeHelper.insertNode(newActivitiesNode, activityNode, positions.get(i)); + } + } + + treeHelper.reloadNode(programNode, true); + + } + +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUI.css index 92a1322..e658969 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUI.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:{MoveActivityLonglinesUIAction.ACTION_NAME}; +} \ No newline at end of file diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx index d3316bc..2bd0c38 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUI.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.MoveActivityLonglinesUIAction 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'> 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 93f97b3..edc7187 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 @@ -61,6 +61,8 @@ observe.action.choose.sensorUsed.exportData= observe.action.choose.sensorUsed.importData= observe.action.choose.tdr.exportData= observe.action.choose.tdr.importData= +observe.action.choose.tripLongline.message= +observe.action.choose.tripLongline.title= observe.action.choose.tripSeine.message= observe.action.choose.tripSeine.title= observe.action.close=Close @@ -289,6 +291,10 @@ observe.action.mitigationType.modify.tip= observe.action.mitigationType.save.tip= observe.action.modify=Modify observe.action.move.activities= +observe.action.move.activities.longline= +observe.action.move.activities.longline.tip= +observe.action.move.activities.seine= +observe.action.move.activities.seine.tip= observe.action.move.activities.tip= observe.action.move.actvities= observe.action.move.actvities.tip= @@ -1569,6 +1575,7 @@ observe.navigationMenu.closeTripAction= observe.navigationMenu.deleteRouteAction= observe.navigationMenu.deleteTripAction= observe.navigationMenu.move.activity= +observe.navigationMenu.move.activityLongline= observe.navigationMenu.move.activitySeine= observe.navigationMenu.move.route= observe.navigationMenu.move.trip= 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 a92dbfb..da2e158 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 @@ -61,6 +61,8 @@ observe.action.choose.sensorUsed.exportData= observe.action.choose.sensorUsed.importData= observe.action.choose.tdr.exportData= observe.action.choose.tdr.importData= +observe.action.choose.tripLongline.message= +observe.action.choose.tripLongline.title= observe.action.choose.tripSeine.message= observe.action.choose.tripSeine.title= observe.action.close=Cerrar @@ -289,6 +291,10 @@ observe.action.mitigationType.modify.tip= observe.action.mitigationType.save.tip= observe.action.modify=Modificar observe.action.move.activities= +observe.action.move.activities.longline= +observe.action.move.activities.longline.tip= +observe.action.move.activities.seine= +observe.action.move.activities.seine.tip= observe.action.move.activities.tip= observe.action.move.actvities= observe.action.move.actvities.tip= @@ -1571,6 +1577,7 @@ observe.navigationMenu.closeTripAction= observe.navigationMenu.deleteRouteAction= observe.navigationMenu.deleteTripAction= observe.navigationMenu.move.activity= +observe.navigationMenu.move.activityLongline= observe.navigationMenu.move.activitySeine= observe.navigationMenu.move.route= observe.navigationMenu.move.trip= 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 cf4f7e9..514d226 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 @@ -59,6 +59,8 @@ 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.tripLongline.message=A quelle marée voulez-vous associer les activités sélectionnées ? +observe.action.choose.tripLongline.title=Changer la marée des activités 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 @@ -286,8 +288,12 @@ 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.activities= +observe.action.move.activities.longline=Changer de marée +observe.action.move.activities.longline.tip=Changer la marée des activités sélectionnées +observe.action.move.activities.seine=Changer de route +observe.action.move.activities.seine.tip=Changer la route des activités sélectionnées +observe.action.move.activities.tip= 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 @@ -1558,7 +1564,8 @@ 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.activityLongline=Changer de marée +observe.navigationMenu.move.activitySeine=Changer de route 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>.
participants (1)
-
codelutin.com scm