This is an automated email from the git hooks/post-receive script. New commit to branch feature/7621 in repository observe. See http://git.codelutin.com/observe.git commit de3f941a5072922ebc139ca534ca8f2a73ef2686 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 9 13:41:45 2015 +0100 réactivation de l'action pour changer une marée de programme --- .../tree/ObserveNavigationTreeShowPopupAction.java | 88 ++++++++++++---------- .../actions/ChangeTripProgramActionListener.java | 52 ++++++------- 2 files changed, 74 insertions(+), 66 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 5c88f99..3712097 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 @@ -23,11 +23,20 @@ package fr.ird.observe.ui.tree; */ import com.google.common.base.Preconditions; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import fr.ird.observe.ObserveSwingApplicationContext; 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.ReferenceDtos; +import fr.ird.observe.services.dto.constants.GearType; import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.service.ReferentialService; +import fr.ird.observe.ui.tree.actions.ChangeTripProgramActionListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.decorator.Decorator; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; @@ -42,6 +51,7 @@ import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.util.LinkedHashSet; import java.util.List; /** @@ -224,63 +234,63 @@ public class ObserveNavigationTreeShowPopupAction { log.info("Will load popup for trip node."); } + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + if (selectedNode.isOpen()) { - closeTripAction.putClientProperty("ui", ObserveSwingApplicationContext.get().getSelectedContentUI()); + closeTripAction.putClientProperty("ui", applicationContext.getSelectedContentUI()); popup.add(closeTripAction); popup.add(moveTripPopup); moveTripPopup.removeAll(); - // DataService dataService = treeHelper.getDataService(); - ObserveSwingDataSource dataSource = treeHelper.getDataProvider().getDataSource(); + // get the available program for the trip String tripId = selectedNode.getId(); + GearType gearType = IdDtos.isLonglineId(tripId) ? GearType.longline : GearType.seine; + + ObserveSwingDataSource dataSource = treeHelper.getDataProvider().getDataSource(); + + LinkedHashSet<ReferenceDto> allPrograms = applicationContext.newService(ReferentialService.class) + .getReferentialReferenceSet(ProgramDto.class) + .getReference(); + List<ReferenceDto> programs = + Lists.newArrayList(Iterables.filter(allPrograms, + ReferenceDtos.newLabelValuePredicate(ProgramDto.PROPERTY_GEAR_TYPE, + gearType))); + + String openProgramId = applicationContext.getDataContext().getOpenProgramId(); + + Decorator<ReferenceDto> programDecorator = applicationContext.getDecorator(ReferenceDto.class, + ProgramDto.class.getSimpleName()); + for (ReferenceDto program : programs) { - List<ProgramDto> programs; - - //FIXME - // try { - // - // programs = dataService.getPossibleProgramsForTrip(dataSource, tripId); - // ProgramDtos.sort(programs); - // - // } catch (DataSourceException e) { - // throw new ObserveTechnicalException("Can't get possible programs for trip " + tripId, e); - // } - // - // String openProgramId = dataService.getDataContext().getOpenProgramId(); - // - // Decorator<Program> programDecorator = dataService.getDecoratorService().getDecoratorByType(Program.class); - // for (Program program : programs) { - // - // String programId = program.getTopiaId(); - // - // if (!programId.equals(openProgramId)) { - // - // JMenuItem item = new JMenuItem(programDecorator.toString(program)); - // item.setName(programId); - // item.addActionListener(new ChangeTripProgramActionListener(treeHelper, - // dataService, - // dataSource, - // tripId, - // programId)); - // - // moveTripPopup.add(item); - // - // } - // - // } + String programId = program.getId(); + + if (!programId.equals(openProgramId)) { + + JMenuItem item = new JMenuItem(programDecorator.toString(program)); + item.setName(programId); + item.addActionListener(new ChangeTripProgramActionListener(treeHelper, + dataSource, + tripId, + programId)); + + moveTripPopup.add(item); + + } + + } } else { - openTripAction.putClientProperty("ui", ObserveSwingApplicationContext.get().getSelectedContentUI()); + openTripAction.putClientProperty("ui", applicationContext.getSelectedContentUI()); popup.add(openTripAction); } - deleteTripAction.putClientProperty("ui", ObserveSwingApplicationContext.get().getSelectedContentUI()); + deleteTripAction.putClientProperty("ui", applicationContext.getSelectedContentUI()); deleteTripAction.setEnabled(selectedNode.isOpen()); popup.add(deleteTripAction); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java index 8e8754a..02d2f6f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/actions/ChangeTripProgramActionListener.java @@ -23,7 +23,11 @@ package fr.ird.observe.ui.tree.actions; */ +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.IdDtos; +import fr.ird.observe.services.service.longline.TripLonglineService; +import fr.ird.observe.services.service.seine.TripSeineService; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; import org.apache.commons.logging.Log; @@ -49,23 +53,15 @@ public class ChangeTripProgramActionListener implements ActionListener { private final ObserveTreeHelper treeHelper; - //FIXME -// private final DataService dataService; - private final ObserveSwingDataSource dataSource; public ChangeTripProgramActionListener(ObserveTreeHelper treeHelper, - //FIXME -// DataService dataService, - Object dataService, ObserveSwingDataSource dataSource, String tripId, String programId) { this.tripId = tripId; this.programId = programId; this.treeHelper = treeHelper; - //FIXME -// this.dataService = dataService; this.dataSource = dataSource; } @@ -75,25 +71,24 @@ public class ChangeTripProgramActionListener implements ActionListener { ObserveNode tripNode = treeHelper.getSelectedNode(); ObserveNode rootNode = treeHelper.getRootNode(); ObserveNode newProgramNode = treeHelper.getChild(rootNode, programId); - ObserveNode oldProgramNode = treeHelper.getChild(rootNode, tripNode.getParent().getId()); - - //FIXME -// try { -// dataService.moveTripToProgram(dataSource, tripId, programId); -// } catch (DataSourceException e) { -// throw new ObserveTechnicalException("Can't change trip " + tripId + " to program " + programId, e); -// } - - //FIXME -// int position; - int position = -1; - - //FIXME -// try { -// position = dataService.getOpenablePosition(dataSource, programId, tripId); -// } catch (DataSourceException e) { -// throw new ObserveTechnicalException("Can't get trip " + tripId + " position for program " + programId, e); -// } + String oldProgramId = tripNode.getParent().getId(); + ObserveNode oldProgramNode = treeHelper.getChild(rootNode, oldProgramId); + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + + applicationContext.getOpenDataManager().closeProgram(oldProgramId); + + int position; + + + if (IdDtos.isTripLonglineId(tripId)) { + TripLonglineService service = applicationContext.newService(TripLonglineService.class); + position = service.moveTripLonglineToProgram(tripId, programId); + + } else { + TripSeineService service = applicationContext.newService(TripSeineService.class); + position = service.moveTripSeineToProgram(tripId, programId); + } treeHelper.removeNode(tripNode); @@ -108,6 +103,9 @@ public class ChangeTripProgramActionListener implements ActionListener { treeHelper.insertNode(newProgramNode, tripNode, position); newTripNode = tripNode; } + + applicationContext.getOpenDataManager().openProgram(programId); + treeHelper.reloadNode(oldProgramNode, true); treeHelper.reloadNode(newProgramNode, true); // treeHelper.refreshNode(oldProgramNode, true); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.