Author: kmorin Date: 2014-06-30 13:39:20 +0200 (Mon, 30 Jun 2014) New Revision: 296 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/296 Log: - d?\195?\169sactivation de l'impression des pj non editables - d?\195?\169placement des archives dans le dossier d'archive - prise ou non de l'?\195?\169l?\195?\169ment ?\195?\160 l'impression Modified: trunk/faxtomail-persistence/src/main/resources/faxToMail.properties trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenDialogAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java Modified: trunk/faxtomail-persistence/src/main/resources/faxToMail.properties =================================================================== --- trunk/faxtomail-persistence/src/main/resources/faxToMail.properties 2014-06-30 11:16:33 UTC (rev 295) +++ trunk/faxtomail-persistence/src/main/resources/faxToMail.properties 2014-06-30 11:39:20 UTC (rev 296) @@ -24,7 +24,7 @@ hibernate.dialect=org.hibernate.dialect.H2Dialect hibernate.connection.driver_class=org.h2.Driver -hibernate.connection.url=jdbc:h2:file:/tmp/faxtomail/h2data;MODE=MSSQLServer +hibernate.connection.url=jdbc:h2:file:/tmp/faxtomail/h2data;MODE=MSSQLServer;AUTO_SERVER=TRUE hibernate.connection.username=sa hibernate.connection.password= Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveAction.java 2014-06-30 11:16:33 UTC (rev 295) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveAction.java 2014-06-30 11:39:20 UTC (rev 296) @@ -25,11 +25,17 @@ */ import com.franciaflex.faxtomail.persistence.entities.DemandStatus; +import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; +import com.google.common.base.Predicate; +import com.google.common.collect.Collections2; +import com.google.common.collect.Iterables; import javax.swing.*; +import java.util.ArrayList; +import java.util.Collection; import java.util.Date; import static org.nuiton.i18n.I18n.t; @@ -64,6 +70,24 @@ model.setArchiveDate(new Date()); model.setDemandStatus(DemandStatus.ARCHIVED); model.setTakenBy(null); + + MailFolder folder = model.getMailFolder(); + MailFolder archiveChild = null; + do { + archiveChild = Iterables.find(folder.getChildren(), new Predicate<MailFolder>() { + @Override + public boolean apply(MailFolder mailFolder) { + return mailFolder.isArchiveFolder(); + } + }); + folder = folder.getParent(); + + } while (archiveChild == null && folder != null); + + if (archiveChild != null) { + model.setMailFolder(archiveChild); + } + super.doAction(); } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenDialogAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenDialogAction.java 2014-06-30 11:16:33 UTC (rev 295) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenDialogAction.java 2014-06-30 11:39:20 UTC (rev 296) @@ -24,6 +24,8 @@ * #L% */ +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI; @@ -40,23 +42,26 @@ protected FaxToMailUI dialogContent; protected String title; protected Dimension dimension; + protected boolean takeDemand; public SaveAndOpenDialogAction(DemandeUIHandler handler, boolean modal, FaxToMailUI dialogContent, String title, - Dimension dimension) { + Dimension dimension, + boolean takeDemand) { super(handler); this.modal = modal; this.dialogContent = dialogContent; this.title = title; this.dimension = dimension; + this.takeDemand = takeDemand; } @Override public void doAction() throws Exception { DemandeUIModel model = getModel(); - if (model.getTakenBy() == null) { + if (takeDemand && model.getTakenBy() == null) { model.setTakenBy(getContext().getCurrentUser()); } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java 2014-06-30 11:16:33 UTC (rev 295) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java 2014-06-30 11:39:20 UTC (rev 296) @@ -29,6 +29,7 @@ import com.franciaflex.faxtomail.ui.swing.actions.EditAttachmentAction; import com.franciaflex.faxtomail.ui.swing.actions.OpenAttachmentAction; import com.franciaflex.faxtomail.ui.swing.util.AbstractToolbarPopupHandler; +import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; @@ -79,9 +80,6 @@ private static final Log log = LogFactory.getLog(AttachmentEditorUIHandler.class); - public static final List<String> EDITABLE_EXTENSIONS = Lists.newArrayList("PDF", "PNG", "JPG", "JPEG", "GIF", - "TIF", "BMP", "TXT"); - protected OpenAttachmentAction openAttachmentAction = new OpenAttachmentAction(this); protected EditAttachmentAction editAttachmentAction = new EditAttachmentAction(this); @@ -190,8 +188,7 @@ public void editAttachment(Attachment attachment) { AttachmentEditorUIModel model = getModel(); - String extension = FileUtil.extension(attachment.getOriginalFileName()); - if (model.isEditable() && EDITABLE_EXTENSIONS.contains(extension.toUpperCase())) { + if (model.isEditable() && FaxToMailUIUtil.isFileTypeEditable(attachment.getOriginalFileName())) { editAttachmentAction.setAttachment(attachment); getContext().getActionFactory().createUIAction(null, editAttachmentAction).actionPerformed(null); @@ -229,8 +226,8 @@ } public boolean isAttachmentEditable(Attachment attachment) { - String extension = FileUtil.extension(attachment.getOriginalFileName()); - return EDITABLE_EXTENSIONS.contains(extension.toUpperCase()) && (getModel().isEditable() || attachment.getEditedFileName() != null); + return FaxToMailUIUtil.isFileTypeEditable(attachment.getOriginalFileName()) + && (getModel().isEditable() || attachment.getEditedFileName() != null); } public boolean isAttachmentRemovable(Attachment attachment) { Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-06-30 11:16:33 UTC (rev 295) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-06-30 11:39:20 UTC (rev 296) @@ -495,7 +495,12 @@ if (attachmentFile == null) { attachmentFile = attachment.getOriginalFile(); } - FaxToMailUIUtil.print(attachmentFile, true); + boolean printable = FaxToMailUIUtil.isFileTypeEditable(attachmentFile.getFilename()); + if (printable) { + FaxToMailUIUtil.print(attachmentFile, true); + } else { + //TODO kmorin 20140629 add to errors + } } } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java 2014-06-30 11:16:33 UTC (rev 295) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java 2014-06-30 11:39:20 UTC (rev 296) @@ -328,7 +328,8 @@ true, dialogContent, t("faxtomail.chooseMailFolder.title"), - new Dimension(350, 500)); + new Dimension(350, 500), + true); getContext().getActionFactory().createUIAction(null, action).actionPerformed(null); } @@ -355,11 +356,19 @@ DemandeUI demandeUI = (DemandeUI) getTabPanel().getSelectedComponent(); AttachmentToPrintChooserUI dialogContent = new AttachmentToPrintChooserUI(ui, demandeUI.getModel()); + + MailFolder selectedFolder = getModel().getCurrentDemand().getMailFolder(); + while (selectedFolder.getParent() != null && selectedFolder.getPrintActionEqualTakeAction() == null) { + selectedFolder = selectedFolder.getParent(); + } + boolean take = Boolean.TRUE.equals(selectedFolder.getPrintActionEqualTakeAction()); + SaveAndOpenDialogAction action = new SaveAndOpenDialogAction(demandeUI.getHandler(), true, dialogContent, t("faxtomail.chooseAttachmentToPrint.title"), - new Dimension(350, 500)); + new Dimension(350, 500), + take); getContext().getActionFactory().createUIAction(null, action).actionPerformed(null); } @@ -393,7 +402,8 @@ false, dialogContent, t("faxtomail.reply.title", currentDemand.getObject()), - new Dimension(800, 600)); + new Dimension(800, 600), + true); getContext().getActionFactory().createUIAction(null, action).actionPerformed(null); } @@ -407,7 +417,8 @@ false, dialogContent, t("faxtomail.searchToGroup.title", demandeUI.getModel().getObject()), - getContext().getMainUI().getSize()); + getContext().getMainUI().getSize(), + true); getContext().getActionFactory().createUIAction(null, action).actionPerformed(null); } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java 2014-06-30 11:16:33 UTC (rev 295) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java 2014-06-30 11:39:20 UTC (rev 296) @@ -92,7 +92,6 @@ if (attachment.getOriginalFile() == null) { FaxToMailUIUtil.forceAttachmentFileLoading(getContext(), attachment); - } createCheckBox(attachment.getOriginalFile()); @@ -104,22 +103,31 @@ } protected void createCheckBox(final AttachmentFile attachmentFile) { - String attachmentName = attachmentFile != null ? attachmentFile.getFilename() : ""; - JCheckBox checkBox = new JCheckBox(attachmentName, true); + if (attachmentFile == null) { + return; + } + String attachmentName = attachmentFile.getFilename(); + boolean printable = FaxToMailUIUtil.isFileTypeEditable(attachmentName); + + JCheckBox checkBox = new JCheckBox(attachmentName, printable); + checkBox.setEnabled(printable); ui.getAttachmentPanel().add(checkBox); - getModel().addAttachmentToPrint(attachmentFile); - checkBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - log.info("state changed " + e.getStateChange()); - if (e.getStateChange() == ItemEvent.SELECTED) { - getModel().addAttachmentToPrint(attachmentFile); - } else { - getModel().removeAttachmentToPrint(attachmentFile); + if (printable) { + getModel().addAttachmentToPrint(attachmentFile); + + checkBox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + log.info("state changed " + e.getStateChange()); + if (e.getStateChange() == ItemEvent.SELECTED) { + getModel().addAttachmentToPrint(attachmentFile); + } else { + getModel().removeAttachmentToPrint(attachmentFile); + } } - } - }); + }); + } } @Override Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-06-30 11:16:33 UTC (rev 295) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-06-30 11:39:20 UTC (rev 296) @@ -63,6 +63,7 @@ import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; +import com.google.common.collect.Lists; import jaxx.runtime.JAXXObject; import jaxx.runtime.JAXXUtil; @@ -102,6 +103,9 @@ /** Logger. */ private static final Log log = LogFactory.getLog(FaxToMailUIUtil.class); + public static final List<String> EDITABLE_EXTENSIONS = Lists.newArrayList("PDF", "PNG", "JPG", "JPEG", "GIF", + "TIF", "BMP", "TXT"); + private FaxToMailUIUtil() { // never instanciate util class } @@ -272,6 +276,11 @@ return FileUtil.extension(file.getFilename()).toUpperCase().equals("TIF"); } + public static boolean isFileTypeEditable(String fileName) { + String extension = FileUtil.extension(fileName); + return EDITABLE_EXTENSIONS.contains(extension.toUpperCase()); + } + public static void setEmailContentInTextPane(DemandeUIHandler handler, JTextPane textPane, DemandeUIModel demandeUIModel) { String content = demandeUIModel.getHtmlContent(); if (content != null) {