branch feature/7623 updated (a9e38e3 -> 6d73166)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7623 in repository observe. See http://git.codelutin.com/observe.git from a9e38e3 refactoring des menus contextuels de l'arbre + ajout des menus sur les activites seines (refs #7623) new 69c247b ajout des méthodes pour déplacer plusieurs activités seine (refs #7623) new c44831b ajout de l'action pour déplacer plusieurs actvités seine (refs #7623) new 0638f64 wording (refs #7623) new 9b987b1 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 cab09eb 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 6d73166 fix icons The 6 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 6d7316642d801d5a725f80249c3f3c71cae3bbfd Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:52:11 2015 +0100 fix icons commit cab09eb2aaae3c10ecb5397b9a09a2ae2014729d 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 9b987b193e4b3b7a6287fd8037bf0d251500eaca 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 0638f6435afdc12c584c7e8b7f1a1f548e74c04e Author: Kevin Morin <morin@codelutin.com> Date: Wed Nov 18 12:44:21 2015 +0100 wording (refs #7623) commit c44831baea41273a386ed01300e330d70b302bac 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 69c247b56c62ec2e86ad5fc3d951e3413c4f24a0 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) 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 | 2 +- .../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 | 7 + .../service/seine/ActivitySeineService.java | 6 + .../service/seine/ActivitySeineServiceTopia.java | 20 ++ 16 files changed, 399 insertions(+), 63 deletions(-) create mode 100644 observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveActivitySeinesUIAction.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 feature/7623 in repository observe. See http://git.codelutin.com/observe.git commit 69c247b56c62ec2e86ad5fc3d951e3413c4f24a0 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 feature/7623 in repository observe. See http://git.codelutin.com/observe.git commit c44831baea41273a386ed01300e330d70b302bac 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 feature/7623 in repository observe. See http://git.codelutin.com/observe.git commit 0638f6435afdc12c584c7e8b7f1a1f548e74c04e 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 feature/7623 in repository observe. See http://git.codelutin.com/observe.git commit 9b987b193e4b3b7a6287fd8037bf0d251500eaca 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 feature/7623 in repository observe. See http://git.codelutin.com/observe.git commit cab09eb2aaae3c10ecb5397b9a09a2ae2014729d 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 feature/7623 in repository observe. See http://git.codelutin.com/observe.git commit 6d7316642d801d5a725f80249c3f3c71cae3bbfd 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>.
participants (1)
-
codelutin.com scm