branch feature/7972 created (now fde76b9)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7972 in repository tutti. See http://git.codelutin.com/tutti.git at fde76b9 ajout d'un event quand une ligne est sauvée, pour mettre à jour la liste des validations quand on modifie une ligne (fixes #7972) This branch includes the following new commits: new fde76b9 ajout d'un event quand une ligne est sauvée, pour mettre à jour la liste des validations quand on modifie une ligne (fixes #7972) The 1 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 fde76b9c61e1e8237145ba59c18202bb28e89337 Author: Kevin Morin <morin@codelutin.com> Date: Tue Feb 9 14:30:11 2016 +0100 ajout d'un event quand une ligne est sauvée, pour mettre à jour la liste des validations quand on modifie une ligne (fixes #7972) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7972 in repository tutti. See http://git.codelutin.com/tutti.git commit fde76b9c61e1e8237145ba59c18202bb28e89337 Author: Kevin Morin <morin@codelutin.com> Date: Tue Feb 9 14:30:11 2016 +0100 ajout d'un event quand une ligne est sauvée, pour mettre à jour la liste des validations quand on modifie une ligne (fixes #7972) --- .../catches/AbstractTuttiBatchTableUIHandler.java | 25 ++++++++++- .../content/operation/catches/BatchSavedEvent.java | 27 ++++++++++++ .../operation/catches/BatchSavedListener.java | 10 +++++ .../accidental/AccidentalBatchUIHandler.java | 1 + .../catches/benthos/BenthosBatchUIHandler.java | 2 + .../IndividualObservationBatchUIHandler.java | 1 + .../marinelitter/MarineLitterBatchUIHandler.java | 2 + .../catches/species/SpeciesBatchUIHandler.java | 2 + .../EditFishingOperationInValidationUIAction.java | 51 ++++++++++++++++++++-- 9 files changed, 116 insertions(+), 5 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/AbstractTuttiBatchTableUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/AbstractTuttiBatchTableUIHandler.java index 51babd5..bda1683 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/AbstractTuttiBatchTableUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/AbstractTuttiBatchTableUIHandler.java @@ -40,12 +40,17 @@ import org.nuiton.decorator.Decorator; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; -import javax.swing.*; +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.SwingConstants; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumnModel; import javax.swing.table.TableModel; -import java.awt.*; +import java.awt.Color; +import java.awt.Component; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; /** * Abstract ui handler forbatch ui. @@ -61,6 +66,8 @@ public abstract class AbstractTuttiBatchTableUIHandler<R extends AbstractTuttiBe public abstract void selectFishingOperation(FishingOperation bean); + protected final List<BatchSavedListener> batchSavedListeners = new ArrayList<>(); + protected AbstractTuttiBatchTableUIHandler(String... properties) { super(properties); } @@ -86,6 +93,20 @@ public abstract class AbstractTuttiBatchTableUIHandler<R extends AbstractTuttiBe table.clearSelection(); } + public void addBatchSavedListener(BatchSavedListener listener) { + batchSavedListeners.add(listener); + } + + public void removeBatchSavedListener(BatchSavedListener listener) { + batchSavedListeners.remove(listener); + } + + public void fireBatchSaved(R row) { + for (BatchSavedListener listener : batchSavedListeners) { + listener.onBatchSaved(new BatchSavedEvent(getModel(), row)); + } + } + @Override protected void onRowModified(int rowIndex, R row, diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/BatchSavedEvent.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/BatchSavedEvent.java new file mode 100644 index 0000000..6632ba8 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/BatchSavedEvent.java @@ -0,0 +1,27 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches; + +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.4.2 + */ +public class BatchSavedEvent { + + protected final AbstractTuttiBatchUIModel model; + + protected final AbstractTuttiBeanUIModel row; + + public BatchSavedEvent(AbstractTuttiBatchUIModel model, AbstractTuttiBeanUIModel row) { + this.model = model; + this.row = row; + } + + public AbstractTuttiBatchUIModel getModel() { + return model; + } + + public AbstractTuttiBeanUIModel getRow() { + return row; + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/BatchSavedListener.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/BatchSavedListener.java new file mode 100644 index 0000000..8a6d91a --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/BatchSavedListener.java @@ -0,0 +1,10 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.4.2 + */ +public interface BatchSavedListener { + + void onBatchSaved(BatchSavedEvent evt); +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java index feebb58..0936688 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java @@ -442,5 +442,6 @@ public class AccidentalBatchUIHandler getPersistenceService().saveAccidentalBatch(entityToSave); } + fireBatchSaved(row); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java index c0fa132..900caa7 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java @@ -1289,6 +1289,8 @@ public class BenthosBatchUIHandler extends AbstractTuttiBatchTableUIHandler<Bent getPersistenceService().saveBenthosBatch(entityToSave); } + fireBatchSaved(row); + List<BenthosFrequencyRowModel> frequencyRows = row.getFrequency(); List<BenthosBatchFrequency> frequency = diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java index 7b7a96b..777ad42 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java @@ -754,5 +754,6 @@ public class IndividualObservationBatchUIHandler getPersistenceService().saveIndividualObservationBatch(entityToSave); } + fireBatchSaved(row); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java index c825ed0..f357491 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java @@ -390,6 +390,8 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler getPersistenceService().saveMarineLitterBatch(entityToSave); } + fireBatchSaved(row); + } public void removeFromMarineLitterCategoriesUsed(MarineLitterBatchRowModel row) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java index 17d0779..8132482 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java @@ -1310,6 +1310,8 @@ public class SpeciesBatchUIHandler extends AbstractTuttiBatchTableUIHandler<Spec getPersistenceService().saveSpeciesBatch(catchBean); } + fireBatchSaved(row); + List<SpeciesFrequencyRowModel> frequencyRows = row.getFrequency(); List<SpeciesBatchFrequency> frequency = diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/validation/actions/EditFishingOperationInValidationUIAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/validation/actions/EditFishingOperationInValidationUIAction.java index 473d689..5d45756 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/validation/actions/EditFishingOperationInValidationUIAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/validation/actions/EditFishingOperationInValidationUIAction.java @@ -27,13 +27,17 @@ import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService; -import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUIModel; import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.AbstractTuttiBatchUIModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.BatchSavedEvent; +import fr.ifremer.tutti.ui.swing.content.operation.catches.BatchSavedListener; +import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; import fr.ifremer.tutti.ui.swing.content.validation.ValidateCruiseUI; import fr.ifremer.tutti.ui.swing.content.validation.ValidateCruiseUIHandler; import fr.ifremer.tutti.ui.swing.content.validation.ValidateCruiseUIModel; +import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; import org.nuiton.validator.NuitonValidatorResult; import java.beans.PropertyChangeEvent; @@ -150,6 +154,29 @@ public class EditFishingOperationInValidationUIAction extends LongActionSupport< } }; + protected final BatchSavedListener batchSavedListener = new BatchSavedListener() { + + @Override + public void onBatchSaved(BatchSavedEvent evt) { + + AbstractTuttiBatchUIModel model = evt.getModel(); + + if (model.getFishingOperation() != null) { + + // after a save, or a reset, reload model cruise, since the synchronizationStatus may have changed + Cruise cruise = getDataContext().reloadCruise(); + getModel().setCruise(cruise); + + NuitonValidatorResult validationResult = validationService.validateCruiseOperation(model.getFishingOperation()); + + ValidateCruiseUIModel uiModel = getModel(); + uiModel.addValidatorResult(uiModel.getSelectedFishingOperation(), validationResult); + + getHandler().updateCurrentOperationNode(validationResult); + } + } + }; + public EditFishingOperationInValidationUIAction(ValidateCruiseUIHandler handler) { super(handler, true); setActionDescription(t("tutti.editFishingOperation.action.editFishingOperation.tip")); @@ -172,8 +199,17 @@ public class EditFishingOperationInValidationUIAction extends LongActionSupport< FishingOperationsUI operationPanel = getUI().getOperationPanel(); operationPanel.getFishingOperationTabContent().getModel(). removePropertyChangeListener(editFishingOperationModelListener); - operationPanel.getCatchesTabContent().getModel(). + + EditCatchesUI catchesTabContent = operationPanel.getCatchesTabContent(); + + catchesTabContent.getModel(). removePropertyChangeListener(editCatchesModelListener); + + catchesTabContent.getSpeciesTabContent().getHandler().removeBatchSavedListener(batchSavedListener); + catchesTabContent.getBenthosTabContent().getHandler().removeBatchSavedListener(batchSavedListener); + catchesTabContent.getAccidentalTabContent().getHandler().removeBatchSavedListener(batchSavedListener); + catchesTabContent.getMarineLitterTabContent().getHandler().removeBatchSavedListener(batchSavedListener); + catchesTabContent.getIndividualObservationTabContent().getHandler().removeBatchSavedListener(batchSavedListener); } @Override @@ -187,7 +223,16 @@ public class EditFishingOperationInValidationUIAction extends LongActionSupport< FishingOperationsUI operationPanel = getUI().getOperationPanel(); operationPanel.getFishingOperationTabContent().getModel().addPropertyChangeListener(editFishingOperationModelListener); - operationPanel.getCatchesTabContent().getModel().addPropertyChangeListener(editCatchesModelListener); + + EditCatchesUI catchesTabContent = operationPanel.getCatchesTabContent(); + + catchesTabContent.getModel().addPropertyChangeListener(editCatchesModelListener); + + catchesTabContent.getSpeciesTabContent().getHandler().addBatchSavedListener(batchSavedListener); + catchesTabContent.getBenthosTabContent().getHandler().addBatchSavedListener(batchSavedListener); + catchesTabContent.getAccidentalTabContent().getHandler().addBatchSavedListener(batchSavedListener); + catchesTabContent.getMarineLitterTabContent().getHandler().addBatchSavedListener(batchSavedListener); + catchesTabContent.getIndividualObservationTabContent().getHandler().addBatchSavedListener(batchSavedListener); } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm