This is an automated email from the git hooks/post-receive script. New commit to branch feature/9099_order_on_columns in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 2714984cc36a6245ec09d648be60a96afee743d2 Author: Kevin Morin <morin@codelutin.com> Date: Tue Mar 28 11:06:13 2017 +0200 refs #9099 enregistrement du tri pour chaque dossier --- .../faxtomail/ui/swing/FaxToMailUIContext.java | 3 + .../demande/actions/LoadFolderEmailsAction.java | 3 + .../swing/util/DemandeListUISwingSessionState.java | 75 ++++++++++++++++++++++ 3 files changed, 81 insertions(+) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java index e578793..50b5465 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java @@ -40,8 +40,10 @@ import com.franciaflex.faxtomail.services.service.UserService; import com.franciaflex.faxtomail.services.service.ldap.AuthenticationException; import com.franciaflex.faxtomail.services.service.ldap.Contact; import com.franciaflex.faxtomail.ui.swing.content.MainUI; +import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUI; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIModel; +import com.franciaflex.faxtomail.ui.swing.util.DemandeListUISwingSessionState; import com.franciaflex.faxtomail.ui.swing.util.UIMessageNotifier; import com.franciaflex.faxtomail.ui.swing.util.data.Handler; import com.google.common.base.Preconditions; @@ -272,6 +274,7 @@ public class FaxToMailUIContext extends AbstractBean implements Closeable, UIMes Map<Class, State> additionalStates = Maps.newHashMap(); additionalStates.put(BeanFilterableComboBox.class, new BeanFilterableComboBoxState()); additionalStates.put(BeanDoubleList.class, new BeanDoubleListState()); + additionalStates.put(DemandeListUI.class, new DemandeListUISwingSessionState()); File uiConfigFile = getConfig().getUIConfigFile(); this.swingSession = new SwingSession(uiConfigFile, false, additionalStates); if (!uiConfigFile.exists()) { diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/LoadFolderEmailsAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/LoadFolderEmailsAction.java index c0d97c9..82cefac 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/LoadFolderEmailsAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/LoadFolderEmailsAction.java @@ -105,9 +105,12 @@ public class LoadFolderEmailsAction extends AbstractFaxToMailAction<DemandeListU dataTable.setName("dataTable" + columns); getContext().getSwingSession().add(dataTable, true); + getUI().setName("demandeListUI" + folder.getTopiaId()); + getContext().getSwingSession().add(getUI(), true); // fixes #5528 filtre sur les colonnes : il manque l'icone qui indique que la colonne est filtrée handler.updateEmailFilterWithContextEmailFilter(); + model.resetPaginationParameterPage(); result = true; } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeListUISwingSessionState.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeListUISwingSessionState.java new file mode 100644 index 0000000..ceef79f --- /dev/null +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeListUISwingSessionState.java @@ -0,0 +1,75 @@ +package com.franciaflex.faxtomail.ui.swing.util; + +import com.franciaflex.faxtomail.persistence.entities.MailField; +import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUI; +import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel; +import jaxx.runtime.swing.session.State; + +/** + * @author Kevin Morin (Code Lutin) + * @since 2.4 + */ +public class DemandeListUISwingSessionState implements State { + + protected MailField orderByMailField = MailField.RECEPTION_DATE; + protected boolean orderDesc = false; + + public DemandeListUISwingSessionState() { + } + + public DemandeListUISwingSessionState(MailField orderByMailField, boolean orderDesc) { + this.orderByMailField = orderByMailField; + this.orderDesc = orderDesc; + } + + public MailField getOrderByMailField() { + return orderByMailField; + } + + public void setOrderByMailField(MailField orderByMailField) { + this.orderByMailField = orderByMailField; + } + + public boolean isOrderDesc() { + return orderDesc; + } + + public void setOrderDesc(boolean orderDesc) { + this.orderDesc = orderDesc; + } + + protected DemandeListUI checkComponent(Object o) { + if (o == null) { + throw new IllegalArgumentException("null component"); + } + if (!(o instanceof DemandeListUI)) { + throw new IllegalArgumentException("invalid component"); + } + return (DemandeListUI) o; + } + + @Override + public State getState(Object o) { + DemandeListUI ui = checkComponent(o); + DemandeListUIModel model = ui.getModel(); + DemandeListUISwingSessionState result = new DemandeListUISwingSessionState(); + + result.setOrderByMailField(model.getOrderByMailField()); + result.setOrderDesc(model.isOrderDesc()); + + return result; + } + + @Override + public void setState(Object o, State state) { + if (!(state instanceof DemandeListUISwingSessionState)) { + throw new IllegalArgumentException("invalid state"); + } + + DemandeListUI ui = checkComponent(o); + DemandeListUIModel model = ui.getModel(); + DemandeListUISwingSessionState demandeListUISwingSessionState = (DemandeListUISwingSessionState) state; + model.setOrderByMailField(demandeListUISwingSessionState.getOrderByMailField()); + model.setOrderDesc(demandeListUISwingSessionState.isOrderDesc()); + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.