This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit b6b6713a243f59b48dc138a315d2e7324d611d05 Author: Kevin Morin <morin@codelutin.com> Date: Mon Aug 31 18:12:36 2015 +0200 Affichage des pj inline dans une liste séparée, affcihée ou non grâce à un bouton (refs #7421) --- .../content/attachment/AttachmentEditorUI.css | 16 ++++++++++ .../content/attachment/AttachmentEditorUI.jaxx | 6 ++-- .../attachment/AttachmentEditorUIHandler.java | 21 ++++++++++--- .../attachment/AttachmentEditorUIModel.java | 35 ++++++++++++++++++++-- .../i18n/faxtomail-ui-swing_fr_FR.properties | 4 +++ 5 files changed, 71 insertions(+), 11 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUI.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUI.css index e1522bc..d17f400 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUI.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUI.css @@ -56,6 +56,22 @@ selectionMode: { ListSelectionModel.SINGLE_SELECTION }; } +#inlineAttachmentsHidor { + hideText: { t("faxtomail.attachmentEditor.inlineAttachments.hidor.hideText", model.getInlineAttachments().size()) }; + hideTip: { t("faxtomail.attachmentEditor.inlineAttachments.hidor.hideTip", model.getInlineAttachments().size()) }; + showText: { t("faxtomail.attachmentEditor.inlineAttachments.hidor.showText", model.getInlineAttachments().size()) }; + showTip: { t("faxtomail.attachmentEditor.inlineAttachments.hidor.showTip", model.getInlineAttachments().size()) }; + target: { inlineAttachments }; + targetVisible: false; + visible: { !model.getInlineAttachments().isEmpty() }; +} + +#inlineAttachments { + editable: true; + visible: false; + selectionMode: { ListSelectionModel.SINGLE_SELECTION }; +} + #formPanel { visible: { model.isEditable() }; } 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 4702a90..b355c84 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 @@ -76,15 +76,13 @@ <row> <cell> - <HidorButton id='junkAttachmentsLabel' - target="{junkAttachments}" - targetVisible="false"/> + <HidorButton id='inlineAttachmentsHidor'/> </cell> </row> <row> <cell> - <JXTable id='junkAttachments'/> + <JXTable id='inlineAttachments'/> </cell> </row> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java index 3ef6f6f..4b1811b 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java @@ -31,6 +31,7 @@ import com.franciaflex.faxtomail.ui.swing.util.AbstractToolbarPopupHandler; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.google.common.collect.Iterables; import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.HidorButton; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; @@ -53,6 +54,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.Collection; import static org.nuiton.i18n.I18n.t; @@ -72,23 +74,34 @@ public class AttachmentEditorUIHandler extends AbstractToolbarPopupHandler<Attac ui.getFile().setDialogOwner(ui); super.afterInit(ui); - initTable(ui.getAttachments()); + initTable(ui.getAttachments(), getModel().getAttachment()); + initTable(ui.getInlineAttachments(), getModel().getInlineAttachments()); + + ui.getInlineAttachmentsHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + getUI().pack(); + } + }); getModel().addPropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { AbstractTableModel tableModel = (AbstractTableModel) getUI().getAttachments().getModel(); tableModel.fireTableDataChanged(); + tableModel = (AbstractTableModel) getUI().getInlineAttachments().getModel(); + tableModel.fireTableDataChanged(); } }); + } - protected void initTable(JXTable table) { + protected void initTable(JXTable table, final Collection<Attachment> attachmentList) { TableModel attachmentTableModel = new AbstractTableModel() { @Override public int getRowCount() { - return CollectionUtils.size(getModel().getAttachment()); + return CollectionUtils.size(attachmentList); } @Override @@ -98,7 +111,7 @@ public class AttachmentEditorUIHandler extends AbstractToolbarPopupHandler<Attac @Override public Object getValueAt(int rowIndex, int columnIndex) { - return Iterables.get(getModel().getAttachment(), rowIndex); + return Iterables.get(attachmentList, rowIndex); } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIModel.java index dd6c583..7aabb5c 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIModel.java @@ -26,6 +26,8 @@ package com.franciaflex.faxtomail.ui.swing.content.attachment; import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailBeanUIModel; +import com.google.common.base.Predicate; +import com.google.common.collect.Collections2; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.nuiton.util.beans.Binder; @@ -44,6 +46,7 @@ public class AttachmentEditorUIModel extends AbstractFaxToMailBeanUIModel<Attach //public static final String PROPERTY_FILE = "file"; public static final String PROPERTY_EDITABLE = "editable"; + public static final String PROPERTY_INLINE_ATTACHMENTS = "inlineAttachments"; public static final String PROPERTY_SELECTED_ATTACHMENT = "selectedAttachment"; public static final Comparator<Attachment> ATTACHMENT_COMPARATOR = new Comparator<Attachment>() { @@ -74,6 +77,7 @@ public class AttachmentEditorUIModel extends AbstractFaxToMailBeanUIModel<Attach protected boolean editable = true; protected final List<Attachment> attachments = new ArrayList<Attachment>(); + protected final List<Attachment> inlineAttachments = new ArrayList<Attachment>(); protected Attachment selectedAttachment; @@ -117,23 +121,48 @@ public class AttachmentEditorUIModel extends AbstractFaxToMailBeanUIModel<Attach } public void removeAttachment(Attachment attachment) { - Object oldValue = new ArrayList<Attachment>(getAttachment()); + Object oldValue = new ArrayList<>(getAttachment()); attachments.remove(attachment); firePropertyChange(AttachmentModelAware.PROPERTY_ATTACHMENT, oldValue, attachments); } public void setAttachment(List<Attachment> attachments) { - Object oldValue = new ArrayList<>(getAttachment()); + Object oldAttachmentsValue = new ArrayList<>(getAttachment()); + Object oldInlineAttachmentsValue = new ArrayList<>(getInlineAttachments()); this.attachments.clear(); + this.inlineAttachments.clear(); + if (attachments != null) { + + inlineAttachments.addAll(Collections2.filter(attachments, new Predicate<Attachment>() { + @Override + public boolean apply(Attachment input) { + return input.isInlineAttachment(); + } + })); + this.attachments.addAll(attachments); + + if (inlineAttachments.size() > 1) { + this.attachments.removeAll(inlineAttachments); + + } else { + inlineAttachments.clear(); + } + sortAttachments(); } - firePropertyChange(AttachmentModelAware.PROPERTY_ATTACHMENT, oldValue, this.attachments); + firePropertyChange(AttachmentModelAware.PROPERTY_ATTACHMENT, oldAttachmentsValue, this.attachments); + firePropertyChange(PROPERTY_INLINE_ATTACHMENTS, oldInlineAttachmentsValue, this.inlineAttachments); + } + + public List<Attachment> getInlineAttachments() { + return inlineAttachments; } public void sortAttachments() { Collections.sort(this.attachments, ATTACHMENT_COMPARATOR); + Collections.sort(this.inlineAttachments, ATTACHMENT_COMPARATOR); } public Attachment getSelectedAttachment() { 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 dffb827..120785f 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 @@ -69,6 +69,10 @@ faxtomail.attachmentEditor.attachments.empty=Aucune pièce jointe faxtomail.attachmentEditor.deleteAttachment.message=Êtes-vous sûr de vouloir supprimer la pièce-jointe %s ? faxtomail.attachmentEditor.deleteAttachment.title=Suppression de pièce-jointe faxtomail.attachmentEditor.field.file=Fichier +faxtomail.attachmentEditor.inlineAttachments.hidor.hideText=Divers (%s) +faxtomail.attachmentEditor.inlineAttachments.hidor.hideTip=Cacher les fichiers divers (%s) +faxtomail.attachmentEditor.inlineAttachments.hidor.showText=Divers (%s) +faxtomail.attachmentEditor.inlineAttachments.hidor.showTip=Afficher les fichiers divers (%s) faxtomail.attachmentEditor.none.tip=Aucune pièce-jointe faxtomail.attachmentEditor.text=Pièces jointes (%s) faxtomail.attachmentEditor.title=Pièces jointes -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.