This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 140416bc7156d03e1fdb630e02c60961a2f46c37 Author: Kevin Morin <morin@codelutin.com> Date: Wed Aug 26 14:24:05 2015 +0200 ajout de la suppression des signatures + validators --- .../faxtomail/services/service/UserService.java | 1 + .../services/service/UserServiceImpl.java | 24 ++++++++++++++ .../ui/swing/content/reply/SigningSettingsUI.css | 14 ++++++-- .../ui/swing/content/reply/SigningSettingsUI.jaxx | 15 +++++---- .../content/reply/SigningSettingsUIHandler.java | 11 +++++-- .../content/reply/SigningSettingsUIModel.java | 9 +++-- .../content/reply/actions/DeleteSigningAction.java | 31 +++++++++++++++--- .../content/reply/actions/NewSigningAction.java | 2 +- .../reply/actions/OpenSigningSettingsAction.java | 2 +- .../content/reply/actions/SaveSigningAction.java | 5 +-- .../SigningSettingsUIModel-error-validation.xml | 38 +++------------------- .../i18n/faxtomail-ui-swing_fr_FR.properties | 8 ++++- 12 files changed, 103 insertions(+), 57 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserService.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserService.java index 1025e0a..78f2d80 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserService.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserService.java @@ -57,4 +57,5 @@ public interface UserService extends FaxToMailService { Stamp saveSigning(FaxToMailUser user, Stamp signing, boolean defaultSigning); + void deleteSigning(FaxToMailUser user, Stamp signing); } diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserServiceImpl.java index d71bbf5..9cf99f1 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserServiceImpl.java @@ -122,4 +122,28 @@ public class UserServiceImpl extends FaxToMailServiceSupport implements UserServ return signing; } + + @Override + public void deleteSigning(FaxToMailUser user, Stamp signing) { + Preconditions.checkNotNull(user); + Preconditions.checkNotNull(signing); + Preconditions.checkArgument(!signing.isPersisted() || user.containsSignings(signing)); + + + if (signing.isPersisted()) { + StampTopiaDao stampDao = getPersistenceContext().getStampDao(); + FaxToMailUserTopiaDao userDao = getPersistenceContext().getFaxToMailUserDao(); + + user.removeSignings(signing); + if (signing.equals(user.getDefaultSigning())) { + user.setDefaultSigning(null); + } + userDao.update(user); + + stampDao.delete(signing); + + getPersistenceContext().commit(); + } + + } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUI.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUI.css index 3501fd4..4baf2ea 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUI.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUI.css @@ -60,6 +60,8 @@ #noSigningSelected { text: "faxtomail.signings.settings.noSelection.label"; + horizontalAlignment: { SwingConstants.CENTER }; + enabled: false; } #cancelButton { @@ -73,7 +75,7 @@ text: "faxtomail.signings.settings.action.save"; toolTipText: "faxtomail.signings.settings.action.save.tip"; _applicationAction: { com.franciaflex.faxtomail.ui.swing.content.reply.actions.SaveSigningAction.class }; - enabled: { model.getSelectedSigning() != null && model.isModified() }; + enabled: { model.getSelectedSigning() != null && model.isModified() && validator.isValid() }; } #setDefaultButton { @@ -81,5 +83,13 @@ text: "faxtomail.signings.settings.action.default"; toolTipText: "faxtomail.signings.settings.action.default.tip"; _applicationAction: { com.franciaflex.faxtomail.ui.swing.content.reply.actions.SetDefaultSigningAction.class }; - enabled: { model.isSetDefaultButtonEnabled() }; + enabled: { model.isSetDefaultButtonEnabled() && validator.isValid() }; +} + +#deleteButton { + actionIcon: delete; + text: "faxtomail.signings.settings.action.delete"; + toolTipText: "faxtomail.signings.settings.action.delete.tip"; + _applicationAction: { com.franciaflex.faxtomail.ui.swing.content.reply.actions.DeleteSigningAction.class }; + enabled: { model.getSelectedSigning() != null }; } \ No newline at end of file diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUI.jaxx index 26afbfa..8045303 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUI.jaxx @@ -35,13 +35,11 @@ <SigningSettingsUIModel id='model' initializer='getContextValue(SigningSettingsUIModel.class)'/> - <!--<BeanValidator id='validator' bean='model'--> - <!--uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>--> - <!--<field name='from' component='fromComboBox'/>--> - <!--<field name='to' component='toField'/>--> - <!--<field name='subject' component='subjectField'/>--> - <!--<field name='totalAttachmentLength' component="attachmentsPanel"/>--> - <!--</BeanValidator>--> + <BeanValidator id='validator' bean='model' + uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'> + <field name='selectedSigningName' component='nameField'/> + <field name='selectedSigningText' component='textField'/> + </BeanValidator> <CardLayout2Ext id='signingPanelLayout' constructorParams='this, "signingPanel"'/> @@ -67,6 +65,7 @@ <JPanel id="signingPanel" layout="{ signingPanelLayout }" constraints="BorderLayout.CENTER"> + <Table constraints='"true"'> <row> <cell> @@ -94,7 +93,9 @@ <JButton id="cancelButton" onActionPerformed="handler.cancel()"/> <JButton id="saveButton"/> <JButton id="setDefaultButton"/> + <JButton id="deleteButton"/> </JPanel> + </JPanel> </JSplitPane> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIHandler.java index 3726c13..b90997a 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIHandler.java @@ -126,7 +126,8 @@ public class SigningSettingsUIHandler extends AbstractFaxToMailUIHandler<Signing Stamp selectedValue = list.getSelectedValue(); model.setSelectedSigning(selectedValue); - model.setSelectedSigningDefault(selectedValue.equals(getContext().getCurrentUser().getDefaultSigning())); + model.setSelectedSigningDefault(selectedValue != null && + selectedValue.equals(getContext().getCurrentUser().getDefaultSigning())); } } }); @@ -142,9 +143,15 @@ public class SigningSettingsUIHandler extends AbstractFaxToMailUIHandler<Signing public void onCloseUI() { } + + @Override + public Component getTopestUI() { + return getUI(); + } + @Override public SwingValidator<SigningSettingsUIModel> getValidator() { - return null; + return getUI().getValidator(); } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIModel.java index c9ffc80..9c78e38 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIModel.java @@ -62,8 +62,8 @@ public class SigningSettingsUIModel extends AbstractSerializableBean { this.selectedSigning = selectedSigning; firePropertyChange(PROPERTY_SELECTED_SIGNING, oldValue, selectedSigning); - setSelectedSigningName(selectedSigning.getLabel()); - setSelectedSigningText(selectedSigning.getText()); + setSelectedSigningName(selectedSigning != null ? selectedSigning.getLabel() : ""); + setSelectedSigningText(selectedSigning != null ? selectedSigning.getText() : ""); setModified(false); updateSetDefaultButtonEnabled(); @@ -86,6 +86,11 @@ public class SigningSettingsUIModel extends AbstractSerializableBean { firePropertyChange(PROPERTY_SIGNINGS, null, this.signings); } + public void removeSigning(Stamp signing) { + this.signings.remove(signing); + firePropertyChange(PROPERTY_SIGNINGS, null, this.signings); + } + public String getSelectedSigningName() { return selectedSigningName; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/DeleteSigningAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/DeleteSigningAction.java index 41f1b74..a0f0cc3 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/DeleteSigningAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/DeleteSigningAction.java @@ -34,6 +34,8 @@ import com.franciaflex.faxtomail.ui.swing.content.reply.SigningSettingsUIModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import static org.nuiton.i18n.I18n.t; + /** * @author Kevin Morin (Code Lutin) * @since 1.4 @@ -50,24 +52,43 @@ public class DeleteSigningAction extends AbstractFaxToMailAction<SigningSettings } @Override + public boolean prepareAction() throws Exception { + boolean result = super.prepareAction(); + + if (result) { + result = askBeforeDelete(t("faxtomail.signings.settings.action.delete.confirm.title"), + t("faxtomail.signings.settings.action.delete.confirm.message", + getModel().getSelectedSigningName())); + } + + return result; + } + + @Override public void doAction() throws Exception { SigningSettingsUIModel model = getModel(); Stamp signing = model.getSelectedSigning(); - signing.setLabel(model.getSelectedSigningName()); - signing.setText(model.getSelectedSigningText()); FaxToMailUser user = getContext().getCurrentUser(); UserService userService = getContext().newServiceContext().getUserService(); - userService.saveSigning(user, signing, user.isSigningsEmpty()); + userService.deleteSigning(user, signing); } @Override public void postSuccessAction() { super.postSuccessAction(); - getModel().updateSetDefaultButtonEnabled(); - getModel().setModified(false); + + SigningSettingsUIModel model = getModel(); + model.setModified(false); + + Stamp selectedSigning = model.getSelectedSigning(); + model.setSelectedSigning(null); + model.removeSigning(selectedSigning); + + model.updateSetDefaultButtonEnabled(); + getUI().getSigningList().repaint(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/NewSigningAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/NewSigningAction.java index 2d21658..487fe99 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/NewSigningAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/NewSigningAction.java @@ -69,9 +69,9 @@ public class NewSigningAction extends AbstractFaxToMailAction<SigningSettingsUIM SigningSettingsUIModel model = getModel(); model.addSigning(newSigning); + newSigning.setLabel(t("faxtomail.signings.settings.action.newSigning.name")); model.setSelectedSigning(newSigning); model.setSelectedSigningDefault(false); - model.setSelectedSigningName(t("faxtomail.signings.settings.action.newSigning.name")); model.updateSetDefaultButtonEnabled(); } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/OpenSigningSettingsAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/OpenSigningSettingsAction.java index 18d9522..5890fab 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/OpenSigningSettingsAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/OpenSigningSettingsAction.java @@ -63,7 +63,7 @@ public class OpenSigningSettingsAction extends AbstractFaxToMailAction<ReplyForm super.postSuccessAction(); SigningSettingsUI signingSettingsUI = new SigningSettingsUI(getUI()); - handler.openDialog(signingSettingsUI, t("faxtomail.signings.settings.title"), new Dimension(600, 400)); + handler.openDialog(signingSettingsUI, t("faxtomail.signings.settings.title"), new Dimension(700, 400)); List<Stamp> signings = signingSettingsUI.getModel().getSignings(); getContext().getCurrentUser().setSignings(signings); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SaveSigningAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SaveSigningAction.java index db3ed7b..976cdee 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SaveSigningAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SaveSigningAction.java @@ -66,8 +66,9 @@ public class SaveSigningAction extends AbstractFaxToMailAction<SigningSettingsUI @Override public void postSuccessAction() { super.postSuccessAction(); - getModel().updateSetDefaultButtonEnabled(); - getModel().setModified(false); + SigningSettingsUIModel model = getModel(); + model.updateSetDefaultButtonEnabled(); + model.setModified(false); getUI().getSigningList().repaint(); } } diff --git a/faxtomail-ui-swing/src/main/resources/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIModel-error-validation.xml b/faxtomail-ui-swing/src/main/resources/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIModel-error-validation.xml index 73b90d8..ecd3d6f 100644 --- a/faxtomail-ui-swing/src/main/resources/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIModel-error-validation.xml +++ b/faxtomail-ui-swing/src/main/resources/com/franciaflex/faxtomail/ui/swing/content/reply/SigningSettingsUIModel-error-validation.xml @@ -29,45 +29,15 @@ <validators> - <field name="to"> + <field name="selectedSigningName"> <field-validator type="requiredstring" short-circuit="true"> - <message>faxtomail.validator.error.reply.to.required</message> - </field-validator> - <field-validator type="emails" short-circuit="true"> - <message>faxtomail.validator.error.reply.to.email</message> - </field-validator> - </field> - - <field name="cc"> - <field-validator type="emails" short-circuit="true"> - <message>faxtomail.validator.error.reply.cc.email</message> + <message>faxtomail.validator.error.signingSettings.name.required</message> </field-validator> </field> - <field name="cci"> - <field-validator type="emails" short-circuit="true"> - <message>faxtomail.validator.error.reply.cci.email</message> - </field-validator> - </field> - - <field name="from"> - <field-validator type="requiredstring" short-circuit="true"> - <message>faxtomail.validator.error.reply.from.required</message> - </field-validator> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"> - <![CDATA[ isValid("from") ]]> - </param> - <message>faxtomail.validator.error.reply.from.invalidDomain</message> - </field-validator> - <field-validator type="email" short-circuit="true"> - <message>faxtomail.validator.error.reply.from.email</message> - </field-validator> - </field> - - <field name="subject"> + <field name="selectedSigningText"> <field-validator type="requiredstring" short-circuit="true"> - <message>faxtomail.validator.error.reply.subject.required</message> + <message>faxtomail.validator.error.signingSettings.text.required</message> </field-validator> </field> diff --git a/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties b/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties index 9f05d21..50357dc 100644 --- a/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties +++ b/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties @@ -322,6 +322,10 @@ faxtomail.signings.settings.action.cancel=Fermer faxtomail.signings.settings.action.cancel.tip=Fermer la configuration des signatures sans enregistrer faxtomail.signings.settings.action.default=Par défault faxtomail.signings.settings.action.default.tip=Signature par défault +faxtomail.signings.settings.action.delete=Supprimer +faxtomail.signings.settings.action.delete.confirm.message=Vous êtes sur le point de supprimer la signature %s. +faxtomail.signings.settings.action.delete.confirm.title=Suppression de signature +faxtomail.signings.settings.action.delete.tip=Supprimer la signature faxtomail.signings.settings.action.newSigning.name=Nouvelle signature faxtomail.signings.settings.action.newSigning.tip=Créer une nouvelle signature faxtomail.signings.settings.action.save=Enregistrer @@ -329,7 +333,7 @@ faxtomail.signings.settings.action.save.tip=Enregistrer les modifications faites faxtomail.signings.settings.label=Signatures faxtomail.signings.settings.name.label=Nom faxtomail.signings.settings.noSelection.label=Sélectionnez une signature pour l'éditer -faxtomail.signings.settings.saveBeforeLeaving=Vous avez modifié la signature. +faxtomail.signings.settings.saveBeforeLeaving=Vous avez modifié la signature %s. Voulez-vous l'enregistrer avant d'éditer une autre signature ? faxtomail.signings.settings.text.label=Texte faxtomail.signings.settings.title=Configuration des signatures faxtomail.systemUser=Système @@ -350,6 +354,8 @@ faxtomail.validator.error.reply.from.required= faxtomail.validator.error.reply.subject.required= faxtomail.validator.error.reply.to.email=Le champ 'A\:' doit être une adresse email valide \! faxtomail.validator.error.reply.to.required=Le champ 'A\:' est requis \! +faxtomail.validator.error.signingSettings.name.required= +faxtomail.validator.error.signingSettings.text.required= jaxx.application.error.cannot.mail=Erreur lors de l'ouverture du client mail jaxx.application.error.cannot.open=Erreur lors de l'ouverture de la pièce jointe jaxx.application.error.cannot.print=Erreur lors de l'impression -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.