branch feature/7056 created (now 035fcea)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7056 in repository faxtomail. See http://git.codelutin.com/faxtomail.git at 035fcea Ouverture simultanée de plusieurs éléments (fixes #7332) This branch includes the following new commits: new 035fcea Ouverture simultanée de plusieurs éléments (fixes #7332) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 035fcea2d1d86183e137ff2fc618f6ab869596b9 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jul 15 15:31:24 2015 +0200 Ouverture simultanée de plusieurs éléments (fixes #7332) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7056 in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 035fcea2d1d86183e137ff2fc618f6ab869596b9 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jul 15 15:31:24 2015 +0200 Ouverture simultanée de plusieurs éléments (fixes #7332) --- .../faxtomail/ui/swing/FaxToMailUIContext.java | 11 +++++ .../ui/swing/actions/SaveDemandeAndExitAction.java | 2 +- .../ui/swing/actions/ShowDemandeAction.java | 56 ++++++++++++++++++++-- .../content/attachment/AttachmentEditorUI.jaxx | 9 ++++ .../swing/content/attachment/ButtonAttachment.java | 5 +- .../ui/swing/content/demande/DemandeUIHandler.java | 5 ++ .../ui/swing/content/demande/DemandesUI.css | 6 ++- .../ui/swing/content/demande/DemandesUI.jaxx | 41 +++++++++------- .../swing/content/demande/DemandesUIHandler.java | 13 ++++- .../demande/demandgroup/ButtonEmailGroup.java | 5 +- .../demandgroup/DemandGroupHighlightDialog.java | 3 +- .../content/demande/demandgroup/DemandGroupUI.jaxx | 9 ++++ .../content/demande/history/ButtonHistory.java | 5 +- .../content/demande/history/HistoryListUI.jaxx | 9 ++++ .../demande/replies/ButtonDemandReplies.java | 5 +- .../content/demande/replies/DemandRepliesUI.jaxx | 9 ++++ .../ui/swing/util/AbstractFaxToMailUIHandler.java | 8 ++-- .../ui/swing/util/AbstractToolbarPopupButton.java | 41 ++++++++++++++++ .../ui/swing/util/AbstractToolbarPopupHandler.java | 4 ++ .../ui/swing/util/AbstractToolbarPopupUI.jaxx | 4 +- .../i18n/faxtomail-ui-swing_fr_FR.properties | 1 + 21 files changed, 214 insertions(+), 37 deletions(-) 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 9b198fc..dfebc45 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 @@ -87,6 +87,7 @@ import java.io.Closeable; import java.io.File; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -198,6 +199,8 @@ public class FaxToMailUIContext extends AbstractBean implements Closeable, UIMes /** L'email courant (pour quoi faire ?). */ protected DemandeUIModel currentEmail; + protected Map<DemandeUIModel, JFrame> demandesFrames = new HashMap<>(); + //FIXME rustine en attendant de trouver pourquoi ca rame autant protected boolean useFolderCache; @@ -877,4 +880,12 @@ public class FaxToMailUIContext extends AbstractBean implements Closeable, UIMes public void setEmailFilter(EmailFilter emailFilter) { this.emailFilter = emailFilter; } + + public JFrame getFrameForDemande(DemandeUIModel demande) { + return demandesFrames.get(demande); + } + + public void setFrameForDemande(DemandeUIModel demande, JFrame frame) { + demandesFrames.put(demande, frame); + } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java index f9d0c28..9db1aad 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java @@ -39,6 +39,6 @@ public class SaveDemandeAndExitAction extends SaveDemandeAction { @Override public void postSuccessAction() { super.postSuccessAction(); - getActionEngine().runInternalAction(getContext().getMainUI().getHandler(), GoToPreviousScreenAction.class); + getHandler().closeFrame(); } } 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 351a6b3..97f2c8e 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 @@ -29,15 +29,19 @@ import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.service.EmailService; import com.franciaflex.faxtomail.services.service.exceptions.AlreadyLockedMailException; import com.franciaflex.faxtomail.services.service.exceptions.FolderNotReadableException; -import com.franciaflex.faxtomail.ui.swing.FaxToMailScreen; 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 jaxx.runtime.swing.JAXXWidgetUtil; import org.apache.commons.lang3.StringUtils; 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 java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import static org.nuiton.i18n.I18n.t; @@ -46,15 +50,17 @@ import static org.nuiton.i18n.I18n.t; * * @author kmorin - morin@codelutin.com */ -public class ShowDemandeAction extends AbstractChangeScreenAction { +public class ShowDemandeAction extends AbstractMainUIFaxToMailAction { private static final Log log = LogFactory.getLog(ShowDemandeAction.class); // if true, take the email when opening protected boolean takeEmail; + protected JFrame frame; + public ShowDemandeAction(MainUIHandler handler) { - super(handler, true, FaxToMailScreen.DEMANDE); + super(handler, false); setActionDescription(t("faxtomail.action.goto.demand.tip")); } @@ -140,6 +146,7 @@ public class ShowDemandeAction extends AbstractChangeScreenAction { @Override public void doAction() throws Exception { DemandeUIModel currentEmail = getContext().getCurrentEmail(); + if (StringUtils.isNotBlank(currentEmail.getTopiaId())) { FaxToMailServiceContext serviceContext = getContext().newServiceContext(); @@ -167,7 +174,48 @@ public class ShowDemandeAction extends AbstractChangeScreenAction { } } - super.doAction(); + frame = getContext().getFrameForDemande(currentEmail); + + if (frame == null) { + final DemandesUI screenUI = new DemandesUI(getUI()); + String screenTitle = t("faxtomail.demand.title"); + ImageIcon icon = JAXXWidgetUtil.createActionIcon("email-group"); + screenUI.setLeftDecoration(new JLabel(icon)); + + frame = getHandler().openFrame(screenUI, screenTitle, new Dimension(800, 600)); + getContext().setFrameForDemande(currentEmail, frame); + + for (DemandeUIModel demande : currentEmail.getGroupedDemandes()) { + getContext().setFrameForDemande(demande, frame); + } + + frame.addWindowListener(new WindowAdapter() { + @Override + public void windowClosed(WindowEvent e) { + DemandeUIModel currentEmail = getContext().getCurrentEmail(); + getContext().setFrameForDemande(currentEmail, null); + + for (DemandeUIModel demande : currentEmail.getGroupedDemandes()) { + getContext().setFrameForDemande(demande, null); + } + } + }); + + } + } + + @Override + protected void releaseAction() { + super.releaseAction(); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + if (frame != null) { + frame.toFront(); + frame = null; + } + } + }); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUI.jaxx index 672eb97..4c81313 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUI.jaxx @@ -26,6 +26,7 @@ id='attachmentDialog'> <import> + com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext com.franciaflex.faxtomail.persistence.entities.Attachment jaxx.runtime.swing.editor.FileEditor @@ -36,6 +37,14 @@ javax.swing.JComponent </import> + <script><![CDATA[ + + public AttachmentEditorUI(FaxToMailUIContext context, JFrame owner) { + super(context, owner); + } + + ]]></script> + <AttachmentEditorUIModel id='model' initializer='new AttachmentEditorUIModel()'/> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/ButtonAttachment.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/ButtonAttachment.java index 8172975..5f46702 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/ButtonAttachment.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/ButtonAttachment.java @@ -27,9 +27,11 @@ package com.franciaflex.faxtomail.ui.swing.content.attachment; import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.util.AbstractToolbarPopupButton; +import jaxx.runtime.swing.JAXXWidgetUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; +import javax.swing.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Collection; @@ -85,7 +87,8 @@ public class ButtonAttachment extends AbstractToolbarPopupButton<AttachmentEdito @Override protected AttachmentEditorUI createNewPopup() { - return new AttachmentEditorUI(FaxToMailUIContext.getApplicationContext()); + return new AttachmentEditorUI(FaxToMailUIContext.getApplicationContext(), + JAXXWidgetUtil.getParentContainer(this, JFrame.class)); } public String getButtonText(Collection<Attachment> attachments) { 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 d78fd1d..2aa1ce8 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 @@ -497,6 +497,11 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, return ui.getValidator(); } + @Override + public Component getTopestUI() { + return getUI(); + } + /** * Récupère recursivement jusqu'au parent, les etats d'attentes définis pour un dossier. * diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.css index dca54e7..5feb326 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.css @@ -21,6 +21,11 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ +#demandsPanel { + rightDecoration: {topToolBar}; + title: "faxtomail.demand.title"; +} + #topToolBar { floatable: false; opaque: false; @@ -31,7 +36,6 @@ text: "faxtomail.demande.back.button.label"; actionIcon: cancel; toolTipText: "faxtomail.action.goto.previousScreen.tip"; - _applicationAction: { com.franciaflex.faxtomail.ui.swing.actions.GoToPreviousScreenAction.class }; } #saveButton { diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.jaxx index 71a57bd..af11030 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.jaxx @@ -21,9 +21,10 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<JPanel id='demandsPanel' layout="{ new BorderLayout() }" - implements='com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI<DemandesUIModel, DemandesUIHandler>' - onAncestorAdded="handler.showDemandGroupHighlightDialog()"> +<org.jdesktop.swingx.JXTitledPanel + id='demandsPanel' decorator='boxed' + implements='com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI<DemandesUIModel, DemandesUIHandler>' + onAncestorAdded="handler.showDemandGroupHighlightDialog()"> <import> com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext @@ -48,23 +49,27 @@ <ButtonEmailGroup id="demandGroupButton"/> </JToolBar> - <JTabbedPane id="demandsTabPane" constraints="BorderLayout.CENTER"> - <!--<tab id="mainDemandTab">--> - <!--<DemandeUI id="mainDemand" constructorParams="this"/>--> - <!--</tab>--> - </JTabbedPane> + <JPanel layout="{ new BorderLayout() }"> + + <JTabbedPane id="demandsTabPane" constraints="BorderLayout.CENTER"> + <!--<tab id="mainDemandTab">--> + <!--<DemandeUI id="mainDemand" constructorParams="this"/>--> + <!--</tab>--> + </JTabbedPane> + + <JPanel layout='{new GridLayout(1,0)}' + constraints='BorderLayout.SOUTH'> + <JButton id="backButton" onActionPerformed="handler.closeFrame()"/> + <JButton id="saveButton" onActionPerformed="handler.save()"/> + <JButton id="transmitButton" onActionPerformed="handler.transmitDemande()"/> + <JButton id="printButton" onActionPerformed="handler.print()"/> + <JButton id="archiveButton" onActionPerformed="handler.archive()"/> + <JButton id="replyButton" onActionPerformed="handler.reply()"/> + <JButton id="groupButton" onActionPerformed="handler.group()"/> + </JPanel> - <JPanel layout='{new GridLayout(1,0)}' - constraints='BorderLayout.SOUTH'> - <JButton id="backButton"/> - <JButton id="saveButton" onActionPerformed="handler.save()"/> - <JButton id="transmitButton" onActionPerformed="handler.transmitDemande()"/> - <JButton id="printButton" onActionPerformed="handler.print()"/> - <JButton id="archiveButton" onActionPerformed="handler.archive()"/> - <JButton id="replyButton" onActionPerformed="handler.reply()"/> - <JButton id="groupButton" onActionPerformed="handler.group()"/> </JPanel> <DemandGroupHighlightDialog id="demandGroupHighlightDialog" constructorParams="getHandler().getContext(), demandGroupButton"/> -</JPanel> +</org.jdesktop.swingx.JXTitledPanel> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java index 94b7d9c..b7b7930 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java @@ -35,6 +35,8 @@ import com.franciaflex.faxtomail.ui.swing.actions.SaveAndOpenSearchToGroupAction import com.franciaflex.faxtomail.ui.swing.actions.SaveDemandeAndExitAction; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import jaxx.runtime.validator.swing.SwingValidator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; import org.nuiton.jaxx.application.swing.ApplicationUI; import org.nuiton.jaxx.application.swing.action.AbstractApplicationAction; @@ -55,6 +57,8 @@ import java.beans.PropertyChangeListener; */ public class DemandesUIHandler extends AbstractFaxToMailUIHandler<DemandesUIModel, DemandesUI> implements TabContainerHandler, CloseableUI { + private static final Log log = LogFactory.getLog(DemandesUIHandler.class); + protected Configuration config; protected final PropertyChangeListener demandEnabledAndValidListener = new PropertyChangeListener() { @@ -98,7 +102,7 @@ public class DemandesUIHandler extends AbstractFaxToMailUIHandler<DemandesUIMode } @Override - public void afterInit(DemandesUI demandesUI) { + public void afterInit(DemandesUI ui) { initUI(ui); DemandesUIModel model = getModel(); @@ -221,6 +225,11 @@ public class DemandesUIHandler extends AbstractFaxToMailUIHandler<DemandesUIMode return null; } + @Override + public Component getTopestUI() { + return getUI(); + } + /** * Returns the tab handler of the tab i. * @@ -315,7 +324,7 @@ public class DemandesUIHandler extends AbstractFaxToMailUIHandler<DemandesUIMode return change; } - protected void closeButtonPopups() { + public void closeButtonPopups() { getUI().getDemandGroupHighlightDialog().setVisible(false); DemandeUI demandeUI = (DemandeUI) getTabPanel().getSelectedComponent(); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/ButtonEmailGroup.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/ButtonEmailGroup.java index 80bdf8b..4759691 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/ButtonEmailGroup.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/ButtonEmailGroup.java @@ -27,7 +27,9 @@ package com.franciaflex.faxtomail.ui.swing.content.demande.demandgroup; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.util.AbstractToolbarPopupButton; +import jaxx.runtime.swing.JAXXWidgetUtil; +import javax.swing.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Collection; @@ -66,7 +68,8 @@ public class ButtonEmailGroup extends AbstractToolbarPopupButton<DemandGroupUI> @Override protected DemandGroupUI createNewPopup() { - return new DemandGroupUI(FaxToMailUIContext.getApplicationContext()); + return new DemandGroupUI(FaxToMailUIContext.getApplicationContext(), + JAXXWidgetUtil.getParentContainer(this, JFrame.class)); } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/DemandGroupHighlightDialog.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/DemandGroupHighlightDialog.java index 1164a12..4dff1ea 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/DemandGroupHighlightDialog.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/DemandGroupHighlightDialog.java @@ -26,6 +26,7 @@ package com.franciaflex.faxtomail.ui.swing.content.demande.demandgroup; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.util.CloseButton; +import jaxx.runtime.swing.JAXXWidgetUtil; import javax.swing.*; import java.awt.*; @@ -47,7 +48,7 @@ public class DemandGroupHighlightDialog extends JDialog { protected final Timer timer; public DemandGroupHighlightDialog(FaxToMailUIContext context, ButtonEmailGroup buttonEmailGroup) { - super(context.getMainUI()); + super(JAXXWidgetUtil.getParentContainer(buttonEmailGroup, JFrame.class)); this.buttonEmailGroup = buttonEmailGroup; diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/DemandGroupUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/DemandGroupUI.jaxx index f2d9496..73ab13c 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/DemandGroupUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/DemandGroupUI.jaxx @@ -26,12 +26,21 @@ id='groupedDemandDialog'> <import> + com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel org.jdesktop.swingx.JXTable org.jdesktop.swingx.JXTitledPanel </import> + <script><![CDATA[ + + public DemandGroupUI(FaxToMailUIContext context, JFrame owner) { + super(context, owner); + } + + ]]></script> + <DemandeUIModel id='model' initializer='getContextValue(DemandeUIModel.class)'/> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/history/ButtonHistory.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/history/ButtonHistory.java index f5f0355..11e6e9e 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/history/ButtonHistory.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/history/ButtonHistory.java @@ -29,8 +29,10 @@ import com.franciaflex.faxtomail.persistence.entities.History; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.util.AbstractToolbarPopupButton; +import jaxx.runtime.swing.JAXXWidgetUtil; import org.apache.commons.collections4.CollectionUtils; +import javax.swing.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Collection; @@ -80,7 +82,8 @@ public class ButtonHistory extends AbstractToolbarPopupButton<HistoryListUI> { @Override protected HistoryListUI createNewPopup() { - return new HistoryListUI(FaxToMailUIContext.getApplicationContext()); + return new HistoryListUI(FaxToMailUIContext.getApplicationContext(), + JAXXWidgetUtil.getParentContainer(this, JFrame.class)); } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/history/HistoryListUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/history/HistoryListUI.jaxx index e1f68f0..e12bb8a 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/history/HistoryListUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/history/HistoryListUI.jaxx @@ -26,12 +26,21 @@ id='historyListDialog'> <import> + com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel org.jdesktop.swingx.JXList org.jdesktop.swingx.JXTitledPanel </import> + <script><![CDATA[ + + public HistoryListUI(FaxToMailUIContext context, JFrame owner) { + super(context, owner); + } + + ]]></script> + <DemandeUIModel id='model' javaBean="null"/> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/ButtonDemandReplies.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/ButtonDemandReplies.java index dce7faa..af89479 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/ButtonDemandReplies.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/ButtonDemandReplies.java @@ -29,8 +29,10 @@ import com.franciaflex.faxtomail.persistence.entities.Reply; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.util.AbstractToolbarPopupButton; +import jaxx.runtime.swing.JAXXWidgetUtil; import org.apache.commons.collections4.CollectionUtils; +import javax.swing.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Collection; @@ -88,7 +90,8 @@ public class ButtonDemandReplies extends AbstractToolbarPopupButton<DemandReplie @Override protected DemandRepliesUI createNewPopup() { - DemandRepliesUI ui = new DemandRepliesUI(FaxToMailUIContext.getApplicationContext()); + DemandRepliesUI ui = new DemandRepliesUI(FaxToMailUIContext.getApplicationContext(), + JAXXWidgetUtil.getParentContainer(this, JFrame.class)); return ui; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUI.jaxx index 535d726..5e0cc10 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUI.jaxx @@ -26,12 +26,21 @@ id='repliesDialog'> <import> + com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel org.jdesktop.swingx.JXTable org.jdesktop.swingx.JXTitledPanel </import> + <script><![CDATA[ + + public DemandRepliesUI(FaxToMailUIContext context, JFrame owner) { + super(context, owner); + } + + ]]></script> + <Boolean id='editable' javaBean='null' /> <DemandeUIModel id='model' diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java index 15f752d..792bcda 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java @@ -228,7 +228,7 @@ public abstract class AbstractFaxToMailUIHandler<M, UI extends FaxToMailUI<M, ?> public JFrame openFrame(ApplicationUI dialogContent, String title, Dimension dim) { - JFrame result = new JFrame(); + final JFrame result = new JFrame(); result.setResizable(true); getContext().setSecondaryFrame(result); @@ -263,7 +263,7 @@ public abstract class AbstractFaxToMailUIHandler<M, UI extends FaxToMailUI<M, ?> result.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { - closeFrame(getContext().getSecondaryFrame(), handler); + closeFrame(result, handler); } @Override @@ -285,7 +285,7 @@ public abstract class AbstractFaxToMailUIHandler<M, UI extends FaxToMailUI<M, ?> * Open frame and disable parent frame */ public JFrame openModalFrame(final ApplicationUI dialogContent, String title, Dimension dim) { - JFrame result = new JFrame(); + final JFrame result = new JFrame(); result.setResizable(true); getContext().setSecondaryFrame(result); @@ -323,7 +323,7 @@ public abstract class AbstractFaxToMailUIHandler<M, UI extends FaxToMailUI<M, ?> result.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { - closeFrame(getContext().getSecondaryFrame(), handler); + closeFrame(result, handler); } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupButton.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupButton.java index 1524e9f..f6034a4 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupButton.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupButton.java @@ -25,6 +25,9 @@ package com.franciaflex.faxtomail.ui.swing.util; */ import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.JAXXWidgetUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import javax.swing.*; import javax.swing.event.ChangeEvent; @@ -42,6 +45,7 @@ import java.awt.event.WindowEvent; public abstract class AbstractToolbarPopupButton<UI extends AbstractToolbarPopupUI> extends JToggleButton { private static final long serialVersionUID = 1L; + private static final Log log = LogFactory.getLog(AbstractToolbarPopupButton.class); protected final UI popup; @@ -71,16 +75,53 @@ public abstract class AbstractToolbarPopupButton<UI extends AbstractToolbarPopup public void windowClosed(WindowEvent e) { setSelected(false); } + }); addChangeListener(new ChangeListener() { + + // window focus listener to force the popup to be on top of the demand frame, but not on top of other windows + final WindowAdapter windowAdapter = new WindowAdapter() { + @Override + public void windowGainedFocus(WindowEvent e) { + if (popup.isVisible()) { + if (log.isDebugEnabled()) { + log.debug("windowGainedFocus : popup always on top"); + } + popup.setAlwaysOnTop(true); + } + } + + @Override + public void windowLostFocus(WindowEvent e) { + if (popup.isVisible() && !popup.equals(e.getOppositeWindow())) { + if (log.isDebugEnabled()) { + log.debug("windowLostFocus : popup not always on top, bring to front opposite window"); + } + popup.setAlwaysOnTop(false); + e.getOppositeWindow().toFront(); + } + } + }; + @Override public void stateChanged(ChangeEvent e) { + JFrame buttonFrame = JAXXWidgetUtil.getParentContainer(AbstractToolbarPopupButton.this, JFrame.class); if (isSelected()) { if (!popup.isVisible()) { popup.openEditor(AbstractToolbarPopupButton.this); + if (log.isDebugEnabled()) { + log.debug("stateChanged addWindowListener"); + } + buttonFrame.addWindowFocusListener(windowAdapter); } } else { + if (popup.isVisible()) { + if (log.isDebugEnabled()) { + log.debug("stateChanged removeWindowListener"); + } + buttonFrame.removeWindowFocusListener(windowAdapter); + } popup.closeEditor(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupHandler.java index 944104d..f3b370d 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupHandler.java @@ -27,6 +27,8 @@ package com.franciaflex.faxtomail.ui.swing.util; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.ComponentMover; import jaxx.runtime.swing.ComponentResizer; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import javax.swing.*; import java.awt.*; @@ -41,6 +43,8 @@ import static org.nuiton.i18n.I18n.t; */ public abstract class AbstractToolbarPopupHandler<M, UI extends AbstractToolbarPopupUI<M, ?>> extends AbstractFaxToMailUIHandler<M,UI> { + private static final Log log = LogFactory.getLog(AbstractToolbarPopupHandler.class); + public static final String CLOSE_DIALOG_ACTION = "closeDialog"; public static final String SHOW_DIALOG_ACTION = "showDialog"; diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupUI.jaxx index 627420f..74e2f3a 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractToolbarPopupUI.jaxx @@ -37,8 +37,8 @@ <script><![CDATA[ -public AbstractToolbarPopupUI(FaxToMailUIContext context) { - super(context.getMainUI()); +public AbstractToolbarPopupUI(FaxToMailUIContext context, JFrame owner) { + super(owner); FaxToMailUIUtil.setApplicationContext(this, context); } 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 d455bc8..f6a0949 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 @@ -342,3 +342,4 @@ jaxx.application.error.desktop.not.supported=L'ouverture des fichiers par le sys jaxx.application.error.desktop.print.not.supported=Erreur lors de l'impression jaxx.application.error.noPrinter=Erreur lors de l'impression swing.error.cannot.copy.file=Erreur lors de la copie des fichiers +test= -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm