r1738 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: action content/cruise content/home
Author: tchemit Date: 2014-04-28 18:10:12 +0200 (Mon, 28 Apr 2014) New Revision: 1738 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1738 Log: fixes #4958: [TECHNIQUE] Gestion des grappes d'objet pour la synchronisation : statut READY_TO_SYNC Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/EditCruiseFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/EditCruiseFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/EditCruiseFishingOperationAction.java 2014-04-28 15:43:29 UTC (rev 1737) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/EditCruiseFishingOperationAction.java 2014-04-28 16:10:12 UTC (rev 1738) @@ -26,6 +26,7 @@ import com.google.common.collect.Lists; 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.content.cruise.ValidateCruiseUI; @@ -65,7 +66,6 @@ protected final PropertyChangeListener editFishingOperationModelListener = new PropertyChangeListener() { protected final List<String> propertiesToIgnore = Lists.newArrayList( - EditFishingOperationUIModel.PROPERTY_MODIFY, EditFishingOperationUIModel.PROPERTY_VALID, EditFishingOperationUIModel.PROPERTY_PERSISTED ); @@ -75,20 +75,28 @@ EditFishingOperationUIModel model = (EditFishingOperationUIModel) evt.getSource(); - if (!model.isLoadingData() - && model.getFishingOperation() != null - && !propertiesToIgnore.contains(evt.getPropertyName())) { + if (!model.isLoadingData() && model.getFishingOperation() != null) { - model.convertGearShootingCoordinatesToDD(); + if (EditFishingOperationUIModel.PROPERTY_MODIFY.equals(evt.getPropertyName())) { - FishingOperation operation = model.toBean(); - NuitonValidatorResult validationResult = validationService.validateCruiseOperation(operation); + if (!model.isModify()) { - ValidateCruiseUIModel uiModel = getModel(); - uiModel.addValidatorResult(uiModel.getSelectedFishingOperation(), validationResult); + // after a save, or a reset, reload model cruise, since the synchronizationStatus may have changed + Cruise cruise = getDataContext().reloadCruise(); + getModel().setCruise(cruise); + } - getHandler().updateCurrentOperationNode(validationResult); + } else if (!propertiesToIgnore.contains(evt.getPropertyName())) { + model.convertGearShootingCoordinatesToDD(); + FishingOperation operation = model.toBean(); + NuitonValidatorResult validationResult = validationService.validateCruiseOperation(operation); + + ValidateCruiseUIModel uiModel = getModel(); + uiModel.addValidatorResult(uiModel.getSelectedFishingOperation(), validationResult); + + getHandler().updateCurrentOperationNode(validationResult); + } } } }; @@ -96,7 +104,6 @@ protected final PropertyChangeListener editCatchesModelListener = new PropertyChangeListener() { protected final List<String> propertiesToIgnore = Lists.newArrayList( - EditCatchesUIModel.PROPERTY_MODIFY, EditCatchesUIModel.PROPERTY_VALID, EditCatchesUIModel.PROPERTY_CATCH_TOTAL_COMPUTED_WEIGHT, EditCatchesUIModel.PROPERTY_CATCH_TOTAL_SORTED_COMPUTED_WEIGHT, @@ -120,17 +127,26 @@ public void propertyChange(PropertyChangeEvent evt) { EditCatchesUIModel model = (EditCatchesUIModel) evt.getSource(); - if (!model.isLoadingData() - && model.getFishingOperation() != null - && !propertiesToIgnore.contains(evt.getPropertyName())) { + if (!model.isLoadingData() && model.getFishingOperation() != null) { - CatchBatch catchBatch = model.toBean(); - NuitonValidatorResult validationResult = validationService.validateCruiseOperation(catchBatch); + if (EditFishingOperationUIModel.PROPERTY_MODIFY.equals(evt.getPropertyName())) { - ValidateCruiseUIModel uiModel = getModel(); - uiModel.addValidatorResult(uiModel.getSelectedFishingOperation(), validationResult); + if (!model.isModify()) { - getHandler().updateCurrentOperationNode(validationResult); + // after a save, or a reset, reload model cruise, since the synchronizationStatus may have changed + Cruise cruise = getDataContext().reloadCruise(); + getModel().setCruise(cruise); + } + + } else if (!propertiesToIgnore.contains(evt.getPropertyName())) { + CatchBatch catchBatch = model.toBean(); + NuitonValidatorResult validationResult = validationService.validateCruiseOperation(catchBatch); + + ValidateCruiseUIModel uiModel = getModel(); + uiModel.addValidatorResult(uiModel.getSelectedFishingOperation(), validationResult); + + getHandler().updateCurrentOperationNode(validationResult); + } } } }; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveFishingOperationAction.java 2014-04-28 15:43:29 UTC (rev 1737) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveFishingOperationAction.java 2014-04-28 16:10:12 UTC (rev 1738) @@ -38,7 +38,6 @@ import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicTabUIModel; import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUIModel; import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUIModel; -import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -62,6 +61,8 @@ */ protected boolean updateUI; + protected boolean moveTab; + public SaveFishingOperationAction(EditFishingOperationUIHandler handler) { super(handler, true); } @@ -79,17 +80,16 @@ @Override public void doAction() throws Exception { - TuttiBeanMonitor<EditFishingOperationUIModel> monitor = - handler.getFishingOperationMonitor(); - // previous fishingOperation was modified, let's save it - EditFishingOperationUIModel beanToSave = monitor.getBean(); + EditFishingOperationUIModel beanToSave = + handler.getFishingOperationMonitor().getBean(); // must save when bean is new or was modifiy and is valid boolean mustSave = beanToSave.getFishingOperation() != null && beanToSave.isValid(); - boolean moveTab = true; + + moveTab = true; if (mustSave) { // prepare model @@ -125,19 +125,23 @@ " was modified, will save it."); } - monitor.clearModified(); - getModel().setModify(false); saveFishingOperation(toSave); - - if (moveTab && ValidationService.VALIDATION_CONTEXT_EDIT.equals(getContext().getValidationContext())) { - handler.getParentUi().getTabPane().setSelectedIndex(1); - handler.getParentUi().getCatchesTabContent().getTabPane().setSelectedIndex(1); - } } } + @Override + public void postSuccessAction() { + super.postSuccessAction(); + handler.getFishingOperationMonitor().clearModified(); + getModel().setModify(false); + if (moveTab && ValidationService.VALIDATION_CONTEXT_EDIT.equals(getContext().getValidationContext())) { + handler.getParentUi().getTabPane().setSelectedIndex(1); + handler.getParentUi().getCatchesTabContent().getTabPane().setSelectedIndex(1); + } + } + protected void saveFishingOperation(FishingOperation toSave) { PersistenceService service = getContext().getPersistenceService(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2014-04-28 15:43:29 UTC (rev 1737) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2014-04-28 16:10:12 UTC (rev 1738) @@ -131,8 +131,9 @@ FishingOperationsUI operationPanel = ui.getOperationPanel(); operationPanel.getTopPanel().setVisible(false); - // This binding need to be replayed (was not fired, since model is computed in beforeInit method). - SwingUtil.applyDataBinding(getUI(), ValidateCruiseUI.BINDING_READY_TO_SYNCH_BUTTON_ENABLED); + getModel().computeReadyToSynch(); +// // This binding need to be replayed (was not fired, since model is computed in beforeInit method). +// SwingUtil.applyDataBinding(getUI(), ValidateCruiseUI.BINDING_READY_TO_SYNCH_BUTTON_ENABLED); } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java 2014-04-28 15:43:29 UTC (rev 1737) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java 2014-04-28 16:10:12 UTC (rev 1738) @@ -86,15 +86,15 @@ for (Map.Entry<FishingOperation, NuitonValidatorResult> entry : validator.entrySet()) { this.validator.put(entry.getKey(), entry.getValue()); } - computeReadyToSynch(); +// computeReadyToSynch(); } public void addValidatorResult(FishingOperation fishingOperation, NuitonValidatorResult validatorResult) { validator.put(fishingOperation, validatorResult); - computeReadyToSynch(); +// computeReadyToSynch(); } - protected void computeReadyToSynch() { + public void computeReadyToSynch() { boolean result = Cruises.isDirty(cruise); if (result) { for (NuitonValidatorResult nuitonValidatorResult : validator.values()) { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2014-04-28 15:43:29 UTC (rev 1737) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2014-04-28 16:10:12 UTC (rev 1738) @@ -111,7 +111,9 @@ Cruise selectedCruise = null; if (getContext().isCruiseFilled()) { - selectedCruise = getDataContext().getCruise(); + + // always reload the cruise to be sure synchronizationStatus is ok + selectedCruise = getDataContext().reloadCruise(); } model.setCruise(selectedCruise); }
participants (1)
-
tchemit@users.forge.codelutin.com