This is an automated email from the git hooks/post-receive script. New commit to branch feature/9937_9938_alignements_et_tailles_des_pieces_jointes in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit c6b298c9dfa6eaa4ae06fe19ca9b0179134d523a Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Jun 8 09:52:00 2018 +0200 refs #9937 #9938 : Alignements et tailles des aperçues des piéces jointes --- .../faxtomail/FaxToMailConfiguration.java | 4 ++++ .../faxtomail/FaxToMailConfigurationOption.java | 7 +++++++ .../i18n/faxtomail-persistence_fr_FR.properties | 1 + .../ui/swing/content/demande/DemandeUIHandler.java | 2 +- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 22 +++++++++++++++++++--- .../faxtomail/ui/swing/util/JImagePanel.java | 6 ++++++ 6 files changed, 38 insertions(+), 4 deletions(-) diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java index 1c7b57a2..629b0744 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java @@ -466,4 +466,8 @@ public class FaxToMailConfiguration extends ApplicationConfiguration { public int getClientComboBoxFilterStartChars() { return applicationConfig.getOptionAsInt(FaxToMailConfigurationOption.CLIENT_COMBOBOX_FILTER_START_CHARS.getKey()); } + + public int getMaxWidthImageInTextPane() { + return applicationConfig.getOptionAsInt(FaxToMailConfigurationOption.MAX_WIDTH_IMAGE_IN_TEXT_PANE.getKey()); + } } diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java index 9098d932..12847b73 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java @@ -361,6 +361,13 @@ defaults.put("Table.alternateRowColor", new Color(217, 217, 217)); n("faxtomail.config.option.ui.clientComboBoxFilterStartChars.description"), "3", Integer.class + ), + + MAX_WIDTH_IMAGE_IN_TEXT_PANE( + "faxtomail.ui.maxWidthImageInTextPane", + n("faxtomail.config.option.ui.maxWidthImageInTextPane.description"), + "800", + Integer.class ); /** Configuration key. */ diff --git a/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties b/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties index ff7c5cb5..4184fb34 100644 --- a/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties +++ b/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties @@ -22,6 +22,7 @@ faxtomail.config.option.ui.dateFormat.description= faxtomail.config.option.ui.defaultPrintMargin.description=Marges par défaut pour l'impression faxtomail.config.option.ui.defaultZoomStepSize.description= faxtomail.config.option.ui.defaultZoomValue.description= +faxtomail.config.option.ui.maxWidthImageInTextPane.description=Largeur maximal des images en aperçus des pièces jointes faxtomail.config.option.ui.printDetailPage.description=Impression de la page de détail d'une demande lors de l'impression depuis un dossier faxtomail.config.option.ui.refreshListInterval.description= faxtomail.config.option.ui.resultPerPage.description= 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 b8f0bd61..1f229ce2 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 @@ -248,7 +248,7 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, initBeanFilterableComboBox(ui.getWaitingStateComboBox(), waitingStates, model.getWaitingState()); JPanel editorPanel = ui.getMailBodyPanel(); - FaxToMailUIUtil.setEmailContentInTextPane(this, model, editorPanel); + FaxToMailUIUtil.setEmailContentInTextPane(this, model, editorPanel, getConfig()); FaxToMailUIUtil.initScrollPaneBars(getUI().getMailBodyScrollPane()); // init table 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 7e2bc380..fbc88967 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 @@ -92,6 +92,7 @@ import javax.swing.tree.TreeModel; import java.awt.Color; import java.awt.Component; import java.awt.Desktop; +import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; @@ -334,7 +335,8 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { public static void setEmailContentInTextPane(DemandeUIHandler handler, final DemandeUIModel demandeUIModel, - JPanel textPanePanel) { + JPanel textPanePanel, + FaxToMailConfiguration config) { List<String> contents = demandeUIModel.getHtmlContent(); @@ -371,6 +373,7 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { }); } textPane.setText(content); + textPane.setAlignmentX(Component.LEFT_ALIGNMENT); textPanePanel.add(textPane); textPanePanel.add(Box.createVerticalStrut(3)); } @@ -385,7 +388,7 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { if (Boolean.TRUE.equals(mailFolder.getShowAttachmentPreview())) { for (Attachment attachment : demandeUIModel.getAttachment()) { if (!attachment.isInlineAttachment() && !attachment.isMailContent() && !attachment.isAddedByUser()) { - addAttachmentPane(handler, textPanePanel, attachment); + addAttachmentPane(handler, textPanePanel, attachment, config); } } } @@ -940,7 +943,8 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { protected static void addAttachmentPane(final DemandeUIHandler handler, JPanel textPanePanel, - final Attachment attachment) { + final Attachment attachment, + FaxToMailConfiguration config) { if (isFileTypeEditable(attachment.getOriginalFileName())) { forceAttachmentFileLoading(handler.getContext(), attachment); @@ -968,6 +972,7 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { JImagePanel imagePanel = new JImagePanel(); imagePanel.setScaleImageToFitPanel(true); imagePanel.setImage(renderer.renderImage(i)); + imagePanel.setAlignmentX(Component.LEFT_ALIGNMENT); box.add(imagePanel); box.add(Box.createVerticalStrut(3)); } @@ -988,6 +993,7 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { JImagePanel imagePanel = new JImagePanel(); imagePanel.setScaleImageToFitPanel(true); imagePanel.setImage(awtImage); + imagePanel.setAlignmentX(Component.LEFT_ALIGNMENT); box.add(imagePanel); box.add(Box.createVerticalStrut(3)); } @@ -999,16 +1005,26 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { } else if (isFileATxt(originalAttachmentFile)) { JTextPane textPane = new JTextPane(); textPane.setText(FileUtils.readFileToString(originalFile)); + textPane.setAlignmentX(Component.LEFT_ALIGNMENT); box.add(textPane); } else { JImagePanel imagePanel = new JImagePanel(); + + int maxWidth = config.getMaxWidthImageInTextPane(); + if (maxWidth > 0) { + Dimension maximumSize = new Dimension(maxWidth, imagePanel.getMaximumSize().height); + imagePanel.setMaximumSize(maximumSize); + } + imagePanel.setScaleImageToFitPanel(true); imagePanel.setImage(originalFile); + imagePanel.setAlignmentX(Component.LEFT_ALIGNMENT); box.add(imagePanel); } box.setAlignmentY(Component.TOP_ALIGNMENT); + box.setAlignmentX(Component.LEFT_ALIGNMENT); textPanePanel.add(box); } catch (IOException e) { diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/JImagePanel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/JImagePanel.java index f38a03d8..2cff8509 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/JImagePanel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/JImagePanel.java @@ -116,6 +116,12 @@ public class JImagePanel extends JPanel { int newWidth = rotation % 180 == 0 ? srcWidth : srcHeight; int newHeight = rotation % 180 == 0 ? srcHeight : srcWidth; + if (newWidth > getMaximumSize().width) { + newHeight = newHeight * getMaximumSize().width / newWidth; + newWidth = getMaximumSize().width; + scaledImage = image.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH); + } + Dimension size = new Dimension(newWidth, newHeight); setPreferredSize(size); setMinimumSize(size); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.