Author: tchemit Date: 2013-05-07 15:00:45 +0200 (Tue, 07 May 2013) New Revision: 924 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/924 Log: fixes #1975: [TRAIT] - Pouvoir supprimer un trait + improve delete messages Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 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/content/home/DeleteProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java 2013-05-07 09:16:46 UTC (rev 923) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java 2013-05-07 13:00:45 UTC (rev 924) @@ -31,7 +31,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.JOptionPane; import java.util.List; import static org.nuiton.i18n.I18n._; @@ -56,14 +55,13 @@ boolean result = super.prepareAction(); TuttiProtocol protocol = getHandler().getModel().getProtocol(); - int answer = JOptionPane.showConfirmDialog( - getHandler().getUI(), - _("tutti.selectCruise.action.deleteProtocol.message", protocol.getName()), - _("tutti.selectCruise.action.deleteProtocol.title"), - JOptionPane.OK_CANCEL_OPTION - ); - result &= answer == JOptionPane.OK_OPTION; + result &= + getHandler().askBeforeDelete( + _("tutti.selectCruise.action.deleteProtocol.title"), + _("tutti.selectCruise.action.deleteProtocol.message", protocol.getName()) + ); + return result; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-05-07 09:16:46 UTC (rev 923) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-05-07 13:00:45 UTC (rev 924) @@ -27,7 +27,6 @@ import com.google.common.base.Preconditions; import fr.ifremer.tutti.service.ValidationService; import fr.ifremer.tutti.ui.swing.TuttiScreen; -import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; import org.apache.commons.logging.Log; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java 2013-05-07 09:16:46 UTC (rev 923) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java 2013-05-07 13:00:45 UTC (rev 924) @@ -3,7 +3,6 @@ import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction; -import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -19,35 +18,24 @@ /** Logger. */ private static final Log log = - LogFactory.getLog(EditFishingOperationAction.class); + LogFactory.getLog(DeleteFishingOperationAction.class); - /** - * Delegate edit action. - * - * @since 1.0 - */ - protected EditFishingOperationAction editAction; - public DeleteFishingOperationAction(FishingOperationsUIHandler handler) { super(handler, true); - setActionDescription(_("tutti.editFishingOperation.action.editFishingOperation.tip")); + setActionDescription( + _("tutti.editFishingOperation.action.deleteFishingOperation.tip")); } - public EditFishingOperationAction getEditAction() { - if (editAction == null) { - editAction = TuttiActionHelper.createLogicAction( - getHandler(), - EditFishingOperationAction.class); - } - return editAction; - } - @Override - protected boolean prepareAction() { - + protected boolean prepareAction() throws Exception { + boolean canContinue = super.prepareAction(); FishingOperation fishingOperation = getModel().getSelectedFishingOperation(); - boolean canContinue = fishingOperation != null && - !TuttiEntities.isNew(fishingOperation); + canContinue &= fishingOperation != null && + !TuttiEntities.isNew(fishingOperation) && + getHandler().askBeforeDelete( + _("tutti.editFishingOperation.action.deleteFishingOperation.title"), + _("tutti.editFishingOperation.action.deleteFishingOperation.message", decorate(fishingOperation)) + ); return canContinue; } @@ -58,17 +46,27 @@ getModel().getSelectedFishingOperation(); if (log.isInfoEnabled()) { - log.info("Try to delete fishingOperation: " + fishingOperation); + log.info("Will delete fishingOperation: " + fishingOperation); } getContext().getPersistenceService().deleteFishingOperation(fishingOperation.getId()); - } @Override public void postSuccessAction() { super.postSuccessAction(); - getEditAction().setFishingOperation(null); - runAction(getEditAction()); + + FishingOperationsUIModel model = getModel(); + + FishingOperation fishingOperation = + model.getSelectedFishingOperation(); + + // unselect removed fishing operation + model.setSelectedFishingOperation(null); + + // remove it from selection model + model.removeFishingOperation(fishingOperation); + + sendMessage(_("tutti.editFishingOperation.message.operation.deleted", decorate(fishingOperation))); } } \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-05-07 09:16:46 UTC (rev 923) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-05-07 13:00:45 UTC (rev 924) @@ -166,7 +166,6 @@ fishingOperation = null; checkPreviousEdit = true; super.releaseAction(); -// getComputeWeightsAction().actionPerformed(event); } protected SaveFishingOperationAction getSaveFishingOperationAction() { @@ -547,7 +546,7 @@ // batch is not compatible with Tutti if (log.isDebugEnabled()) { - log.debug("Invalid batch model"); + log.debug("Invalid batch model", e); } batch = null; attachments = Collections.emptyList(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-05-07 09:16:46 UTC (rev 923) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-05-07 13:00:45 UTC (rev 924) @@ -324,6 +324,22 @@ return result; } + public boolean askBeforeDelete(String title, String message) { + String htmlMessage = String.format( + CONFIRMATION_FORMAT, + message, + _("tutti.common.askBeforeDelete.help")); + int i = JOptionPane.showConfirmDialog( + getTopestUI(), + htmlMessage, + title, + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE); + + boolean result = i == JOptionPane.OK_OPTION; + return result; + } + public boolean askOverwriteFile(File file) { boolean result; if (file.exists()) { Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-07 09:16:46 UTC (rev 923) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-07 13:00:45 UTC (rev 924) @@ -66,6 +66,8 @@ tutti.commentEditor.action.tip= tutti.commentEditor.none.tip= tutti.commentEditor.title= +tutti.common.askBeforeDelete.help= +tutti.common.askBeforeDelete.title= tutti.common.askCancelEditBeforeLeaving.help= tutti.common.askCancelEditBeforeLeaving.title= tutti.common.askOverwriteFile.help= @@ -81,6 +83,8 @@ tutti.common.file.pdf= tutti.common.file.protocol= tutti.common.file.zip= +tutti.common.selected.fishingOperation= +tutti.common.selected.protocol= tutti.common.validate= tutti.common.validate.mnemonic= tutti.config.action.reload.actions= @@ -496,6 +500,9 @@ tutti.editFishingOperation.action.cancelEditFishingOperation= tutti.editFishingOperation.action.cancelEditFishingOperation.mnemonic= tutti.editFishingOperation.action.cancelEditFishingOperation.tip= +tutti.editFishingOperation.action.deleteFishingOperation.message= +tutti.editFishingOperation.action.deleteFishingOperation.tip= +tutti.editFishingOperation.action.deleteFishingOperation.title= tutti.editFishingOperation.action.editFishingOperation.tip= tutti.editFishingOperation.action.importCasino= tutti.editFishingOperation.action.importCasino.mnemonic= 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-05-07 09:16:46 UTC (rev 923) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-07 13:00:45 UTC (rev 924) @@ -63,6 +63,8 @@ tutti.commentEditor.action.tip=Commentaire tutti.commentEditor.none.tip=Pas de commentaire tutti.commentEditor.title=Commentaire +tutti.common.askBeforeDelete.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas supprimer</li><li><strong>OK</strong> pour supprimer l'objet en question</li></ul> +tutti.common.askBeforeDelete.title=Suppression de %s tutti.common.askCancelEditBeforeLeaving.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour rester sur cet écran</li><li><strong>OK</strong> pour quitter l'écran en abandonnant les modifications</li></ul> tutti.common.askCancelEditBeforeLeaving.title=Modifications non enregistrées mais invalides tutti.common.askOverwriteFile.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas écraser le fichier et annuler l'opération</li><li><strong>Oui</strong> pour écraser le fichier et continuer l'opération</li></ul> @@ -77,6 +79,8 @@ tutti.common.file.pdf=Extension d'un fichier pdf tutti.common.file.protocol=Extension d'un fichier de protocole Tutti tutti.common.file.zip=Extension d'une archive zip +tutti.common.selected.fishingOperation=l'opération de pêche sélectionnée +tutti.common.selected.protocol=le protocole sélectionné tutti.common.validate=Valider tutti.common.validate.mnemonic=V tutti.config.action.reload.actions=Recharger les actions @@ -480,6 +484,10 @@ tutti.editFishingOperation.action.cancelEditFishingOperation=Annuler tutti.editFishingOperation.action.cancelEditFishingOperation.mnemonic=A tutti.editFishingOperation.action.cancelEditFishingOperation.tip=Annuler la création du trait +tutti.editFishingOperation.action.deleteFishingOperation.message=Vous êtes sur le point de supprimer l'opération de pêche <strong>%s</strong> +tutti.editFishingOperation.action.deleteFishingOperation.tip=Supprimer l'opération de pêche sélectionnée +tutti.editFishingOperation.action.deleteFishingOperation.title=Supprimer l'opération de pêche sélectionnée +tutti.editFishingOperation.message.operation.deleted=Opération de pêche <strong>%s</strong> supprimée. tutti.editFishingOperation.action.editFishingOperation.tip=Éditer l'opération de pêche tutti.editFishingOperation.action.importCasino=Import Casino tutti.editFishingOperation.action.importCasino.mnemonic=I @@ -1039,7 +1047,7 @@ tutti.selectCruise.action.cloneProtocol=Cloner tutti.selectCruise.action.cloneProtocol.tip=Dupliquer le protocole sélectionné tutti.selectCruise.action.deleteProtocol=Supprimer -tutti.selectCruise.action.deleteProtocol.message=Vous êtes sur le point de supprimer le protocole %s +tutti.selectCruise.action.deleteProtocol.message=Vous êtes sur le point de supprimer le protocole <strong>%s</strong> tutti.selectCruise.action.deleteProtocol.tip=Supprimer le protocole sélectionné tutti.selectCruise.action.deleteProtocol.title=Supprimer le protocole sélectionné tutti.selectCruise.action.editCatches=Saisir les captures