This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit f5ecc24be33a336b40c9ebd8c6d13d6bc3350547 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 9 17:41:10 2015 +0100 déplacement d'une marée seine dans un programme aléatoire (refs #7621) --- .../observe/ObserveSwingApplicationContext.java | 2 ++ .../actions/shared/MoveTripLonglinesUIAction.java | 4 +-- ...esUIAction.java => MoveTripSeinesUIAction.java} | 30 ++++++++++---------- .../list/impl/longline/TripLonglinesUI.jaxx | 3 ++ .../ui/content/list/impl/seine/TripSeinesUI.css | 9 ++++++ .../ui/content/list/impl/seine/TripSeinesUI.jaxx | 22 +++++++++++++++ .../content/list/impl/seine/TripSeinesUIModel.java | 33 ++++++++++++++++++++++ .../v1/seine/TripSeineServiceController.java | 7 +++++ .../services/service/seine/TripSeineService.java | 7 +++++ .../service/seine/TripSeineServiceTopia.java | 23 +++++++++++++++ 10 files changed, 123 insertions(+), 17 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 c829d63..23ed676 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 @@ -69,6 +69,7 @@ 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.MoveTripLonglinesUIAction; +import fr.ird.observe.ui.actions.shared.MoveTripSeinesUIAction; import fr.ird.observe.ui.actions.shared.ReOpenUIAction; import fr.ird.observe.ui.actions.shared.ResetEditUIAction; import fr.ird.observe.ui.actions.shared.SaveEditUIAction; @@ -909,6 +910,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im registerMainAction(actionMap, new DeleteDataUIAction(ui)); registerMainAction(actionMap, new DeleteReferenceUIAction(ui)); registerMainAction(actionMap, new MoveTripLonglinesUIAction(ui)); + registerMainAction(actionMap, new MoveTripSeinesUIAction(ui)); } public void registerMainAction(ActionMap actionMap, AbstractUIAction action) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java index bb35e7c..e7f65da 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java @@ -25,9 +25,9 @@ public class MoveTripLonglinesUIAction extends MoveTripsUIAction { /** * Logger. */ - private static final Log log = LogFactory.getLog(MoveTripsUIAction.class); + private static final Log log = LogFactory.getLog(MoveTripLonglinesUIAction.class); - public static final String ACTION_NAME = "moveTripLongliness"; + public static final String ACTION_NAME = "moveTripLonglines"; public MoveTripLonglinesUIAction(ObserveMainUI mainUI) { super(mainUI, ACTION_NAME); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java similarity index 56% copy from observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java copy to observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java index bb35e7c..4532e71 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripLonglinesUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/MoveTripSeinesUIAction.java @@ -3,11 +3,11 @@ package fr.ird.observe.ui.actions.shared; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.service.longline.TripLonglineService; +import fr.ird.observe.services.service.seine.TripSeineService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.content.ContentUI; -import fr.ird.observe.ui.content.list.impl.longline.TripLonglinesUI; -import fr.ird.observe.ui.content.list.impl.longline.TripLonglinesUIModel; +import fr.ird.observe.ui.content.list.impl.seine.TripSeinesUI; +import fr.ird.observe.ui.content.list.impl.seine.TripSeinesUIModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -18,50 +18,50 @@ import java.util.List; * @author Kevin Morin (Code Lutin) * @since 5.0 */ -public class MoveTripLonglinesUIAction extends MoveTripsUIAction { +public class MoveTripSeinesUIAction extends MoveTripsUIAction { private static final long serialVersionUID = 1L; /** * Logger. */ - private static final Log log = LogFactory.getLog(MoveTripsUIAction.class); + private static final Log log = LogFactory.getLog(MoveTripSeinesUIAction.class); - public static final String ACTION_NAME = "moveTripLongliness"; + public static final String ACTION_NAME = "moveTripSeines"; - public MoveTripLonglinesUIAction(ObserveMainUI mainUI) { + public MoveTripSeinesUIAction(ObserveMainUI mainUI) { super(mainUI, ACTION_NAME); } @Override protected void checkUIClass(ContentUI<?> ui) throws IllegalStateException { - if (!(ui instanceof TripLonglinesUI)) { + if (!(ui instanceof TripSeinesUI)) { throw new IllegalStateException("Can not come here!"); } } @Override protected List<ReferenceDto> getSelectedDatas(ContentUI<?> ui) { - TripLonglinesUI tripLonglinesUI = (TripLonglinesUI) ui; - TripLonglinesUIModel model = tripLonglinesUI.getModel(); + TripSeinesUI tripSeinesUI = (TripSeinesUI) ui; + TripSeinesUIModel model = tripSeinesUI.getModel(); return model.getSelectedDatas(); } @Override protected GearType getGearType(ContentUI<?> ui) { - return GearType.longline; + return GearType.seine; } @Override protected List<Integer> getPositions(List<String> tripIds, String programId) { - TripLonglineService service = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); - return service.moveTripLonglinesToProgram(tripIds, programId); + TripSeineService service = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + return service.moveTripSeinesToProgram(tripIds, programId); } @Override protected void updateModelData(ContentUI<?> ui) { - TripLonglinesUI tripLonglinesUI = (TripLonglinesUI) ui; - TripLonglinesUIModel model = tripLonglinesUI.getModel(); + TripSeinesUI tripSeinesUI = (TripSeinesUI) ui; + TripSeinesUIModel model = tripSeinesUI.getModel(); List<ReferenceDto> data = new ArrayList<>(model.getData()); data.removeAll(model.getSelectedDatas()); model.setData(data); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUI.jaxx index 3776dbc..1615507 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUI.jaxx @@ -57,6 +57,7 @@ public final List<ReferenceDto> getSelectedDatas() { <!-- edit bean --> <ProgramDto id='bean'/> + <!-- override data selection --> <ListSelectionModel id='listSelectionModel' onValueChanged='if (!event.getValueIsAdjusting()) getModel().setSelectedDatas(getSelectedDatas());'/> @@ -76,6 +77,8 @@ public final List<ReferenceDto> getSelectedDatas() { <cell> <JButton id='gotoOpenActivity2' styleClass='gotoOpenActivity2'/> </cell> + </row> + <row weighty="1" weightx="1"> <cell> <JButton id='moveSelectedTrips'/> </cell> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUI.css index b63c074..d582c45 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUI.css @@ -19,6 +19,9 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ +#listSelectionModel { + selectionMode:{ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}; +} #gotoSelectedChild { _text:{t("observe.action.goto.selected.maree")}; @@ -35,4 +38,10 @@ toolTipText:"observe.action.create.maree.tip"; } +#moveSelectedTrips { + text:"observe.action.move.trips"; + toolTipText:"observe.action.move.trips.tip"; + enabled:{model.getSelectedDatas() != null}; + _observeAction:{MoveTripSeinesUIAction.ACTION_NAME}; +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUI.jaxx index 4e1122b..fe7952b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUI.jaxx @@ -30,12 +30,25 @@ fr.ird.observe.services.dto.seine.RouteDto fr.ird.observe.services.dto.referential.ProgramDto fr.ird.observe.ui.actions.shared.SelectOpenNodeUIAction + fr.ird.observe.ui.actions.shared.MoveTripSeinesUIAction + + java.util.List + + javax.swing.ListSelectionModel static org.nuiton.i18n.I18n.n </import> <style source="CommonListUI.css"/> + <script><![CDATA[ + +public final List<ReferenceDto> getSelectedDatas() { + return (List<ReferenceDto>) list.getSelectedValuesList(); +} + +]]></script> + <!-- handler --> <TripSeinesUIHandler id='handler' constructorParams='this'/> @@ -45,6 +58,10 @@ <!-- edit bean --> <ProgramDto id='bean'/> + <!-- override data selection --> + <ListSelectionModel id='listSelectionModel' + onValueChanged='if (!event.getValueIsAdjusting()) getModel().setSelectedDatas(getSelectedDatas());'/> + <!-- override generic actions --> <JButton id='gotoSelectedChild'/> <JButton id='reopenChild'/> @@ -70,6 +87,11 @@ <JButton id='gotoOpenActivity2' styleClass='gotoOpenActivity2'/> </cell> </row> + <row weighty="1" weightx="1"> + <cell> + <JButton id='moveSelectedTrips'/> + </cell> + </row> </Table> </fr.ird.observe.ui.content.list.ContentListUI> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java index f28ed51..9efc69b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIModel.java @@ -22,9 +22,14 @@ package fr.ird.observe.ui.content.list.impl.seine; * #L% */ +import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.content.list.ContentListUIModel; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.List; /** * Created on 9/26/14. @@ -36,8 +41,36 @@ public class TripSeinesUIModel extends ContentListUIModel<ProgramDto, TripSeineD private static final long serialVersionUID = 1L; + /** + * Logger. + */ + private static final Log log = LogFactory.getLog(TripSeinesUIModel.class); + + public static final String PROPERTY_SELECTED_DATAS = "selectedDatas"; + + /** entité sélectionnée dans la liste */ + protected List<ReferenceDto> selectedDatas; + public TripSeinesUIModel() { super(ProgramDto.class, TripSeineDto.class); } + public List<ReferenceDto> getSelectedDatas() { + return selectedDatas; + } + + public void setSelectedDatas(List<ReferenceDto> selectedDatas) { + List<ReferenceDto> old = getSelectedDatas(); + this.selectedDatas = selectedDatas; + if (log.isDebugEnabled()) { + log.debug("New selected datas : " + selectedDatas); + } + firePropertyChange(PROPERTY_SELECTED_DATAS, old, selectedDatas); + } + + @Override + public void setData(List<ReferenceDto> data) { + super.setData(data); + setSelectedDatas(null); + } } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java index cf321f5..9f5fdaf 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineServiceController.java @@ -31,6 +31,8 @@ import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.seine.TripSeineService; +import java.util.List; + /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @@ -104,4 +106,9 @@ public class TripSeineServiceController extends ObserveAuthenticatedServiceContr public int moveTripSeineToProgram(String tripSeineId, String programId) { return service.moveTripSeineToProgram(tripSeineId, programId); } + + @Override + public List<Integer> moveTripSeinesToProgram(List<String> tripSeineIds, String programId) { + return service.moveTripSeinesToProgram(tripSeineIds, programId); + } } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java index 937cb3d..47e2d1f 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java @@ -35,6 +35,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 */ @@ -83,4 +85,9 @@ public interface TripSeineService extends ObserveService { @WriteDataPermission @PostRequest int moveTripSeineToProgram(String tripSeineId, String programId); + + @Write + @WriteDataPermission + @PostRequest + List<Integer> moveTripSeinesToProgram(List<String> tripSeineIds, String programId); } \ No newline at end of file diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java index 054f0f2..607b7d5 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java @@ -23,6 +23,7 @@ package fr.ird.observe.services.service.seine; */ import com.google.common.collect.Sets; +import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.seine.TripSeine; @@ -40,6 +41,7 @@ import fr.ird.observe.services.dto.result.SaveResultDtos; import fr.ird.observe.services.dto.seine.TripSeineDto; import org.nuiton.util.DateUtil; +import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.LinkedHashSet; @@ -215,4 +217,25 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe saveEntity(TripSeine.class, tripSeine); return getTripSeinePositionInProgram(programId, tripSeineId); } + + @Override + public List<Integer> moveTripSeinesToProgram(List<String> tripSeineIds, String programId) { + Program program = loadEntity(ProgramDto.class, Program.class, programId); + + List<Integer> result = new ArrayList<>(); + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); + + for (String tripSeineId : tripSeineIds) { + + TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); + tripSeine.setProgram(program); + + saveEntity(TripSeine.class, tripSeine); + persistenceContext.flush(); + + result.add(getTripSeinePositionInProgram(programId, tripSeineId)); + } + + return result; + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.