This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 280e0a737e29bb94623e01c93c393d2f714e1ccf Author: Kevin Morin <morin@codelutin.com> Date: Fri Dec 15 15:14:49 2017 +0100 refs #9526 move the takenby validation in an action --- .../ui/swing/content/demande/DemandeListUI.css | 1 + .../content/demande/TakenByFormUIHandler.java | 89 ---------------------- .../demande/actions/OpenTakenByFormAction.java | 8 +- .../demande/{ => takenby}/TakenByFormUI.css | 1 + .../demande/{ => takenby}/TakenByFormUI.jaxx | 31 +++----- .../demande/takenby/TakenByFormUIHandler.java | 55 +++++++++++++ .../demande/{ => takenby}/TakenByFormUIModel.java | 3 +- .../demande/takenby/actions/TakenByAction.java | 84 ++++++++++++++++++++ .../i18n/faxtomail-ui-swing_fr_FR.properties | 1 + 9 files changed, 157 insertions(+), 116 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css index 7805ff36..6cc6db38 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css @@ -119,6 +119,7 @@ } #takenByMenu { + actionIcon: user; text: "faxtomail.demandeList.action.takenBy"; toolTipText: "faxtomail.demandeList.action.takenBy.tip"; visible: { model.isTakenByActivated() }; diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIHandler.java deleted file mode 100644 index 9e0b6adb..00000000 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIHandler.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.franciaflex.faxtomail.ui.swing.content.demande; - -import com.franciaflex.faxtomail.persistence.entities.Email; -import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; -import com.franciaflex.faxtomail.services.FaxToMailServiceContext; -import com.franciaflex.faxtomail.services.service.EmailService; -import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; -import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel; -import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; -import jaxx.runtime.validator.swing.SwingValidator; -import org.nuiton.jaxx.application.swing.util.Cancelable; -import org.nuiton.validator.bean.simple.SimpleBeanValidator; - -import javax.swing.*; -import java.awt.*; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.util.Collection; - -public class TakenByFormUIHandler extends AbstractFaxToMailUIHandler<TakenByFormUIModel, TakenByFormUI> implements Cancelable { - - @Override - public void afterInit(TakenByFormUI ui) { - initUI(ui); - - // users - initBeanFilterableComboBox(ui.getTakenByComboBox(), getModel().getUsers(), getModel().getTakenBy()); - - getValidator().addPropertyChangeListener(SimpleBeanValidator.VALID_PROPERTY, new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - getModel().setValid((Boolean) evt.getNewValue()); - } - }); - } - - @Override - public void cancel() { - closeFrame(); - } - - @Override - public void onCloseUI() { - } - - @Override - public SwingValidator<TakenByFormUIModel> getValidator() { - return getUI().getValidator(); - } - - @Override - protected JComponent getComponentToFocus() { - return getUI().getTakenByComboBox(); - } - - @Override - public Component getTopestUI() { - return getParentContainer(Window.class); - } - - public void validate(){ - Collection<DemandeUIModel> demands = getModel().getDemandsToTake(); - FaxToMailUser user = (FaxToMailUser) getUI().getTakenByComboBox().getSelectedItem(); - - for (DemandeUIModel demand:demands){ - demand.setTakenBy(user); - } - - FaxToMailUIContext context = getContext(); - - FaxToMailServiceContext serviceContext = context.newServiceContext(); - EmailService emailService = serviceContext.getEmailService(); - - for (DemandeUIModel demand : getModel().getDemandsToTake()) { - - String topiaId = demand.getTopiaId(); - Email persistedEmail = emailService.getFullEmailById(topiaId); - - FaxToMailUser currentUser = context.getCurrentUser(); - Email email = demand.toEntity(persistedEmail); - - email = emailService.saveEmail(email, currentUser, Email.PROPERTY_TAKEN_BY); - demand.fromEntity(email); - } - - closeFrame(); - } - -} diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java index 22331e26..97c27ed7 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java @@ -9,8 +9,8 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUI; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; -import com.franciaflex.faxtomail.ui.swing.content.demande.TakenByFormUI; -import com.franciaflex.faxtomail.ui.swing.content.demande.TakenByFormUIModel; +import com.franciaflex.faxtomail.ui.swing.content.demande.takenby.TakenByFormUI; +import com.franciaflex.faxtomail.ui.swing.content.demande.takenby.TakenByFormUIModel; import javax.swing.JFrame; import javax.swing.SwingUtilities; @@ -46,7 +46,7 @@ public class OpenTakenByFormAction extends AbstractFaxToMailAction<DemandeListUI MailFolder folder = demand.getMailFolder(); MailFolderService mailFolderService = getContext().newServiceContext().getMailFolderService(); - List<FaxToMailUser> users = (List<FaxToMailUser>)mailFolderService.getUsersForFolder(folder.getTopiaId()); + List<FaxToMailUser> users = (List<FaxToMailUser>) mailFolderService.getUsersForFolder(folder.getTopiaId()); model.setUsers(users); getUI().setContextValue(model); @@ -59,7 +59,7 @@ public class OpenTakenByFormAction extends AbstractFaxToMailAction<DemandeListUI super.postSuccessAction(); frame = getHandler().openModalFrame(frameContent, t("faxtomail.takenby.modalTitle"), - new Dimension(300, 30)); + new Dimension(300, 40)); getContext().addPropertyChangeListener(FaxToMailUIContext.PROPERTY_BUSY, new PropertyChangeListener() { @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUI.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUI.css similarity index 92% rename from faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUI.css rename to faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUI.css index c1332a13..a777c0b2 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUI.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUI.css @@ -44,5 +44,6 @@ actionIcon: reply; text: "faxtomail.takenby.action.validate"; toolTipText: "faxtomail.takenby.action.validate.tip"; + _applicationAction: { com.franciaflex.faxtomail.ui.swing.content.demande.takenby.actions.TakenByAction.class }; enabled: { model.isValid() }; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUI.jaxx similarity index 73% rename from faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUI.jaxx rename to faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUI.jaxx index b5515579..cc6cb1a1 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUI.jaxx @@ -28,12 +28,8 @@ com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler - - java.awt.CardLayout java.awt.Color - java.awt.FlowLayout - jaxx.runtime.swing.CardLayout2Ext jaxx.runtime.swing.editor.bean.BeanFilterableComboBox jaxx.runtime.swing.editor.bean.BeanComboBox @@ -56,32 +52,23 @@ <TakenByFormUIModel id='model' initializer='getContextValue(TakenByFormUIModel.class)'/> - <Table constraints='BorderLayout.NORTH' - fill='both'> - <row> + <Table constraints='BorderLayout.CENTER' fill='both'> + <row weighty="1" > <cell> <JLabel id="takenByListLabel"/> </cell> - <cell weightx='1' columns="4"> - <JPanel id="takenByListPanel"> - <BeanFilterableComboBox id="takenByComboBox" - constructorParams='this' - genericType="FaxToMailUser" - constraints='"false"'/> - </JPanel> + <cell weightx='1' columns="3"> + <BeanFilterableComboBox id="takenByComboBox" + constructorParams='this' + genericType="FaxToMailUser"/> </cell> </row> - </Table> - - <Table id="buttonPanel" - fill="both" insets="0" - constraints='BorderLayout.SOUTH'> <row> - <cell insets="0" weightx="1"> + <cell insets="0" weightx="1" columns="2"> <JButton id='cancelButton' onActionPerformed='handler.cancel()'/> </cell> - <cell insets="0" weightx="1"> - <JButton id='validateButton' onActionPerformed='handler.validate()'/> + <cell insets="0" weightx="1" columns="2"> + <JButton id='validateButton'/> </cell> </row> </Table> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUIHandler.java new file mode 100644 index 00000000..ed759833 --- /dev/null +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUIHandler.java @@ -0,0 +1,55 @@ +package com.franciaflex.faxtomail.ui.swing.content.demande.takenby; + +import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; +import jaxx.runtime.validator.swing.SwingValidator; +import org.nuiton.jaxx.application.swing.util.Cancelable; +import org.nuiton.validator.bean.simple.SimpleBeanValidator; + +import javax.swing.JComponent; +import java.awt.Component; +import java.awt.Window; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + +public class TakenByFormUIHandler extends AbstractFaxToMailUIHandler<TakenByFormUIModel, TakenByFormUI> implements Cancelable { + + @Override + public void afterInit(TakenByFormUI ui) { + initUI(ui); + + // users + initBeanFilterableComboBox(ui.getTakenByComboBox(), getModel().getUsers(), getModel().getTakenBy()); + + getValidator().addPropertyChangeListener(SimpleBeanValidator.VALID_PROPERTY, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + getModel().setValid((Boolean) evt.getNewValue()); + } + }); + } + + @Override + public void cancel() { + closeFrame(); + } + + @Override + public void onCloseUI() { + } + + @Override + public SwingValidator<TakenByFormUIModel> getValidator() { + return getUI().getValidator(); + } + + @Override + protected JComponent getComponentToFocus() { + return getUI().getTakenByComboBox(); + } + + @Override + public Component getTopestUI() { + return getParentContainer(Window.class); + } + +} diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUIModel.java similarity index 92% rename from faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIModel.java rename to faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUIModel.java index 38e0cdb8..15db1c4b 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/TakenByFormUIModel.java @@ -1,7 +1,8 @@ -package com.franciaflex.faxtomail.ui.swing.content.demande; +package com.franciaflex.faxtomail.ui.swing.content.demande.takenby; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import org.jdesktop.beans.AbstractSerializableBean; import java.util.List; diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java new file mode 100644 index 00000000..63e2cc0c --- /dev/null +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java @@ -0,0 +1,84 @@ +package com.franciaflex.faxtomail.ui.swing.content.demande.takenby.actions; + +/* + * #%L + * FaxToMail :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2014 Mac-Groupe, Code Lutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.services.service.EmailService; +import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; +import com.franciaflex.faxtomail.ui.swing.actions.AbstractFaxToMailAction; +import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; +import com.franciaflex.faxtomail.ui.swing.content.demande.takenby.TakenByFormUI; +import com.franciaflex.faxtomail.ui.swing.content.demande.takenby.TakenByFormUIHandler; +import com.franciaflex.faxtomail.ui.swing.content.demande.takenby.TakenByFormUIModel; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.Collection; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Kevin Morin (Code Lutin) + * + */ +public class TakenByAction extends AbstractFaxToMailAction<TakenByFormUIModel, TakenByFormUI, TakenByFormUIHandler> { + + private static final Log log = LogFactory.getLog(TakenByAction.class); + + public TakenByAction(TakenByFormUIHandler handler) { + super(handler, false); + setActionDescription(t("faxtomail.action.takenBy.tip")); + } + + @Override + public void doAction() throws Exception { + FaxToMailUIContext context = getContext(); + EmailService emailService = context.newServiceContext().getEmailService(); + + FaxToMailUser user = getModel().getTakenBy(); + FaxToMailUser currentUser = context.getCurrentUser(); + + Collection<DemandeUIModel> demands = getModel().getDemandsToTake(); + for (DemandeUIModel demand : demands) { + + demand.setTakenBy(user); + + String topiaId = demand.getTopiaId(); + Email persistedEmail = emailService.getFullEmailById(topiaId); + + Email email = demand.toEntity(persistedEmail); + + email = emailService.saveEmail(email, currentUser, Email.PROPERTY_TAKEN_BY); + demand.fromEntity(email); + } + } + + @Override + public void postSuccessAction() { + super.postSuccessAction(); + handler.closeFrame(); + } +} 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 6e4894b9..ae3dd5df 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 @@ -29,6 +29,7 @@ faxtomail.action.reply.tip=Envoyer la réponse faxtomail.action.save.tip=Enregistrer faxtomail.action.search.tip=Rechercher faxtomail.action.senderChanged.tip=Changement d'expéditeur +faxtomail.action.takenBy.tip=Pris par faxtomail.action.transmit.tip=Déplacer l'élément faxtomail.alert.alreadyLockedBy.message=L'élément est déjà verrouillé par %s, vous ne pouvez pas l'ouvrir. faxtomail.alert.alreadyLockedBy.title=Document déjà verrouillé -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.