This is an automated email from the git hooks/post-receive script. New commit to branch feature/4304_synchro_marees in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit e40d8ebc097c221b023e0dd7597d68f4b93ff1cf Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 8 11:35:44 2016 +0200 debut de gestion de la prise en compte des marées présentes des deux cotés lors d'une recopie --- .../datasynchro/CopyToLeftDataSynchronizeTask.java | 10 ++++- .../CopyToRightDataSynchronizeTask.java | 9 ++++- .../ui/admin/datasynchro/DataSynchroUIHandler.java | 47 +++++++++++++++------- .../ui/storage/tabs/DataSelectionModel.java | 5 +++ 4 files changed, 55 insertions(+), 16 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/CopyToLeftDataSynchronizeTask.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/CopyToLeftDataSynchronizeTask.java index 26689a2..15cf796 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/CopyToLeftDataSynchronizeTask.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/CopyToLeftDataSynchronizeTask.java @@ -14,12 +14,20 @@ import static org.nuiton.i18n.I18n.t; */ public class CopyToLeftDataSynchronizeTask extends DataSynchronizeTaskSupport { - public CopyToLeftDataSynchronizeTask(ReferentialReference<ProgramDto> programReference, DataReference tripReference) { + private final boolean tripExistOnLeft; + + public CopyToLeftDataSynchronizeTask(ReferentialReference<ProgramDto> programReference, DataReference tripReference, boolean tripExistOnLeft) { super(programReference, tripReference); + this.tripExistOnLeft=tripExistOnLeft; } @Override public String getLabel() { return t("observe.datasynchro.copyToLeftTask", decorateProgram(), decorateTrip()); } + + public boolean isTripExistOnLeft() { + return tripExistOnLeft; + } + } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/CopyToRightDataSynchronizeTask.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/CopyToRightDataSynchronizeTask.java index 03bf7f0..ecb6420 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/CopyToRightDataSynchronizeTask.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/CopyToRightDataSynchronizeTask.java @@ -14,8 +14,11 @@ import static org.nuiton.i18n.I18n.t; */ public class CopyToRightDataSynchronizeTask extends DataSynchronizeTaskSupport { - public CopyToRightDataSynchronizeTask(ReferentialReference<ProgramDto> programReference, DataReference tripReference) { + private final boolean tripExistOnRight; + + public CopyToRightDataSynchronizeTask(ReferentialReference<ProgramDto> programReference, DataReference tripReference, boolean tripExistOnRight) { super(programReference, tripReference); + this.tripExistOnRight = tripExistOnRight; } @Override @@ -23,4 +26,8 @@ public class CopyToRightDataSynchronizeTask extends DataSynchronizeTaskSupport { return t("observe.datasynchro.copyToRightTask", decorateProgram(), decorateTrip()); } + public boolean isTripExistOnRight() { + return tripExistOnRight; + } + } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUIHandler.java index 98b49fd..0c0a3a2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/datasynchro/DataSynchroUIHandler.java @@ -112,16 +112,24 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { public void addCopyToLeftTasks() { - DataSelectionModel selectionDataModel = getStepModel().getRightSelectionDataModel(); - ObserveTreeHelper treeHelper = getUi().getRightTreeHelper(); - Map<ReferentialReference<ProgramDto>, List<DataReference>> selectedDataByProgram = selectionDataModel.getSelectedDataByProgram(); - selectionDataModel.removeAllSelectedData(); + DataSelectionModel rightSelectionDataModel = getStepModel().getRightSelectionDataModel(); + DataSelectionModel leftSelectionDataModel = getStepModel().getLeftSelectionDataModel(); + ObserveTreeHelper rightTreeHelper = getUi().getRightTreeHelper(); + ObserveTreeHelper leftTreeHelper = getUi().getLeftTreeHelper(); + Map<ReferentialReference<ProgramDto>, List<DataReference>> selectedDataByProgram = rightSelectionDataModel.getSelectedDataByProgram(); + rightSelectionDataModel.removeAllSelectedData(); for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference>> entry : selectedDataByProgram.entrySet()) { ReferentialReference<ProgramDto> program = entry.getKey(); for (DataReference trip : entry.getValue()) { - getStepModel().addTask(new CopyToLeftDataSynchronizeTask(program, trip)); - treeHelper.removeTrip(program, trip); - selectionDataModel.removeTrip(program, trip); + boolean tripExistOnLeft = leftSelectionDataModel.containsData(program, trip); + getStepModel().addTask(new CopyToLeftDataSynchronizeTask(program, trip, tripExistOnLeft)); + rightTreeHelper.removeTrip(program, trip); + rightSelectionDataModel.removeTrip(program, trip); + + if (tripExistOnLeft) { + leftTreeHelper.removeTrip(program, trip); + leftSelectionDataModel.removeTrip(program, trip); + } } } @@ -130,16 +138,25 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { public void addCopyToRightTasks() { - DataSelectionModel selectionDataModel = getStepModel().getLeftSelectionDataModel(); - ObserveTreeHelper treeHelper = getUi().getLeftTreeHelper(); - Map<ReferentialReference<ProgramDto>, List<DataReference>> selectedDataByProgram = selectionDataModel.getSelectedDataByProgram(); - selectionDataModel.removeAllSelectedData(); + DataSelectionModel leftSelectionDataModel = getStepModel().getLeftSelectionDataModel(); + DataSelectionModel rightSelectionDataModel = getStepModel().getRightSelectionDataModel(); + ObserveTreeHelper leftTreeHelper = getUi().getLeftTreeHelper(); + ObserveTreeHelper rightTreeHelper = getUi().getRightTreeHelper(); + Map<ReferentialReference<ProgramDto>, List<DataReference>> selectedDataByProgram = leftSelectionDataModel.getSelectedDataByProgram(); + leftSelectionDataModel.removeAllSelectedData(); for (Map.Entry<ReferentialReference<ProgramDto>, List<DataReference>> entry : selectedDataByProgram.entrySet()) { ReferentialReference<ProgramDto> program = entry.getKey(); for (DataReference trip : entry.getValue()) { - getStepModel().addTask(new CopyToRightDataSynchronizeTask(program, trip)); - treeHelper.removeTrip(program, trip); - selectionDataModel.removeTrip(program, trip); + + boolean tripExistOnRight = rightSelectionDataModel.containsData(program, trip); + getStepModel().addTask(new CopyToRightDataSynchronizeTask(program, trip, tripExistOnRight)); + leftTreeHelper.removeTrip(program, trip); + leftSelectionDataModel.removeTrip(program, trip); + + if (tripExistOnRight) { + rightTreeHelper.removeTrip(program, trip); + rightSelectionDataModel.removeTrip(program, trip); + } } } @@ -188,6 +205,8 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { DataSynchronizeTaskSupport task = getStepModel().getTasks().getElementAt(selectionIndex); getStepModel().getTasks().removeElementAt(selectionIndex); + //TODO Deal with tripExistOnxxx for copy tasks + ObserveTreeHelper treeHelper; DataSelectionModel selectionDataModel; if (task instanceof CopyToLeftDataSynchronizeTask || task instanceof DeleteFromRightDataSynchronizeTask) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/DataSelectionModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/DataSelectionModel.java index 9f7f29e..93d2cf8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/DataSelectionModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/DataSelectionModel.java @@ -229,6 +229,11 @@ public class DataSelectionModel implements Serializable { return datas; } + public boolean containsData(ReferentialReference<ProgramDto> program, DataReference trip) { + List<DataReference> datas = getDatas(program.getId()); + return datas!=null && datas.contains(trip); + } + public Set<DataReference> getSelectedData() { if (selectedData == null) { selectedData = Sets.newHashSet(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.