This is an automated email from the git hooks/post-receive script. New commit to branch feature/9101_disable_open_unmodified_attachment in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit dac305a08631ea20abb10e14653b37768938740b Author: Kevin Morin <morin@codelutin.com> Date: Thu Mar 16 11:29:39 2017 +0100 refs #9101 prise en compte de la conf canViewOriginalAttachments dans la partie cliente --- .../content/attachment/AttachmentCellEditor.java | 2 +- .../attachment/AttachmentEditorUIHandler.java | 26 ++++++++++++++++------ .../attachment/AttachmentEditorUIModel.java | 13 +++++++++++ .../ui/swing/content/attachment/AttachmentItem.css | 10 +++++++-- .../swing/content/attachment/AttachmentItem.jaxx | 6 +++-- .../content/attachment/AttachmentModelAware.java | 2 ++ .../swing/content/attachment/ButtonAttachment.java | 5 +++++ .../ui/swing/content/demande/DemandeUIModel.java | 14 ++++++++++++ 8 files changed, 66 insertions(+), 12 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentCellEditor.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentCellEditor.java index 0401a2e..b4c6355 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentCellEditor.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentCellEditor.java @@ -98,7 +98,7 @@ public class AttachmentCellEditor extends AbstractCellEditor implements TableCel DemandeTableModel tableModel = (DemandeTableModel) table.getModel(); int modelRow = table.convertRowIndexToModel(row); - final DemandeUIModel model = (DemandeUIModel) tableModel.getEntry(modelRow); + final DemandeUIModel model = tableModel.getEntry(modelRow); editorButton.init(model); 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 dc36ac0..512a73a 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 @@ -153,7 +153,17 @@ public class AttachmentEditorUIHandler extends AbstractToolbarPopupHandler<Attac return null; } - public void openAttachment(Attachment attachment) { + public void onLabelClicked(MouseEvent event, Attachment attachment) { + if (event.getClickCount() == 2) { + if (getModel().isEditable()) { + editAttachment(attachment); + } else { + openAttachment(attachment); + } + } + } + + public void openOriginalAttachment(Attachment attachment) { OpenAttachmentAction openAttachmentAction = new OpenAttachmentAction(this); openAttachmentAction.setAttachment(attachment, true); @@ -161,10 +171,12 @@ public class AttachmentEditorUIHandler extends AbstractToolbarPopupHandler<Attac getContext().getActionEngine().runAction(openAttachmentAction); } - public void onLabelClicked(MouseEvent event, Attachment attachment) { - if (event.getClickCount() == 2) { - editAttachment(attachment); - } + public void openAttachment(Attachment attachment) { + OpenAttachmentAction openAttachmentAction = new OpenAttachmentAction(this); + openAttachmentAction.setAttachment(attachment, attachment.getEditedFileName() == null); + + // run Internal to prevent multiple successive execution (#5668) + getContext().getActionEngine().runAction(openAttachmentAction); } public void editAttachment(Attachment attachment) { @@ -256,6 +268,7 @@ public class AttachmentEditorUIHandler extends AbstractToolbarPopupHandler<Attac } setEditable(getModel().isEditable()); + setOriginalViewable(getModel().isCanViewOriginalAttachments()); return this; } @@ -294,8 +307,7 @@ public class AttachmentEditorUIHandler extends AbstractToolbarPopupHandler<Attac } attachmentItem.setEditable(getModel().isEditable()); - //TODO kmorin 20170315 get it in the folder conf - attachmentItem.setOriginalViewable(false); + attachmentItem.setOriginalViewable(getModel().isCanViewOriginalAttachments()); return attachmentItem; } 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 7aabb5c..12667ea 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 @@ -46,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_CAN_VIEW_ORIGINAL_ATTACHMENTS = "canViewOriginalAttachments"; public static final String PROPERTY_INLINE_ATTACHMENTS = "inlineAttachments"; public static final String PROPERTY_SELECTED_ATTACHMENT = "selectedAttachment"; @@ -76,6 +77,8 @@ public class AttachmentEditorUIModel extends AbstractFaxToMailBeanUIModel<Attach //protected File file; protected boolean editable = true; + protected boolean canViewOriginalAttachments; + protected final List<Attachment> attachments = new ArrayList<Attachment>(); protected final List<Attachment> inlineAttachments = new ArrayList<Attachment>(); @@ -104,6 +107,16 @@ public class AttachmentEditorUIModel extends AbstractFaxToMailBeanUIModel<Attach firePropertyChange(PROPERTY_EDITABLE, oldValue, editable); } + public boolean isCanViewOriginalAttachments() { + return canViewOriginalAttachments; + } + + public void setCanViewOriginalAttachments(boolean canViewOriginalAttachments) { + Object oldValue = isCanViewOriginalAttachments(); + this.canViewOriginalAttachments = canViewOriginalAttachments; + firePropertyChange(PROPERTY_CAN_VIEW_ORIGINAL_ATTACHMENTS, oldValue, canViewOriginalAttachments); + } + public List<Attachment> getAttachment() { return attachments; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentItem.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentItem.css index c1c1e62..732a786 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentItem.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentItem.css @@ -35,7 +35,7 @@ floatable: false; } -#openAttachmentButton { +#openOriginalAttachmentButton { actionIcon: "open-file"; toolTipText: "faxtomail.attachmentEditor.action.open.tip"; visible: { isOriginalViewable() }; @@ -52,7 +52,7 @@ actionIcon: "folder_edit"; toolTipText: "faxtomail.attachmentEditor.action.openedited.tip"; enabled: { handler != null && handler.isAttachmentEditable(getAttachment()) }; - visible: { !isEditable() }; + visible: { isOriginalViewable() && !isEditable() }; } #removeAttachmentButton { @@ -61,3 +61,9 @@ enabled: { handler != null && handler.isAttachmentRemovable(getAttachment()) }; visible: { isEditable() }; } + +#openAttachmentButton { + actionIcon: "open-file"; + toolTipText: "faxtomail.attachmentEditor.action.open.tip"; + visible: { !isOriginalViewable() && !isEditable()}; +} \ No newline at end of file diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentItem.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentItem.jaxx index f6e0bf7..31aa1b6 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentItem.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentItem.jaxx @@ -43,14 +43,16 @@ <JLabel id='attachmentNameLabel' constraints='BorderLayout.CENTER' onMouseClicked="handler.onLabelClicked(event, attachment)"/> <JToolBar id='toolbar' constraints='BorderLayout.EAST'> - <JButton id='openAttachmentButton' - onActionPerformed='handler.openAttachment(attachment)'/> + <JButton id='openOriginalAttachmentButton' + onActionPerformed='handler.openOriginalAttachment(attachment)'/> <JButton id='openEditedAttachmentButton' onActionPerformed='handler.editAttachment(attachment)'/> <JButton id='editAttachmentButton' onActionPerformed='handler.editAttachment(attachment)'/> <JButton id='removeAttachmentButton' onActionPerformed='handler.removeAttachment(this)'/> + <JButton id='openAttachmentButton' + onActionPerformed='handler.openAttachment(attachment)'/> </JToolBar> </JPanel> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentModelAware.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentModelAware.java index e7c08b3..61e8e3d 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentModelAware.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentModelAware.java @@ -46,4 +46,6 @@ public interface AttachmentModelAware extends Serializable { void removeAttachment(Attachment attachment); + boolean isCanViewOriginalAttachments(); + } 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 8af8d2a..9f0ea1b 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 @@ -101,6 +101,7 @@ public class ButtonAttachment extends AbstractToolbarPopupButton<AttachmentEdito popup.getModel().removePropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, listener); popup.getModel().fromEntity(model); popup.getModel().addPropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, listener); + popup.getModel().setCanViewOriginalAttachments(model != null && model.isCanViewOriginalAttachments()); setText(getButtonText(model != null ? model.getAttachment() : null)); } @@ -112,6 +113,10 @@ public class ButtonAttachment extends AbstractToolbarPopupButton<AttachmentEdito popup.getModel().setEditable(editable); } + public void setCanViewOriginalAttachments(boolean canViewOriginalAttachments) { + popup.getModel().setCanViewOriginalAttachments(canViewOriginalAttachments); + } + @Override public void onCloseUI() { super.onCloseUI(); 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 bcf18c0..5f85f42 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 @@ -124,6 +124,8 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU protected boolean closeable; + protected Boolean canViewOriginalAttachments; + protected static final Binder<DemandeUIModel, Email> toBeanBinder = BinderFactory.newBinder(DemandeUIModel.class, Email.class); @@ -615,6 +617,18 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU firePropertyChange(Email.PROPERTY_ATTACHMENT, oldValue, getAttachment()); } + @Override + public boolean isCanViewOriginalAttachments() { + if (canViewOriginalAttachments == null) { + MailFolder folder = getMailFolder(); + while (folder.getParent() != null && folder.getCanViewOriginalAttachments() == null) { + folder = folder.getParent(); + } + canViewOriginalAttachments = folder.getCanViewOriginalAttachments(); + } + return Boolean.TRUE.equals(canViewOriginalAttachments); + } + public void setAttachment(List<Attachment> attachment) { Object oldValue = new ArrayList<Attachment>(getAttachment()); attachments.clear(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.