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 be4b7b39942169b5197b650a4ade5d53cdb8642e Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Nov 21 09:43:52 2017 +0100 A l'ouverture d'une demande, charger des clients du dossier en différé (refs #9502) --- .../ui/swing/actions/ShowDemandeAction.java | 51 ++++++++++++++++++++-- .../ui/swing/content/demande/DemandeUI.css | 1 + .../ui/swing/content/demande/DemandeUIHandler.java | 14 +++++- .../ui/swing/content/demande/DemandeUIModel.java | 3 ++ 4 files changed, 63 insertions(+), 6 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java index ddae61d5..f48fa42b 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java @@ -34,6 +34,7 @@ import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandesUI; +import com.google.common.collect.Lists; import jaxx.runtime.swing.JAXXWidgetUtil; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; @@ -41,13 +42,20 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; -import javax.swing.*; -import java.awt.*; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.SwingUtilities; +import java.awt.Dimension; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import static org.nuiton.i18n.I18n.t; @@ -206,8 +214,10 @@ public class ShowDemandeAction extends AbstractMainUIFaxToMailAction { } } - MailFolder folder = currentEmail.getMailFolder(); - List<Client> allowedClients = serviceContext.getClientService().getClientsForFolder(folder); + ArrayList<Client> allowedClients = Lists.newArrayList(); + if (currentEmail.getClient() != null) { + allowedClients.add(currentEmail.getClient()); + } currentEmail.setAllowedClients(allowedClients); } @@ -262,6 +272,39 @@ public class ShowDemandeAction extends AbstractMainUIFaxToMailAction { } } }); + + ExecutorService executorService = Executors.newSingleThreadExecutor(); + + executorService.submit(new Runnable() { + @Override + public void run() { + + final DemandeUIModel currentEmail = getContext().getCurrentEmail(); + + MailFolder folder = currentEmail.getMailFolder(); + + FaxToMailServiceContext serviceContext = getContext().newServiceContext(); + + final List<Client> clientsForFolder = serviceContext.getClientService().getClientsForFolder(folder); + + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + currentEmail.setAllowedClients(clientsForFolder); + if (log.isInfoEnabled()) { + log.info("Set client list on demande finish !"); + } + + } + }); + } + }); + + executorService.shutdown(); + + if (log.isInfoEnabled()) { + log.info("Show Demande finish !"); + } } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css index 31b1a9a8..e565fd42 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css @@ -81,6 +81,7 @@ JTextField, JXTable, BeanFilterableComboBox, #commentField, ButtonAttachment, Bu #clientComboBox { property: client; selectedItem: { model.getClient() }; + data: { model.getAllowedClients() }; _validatorLabel: { t("faxtomail.demande.clientCode.label") }; } /* diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java index e888362c..9c3b52df 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java @@ -63,11 +63,20 @@ import org.nuiton.jaxx.application.swing.table.MoveToPreviousEditableRowAction; import org.nuiton.jaxx.application.swing.util.CloseableUI; import org.nuiton.util.beans.BeanMonitor; -import javax.swing.*; +import javax.swing.AbstractAction; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JFrame; +import javax.swing.JMenuItem; +import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JSplitPane; +import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.TableCellEditor; -import java.awt.*; +import java.awt.Color; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; @@ -449,6 +458,7 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, result.add(DemandeUIModel.PROPERTY_GROUPED_DEMANDES); result.add(Email.PROPERTY_REPLIES); result.add(DemandeUIModel.PROPERTY_VALID_RANGE_ROW_MODELS); + result.add(DemandeUIModel.PROPERTY_ALLOWED_CLIENTS); return result; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java index 55006fbb..8916f07e 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java @@ -91,6 +91,7 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU public static final String PROPERTY_LAST_ATTACHMENT_OPENING_IN_THIS_FOLDER_USER = "lastAttachmentOpeningInThisFolderUser"; public static final String PROPERTY_GROUPED_DEMANDES = "groupedDemandes"; public static final String PROPERTY_VALID_RANGE_ROW_MODELS = "validRangeRowModels"; + public static final String PROPERTY_ALLOWED_CLIENTS = "allowedClients"; protected final Email editObject = new EmailImpl(); @@ -893,7 +894,9 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU } public void setAllowedClients(List<Client> allowedClients) { + List<Client> oldValue = this.allowedClients; this.allowedClients = allowedClients; + firePropertyChanged(PROPERTY_ALLOWED_CLIENTS, oldValue, validRangeRowModels); } /** -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.