r751 - in trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing: . actions content/demande content/transmit util
Author: kmorin Date: 2015-01-19 10:15:03 +0000 (Mon, 19 Jan 2015) New Revision: 751 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/751 Log: garder des ?\195?\169tats diff?\195?\169rents pour les arbres de la liste et du transfert Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenReplyAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenReplyFormAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java 2015-01-13 15:33:28 UTC (rev 750) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java 2015-01-19 10:15:03 UTC (rev 751) @@ -22,35 +22,36 @@ * #L% */ -import static org.nuiton.i18n.I18n.t; - -import java.awt.*; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.Closeable; -import java.io.File; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; - -import javax.swing.JFrame; -import javax.swing.JOptionPane; - +import com.franciaflex.faxtomail.FaxToMailConfiguration; +import com.franciaflex.faxtomail.persistence.RessourceClassLoader; +import com.franciaflex.faxtomail.persistence.entities.DemandType; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EmailFilter; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailTopiaApplicationContext; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import com.franciaflex.faxtomail.persistence.entities.Priority; +import com.franciaflex.faxtomail.persistence.entities.Range; +import com.franciaflex.faxtomail.persistence.entities.WaitingState; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; +import com.franciaflex.faxtomail.services.service.InitFaxToMailService; +import com.franciaflex.faxtomail.services.service.ReferentielService; +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.demande.DemandeListTableFilter; +import com.franciaflex.faxtomail.ui.swing.content.MainUI; +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.UIMessageNotifier; +import com.google.common.base.Preconditions; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import jaxx.runtime.swing.editor.bean.BeanDoubleList; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; import jaxx.runtime.swing.session.BeanDoubleListState; import jaxx.runtime.swing.session.BeanFilterableComboBoxState; import jaxx.runtime.swing.session.State; import jaxx.runtime.swing.session.SwingSession; - import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -75,31 +76,24 @@ import org.nuiton.jaxx.application.swing.util.ApplicationErrorHelper; import org.nuiton.jaxx.application.swing.util.Cancelable; import org.nuiton.util.converter.ConverterUtil; - -import com.franciaflex.faxtomail.FaxToMailConfiguration; -import com.franciaflex.faxtomail.persistence.RessourceClassLoader; -import com.franciaflex.faxtomail.persistence.entities.DemandType; -import com.franciaflex.faxtomail.persistence.entities.FaxToMailTopiaApplicationContext; -import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; -import com.franciaflex.faxtomail.persistence.entities.MailFolder; -import com.franciaflex.faxtomail.persistence.entities.Priority; -import com.franciaflex.faxtomail.persistence.entities.Range; -import com.franciaflex.faxtomail.persistence.entities.WaitingState; -import com.franciaflex.faxtomail.services.FaxToMailServiceContext; -import com.franciaflex.faxtomail.services.service.InitFaxToMailService; -import com.franciaflex.faxtomail.services.service.ReferentielService; -import com.franciaflex.faxtomail.services.service.UserService; -import com.franciaflex.faxtomail.services.service.ldap.AuthenticationException; -import com.franciaflex.faxtomail.ui.swing.content.MainUI; -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.UIMessageNotifier; -import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import org.nuiton.util.pagination.PaginationParameter; import org.nuiton.util.pagination.PaginationResult; +import javax.swing.*; +import java.awt.*; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.io.Closeable; +import java.io.File; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; + +import static org.nuiton.i18n.I18n.t; + /** * UI application context. * @@ -209,8 +203,10 @@ protected FolderData currentFolderEmails = new FolderData(); - /** Les dossiers étendus (pour pouvoir les étendres encore au rechargement de l'UI). */ - protected List<MailFolder> expandedFolders = new ArrayList<MailFolder>(); + /** Les dossiers étendus dans la liste (pour pouvoir les étendres encore au rechargement de l'UI). */ + protected List<MailFolder> listExpandedFolders = new ArrayList<MailFolder>(); + /** Les dossiers étendus dans la sélection de dossier pour transfert (pour pouvoir les étendres encore au rechargement de l'UI). */ + protected List<MailFolder> transmitExpandedFolders = new ArrayList<MailFolder>(); protected SearchUIModel search; @@ -759,14 +755,22 @@ return currentFolderEmails; } - public List<MailFolder> getExpandedFolders() { - return expandedFolders; + public List<MailFolder> getListExpandedFolders() { + return listExpandedFolders; } - public void setExpandedFolders(List<MailFolder> expandedFolders) { - this.expandedFolders = expandedFolders; + public void setListExpandedFolders(List<MailFolder> listExpandedFolders) { + this.listExpandedFolders = listExpandedFolders; } + public List<MailFolder> getTransmitExpandedFolders() { + return transmitExpandedFolders; + } + + public void setTransmitExpandedFolders(List<MailFolder> transmitExpandedFolders) { + this.transmitExpandedFolders = transmitExpandedFolders; + } + public SearchUIModel getSearch() { return search; } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenReplyAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenReplyAction.java 2015-01-13 15:33:28 UTC (rev 750) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenReplyAction.java 2015-01-19 10:15:03 UTC (rev 751) @@ -1,5 +1,29 @@ package com.franciaflex.faxtomail.ui.swing.actions; +/* + * #%L + * FaxToMail :: UI + * $Id:$ + * $HeadURL:$ + * %% + * Copyright (C) 2014 - 2015 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.Reply; import com.franciaflex.faxtomail.persistence.entities.ReplyContent; Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenReplyFormAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenReplyFormAction.java 2015-01-13 15:33:28 UTC (rev 750) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenReplyFormAction.java 2015-01-19 10:15:03 UTC (rev 751) @@ -1,5 +1,29 @@ package com.franciaflex.faxtomail.ui.swing.actions; +/* + * #%L + * FaxToMail :: UI + * $Id:$ + * $HeadURL:$ + * %% + * Copyright (C) 2014 - 2015 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.MailFolder; import com.franciaflex.faxtomail.services.FaxToMailServiceContext; Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2015-01-13 15:33:28 UTC (rev 750) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2015-01-19 10:15:03 UTC (rev 751) @@ -74,7 +74,6 @@ import javax.swing.event.TreeSelectionListener; import javax.swing.table.TableCellEditor; import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.ItemEvent; @@ -89,7 +88,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Date; -import java.util.Enumeration; import java.util.List; import java.util.Map; @@ -275,8 +273,9 @@ // init tree final JTree navigationTree = ui.getNavigationTree(); + List<MailFolder> foldersToExpand = getContext().getListExpandedFolders(); final Map<MailFolder, FolderTreeNode> nodesByFolder = - FaxToMailUIUtil.initFolderTree(getContext(), navigationTree, model.getFolders(), true); + FaxToMailUIUtil.initFolderTree(getContext(), navigationTree, model.getFolders(), foldersToExpand, true); getContext().addPropertyChangeListener(FaxToMailUIContext.PROPERTY_ACTION_IN_PROGRESS, actionInProgressListener); @@ -607,19 +606,8 @@ } JTree tree = getUI().getNavigationTree(); - TreeModel treeModel = tree.getModel(); - Enumeration<TreePath> paths = tree.getExpandedDescendants(new TreePath(treeModel.getRoot())); - List<MailFolder> folders = new ArrayList<MailFolder>(); - if (paths != null) { - while (paths.hasMoreElements()) { - TreePath path = paths.nextElement(); - Object lastPathComponent = path.getLastPathComponent(); - if (FolderTreeNode.class.isAssignableFrom(lastPathComponent.getClass())) { - folders.add(((FolderTreeNode) lastPathComponent).getMailFolder()); - } - } - } - getContext().setExpandedFolders(folders); + List<MailFolder> folders = FaxToMailUIUtil.getExpandedFolders(tree); + getContext().setListExpandedFolders(folders); // remove refresh shortcut JRootPane rootPane = getContext().getMainUI().getRootPane(); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java 2015-01-13 15:33:28 UTC (rev 750) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java 2015-01-19 10:15:03 UTC (rev 751) @@ -24,22 +24,6 @@ * #L% */ -import java.awt.*; -import java.util.Collection; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import javax.swing.JComponent; -import javax.swing.JTree; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; -import javax.swing.tree.DefaultMutableTreeNode; - -import jaxx.runtime.validator.swing.SwingValidator; - -import org.nuiton.jaxx.application.swing.util.Cancelable; - import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.WaitingState; import com.franciaflex.faxtomail.services.FaxToMailServiceContext; @@ -47,7 +31,20 @@ import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.franciaflex.faxtomail.ui.swing.util.FolderTreeNode; +import jaxx.runtime.validator.swing.SwingValidator; +import org.nuiton.jaxx.application.swing.util.Cancelable; +import javax.swing.*; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; +import javax.swing.tree.DefaultMutableTreeNode; +import java.awt.*; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** * @author Kevin Morin (Code Lutin) * @@ -82,8 +79,9 @@ getRootMailFoldersWithMoveRights(getContext().getCurrentUser()); JTree navigationTree = ui.getNavigationTree(); + List<MailFolder> foldersToExpand = getContext().getTransmitExpandedFolders(); Map<MailFolder, FolderTreeNode> nodesByFolder = - FaxToMailUIUtil.initFolderTree(getContext(), navigationTree, folders, false); + FaxToMailUIUtil.initFolderTree(getContext(), navigationTree, folders, foldersToExpand, false); for (MailFolder folder : nodesByFolder.keySet()) { DefaultMutableTreeNode node = nodesByFolder.get(folder); @@ -120,6 +118,9 @@ @Override public void onCloseUI() { + JTree tree = getUI().getNavigationTree(); + List<MailFolder> folders = FaxToMailUIUtil.getExpandedFolders(tree); + getContext().setTransmitExpandedFolders(folders); } @Override Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java 2015-01-13 15:33:28 UTC (rev 750) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java 2015-01-19 10:15:03 UTC (rev 751) @@ -22,39 +22,25 @@ * #L% */ -import static org.nuiton.i18n.I18n.t; - -import java.awt.Component; -import java.awt.Container; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.event.KeyEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.Serializable; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import javax.swing.*; -import javax.swing.event.TableModelEvent; -import javax.swing.event.TableModelListener; -import javax.swing.table.TableColumnModel; -import javax.swing.text.JTextComponent; - +import com.franciaflex.faxtomail.FaxToMailConfiguration; +import com.franciaflex.faxtomail.persistence.entities.Configuration; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.persistence.entities.HasLabel; +import com.franciaflex.faxtomail.persistence.entities.MailAction; +import com.franciaflex.faxtomail.persistence.entities.WaitingState; +import com.franciaflex.faxtomail.services.DecoratorService; +import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; +import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; +import com.franciaflex.faxtomail.ui.swing.content.MainUI; +import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler; +import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; +import com.google.common.base.Preconditions; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import jaxx.runtime.JAXXUtil; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.editor.bean.BeanUIUtil; import jaxx.runtime.validator.swing.SwingValidator; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor; @@ -71,21 +57,28 @@ import org.nuiton.util.beans.BeanUtil; import org.nuiton.validator.bean.simple.SimpleBeanValidator; -import com.franciaflex.faxtomail.FaxToMailConfiguration; -import com.franciaflex.faxtomail.persistence.entities.Configuration; -import com.franciaflex.faxtomail.persistence.entities.WaitingState; -import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; -import com.franciaflex.faxtomail.persistence.entities.HasLabel; -import com.franciaflex.faxtomail.persistence.entities.MailAction; -import com.franciaflex.faxtomail.services.DecoratorService; -import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; -import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; -import com.franciaflex.faxtomail.ui.swing.content.MainUI; -import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler; -import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; -import com.google.common.base.Preconditions; -import com.google.common.collect.Sets; +import javax.swing.*; +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; +import javax.swing.table.TableColumnModel; +import javax.swing.text.JTextComponent; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.KeyEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.io.Serializable; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import static org.nuiton.i18n.I18n.t; + /** * Contract of any UI handler. * @@ -417,6 +410,7 @@ } protected void closeFrame(JFrame frame, AbstractApplicationUIHandler handler) { + handler.onCloseUI(); if (frame != null) { boolean canClose = true; if (handler instanceof CloseableUI) { Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2015-01-13 15:33:28 UTC (rev 750) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2015-01-19 10:15:03 UTC (rev 751) @@ -103,6 +103,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -138,10 +139,10 @@ public static Map<MailFolder, FolderTreeNode> initFolderTree(final FaxToMailUIContext context, JTree navigationTree, Collection<MailFolder> folders, + List<MailFolder> foldersToExpand, final boolean colorNotAffectedFolders) { DefaultMutableTreeNode root = new DefaultMutableTreeNode("root"); - List<MailFolder> foldersToExpand = context.getExpandedFolders(); Map<MailFolder, FolderTreeNode> nodesByFolder = new HashMap<MailFolder, FolderTreeNode>(); List<MailFolder> orderedFolders = new ArrayList<MailFolder>(folders); Collections.sort(orderedFolders, Ordering.natural().onResultOf(new Function<MailFolder, Comparable>() { @@ -232,6 +233,22 @@ return nodesByFolder; } + public static List<MailFolder> getExpandedFolders(JTree tree) { + TreeModel treeModel = tree.getModel(); + Enumeration<TreePath> paths = tree.getExpandedDescendants(new TreePath(treeModel.getRoot())); + java.util.List<MailFolder> folders = new ArrayList<MailFolder>(); + if (paths != null) { + while (paths.hasMoreElements()) { + TreePath path = paths.nextElement(); + Object lastPathComponent = path.getLastPathComponent(); + if (FolderTreeNode.class.isAssignableFrom(lastPathComponent.getClass())) { + folders.add(((FolderTreeNode) lastPathComponent).getMailFolder()); + } + } + } + return folders; + } + /** * Creates the tree nodes and returns a map of the nodes by folder * @param parent the node parent
participants (1)
-
kmorin@users.forge.codelutin.com