r226 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing java/fr/ifremer/tutti/ui/swing/content/operation resources/i18n
Author: kmorin Date: 2013-01-18 18:22:41 +0100 (Fri, 18 Jan 2013) New Revision: 226 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/226 Log: - put the fishing operation saving in an action - reload the existing fishing operation when clicks on Cancel Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-18 16:49:08 UTC (rev 225) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-18 17:22:41 UTC (rev 226) @@ -24,6 +24,8 @@ * #L% */ +import com.google.common.base.Preconditions; +import fr.ifremer.tutti.service.DecoratorService; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; @@ -45,6 +47,7 @@ import java.util.concurrent.Executors; import static org.nuiton.i18n.I18n._; +import org.nuiton.util.decorator.Decorator; /** * TODO @@ -200,4 +203,25 @@ } } } + + protected <O> Decorator<O> getDecorator(Class<O> type, String name) { + DecoratorService decoratorService = + getContext().getService(DecoratorService.class); + + Preconditions.checkNotNull(type); + + Decorator decorator = decoratorService.getDecoratorByType(type, name); + if (decorator == null) { + + if (DecoratorService.LabelAware.class.isAssignableFrom(type)) { + decorator = getDecorator(DecoratorService.LabelAware.class, null); + } + } + Preconditions.checkNotNull(decorator); + return decorator; + } + + protected String decorate(Object object) { + return getDecorator(object.getClass(), null).toString(object); + } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-18 16:49:08 UTC (rev 225) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-18 17:22:41 UTC (rev 226) @@ -407,7 +407,7 @@ } #saveButton { - actionIcon: save; + action: {saveFishingOperationAction}; text: "tutti.action.save"; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-18 16:49:08 UTC (rev 225) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-18 17:22:41 UTC (rev 226) @@ -75,6 +75,8 @@ <EditFishingOperationUIModel id='model' initializer='getContextValue(EditFishingOperationUIModel.class)'/> + + <SaveFishingOperationAction id='saveFishingOperationAction' constructorParams='handler'/> <SwingValidatorMessageTableModel id='errorTableModel'/> @@ -463,7 +465,7 @@ <JPanel id='createFishingOperationActions' layout='{new GridLayout(1,0)}' constraints='BorderLayout.CENTER'> <JButton id='cancelButton' onActionPerformed='handler.cancel()'/> - <JButton id='saveButton' onActionPerformed='handler.save()'/> + <JButton id='saveButton'/> </JPanel> </JPanel> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-18 16:49:08 UTC (rev 225) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-18 17:22:41 UTC (rev 226) @@ -404,49 +404,16 @@ } public void cancel() { - - if (log.isInfoEnabled()) { - log.info("Cancel edition for fishingOperation "); - } - // cancel to create a new fishingOperation - parentUi.getHandler().closeCurrentFishingOperation(); - } - - public void save() { - // previous fishingOperation was modified, let's save it - EditFishingOperationUIModel beanToSave = fishingOperationMonitor.getBean(); - - if (beanToSave.isEmpty()) { - - // user must use save button - if (log.isWarnEnabled()) { - log.warn("Won't save new fishing operation, use explicit save button instead..."); - } - } else if (beanToSave.isValid()) { - if (getConfig().isUseSexagecimalEditor()) { - beanToSave.convertGearShootingCoordinatesDMSToDD(); - } - - // save modified fishing operation - FishingOperation toSave = beanToSave.toBean(); - - showInformationMessage( - "[ Trait - Caractéristiques générales ] " + - "Sauvegarde des modifications de " + decorate(toSave) + - "."); - + if (getModel().isCreate()) { if (log.isInfoEnabled()) { - log.info("FishingOperation " + toSave.getId() + - " was modified, will save it."); + log.info("Cancel edition for fishingOperation "); } - - fishingOperationMonitor.clearModified(); - getModel().setModify(false); - - // persist current fishingOperation - parentUi.getHandler().saveFishingOperation(toSave); + // cancel to create a new fishingOperation + parentUi.getHandler().closeCurrentFishingOperation(); + + } else { + parentUi.getHandler().reloadFishingOperation(); } - } public void importCasino() { @@ -481,6 +448,14 @@ getModel().setGearShootingEndLongitude(Float.valueOf(text)); } + public FishingOperationsUI getParentUi() { + return parentUi; + } + + public TuttiBeanMonitor<EditFishingOperationUIModel> getFishingOperationMonitor() { + return fishingOperationMonitor; + } + //------------------------------------------------------------------------// //-- Protected methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-18 16:49:08 UTC (rev 225) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-18 17:22:41 UTC (rev 226) @@ -279,4 +279,9 @@ model.updateFishingOperation(existingFishingOperation, savedFishingOperation); } } + + public void reloadFishingOperation() { + FishingOperation operation = getModel().getSelectedFishingOperation(); + selectFishingOperation(operation); + } } Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-01-18 17:22:41 UTC (rev 226) @@ -0,0 +1,78 @@ + +package fr.ifremer.tutti.ui.swing.content.operation; + +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUIHandler; +import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; +import java.awt.event.ActionEvent; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import static org.nuiton.i18n.I18n._; + +/** + * + * @author kmorin <kmorin@codelutin.com> + * @since 1.0 + */ +public class SaveFishingOperationAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = LogFactory.getLog(SaveFishingOperationAction.class); + + public SaveFishingOperationAction(EditFishingOperationUIHandler handler) { + super(handler, + "saveFishingOperation", + "save", + _("tutti.action.save.fishingOperation"), + _("tutti.action.save.fishingOperation.tip"), + false + ); + } + + @Override + protected void doAction(ActionEvent event) { + + EditFishingOperationUIHandler handler = getHandler(); + + TuttiBeanMonitor<EditFishingOperationUIModel> monitor = handler.getFishingOperationMonitor(); + + // previous fishingOperation was modified, let's save it + EditFishingOperationUIModel beanToSave = monitor.getBean(); + + if (beanToSave.isEmpty()) { + + // user must use save button + if (log.isWarnEnabled()) { + log.warn("Won't save new fishing operation, use explicit save button instead..."); + } + } else if (beanToSave.isValid()) { + if (handler.getConfig().isUseSexagecimalEditor()) { + beanToSave.convertGearShootingCoordinatesDMSToDD(); + } + + // save modified fishing operation + FishingOperation toSave = beanToSave.toBean(); + + handler.showInformationMessage( + "[ Trait - Caractéristiques générales ] " + + "Sauvegarde des modifications de " + decorate(toSave) + + "."); + + if (log.isInfoEnabled()) { + log.info("FishingOperation " + toSave.getId() + + " was modified, will save it."); + } + + monitor.clearModified(); + getModel().setModify(false); + + // persist current fishingOperation + handler.getParentUi().getHandler().saveFishingOperation(toSave); + } + } + +} Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 16:49:08 UTC (rev 225) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 17:22:41 UTC (rev 226) @@ -46,6 +46,8 @@ tutti.action.removeSpeciesSubBatch.tip=Supprimer tous les lots fils du lot sélectionné tutti.action.reset.fishingOperationValidState=Réinitialiser tutti.action.save=Enregistrer +tutti.action.save.fishingOperation=Enregistrer +tutti.action.save.fishingOperation.tip=Enregistrer le trait tutti.action.selectCruise=Sélectionner une campagne tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser tutti.action.site=Site
participants (1)
-
kmorin@users.forge.codelutin.com