branch feature/7714 updated (9559e07 -> 6004998)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7714 in repository faxtomail. See http://git.codelutin.com/faxtomail.git discards 9559e07 gestion du cas où plusieurs parties text/plain seraient dans le mail (refs #7714) discards d688262 affichage des différentes parties text/html de l'email à la suite (refs #7714) adds 9adf0df [jgitflow-maven-plugin]updating poms for 1.1.6-SNAPSHOT development adds e9df563 [jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts adds d65d656 [jgitflow-maven-plugin]updating poms for branch'release/1.1.5' with non-snapshot versions adds 1e33e6c Merge branch 'release/1.1.5' into master-1.1.x adds c6ce0aa Merge branch 'master-1.1.x' into develop-1.1.x adds 2df133a [jgitflow-maven-plugin]Updating develop poms back to pre merge state new 69f8ae3 affichage des différentes parties text/html de l'email à la suite (refs #7714) new 6004998 gestion du cas où plusieurs parties text/plain seraient dans le mail (refs #7714) This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (9559e07) \ N -- N -- N refs/heads/feature/7714 (6004998) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omits" are not gone; other references still refer to them. Any revisions marked "discards" are gone forever. The 2 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 60049985c999781b0d5c5085bb26a13057b24701 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:23:40 2015 +0100 gestion du cas où plusieurs parties text/plain seraient dans le mail (refs #7714) commit 69f8ae3970ba55282200f4c21ab7bdcb166a321e Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:10:48 2015 +0100 affichage des différentes parties text/html de l'email à la suite (refs #7714) Summary of changes: faxtomail-persistence/pom.xml | 2 +- faxtomail-service/pom.xml | 2 +- faxtomail-ui-swing/pom.xml | 2 +- faxtomail-ui-web/pom.xml | 2 +- pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) -- 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/7714 in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 69f8ae3970ba55282200f4c21ab7bdcb166a321e Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:10:48 2015 +0100 affichage des différentes parties text/html de l'email à la suite (refs #7714) --- .../ui/swing/content/demande/DemandeUI.css | 4 - .../ui/swing/content/demande/DemandeUI.jaxx | 6 +- .../ui/swing/content/demande/DemandeUIHandler.java | 4 +- .../ui/swing/content/demande/DemandeUIModel.java | 17 ++- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 133 +++++++++++++-------- 5 files changed, 99 insertions(+), 65 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css index 7661cfd..6b33800 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css @@ -191,10 +191,6 @@ JTextField, JXTable, BeanFilterableComboBox, #commentField, ButtonAttachment, Bu verticalAlignment: { SwingConstants.TOP }; } -#mailBodyField { - editable: false; -} - .text-row { layout: { new FlowLayout(FlowLayout.LEADING) }; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx index 82b420c..4fb811c 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx @@ -43,6 +43,7 @@ org.jdesktop.swingx.JXTitledPanel org.jdesktop.swingx.JXTable + javax.swing.BoxLayout javax.swing.ListSelectionModel javax.swing.SwingConstants @@ -312,8 +313,9 @@ <!--</row>--> <row> <cell weighty="1" columns="2"> - <JScrollPane id='mailBodyPane'> - <JTextPane id='mailBodyField'/> + <JScrollPane id='mailBodyScrollPane'> + <JPanel id="mailBodyPanel" layout="{new BoxLayout(mailBodyPanel, BoxLayout.PAGE_AXIS)}"> + </JPanel> </JScrollPane> </cell> </row> 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 2455bf7..647ecb5 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 @@ -208,8 +208,8 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, } initBeanFilterableComboBox(ui.getWaitingStateComboBox(), waitingStates, model.getWaitingState()); - JTextPane editor = ui.getMailBodyField(); - FaxToMailUIUtil.setEmailContentInTextPane(this, editor, model); + JPanel editorPanel = ui.getMailBodyPanel(); + FaxToMailUIUtil.setEmailContentInTextPane(this, model, editorPanel); // init table final JXTable table = ui.getRangeTable(); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java index 1c0ffa9..bc22fc0 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java @@ -115,7 +115,7 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU protected boolean editable = true; - protected String htmlContent; + protected List<String> htmlContents; protected String plainContent; @@ -342,11 +342,11 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU return plainContent; } - public String getHtmlContent() { - if (htmlContent == null) { + public List<String> getHtmlContent() { + if (htmlContents == null) { decomposeEmail(); } - return htmlContent; + return htmlContents; } public void setOriginalEmail(OriginalEmail originalEmail) { @@ -966,14 +966,21 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU if (bp.isMimeType("text/plain")) { plainContent = content; + } else { - htmlContent = content; + if (htmlContents == null) { + htmlContents = new ArrayList<String>(); + } + + htmlContents.add(content); + } // if it is multipart part, decompose it } else if (bp.isMimeType("multipart/*")) { decomposeMultipartEmail(bp); } + } } 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 ee33699..5e0e049 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 @@ -340,64 +340,22 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { return EDITABLE_EXTENSIONS.contains(extension.toUpperCase()); } - public static void setEmailContentInTextPane(DemandeUIHandler handler, JTextPane textPane, DemandeUIModel demandeUIModel) { - String content = demandeUIModel.getHtmlContent(); - if (content != null) { - textPane.setContentType("text/html"); - HTMLEditorKit htmlEditorKit = new HTMLEditorKit(); - textPane.setEditorKit(htmlEditorKit); - - textPane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, true); - Font font = new Font(Font.MONOSPACED, Font.PLAIN, 16); - textPane.setFont(font); - - textPane.addHyperlinkListener(new HyperlinkListener() { - @Override - public void hyperlinkUpdate(HyperlinkEvent e) { - if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { - FaxToMailUIUtil.openLink(e.getURL()); - } - } - }); - - // the meta tag makes the content is not displayed - content = content.replaceAll("<meta (.*?)>(</meta>)?", ""); + public static void setEmailContentInTextPane(DemandeUIHandler handler, + DemandeUIModel demandeUIModel, + JPanel textPanePanel) { - if (log.isTraceEnabled()) { - log.trace("Content before mail = " + content); - } + List<String> contents = demandeUIModel.getHtmlContent(); - for (Attachment attachment : demandeUIModel.getAttachment()) { - String key = attachment.getContentId(); - if (key == null) { - key = attachment.getOriginalFileName(); - } - - // get file content - forceAttachmentFileLoading(handler.getContext(), attachment); - AttachmentFile attachmentFile = attachment.getOriginalFile(); - File file = attachmentFile.getFile(); - - // replace the inline attachments with the extracted attachment file url - // match les patterns: - // <td background="cid:bg.gif" height="52"> - // <img border=0 src="cid:bg.gif" /> - // <img src='cid:5e9ef859-ea65-4f9b-a9fa-30d4a2c5837c' - content = content.replaceAll("(\\w+)=([\"'])cid:" + Pattern.quote(key) + "([\"'])", "$1=$2" + file.toURI() + "$3"); - - if (log.isDebugEnabled()) { - log.debug("Mapping attachment id " + key + " to file " + file.toURI()); - } - } - - if (log.isTraceEnabled()) { - log.trace("Content after mail = " + content); + if (contents != null) { + for (String content : contents) { + addHtmlTextPane(handler, demandeUIModel, textPanePanel, content); } } else { - content = demandeUIModel.getPlainContent(); + JTextPane textPane = new JTextPane(); + textPane.setText(demandeUIModel.getPlainContent()); + textPanePanel.add(textPane);e } - textPane.setText(content); } /** @@ -814,4 +772,75 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { return demandType != null && FaxToMailServiceUtils.contains(demandType.getRequiredFields(), MailField.RANGE_ROW); } + protected static void addHtmlTextPane(DemandeUIHandler handler, + DemandeUIModel demandeUIModel, + JPanel textPanePanel, + String content) { + + JTextPane textPane = createHtmlTextPane(); + + // the meta tag makes the content is not displayed + content = content.replaceAll("<meta (.*?)>(</meta>)?", ""); + + if (log.isTraceEnabled()) { + log.trace("Content before mail = " + content); + } + + for (Attachment attachment : demandeUIModel.getAttachment()) { + String key = attachment.getContentId(); + if (key == null) { + key = attachment.getOriginalFileName(); + } + + // get file content + forceAttachmentFileLoading(handler.getContext(), attachment); + AttachmentFile attachmentFile = attachment.getOriginalFile(); + File file = attachmentFile.getFile(); + + // replace the inline attachments with the extracted attachment file url + // match les patterns: + // <td background="cid:bg.gif" height="52"> + // <img border=0 src="cid:bg.gif" /> + // <img src='cid:5e9ef859-ea65-4f9b-a9fa-30d4a2c5837c' + content = content.replaceAll("(\\w+)=([\"'])cid:" + Pattern.quote(key) + "([\"'])", "$1=$2" + file.toURI() + "$3"); + + if (log.isDebugEnabled()) { + log.debug("Mapping attachment id " + key + " to file " + file.toURI()); + } + } + + if (log.isTraceEnabled()) { + log.trace("Content after mail = " + content); + } + + textPane.setText(content); + + textPanePanel.add(textPane); + + textPanePanel.add(Box.createVerticalStrut(3)); + } + + protected static JTextPane createHtmlTextPane() { + JTextPane textPane = new JTextPane(); + textPane.setEditable(false); + + textPane.setContentType("text/html"); + HTMLEditorKit htmlEditorKit = new HTMLEditorKit(); + textPane.setEditorKit(htmlEditorKit); + + textPane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, true); + Font font = new Font(Font.MONOSPACED, Font.PLAIN, 16); + textPane.setFont(font); + + textPane.addHyperlinkListener(new HyperlinkListener() { + @Override + public void hyperlinkUpdate(HyperlinkEvent e) { + if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { + FaxToMailUIUtil.openLink(e.getURL()); + } + } + }); + return textPane; + } + } -- 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/7714 in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 60049985c999781b0d5c5085bb26a13057b24701 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:23:40 2015 +0100 gestion du cas où plusieurs parties text/plain seraient dans le mail (refs #7714) --- .../ui/swing/content/demande/DemandeUIModel.java | 21 ++++++++++++++------- .../ui/swing/content/reply/ReplyFormUIHandler.java | 15 +++++++++++---- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 11 ++++++++--- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java index bc22fc0..1d5ebd9 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java @@ -44,6 +44,7 @@ import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; import com.franciaflex.faxtomail.ui.swing.content.attachment.AttachmentModelAware; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailBeanUIModel; import com.google.common.collect.Lists; +import jaxx.runtime.JAXXUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; @@ -117,7 +118,7 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU protected List<String> htmlContents; - protected String plainContent; + protected List<String> plainContents; protected String subject; @@ -335,11 +336,11 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU return StringUtils.join(ccRecipients, ", "); } - public String getPlainContent() { - if (plainContent == null) { + public List<String> getPlainContent() { + if (plainContents == null) { decomposeEmail(); } - return plainContent; + return plainContents; } public List<String> getHtmlContent() { @@ -929,7 +930,10 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU } else if (message.isMimeType("text/*")) { String content = IOUtils.toString(message.getInputStream(), charset); - plainContent = content; + if (plainContents == null) { + plainContents = new ArrayList<String>(); + } + plainContents.add(JAXXUtil.getStringValue(content)); } } catch (Exception e) { @@ -937,7 +941,7 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU log.warn("error while parsing the original email content, may come from the imported archives", e); } //may comes from the imported archives - plainContent = getOriginalEmailContent(); + plainContents = Lists.newArrayList(getOriginalEmailContent()); toRecipients = Lists.newArrayList(getRecipient()); } } @@ -965,7 +969,10 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU String content = IOUtils.toString(bp.getInputStream(), charset); if (bp.isMimeType("text/plain")) { - plainContent = content; + if (plainContents == null) { + plainContents = new ArrayList<String>(); + } + plainContents.add(JAXXUtil.getStringValue(content)); } else { if (htmlContents == null) { diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java index 8bdecde..f05b4ea 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java @@ -36,7 +36,6 @@ import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.google.common.base.Strings; import com.google.common.collect.Lists; -import jaxx.runtime.JAXXUtil; import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.io.FileUtils; @@ -46,8 +45,16 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.swing.util.Cancelable; import org.nuiton.validator.bean.simple.SimpleBeanValidator; -import javax.swing.*; -import java.awt.*; +import javax.swing.ComboBoxEditor; +import javax.swing.DefaultComboBoxModel; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JFileChooser; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.JTextPane; +import java.awt.Component; +import java.awt.Dimension; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -123,7 +130,7 @@ public class ReplyFormUIHandler extends AbstractFaxToMailUIHandler<ReplyFormUIMo model.setSubject(t("faxtomail.reply.subject", demand.getSubject())); - String plainContent = JAXXUtil.getStringValue(demand.getPlainContent()); + String plainContent = StringUtils.join(demand.getPlainContent(), "\n\n----------------\n\n"); String quotedReply = t("faxtomail.reply.message", decorate(demand.getReceptionDate()), demand.getSender(), 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 5e0e049..16ed24a 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 @@ -352,9 +352,14 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { } } else { - JTextPane textPane = new JTextPane(); - textPane.setText(demandeUIModel.getPlainContent()); - textPanePanel.add(textPane);e + contents = demandeUIModel.getPlainContent(); + + for (String content : contents) { + JTextPane textPane = new JTextPane(); + textPane.setText(content); + textPanePanel.add(textPane); + textPanePanel.add(Box.createVerticalStrut(3)); + } } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm