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 e37c4c8f7b33918895c2667b8ee88e6b7e1da573 Author: jcouteau <couteau@codelutin.com> Date: Fri Oct 19 10:46:17 2018 +0200 refs #10074 : complete fix \o/ --- .../ui/swing/content/demande/DemandeUIHandler.java | 69 +++++++++++++++------- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 18 +++--- 2 files changed, 56 insertions(+), 31 deletions(-) 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 7733ed9f..8204397d 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 @@ -39,6 +39,7 @@ import com.franciaflex.faxtomail.ui.swing.content.attachment.AttachmentListener; import com.franciaflex.faxtomail.ui.swing.content.demande.actions.SaveDemandeAction; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; +import com.franciaflex.faxtomail.ui.swing.util.JImagePanel; import com.google.common.collect.Sets; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.JAXXWidgetUtil; @@ -75,6 +76,7 @@ import java.awt.event.ComponentEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; +import java.awt.image.BufferedImage; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; @@ -255,37 +257,64 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, final JScrollPane mailBodyScrollPane = getUI().getMailBodyScrollPane(); FaxToMailUIUtil.initScrollPaneBars(mailBodyScrollPane); - //resize panel, after set visible, cf. #10016 - mailBodyPanel.addAncestorListener ( new AncestorListener() - { - public void ancestorAdded ( AncestorEvent event ) - { - mailBodyPanel.setMaximumSize(new Dimension(mailBodyScrollPane.getWidth()-30, Integer.MAX_VALUE)); - mailBodyPanel.setPreferredSize(new Dimension(mailBodyScrollPane.getWidth()-30, mailBodyPanel.getHeight())); - mailBodyPanel.repaint(); + mailBodyPanel.addComponentListener(new java.awt.event.ComponentAdapter() { + @Override + public void componentResized(ComponentEvent componentEvent) { + super.componentResized(componentEvent); + resize(); + } + + @Override + public void componentMoved(ComponentEvent componentEvent) { + super.componentMoved(componentEvent); + resize(); + } - //Hack to solve #10074 - //Simulate mouse operating scrollbar to resize email content - JScrollPane mailBodyScrollPane = getUI().getMailBodyScrollPane(); - JScrollBar sb = mailBodyScrollPane.getVerticalScrollBar(); - sb.setValue(sb.getMaximum()); - sb.setValue(sb.getMinimum()); + @Override + public void componentShown(ComponentEvent componentEvent) { + super.componentShown(componentEvent); + resize(); } - public void ancestorRemoved ( AncestorEvent event ){ - //Do nothing + @Override + public void componentHidden(ComponentEvent componentEvent) { + super.componentHidden(componentEvent); + resize(); } - public void ancestorMoved ( AncestorEvent event ){ - //Do nothing + public void resize(){ + JScrollPane holder = (JScrollPane) mailBodyPanel.getComponent(0); + JTextPane pane = (JTextPane) ((JViewport) holder.getComponent(0)).getComponent(0); + + //compute box height so that it can be taken into account later on + int boxHeight = 0; + for (Component component:mailBodyPanel.getComponents()){ + if (!(component instanceof JScrollPane)){ + boxHeight += component.getHeight(); + } + } + + holder.setPreferredSize(new Dimension(mailBodyPanel.getWidth(), pane.getHeight())); + holder.setMinimumSize(new Dimension(mailBodyPanel.getWidth(), pane.getHeight())); + + //Resize mailBodyPanel so that it takes pane height + box height + if (boxHeight < 0) { + mailBodyPanel.setPreferredSize(new Dimension(mailBodyScrollPane.getWidth() - 30, pane.getHeight() - boxHeight)); + mailBodyPanel.setMaximumSize(new Dimension(mailBodyScrollPane.getWidth() - 30, Integer.MAX_VALUE)); + } else { + mailBodyPanel.setPreferredSize(new Dimension(mailBodyScrollPane.getWidth() - 30, pane.getHeight() + boxHeight)); + mailBodyPanel.setMaximumSize(new Dimension(mailBodyScrollPane.getWidth() - 30, Integer.MAX_VALUE)); + } + + mailBodyPanel.repaint(); } - } ); + }); // init table final JXTable table = ui.getRangeTable(); // utilisation des gammes défini pour le dossier (si défini) - List<Range> ranges = new ArrayList<Range>(); + List<Range> ranges = new ArrayList<>(); Collection<Range> folderRanges = getRangeForFolder(folder); if (CollectionUtils.isEmpty(folderRanges)) { ranges.addAll(getContext().getRangeCache()); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java index 1db9693d..87bb7c75 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java @@ -76,16 +76,7 @@ import javax.imageio.ImageIO; import javax.media.jai.PlanarImage; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.Icon; -import javax.swing.JEditorPane; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextPane; -import javax.swing.JTree; -import javax.swing.SwingUtilities; -import javax.swing.SwingWorker; +import javax.swing.*; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; import javax.swing.tree.DefaultMutableTreeNode; @@ -982,7 +973,12 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { textPane.setText(content); textPane.setAlignmentX(Component.LEFT_ALIGNMENT); - textPanePanel.add(textPane); + JScrollPane holder = new JScrollPane(textPane); + holder.setAlignmentX(Component.LEFT_ALIGNMENT); + holder.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); + holder.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + + textPanePanel.add(holder); textPanePanel.add(Box.createVerticalStrut(3)); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.