r695 - in trunk: faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply fax
Author: kmorin Date: 2014-11-20 06:31:05 +0000 (Thu, 20 Nov 2014) New Revision: 695 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/695 Log: fixes #6137 L'application se bloque quand on veut ajouter une PJ qui n'existe pas fixes #6138 Permettre l'?\195?\169dition du formulaire en m?\195?\170me temps que l'?\195?\169dition du pdf Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/AddAttachmentAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.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/reply/ReplyFormUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-11-20 06:31:05 UTC (rev 695) @@ -548,10 +548,10 @@ } else { // TODO echatellier : pas sur qu'il faille l'ajouter tout le temps, mais sinon, le transfer se reproduira - transmissionToEdi = historyDao.create(History.PROPERTY_TYPE, HistoryType.TRANSMISSION_TO_EDI, - History.PROPERTY_MODIFICATION_DATE, new Date(), - History.PROPERTY_EMAIL, email); - email.addHistory(transmissionToEdi); +// transmissionToEdi = historyDao.create(History.PROPERTY_TYPE, HistoryType.TRANSMISSION_TO_EDI, +// History.PROPERTY_MODIFICATION_DATE, new Date(), +// History.PROPERTY_EMAIL, email); +// email.addHistory(transmissionToEdi); // passage en status email.setDemandStatus(DemandStatus.IN_PROGRESS); @@ -562,10 +562,10 @@ } else { // TODO echatellier : pas sur qu'il faille l'ajouter tout le temps, mais sinon, le transfer se reproduira - transmissionToEdi = historyDao.create(History.PROPERTY_TYPE, HistoryType.TRANSMISSION_TO_EDI, - History.PROPERTY_MODIFICATION_DATE, new Date(), - History.PROPERTY_EMAIL, email); - email.addHistory(transmissionToEdi); +// transmissionToEdi = historyDao.create(History.PROPERTY_TYPE, HistoryType.TRANSMISSION_TO_EDI, +// History.PROPERTY_MODIFICATION_DATE, new Date(), +// History.PROPERTY_EMAIL, email); +// email.addHistory(transmissionToEdi); // passage en status email.setDemandStatus(DemandStatus.IN_PROGRESS); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java 2014-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java 2014-11-20 06:31:05 UTC (rev 695) @@ -24,8 +24,7 @@ import static org.nuiton.i18n.I18n.t; -import java.awt.Color; -import java.awt.Component; +import java.awt.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.Closeable; @@ -60,12 +59,15 @@ import org.nuiton.i18n.init.DefaultI18nInitializer; import org.nuiton.jaxx.application.ApplicationBusinessException; import org.nuiton.jaxx.application.ApplicationConfiguration; +import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; +import org.nuiton.jaxx.application.swing.ApplicationUI; import org.nuiton.jaxx.application.swing.ApplicationUIContext; import org.nuiton.jaxx.application.swing.action.ApplicationActionEngine; import org.nuiton.jaxx.application.swing.action.ApplicationActionFactory; import org.nuiton.jaxx.application.swing.action.ApplicationActionUI; import org.nuiton.jaxx.application.swing.action.ApplicationUIAction; import org.nuiton.jaxx.application.swing.util.ApplicationErrorHelper; +import org.nuiton.jaxx.application.swing.util.Cancelable; import org.nuiton.util.converter.ConverterUtil; import com.franciaflex.faxtomail.FaxToMailConfiguration; @@ -559,6 +561,20 @@ this.secondaryFrame = secondaryFrame; } + public void closeSecondaryFrame() { + JFrame secondaryFrame = getSecondaryFrame(); + if (secondaryFrame != null) { + Container contentPane = secondaryFrame.getContentPane(); + if (contentPane instanceof ApplicationUI) { + ApplicationUI dialogContent = (ApplicationUI) contentPane; + AbstractApplicationUIHandler handler = dialogContent.getHandler(); + if (handler instanceof Cancelable) { + ((Cancelable) handler).cancel(); + } + } + } + } + @Override public ApplicationActionUI getActionUI() { return actionUI; Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/AddAttachmentAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/AddAttachmentAction.java 2014-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/AddAttachmentAction.java 2014-11-20 06:31:05 UTC (rev 695) @@ -48,25 +48,42 @@ } @Override + public boolean prepareAction() throws Exception { + boolean result = super.prepareAction(); + + File file = getUI().getFile().getSelectedFile(); + if (file != null && !file.exists()) { + getContext().getErrorHelper().showErrorDialog(t("faxtomail.action.attachment.add.fileDoesNotExist", + file.getPath())); + } + result = file != null && file.exists(); + return result; + } + + @Override public void doAction() throws Exception { Attachment attachment = new AttachmentImpl(); attachment.setAddedByUser(true); + File file = getUI().getFile().getSelectedFile(); - if (file != null) { - try { - // warning, this not NOT be closed (will be by blob on commit) - InputStream is = new FileInputStream(file); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - AttachmentFile attachmentFile = serviceContext.getEmailService().getAttachmentFileFromStream(is); - attachmentFile.setFilename(file.getName()); - attachment.setOriginalFile(attachmentFile); + // warning, this not NOT be closed (will be by blob on commit) + InputStream is = new FileInputStream(file); + FaxToMailServiceContext serviceContext = getContext().newServiceContext(); + AttachmentFile attachmentFile = serviceContext.getEmailService().getAttachmentFileFromStream(is); + attachmentFile.setFilename(file.getName()); + attachment.setOriginalFile(attachmentFile); + getModel().addAttachment(attachment); + } - } catch (Exception e) { - getContext().getErrorHelper().showErrorDialog(t("swing.error.cannot.copy.file"), e); - } + @Override + public void postSuccessAction() { + super.postSuccessAction(); + getUI().getFile().setSelectedFilePath(null); + } - getModel().addAttachment(attachment); - getUI().getFile().setSelectedFilePath(null); - } + @Override + public void postFailedAction(Throwable error) { + super.postFailedAction(error); + getContext().getErrorHelper().showErrorDialog(t("swing.error.cannot.copy.file")); } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java 2014-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java 2014-11-20 06:31:05 UTC (rev 695) @@ -75,13 +75,10 @@ public void postSuccessAction() { super.postSuccessAction(); MainUI mainUI = getContext().getMainUI(); - frame = getHandler().openModalFrame(dialogContent, attachment.getOriginalFileName(), mainUI.getSize()); + frame = getHandler().openFrame(dialogContent, attachment.getOriginalFileName(), mainUI.getSize()); + final Attachment attachment = this.attachment; frame.addWindowListener(new WindowAdapter() { @Override - public void windowClosing(WindowEvent e) { - } - - @Override public void windowClosed(WindowEvent e) { dialogContent.getModel().toEntity(attachment); } 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-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java 2014-11-20 06:31:05 UTC (rev 695) @@ -154,6 +154,9 @@ AttachmentEditorUIModel model = getModel(); if (model.isEditable() && FaxToMailUIUtil.isFileTypeEditable(attachment.getOriginalFileName())) { + + getContext().closeSecondaryFrame(); + editAttachmentAction.setAttachment(attachment); // run Internal to prevent multiple successive execution (#5668) getContext().getActionEngine().runAction(editAttachmentAction); 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-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-11-20 06:31:05 UTC (rev 695) @@ -613,7 +613,7 @@ } model.setTo(sender); - openFrame(dialogContent, t("faxtomail.reply.title", demand.getTitle()), new Dimension(800, 600)); + openModalFrame(dialogContent, t("faxtomail.reply.title", demand.getTitle()), new Dimension(800, 600)); } public void archive() { 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-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java 2014-11-20 06:31:05 UTC (rev 695) @@ -24,13 +24,11 @@ * #L% */ -import java.awt.Component; +import java.awt.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import javax.swing.DefaultSingleSelectionModel; -import javax.swing.JComponent; -import javax.swing.JTabbedPane; +import javax.swing.*; import com.franciaflex.faxtomail.ui.swing.actions.GoToPreviousScreenAction; import com.franciaflex.faxtomail.ui.swing.actions.SaveAndOpenChooseAttachmentToPrintAction; @@ -38,6 +36,7 @@ import com.franciaflex.faxtomail.ui.swing.actions.SaveAndOpenReplyFormAction; import com.franciaflex.faxtomail.ui.swing.actions.SaveAndOpenSearchToGroupAction; import com.franciaflex.faxtomail.ui.swing.actions.SaveDemandeAction; +import com.franciaflex.faxtomail.ui.swing.content.pdfeditor.PDFEditorUI; import jaxx.runtime.validator.swing.SwingValidator; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; @@ -48,6 +47,7 @@ import org.nuiton.jaxx.application.swing.tab.TabContainerHandler; import org.nuiton.jaxx.application.swing.tab.TabContentModel; import org.nuiton.jaxx.application.swing.tab.TabHandler; +import org.nuiton.jaxx.application.swing.util.Cancelable; import org.nuiton.jaxx.application.swing.util.CloseableUI; import com.franciaflex.faxtomail.persistence.entities.Configuration; @@ -165,6 +165,9 @@ @Override public boolean quitUI() { closeButtonPopups(); + + getContext().closeSecondaryFrame(); + JTabbedPane tabPanel = getTabPanel(); int tabCount = tabPanel.getTabCount(); boolean quit = true; @@ -301,6 +304,7 @@ public void save() { closeButtonPopups(); + getContext().closeSecondaryFrame(); DemandeUI demandeUI = (DemandeUI) getTabPanel().getSelectedComponent(); SaveDemandeAndExitAction action = new SaveDemandeAndExitAction(demandeUI.getHandler()); action.setTakeIfNotTaken(true); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java 2014-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java 2014-11-20 06:31:05 UTC (rev 695) @@ -427,7 +427,7 @@ replyModel.setCc(null); replyModel.setCci(null); - openFrame(dialogContent, t("faxtomail.reply.forward", getModel().getSubject()), new Dimension(800, 600)); + openModalFrame(dialogContent, t("faxtomail.reply.forward", getModel().getSubject()), new Dimension(800, 600)); } catch (Exception ex) { if (log.isErrorEnabled()) { Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java 2014-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java 2014-11-20 06:31:05 UTC (rev 695) @@ -230,7 +230,7 @@ AbstractFaxToMailBeanUIModel.PROPERTY_VALID); } - public void openFrame(ApplicationUI dialogContent, + public JFrame openFrame(ApplicationUI dialogContent, String title, Dimension dim) { JFrame result = new JFrame(); @@ -263,7 +263,27 @@ }); } SwingUtil.center(getContext().getMainUI(), result); + + result.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + result.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + closeFrame(getContext().getSecondaryFrame(), handler); + } + + @Override + public void windowClosed(WindowEvent e) { + Component ui = (Component) e.getSource(); + if (log.isDebugEnabled()) { + log.debug("Destroy ui " + ui); + } + JAXXUtil.destroy(ui); + } + }); + result.setVisible(true); + + return result; } /** Modified: trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties =================================================================== --- trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-11-19 12:45:09 UTC (rev 694) +++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-11-20 06:31:05 UTC (rev 695) @@ -8,6 +8,7 @@ faxtomail.about.message=<h3>FaxToMail</h3><p><strong>Outil de gestion d'emails.</strong></p><br/><p>Ce logiciel permet de router les emails reçus vers des dossiers et de les transformer en formulaires. Ils peuvent être déplacés entre dossiers pour êtres remplis par différentes personnes puis archivés.</p><p>Ce projet a été initiée en 2014 par le groupe MAC et réalisé par la société Code Lutin.</p> faxtomail.about.title=À propos de FaxToMail faxtomail.action.archive.tip=Archiver l'élément +faxtomail.action.attachment.add.fileDoesNotExist=Le fichier %s n'existe pas. Merci de choisir un autre fichier. faxtomail.action.attachment.edit.tip=Edition du fichier %s faxtomail.action.attachment.open.tip=Ouverture du fichier %s faxtomail.action.computeQuantitiesByRange.tip=Calculer les quantités par gamme @@ -233,7 +234,7 @@ faxtomail.pdfEditor.action.cancel.tip=Ne pas enregistrer les changements et fermer faxtomail.pdfEditor.action.validate=Enregistrer faxtomail.pdfEditor.action.validate.tip=Enregistrer les changements et fermer -faxtomail.pdfEditor.askSaveBeforeLeaving.save=Les modifications apportées n'ont pas été sauvegardées. +faxtomail.pdfEditor.askSaveBeforeLeaving.save=Vous avez modifié la pièce jointe mais vous n'avez pas enregistré ces modifications. faxtomail.pdfEditor.button.addCross.tip=Ajouter une croix faxtomail.pdfEditor.button.addHLine.tip=Ajouter une ligne horizontale faxtomail.pdfEditor.button.addHighlighter.tip=Ajouter un surlignement
participants (1)
-
kmorin@users.forge.codelutin.com