branch develop updated (7ebe37e4 -> 02b2fda1)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git from 7ebe37e4 Utility test, remove from build new 1a89ad78 Fix CastException new 02b2fda1 Use try-with-ressources on all closeables (partial fix) 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 02b2fda1bf84ba5194f5dabd37dca6af0d769036 Author: jcouteau <couteau@codelutin.com> Date: Tue Oct 30 17:44:13 2018 +0100 Use try-with-ressources on all closeables (partial fix) commit 1a89ad780d5838761858bf958a3220987847a260 Author: jcouteau <couteau@codelutin.com> Date: Tue Oct 30 16:01:07 2018 +0100 Fix CastException Summary of changes: .../services/service/EmailServiceImpl.java | 133 +++++++++--------- .../services/service/InitFaxToMailServiceImpl.java | 38 ++--- .../faxtomail/ui/swing/RunFaxToMail.java | 17 +-- .../swing/actions/PrintOnDefaultPrinterAction.java | 103 +++++++------- .../ui/swing/actions/ShowDemandeAction.java | 52 +++---- .../ui/swing/actions/ShowRechercheAction.java | 11 +- .../content/attachment/AttachmentCellEditor.java | 49 ++++--- .../attachment/actions/EditAttachmentAction.java | 7 +- .../content/demande/DemandeListTableFilter.java | 155 +++++++++++---------- .../content/demande/DemandeListUIHandler.java | 18 ++- .../ui/swing/content/demande/DemandeUIHandler.java | 104 ++++++++------ .../swing/content/demande/DemandesUIHandler.java | 9 +- .../actions/ComputeQuantitiesByRangeAction.java | 150 ++++++++++---------- .../demande/actions/LoadFolderEmailsAction.java | 69 ++++----- .../demande/actions/OpenForwardFormAction.java | 29 ++-- .../demande/actions/OpenReplyFormAction.java | 39 +++--- .../demande/actions/OpenTakenByFormAction.java | 11 +- .../actions/SaveAndOpenForwardFormAction.java | 5 +- .../actions/SaveAndOpenReplyFormAction.java | 5 +- .../actions/SaveAndOpenSearchToGroupAction.java | 7 +- .../content/demande/actions/SaveDemandeAction.java | 132 ++++++++---------- .../demande/actions/SaveDemandeFromListAction.java | 19 +-- .../actions/OpenGroupedDemandAction.java | 34 ++--- .../demande/replies/actions/OpenReplyAction.java | 65 ++++----- .../demande/takenby/actions/TakenByAction.java | 29 ++-- .../content/pdfeditor/PDFEditorUIHandler.java | 28 ++-- .../actions/GenerateAnnotatedAttachmentAction.java | 13 +- .../print/AttachmentToPrintChooserUIHandler.java | 40 +++--- .../ui/swing/content/reply/ReplyFormUIHandler.java | 9 +- .../reply/actions/AddAttachmentToReplyAction.java | 19 +-- .../swing/content/reply/actions/ReplyAction.java | 39 +++--- .../content/reply/actions/SenderChangedAction.java | 9 +- .../content/search/SearchToGroupUIHandler.java | 8 +- .../ui/swing/content/search/SearchUIHandler.java | 24 ++-- .../swing/content/search/actions/GroupAction.java | 13 +- .../swing/content/search/actions/SearchAction.java | 39 +++--- .../search/actions/SearchToGroupAction.java | 69 ++++----- .../transmit/MailFolderChooserUIHandler.java | 79 ++++++----- .../content/transmit/actions/TransmitAction.java | 5 +- .../ui/swing/util/AbstractFaxToMailUIHandler.java | 16 ++- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 80 ++++++----- .../faxtomail/web/job/MailFilterJobTest.java | 76 ++++++++++ 42 files changed, 1013 insertions(+), 843 deletions(-) create mode 100644 faxtomail-ui-web/src/test/java/com/franciaflex/faxtomail/web/job/MailFilterJobTest.java -- 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 develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 1a89ad780d5838761858bf958a3220987847a260 Author: jcouteau <couteau@codelutin.com> Date: Tue Oct 30 16:01:07 2018 +0100 Fix CastException --- .../ui/swing/content/demande/DemandeUIHandler.java | 46 +++++++++++----------- 1 file changed, 24 insertions(+), 22 deletions(-) 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 8204397d..ec9020fb 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 @@ -283,30 +283,32 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, } public void resize(){ - JScrollPane holder = (JScrollPane) mailBodyPanel.getComponent(0); - JTextPane pane = (JTextPane) ((JViewport) holder.getComponent(0)).getComponent(0); - - //compute box height so that it can be taken into account later on - int boxHeight = 0; - for (Component component:mailBodyPanel.getComponents()){ - if (!(component instanceof JScrollPane)){ - boxHeight += component.getHeight(); + if (mailBodyPanel.getComponent(0) instanceof JScrollPane) { + JScrollPane holder = (JScrollPane) mailBodyPanel.getComponent(0); + JTextPane pane = (JTextPane) ((JViewport) holder.getComponent(0)).getComponent(0); + + //compute box height so that it can be taken into account later on + int boxHeight = 0; + for (Component component : mailBodyPanel.getComponents()) { + if (!(component instanceof JScrollPane)) { + boxHeight += component.getHeight(); + } } - } - - holder.setPreferredSize(new Dimension(mailBodyPanel.getWidth(), pane.getHeight())); - holder.setMinimumSize(new Dimension(mailBodyPanel.getWidth(), pane.getHeight())); - - //Resize mailBodyPanel so that it takes pane height + box height - if (boxHeight < 0) { - mailBodyPanel.setPreferredSize(new Dimension(mailBodyScrollPane.getWidth() - 30, pane.getHeight() - boxHeight)); - mailBodyPanel.setMaximumSize(new Dimension(mailBodyScrollPane.getWidth() - 30, Integer.MAX_VALUE)); - } else { - mailBodyPanel.setPreferredSize(new Dimension(mailBodyScrollPane.getWidth() - 30, pane.getHeight() + boxHeight)); - mailBodyPanel.setMaximumSize(new Dimension(mailBodyScrollPane.getWidth() - 30, Integer.MAX_VALUE)); - } - mailBodyPanel.repaint(); + holder.setPreferredSize(new Dimension(mailBodyPanel.getWidth(), pane.getHeight())); + holder.setMinimumSize(new Dimension(mailBodyPanel.getWidth(), pane.getHeight())); + + //Resize mailBodyPanel so that it takes pane height + box height + if (boxHeight < 0) { + mailBodyPanel.setPreferredSize(new Dimension(mailBodyScrollPane.getWidth() - 30, pane.getHeight() - boxHeight)); + mailBodyPanel.setMaximumSize(new Dimension(mailBodyScrollPane.getWidth() - 30, Integer.MAX_VALUE)); + } else { + mailBodyPanel.setPreferredSize(new Dimension(mailBodyScrollPane.getWidth() - 30, pane.getHeight() + boxHeight)); + mailBodyPanel.setMaximumSize(new Dimension(mailBodyScrollPane.getWidth() - 30, Integer.MAX_VALUE)); + } + + mailBodyPanel.repaint(); + } } }); -- 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 develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 02b2fda1bf84ba5194f5dabd37dca6af0d769036 Author: jcouteau <couteau@codelutin.com> Date: Tue Oct 30 17:44:13 2018 +0100 Use try-with-ressources on all closeables (partial fix) --- .../services/service/EmailServiceImpl.java | 133 +++++++++--------- .../services/service/InitFaxToMailServiceImpl.java | 38 ++--- .../faxtomail/ui/swing/RunFaxToMail.java | 17 +-- .../swing/actions/PrintOnDefaultPrinterAction.java | 103 +++++++------- .../ui/swing/actions/ShowDemandeAction.java | 52 +++---- .../ui/swing/actions/ShowRechercheAction.java | 11 +- .../content/attachment/AttachmentCellEditor.java | 49 ++++--- .../attachment/actions/EditAttachmentAction.java | 7 +- .../content/demande/DemandeListTableFilter.java | 155 +++++++++++---------- .../content/demande/DemandeListUIHandler.java | 18 ++- .../ui/swing/content/demande/DemandeUIHandler.java | 58 ++++---- .../swing/content/demande/DemandesUIHandler.java | 9 +- .../actions/ComputeQuantitiesByRangeAction.java | 150 ++++++++++---------- .../demande/actions/LoadFolderEmailsAction.java | 69 ++++----- .../demande/actions/OpenForwardFormAction.java | 29 ++-- .../demande/actions/OpenReplyFormAction.java | 39 +++--- .../demande/actions/OpenTakenByFormAction.java | 11 +- .../actions/SaveAndOpenForwardFormAction.java | 5 +- .../actions/SaveAndOpenReplyFormAction.java | 5 +- .../actions/SaveAndOpenSearchToGroupAction.java | 7 +- .../content/demande/actions/SaveDemandeAction.java | 132 ++++++++---------- .../demande/actions/SaveDemandeFromListAction.java | 19 +-- .../actions/OpenGroupedDemandAction.java | 34 ++--- .../demande/replies/actions/OpenReplyAction.java | 65 ++++----- .../demande/takenby/actions/TakenByAction.java | 29 ++-- .../content/pdfeditor/PDFEditorUIHandler.java | 28 ++-- .../actions/GenerateAnnotatedAttachmentAction.java | 13 +- .../print/AttachmentToPrintChooserUIHandler.java | 40 +++--- .../ui/swing/content/reply/ReplyFormUIHandler.java | 9 +- .../reply/actions/AddAttachmentToReplyAction.java | 19 +-- .../swing/content/reply/actions/ReplyAction.java | 39 +++--- .../content/reply/actions/SenderChangedAction.java | 9 +- .../content/search/SearchToGroupUIHandler.java | 8 +- .../ui/swing/content/search/SearchUIHandler.java | 24 ++-- .../swing/content/search/actions/GroupAction.java | 13 +- .../swing/content/search/actions/SearchAction.java | 39 +++--- .../search/actions/SearchToGroupAction.java | 69 ++++----- .../transmit/MailFolderChooserUIHandler.java | 79 ++++++----- .../content/transmit/actions/TransmitAction.java | 5 +- .../ui/swing/util/AbstractFaxToMailUIHandler.java | 16 ++- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 80 ++++++----- .../faxtomail/web/job/MailFilterJobTest.java | 76 ++++++++++ 42 files changed, 989 insertions(+), 821 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index 5b9c275b..dc385221 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -1444,97 +1444,94 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe EdiReturn.PROPERTY_COMMAND_NUMBER, EdiReturn.PROPERTY_ERROR, EdiReturn.class.getSimpleName()); - Statement stat = connection.createStatement(); - // execute query - ResultSet resultSet = stat.executeQuery(query); - while (resultSet.next()) { + try(Statement stat = connection.createStatement(); + ResultSet resultSet = stat.executeQuery(query)) { - String rangeRowTopiaId = resultSet.getString(EdiReturn.PROPERTY_RANGE_ROW_TOPIA_ID); - String commandNumber = resultSet.getString(EdiReturn.PROPERTY_COMMAND_NUMBER); - String error = resultSet.getString(EdiReturn.PROPERTY_ERROR); + while (resultSet.next()) { - // manage email and range row - RangeRow rangeRow = rangeRowTopiaDao.forTopiaIdEquals(rangeRowTopiaId).findUniqueOrNull(); - if (rangeRow == null) { - if (log.isErrorEnabled()) { - log.error("Can't find rangeRow " + rangeRowTopiaId + " to update"); + String rangeRowTopiaId = resultSet.getString(EdiReturn.PROPERTY_RANGE_ROW_TOPIA_ID); + String commandNumber = resultSet.getString(EdiReturn.PROPERTY_COMMAND_NUMBER); + String error = resultSet.getString(EdiReturn.PROPERTY_ERROR); + + // manage email and range row + RangeRow rangeRow = rangeRowTopiaDao.forTopiaIdEquals(rangeRowTopiaId).findUniqueOrNull(); + if (rangeRow == null) { + if (log.isErrorEnabled()) { + log.error("Can't find rangeRow " + rangeRowTopiaId + " to update"); + } + continue; } - continue; - } - Email email = emailTopiaDao.forRangeRowContains(rangeRow).findUniqueOrNull(); - if (email == null) { - if (log.isErrorEnabled()) { - log.error("Can't find email for " + rangeRowTopiaId + " to update"); + Email email = emailTopiaDao.forRangeRowContains(rangeRow).findUniqueOrNull(); + if (email == null) { + if (log.isErrorEnabled()) { + log.error("Can't find email for " + rangeRowTopiaId + " to update"); + } + continue; } - continue; - } - rangeRowTopiaIdsInEdiReturnToDelete.add(rangeRowTopiaId); + rangeRowTopiaIdsInEdiReturnToDelete.add(rangeRowTopiaId); - Set<String> modifiedFields = new HashSet<>(); + Set<String> modifiedFields = new HashSet<>(); - if (StringUtils.isNotBlank(error)) { - //error - String oldError = email.getEdiError(); - if (StringUtils.isNotBlank(oldError)) { - error = oldError + ", " + error; + if (StringUtils.isNotBlank(error)) { + //error + String oldError = email.getEdiError(); + if (StringUtils.isNotBlank(oldError)) { + error = oldError + ", " + error; + } + email.setEdiError(error); + modifiedFields.add(Email.PROPERTY_EDI_ERROR); + + } else { + rangeRow.setCommandNumber(commandNumber); + rangeRowTopiaDao.update(rangeRow); + modifiedFields.add(Email.PROPERTY_RANGE_ROW); } - email.setEdiError(error); - modifiedFields.add(Email.PROPERTY_EDI_ERROR); - } else { - rangeRow.setCommandNumber(commandNumber); - rangeRowTopiaDao.update(rangeRow); - modifiedFields.add(Email.PROPERTY_RANGE_ROW); - } + History transmission = CollectionUtils.find(email.getHistory(), new Predicate<History>() { + @Override + public boolean evaluate(History object) { + return object.getType() == HistoryType.TRANSMISSION; + } + }); - History transmission = CollectionUtils.find(email.getHistory(), new Predicate<History>() { - @Override - public boolean evaluate(History object) { - return object.getType() == HistoryType.TRANSMISSION; + if (transmission != null) { + email.setDemandStatus(DemandStatus.QUALIFIED); + + } else { + email.setDemandStatus(DemandStatus.IN_PROGRESS); } - }); + modifiedFields.add(Email.PROPERTY_DEMAND_STATUS); - if (transmission != null) { - email.setDemandStatus(DemandStatus.QUALIFIED); + History history = historyDao.create(History.PROPERTY_TYPE, HistoryType.MODIFICATION, + History.PROPERTY_MODIFICATION_DATE, new Date(), + History.PROPERTY_EMAIL, email, + History.PROPERTY_FIELDS_JSON, AbstractFaxToMailTopiaDao.GSON_INSTANCE.toJson(modifiedFields)); - } else { - email.setDemandStatus(DemandStatus.IN_PROGRESS); - } - modifiedFields.add(Email.PROPERTY_DEMAND_STATUS); + email.addHistory(history); - History history = historyDao.create(History.PROPERTY_TYPE, HistoryType.MODIFICATION, - History.PROPERTY_MODIFICATION_DATE, new Date(), - History.PROPERTY_EMAIL, email, - History.PROPERTY_FIELDS_JSON, AbstractFaxToMailTopiaDao.GSON_INSTANCE.toJson(modifiedFields)); + history = historyDao.create(History.PROPERTY_TYPE, HistoryType.EDI_RETURN, + History.PROPERTY_MODIFICATION_DATE, new Date(), + History.PROPERTY_EMAIL, email); - email.addHistory(history); + email.addHistory(history); - history = historyDao.create(History.PROPERTY_TYPE, HistoryType.EDI_RETURN, - History.PROPERTY_MODIFICATION_DATE, new Date(), - History.PROPERTY_EMAIL, email); + emailsToUpdate.add(email); - email.addHistory(history); - - emailsToUpdate.add(email); - - importedCount++; + importedCount++; + } } - //close resultSet when finished - resultSet.close(); - // delete all rows - stat = connection.createStatement(); - stat.execute("DELETE FROM " + EdiReturn.class.getSimpleName() + - " WHERE " + EdiReturn.PROPERTY_RANGE_ROW_TOPIA_ID + - " IN ('" + StringUtils.join(rangeRowTopiaIdsInEdiReturnToDelete, "','") + "')"); + try (Statement stat = connection.createStatement()){ + stat.execute("DELETE FROM " + EdiReturn.class.getSimpleName() + + " WHERE " + EdiReturn.PROPERTY_RANGE_ROW_TOPIA_ID + + " IN ('" + StringUtils.join(rangeRowTopiaIdsInEdiReturnToDelete, "','") + "')"); + + } - //close statement when finished - stat.close(); - // useful log info (do not remove) if (importedCount > 0 && log.isInfoEnabled()) { log.info(String.format("Imported %d ediReturn rows", importedCount)); diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java index 5f890588..7815e74d 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java @@ -259,43 +259,31 @@ public class InitFaxToMailServiceImpl extends FaxToMailServiceSupport implements // email accounts File demoDirectory = getApplicationConfig().getDemoDirectory(); File emailAcountFile = new File(demoDirectory, "email_accounts.csv"); - try { - InputStream emailAccountsPropertiesStream = new FileInputStream(emailAcountFile); - if (emailAccountsPropertiesStream != null) { - getReferentielService().importEmailAccounts(emailAccountsPropertiesStream); - } - + try (InputStream emailAccountsPropertiesStream = new FileInputStream(emailAcountFile)){ + getReferentielService().importEmailAccounts(emailAccountsPropertiesStream); } catch(Exception e) { log.error("error getting the email accounts", e); } // email filters File emailFilterFile = new File(demoDirectory, "email_filters.csv"); - try { - InputStream emailFiltersPropertiesStream = new FileInputStream(emailFilterFile); - if (emailFiltersPropertiesStream != null) { - getReferentielService().importEmailFilters(emailFiltersPropertiesStream, folders); - } - + try (InputStream emailFiltersPropertiesStream = new FileInputStream(emailFilterFile)){ + getReferentielService().importEmailFilters(emailFiltersPropertiesStream, folders); } catch(Exception e) { log.error("error getting the email filters", e); } // clients and emails File clientFile = new File(demoDirectory, "fx_clients.csv"); - try { - InputStream fxClientsStream = new FileInputStream(clientFile); - if (fxClientsStream != null) { - List<Client> clients = getReferentielService().importClients(fxClientsStream); - - createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, cyrilFolder, cyril); - createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, claireFolder, claire); - createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, agatheFolder, agathe); - createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, marcFolder, marc); - createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, fredericFolder, frederic); - createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, jeanneFolder, jeanne); - } - + try (InputStream fxClientsStream = new FileInputStream(clientFile)){ + List<Client> clients = getReferentielService().importClients(fxClientsStream); + + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, cyrilFolder, cyril); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, claireFolder, claire); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, agatheFolder, agathe); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, marcFolder, marc); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, fredericFolder, frederic); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, jeanneFolder, jeanne); } catch(Exception e) { log.error("error getting the client file", e); } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/RunFaxToMail.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/RunFaxToMail.java index a2809ad7..20867118 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/RunFaxToMail.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/RunFaxToMail.java @@ -83,9 +83,8 @@ public class RunFaxToMail { final SplashScreen splashScreen = new SplashScreen("/splashscreen.png", title); splashScreen.setRemanence(500); - try { - // Create application context - FaxToMailUIContext context = FaxToMailUIContext.newContext(config); + // Create application context + try (FaxToMailUIContext context = FaxToMailUIContext.newContext(config)){ // override default exception management (after config init) Thread.setDefaultUncaughtExceptionHandler(new FaxToMailExceptionHandler(context.getErrorHelper())); @@ -105,22 +104,16 @@ public class RunFaxToMail { } } - boolean reload = false; - if (config.isFullLaunchMode()) { - if (log.isInfoEnabled()) { log.info("Full launch mode, try to update."); } - } - if (!reload) { - if (log.isInfoEnabled()) { - log.info("Will start FaxToMail..."); - } - startFaxToMail(context, true); + if (log.isInfoEnabled()) { + log.info("Will start FaxToMail..."); } + startFaxToMail(context, true); } finally { SwingUtilities.invokeLater(new Runnable() { diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/PrintOnDefaultPrinterAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/PrintOnDefaultPrinterAction.java index 54e3ce86..95eb7868 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/PrintOnDefaultPrinterAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/PrintOnDefaultPrinterAction.java @@ -96,71 +96,72 @@ public class PrintOnDefaultPrinterAction extends AbstractFaxToMailAction { } }); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - EmailService emailService = serviceContext.getEmailService(); + try (FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + EmailService emailService = serviceContext.getEmailService(); - List<File> filesToPrint = Lists.newArrayList(); + List<File> filesToPrint = Lists.newArrayList(); - for (DemandeUIModel demandeUIModel : orderedDemands) { + for (DemandeUIModel demandeUIModel : orderedDemands) { - if(!handler.isActionEnabled(demandeUIModel, MailAction.PRINT)) { - notPrintableDemands.add(demandeUIModel); + if (!handler.isActionEnabled(demandeUIModel, MailAction.PRINT)) { + notPrintableDemands.add(demandeUIModel); - } else { - if (take && (demandeUIModel.getTakenBy() == null || !takeOnlyIfNotTaken)) { - demandeUIModel.setTakenBy(currentUser); - Email persistedEmail = emailService.getFullEmailById(demandeUIModel.getTopiaId()); - Email email = demandeUIModel.toEntity(persistedEmail); - emailService.saveEmail(email, currentUser); - } + } else { + if (take && (demandeUIModel.getTakenBy() == null || !takeOnlyIfNotTaken)) { + demandeUIModel.setTakenBy(currentUser); + Email persistedEmail = emailService.getFullEmailById(demandeUIModel.getTopiaId()); + Email email = demandeUIModel.toEntity(persistedEmail); + emailService.saveEmail(email, currentUser); + } - List<String> printedFiles = new ArrayList<String>(); + List<String> printedFiles = new ArrayList<String>(); - if (printDemandDetails) { - // generate details as pdf - Email email = demandeUIModel.toEntity(); - final AttachmentFile demandDetailAttachment = emailService.getEmailDetailAsAttachment(email); - // print details - filesToPrint.add(FaxToMailUIUtil.preparePrint(demandDetailAttachment)); - printedFiles.add(demandDetailAttachment.getFilename()); - } + if (printDemandDetails) { + // generate details as pdf + Email email = demandeUIModel.toEntity(); + final AttachmentFile demandDetailAttachment = emailService.getEmailDetailAsAttachment(email); + // print details + filesToPrint.add(FaxToMailUIUtil.preparePrint(demandDetailAttachment)); + printedFiles.add(demandDetailAttachment.getFilename()); + } - for (AttachmentFile attachmentFile : attachmentsToPrintByDemand.get(demandeUIModel)) { - if (attachmentFile != null) { - if (FaxToMailUIUtil.isFileTypeEditable(attachmentFile.getFilename())) { - filesToPrint.add(FaxToMailUIUtil.preparePrint(attachmentFile)); - printedFiles.add(attachmentFile.getFilename()); - } else { - nonPrintedAttachment.put(demandeUIModel, attachmentFile); + for (AttachmentFile attachmentFile : attachmentsToPrintByDemand.get(demandeUIModel)) { + if (attachmentFile != null) { + if (FaxToMailUIUtil.isFileTypeEditable(attachmentFile.getFilename())) { + filesToPrint.add(FaxToMailUIUtil.preparePrint(attachmentFile)); + printedFiles.add(attachmentFile.getFilename()); + } else { + nonPrintedAttachment.put(demandeUIModel, attachmentFile); + } } } + + Email email = emailService.addToHistory(demandeUIModel.getTopiaId(), + HistoryType.PRINTING, + getContext().getCurrentUser(), + new Date(), + printedFiles.toArray(new String[printedFiles.size()])); + printedFileNb += printedFiles.size(); + demandeUIModel.setHistory(email.getHistory()); + demandeUIModel.setLastPrintingUser(email.getLastPrintingUser()); + demandeUIModel.setLastPrintingDate(email.getLastPrintingDate()); } + } - Email email = emailService.addToHistory(demandeUIModel.getTopiaId(), - HistoryType.PRINTING, - getContext().getCurrentUser(), - new Date(), - printedFiles.toArray(new String[printedFiles.size()])); - printedFileNb += printedFiles.size(); - demandeUIModel.setHistory(email.getHistory()); - demandeUIModel.setLastPrintingUser(email.getLastPrintingUser()); - demandeUIModel.setLastPrintingDate(email.getLastPrintingDate()); + // print another page for non printed attachments + if (!nonPrintedAttachment.isEmpty()) { + String errorPageContent = generateErrorPageStream(nonPrintedAttachment); + filesToPrint.add(FaxToMailUIUtil.preparePrintText(errorPageContent)); } - } - // print another page for non printed attachments - if (!nonPrintedAttachment.isEmpty()) { - String errorPageContent = generateErrorPageStream(nonPrintedAttachment); - filesToPrint.add(FaxToMailUIUtil.preparePrintText(errorPageContent)); + FaxToMailUIUtil.printWithPdfRenderer(t("faxtomail.print.jobName"), filesToPrint, true, getContext().getConfig(), new Function<Integer, Void>() { + @Override + public Void apply(Integer input) { + handler.showInformationMessage(t("faxtomail.print.success.message", input)); + return null; + } + }); } - - FaxToMailUIUtil.printWithPdfRenderer(t("faxtomail.print.jobName"), filesToPrint, true, getContext().getConfig(), new Function<Integer, Void>() { - @Override - public Void apply(Integer input) { - handler.showInformationMessage(t("faxtomail.print.success.message", input)); - return null; - } - }); handler.showInformationMessage(t("faxtomail.print.inProgress.message")); } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java index 3b0d1c35..1b1e97eb 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java @@ -81,8 +81,7 @@ public class ShowDemandeAction extends AbstractMainUIFaxToMailAction { if (StringUtils.isNotBlank(topiaId)) { FaxToMailUser currentUser = getContext().getCurrentUser(); - try { - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); + try (FaxToMailServiceContext serviceContext = getContext().newServiceContext()){ EmailService emailService = serviceContext.getEmailService(); // tentative de verrouillages des email existants @@ -182,34 +181,35 @@ public class ShowDemandeAction extends AbstractMainUIFaxToMailAction { DemandeUIModel currentEmail = getContext().getCurrentEmail(); if (StringUtils.isNotBlank(currentEmail.getTopiaId())) { - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - - Email email = serviceContext.getEmailService().openEmail(currentEmail.getTopiaId(), - getContext().getCurrentUser(), - takeEmail); - - MailFolder currentFolder = currentEmail.getMailFolder(); - MailFolder actualFolder = email.getMailFolder(); - if (currentFolder != null && !currentFolder.equals(actualFolder)) { - displayWarningMessage(t("faxtomail.alert.emailMoved.title"), - t("faxtomail.alert.emailMoved.message", - currentFolder.getName(), - actualFolder.getName(), - currentEmail.getTitle())); - } + try (FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + + Email email = serviceContext.getEmailService().openEmail(currentEmail.getTopiaId(), + getContext().getCurrentUser(), + takeEmail); + + MailFolder currentFolder = currentEmail.getMailFolder(); + MailFolder actualFolder = email.getMailFolder(); + if (currentFolder != null && !currentFolder.equals(actualFolder)) { + displayWarningMessage(t("faxtomail.alert.emailMoved.title"), + t("faxtomail.alert.emailMoved.message", + currentFolder.getName(), + actualFolder.getName(), + currentEmail.getTitle())); + } - currentEmail.fromEntity(email, true); + currentEmail.fromEntity(email, true); - MailFolder folder = currentEmail.getMailFolder(); - if (currentEmail.getArchiveDate() != null - || !folder.isFolderWritable() - || !currentEmail.getDemandStatus().isEditableStatus()) { - currentEmail.setEditable(false); + MailFolder folder = currentEmail.getMailFolder(); + if (currentEmail.getArchiveDate() != null + || !folder.isFolderWritable() + || !currentEmail.getDemandStatus().isEditableStatus()) { + currentEmail.setEditable(false); + } } - } - List<Client> allowedClients = getContext().getClientCache(); - currentEmail.setAllowedClients(allowedClients); + List<Client> allowedClients = getContext().getClientCache(); + currentEmail.setAllowedClients(allowedClients); + } } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowRechercheAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowRechercheAction.java index d434fd7f..58e47d33 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowRechercheAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowRechercheAction.java @@ -47,12 +47,13 @@ public class ShowRechercheAction extends AbstractChangeScreenAction { @Override public void doAction() throws Exception { - FaxToMailUIContext context = getContext(); - context.setCurrentPaginationParameter(null); + try(FaxToMailUIContext context = getContext()){ + context.setCurrentPaginationParameter(null); - FaxToMailUser currentUser = context.getCurrentUser(); - List<Client> allowedClients = context.newServiceContext().getClientService().getAllClientsForUser(currentUser); - getUI().setContextValue(allowedClients, SearchUIModel.PROPERTY_ALLOWED_CLIENTS); + FaxToMailUser currentUser = context.getCurrentUser(); + List<Client> allowedClients = context.newServiceContext().getClientService().getAllClientsForUser(currentUser); + getUI().setContextValue(allowedClients, SearchUIModel.PROPERTY_ALLOWED_CLIENTS); + } super.doAction(); } 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 613ec5a5..0c57416e 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 @@ -44,6 +44,7 @@ import javax.swing.event.CellEditorListener; import javax.swing.event.ChangeEvent; import javax.swing.table.TableCellEditor; import java.awt.*; +import java.io.IOException; import java.util.List; import java.util.ArrayList; import java.util.Date; @@ -116,35 +117,41 @@ public class AttachmentCellEditor extends AbstractCellEditor implements TableCel filename = FaxToMailUIUtil.getEditedFileName(attachment.getOriginalFileName()); } - FaxToMailServiceContext serviceContext = context.newServiceContext(); + try (FaxToMailServiceContext serviceContext = context.newServiceContext()) { + Email email = serviceContext.getEmailService().addToHistory(topiaId, + HistoryType.ATTACHMENT_OPENING, + context.getCurrentUser(), + new Date(), + filename); + + // different cas: + // depuis la liste, on doit mettre à jour Email.PROPERTY_LAST_ATTACHMENT_OPENER + // depuis l'edition d'une demande, Email.PROPERTY_HISTORY + model.fromEntityIncluding(email, Sets.newHashSet(Email.PROPERTY_HISTORY, Email.PROPERTY_LAST_ATTACHMENT_OPENER)); + } catch (IOException eee){ + log.error("Cannot create history entry",eee); + } + } + } + + @Override + public void onAttachmentEdited(Attachment attachment) { + String topiaId = model.getTopiaId(); + try (FaxToMailServiceContext serviceContext = context.newServiceContext()) { Email email = serviceContext.getEmailService().addToHistory(topiaId, - HistoryType.ATTACHMENT_OPENING, - context.getCurrentUser(), - new Date(), - filename); + HistoryType.ATTACHMENT_MODIFICATION, + context.getCurrentUser(), + new Date(), + FaxToMailUIUtil.getEditedFileName(attachment.getOriginalFileName())); // different cas: // depuis la liste, on doit mettre à jour Email.PROPERTY_LAST_ATTACHMENT_OPENER // depuis l'edition d'une demande, Email.PROPERTY_HISTORY model.fromEntityIncluding(email, Sets.newHashSet(Email.PROPERTY_HISTORY, Email.PROPERTY_LAST_ATTACHMENT_OPENER)); + } catch (IOException eee){ + log.error("Cannot create history entry",eee); } } - - @Override - public void onAttachmentEdited(Attachment attachment) { - String topiaId = model.getTopiaId(); - FaxToMailServiceContext serviceContext = context.newServiceContext(); - Email email = serviceContext.getEmailService().addToHistory(topiaId, - HistoryType.ATTACHMENT_MODIFICATION, - context.getCurrentUser(), - new Date(), - FaxToMailUIUtil.getEditedFileName(attachment.getOriginalFileName())); - - // different cas: - // depuis la liste, on doit mettre à jour Email.PROPERTY_LAST_ATTACHMENT_OPENER - // depuis l'edition d'une demande, Email.PROPERTY_HISTORY - model.fromEntityIncluding(email, Sets.newHashSet(Email.PROPERTY_HISTORY, Email.PROPERTY_LAST_ATTACHMENT_OPENER)); - } }; editorButton.getBean().addAttachmentListener(listener); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/actions/EditAttachmentAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/actions/EditAttachmentAction.java index 5ea296c6..d6330b1f 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/actions/EditAttachmentAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/actions/EditAttachmentAction.java @@ -27,6 +27,7 @@ package com.franciaflex.faxtomail.ui.swing.content.attachment.actions; import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.Stamp; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.service.UserService; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.actions.AbstractFaxToMailAction; @@ -77,8 +78,10 @@ public class EditAttachmentAction extends AbstractFaxToMailAction<AttachmentEdit FaxToMailUIUtil.forceAttachmentFileLoading(getContext(), attachment); FaxToMailUser currentUser = getContext().getCurrentUser(); - UserService userService = getContext().newServiceContext().getUserService(); - stamps = userService.getPdfEditorStamps(currentUser); + try (FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + UserService userService = serviceContext.getUserService(); + stamps = userService.getPdfEditorStamps(currentUser); + } } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListTableFilter.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListTableFilter.java index 65397c87..134d55b4 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListTableFilter.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListTableFilter.java @@ -35,6 +35,7 @@ import com.franciaflex.faxtomail.persistence.entities.Priority; import com.franciaflex.faxtomail.persistence.entities.Range; import com.franciaflex.faxtomail.persistence.entities.RangeRow; import com.franciaflex.faxtomail.persistence.entities.WaitingState; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.service.EmailService; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.content.demande.actions.LoadFolderEmailsAction; @@ -48,6 +49,7 @@ import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; import org.nuiton.util.pagination.PaginationParameter; import javax.swing.table.TableModel; +import java.io.IOException; import java.util.Calendar; import java.util.Collection; import java.util.Date; @@ -195,86 +197,89 @@ public class DemandeListTableFilter extends AbstractTableFilter<JXTable> { } JXTable dataTable = handler.getUI().getDataTable(); - EmailService emailService = handler.getContext().newServiceContext().getEmailService(); - String property = ((ColumnIdentifier) dataTable.getColumn(i).getIdentifier()).getPropertyName(); - - Set<Object> result = new HashSet<>(); - - boolean sum = false; - String[] properties; - switch (property) { - case DemandeUIModel.PROPERTY_CLIENT_CODE: - properties = new String[] { "client." + Client.PROPERTY_CODE }; - break; - - case DemandeUIModel.PROPERTY_CLIENT_NAME: - properties = new String[] { "client." + Client.PROPERTY_NAME }; - break; - - case DemandeUIModel.PROPERTY_CLIENT_BRAND: - properties = new String[] { "client." + Client.PROPERTY_BRAND }; - break; - - case DemandeUIModel.PROPERTY_REFERENCE: - properties = new String[] { "email." + Email.PROPERTY_COMPANY_REFERENCE, - "rangeRow." + RangeRow.PROPERTY_COMMAND_NUMBER }; - break; - - case Email.PROPERTY_RANGE_ROW: - properties = new String[] { "rangeRow." + RangeRow.PROPERTY_RANGE }; - break; - - case DemandeUIModel.PROPERTY_PF_NB: - properties = new String[] { "rangeRow." + RangeRow.PROPERTY_PRODUCT_QUANTITY }; - sum = true; - break; - - case DemandeUIModel.PROPERTY_SAV_NB: - properties = new String[] { "rangeRow." + RangeRow.PROPERTY_SAV_QUANTITY }; - sum = true; - break; - - case DemandeUIModel.PROPERTY_QUOTATION_NB: - properties = new String[] { "rangeRow." + RangeRow.PROPERTY_QUOTATION_QUANTITY }; - sum = true; - break; - - case Email.PROPERTY_ATTACHMENT: - case Email.PROPERTY_REPLIES: - case Email.PROPERTY_EMAIL_GROUP: - case DemandeUIModel.PROPERTY_GROUPED_DEMANDES: - return null; - - default: - properties = new String[] { "email." + property }; - } + try (FaxToMailServiceContext serviceContext = handler.getContext().newServiceContext()) { + EmailService emailService = serviceContext.getEmailService(); + String property = ((ColumnIdentifier) dataTable.getColumn(i).getIdentifier()).getPropertyName(); + + boolean sum = false; + String[] properties; + switch (property) { + case DemandeUIModel.PROPERTY_CLIENT_CODE: + properties = new String[]{"client." + Client.PROPERTY_CODE}; + break; + + case DemandeUIModel.PROPERTY_CLIENT_NAME: + properties = new String[]{"client." + Client.PROPERTY_NAME}; + break; + + case DemandeUIModel.PROPERTY_CLIENT_BRAND: + properties = new String[]{"client." + Client.PROPERTY_BRAND}; + break; + + case DemandeUIModel.PROPERTY_REFERENCE: + properties = new String[]{"email." + Email.PROPERTY_COMPANY_REFERENCE, + "rangeRow." + RangeRow.PROPERTY_COMMAND_NUMBER}; + break; + + case Email.PROPERTY_RANGE_ROW: + properties = new String[]{"rangeRow." + RangeRow.PROPERTY_RANGE}; + break; + + case DemandeUIModel.PROPERTY_PF_NB: + properties = new String[]{"rangeRow." + RangeRow.PROPERTY_PRODUCT_QUANTITY}; + sum = true; + break; + + case DemandeUIModel.PROPERTY_SAV_NB: + properties = new String[]{"rangeRow." + RangeRow.PROPERTY_SAV_QUANTITY}; + sum = true; + break; + + case DemandeUIModel.PROPERTY_QUOTATION_NB: + properties = new String[]{"rangeRow." + RangeRow.PROPERTY_QUOTATION_QUANTITY}; + sum = true; + break; + + case Email.PROPERTY_ATTACHMENT: + case Email.PROPERTY_REPLIES: + case Email.PROPERTY_EMAIL_GROUP: + case DemandeUIModel.PROPERTY_GROUPED_DEMANDES: + return null; + + default: + properties = new String[]{"email." + property}; + } - result.addAll(emailService.getDistinctValues(selectedFolder, - properties, - sum)); + Set<Object> result = new HashSet<>(emailService.getDistinctValues(selectedFolder, + properties, + sum)); - if (Email.PROPERTY_RECEPTION_DATE.equals(property)) { - Set<Object> filteredDates = new HashSet<>(); - if (log.isDebugEnabled()) { - log.debug("result size " + result.size() + " " + result); - } - for (Object o : result) { - - // le dao revoie toujours null, meme si le cas est impossible en theorie pour - // PROPERTY_RECEPTION_DATE, donc dans ce cas, on ignore le cas null - if (o != null) { - Date date = (Date) o; - Calendar cal = Calendar.getInstance(); - cal.setTime(date); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - filteredDates.add(cal.getTime()); + if (Email.PROPERTY_RECEPTION_DATE.equals(property)) { + Set<Object> filteredDates = new HashSet<>(); + if (log.isDebugEnabled()) { + log.debug("result size " + result.size() + " " + result); } + for (Object o : result) { + + // le dao revoie toujours null, meme si le cas est impossible en theorie pour + // PROPERTY_RECEPTION_DATE, donc dans ce cas, on ignore le cas null + if (o != null) { + Date date = (Date) o; + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + filteredDates.add(cal.getTime()); + } + } + result = new HashSet<>(filteredDates); } - result = new HashSet<Object>(filteredDates); - } - return result; + return result; + } catch (IOException eee) { + log.error("Cannot get distinct values for column", eee); + return null; + } } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java index dcb1f8e8..27ceb41b 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java @@ -37,6 +37,7 @@ import com.franciaflex.faxtomail.persistence.entities.MailAction; import com.franciaflex.faxtomail.persistence.entities.MailField; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.OriginalEmailImpl; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.actions.PrintOnDefaultPrinterAction; import com.franciaflex.faxtomail.ui.swing.content.demande.actions.ComputeQuantitiesByRangeAction; @@ -100,6 +101,7 @@ import java.beans.IntrospectionException; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyDescriptor; +import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; @@ -175,14 +177,18 @@ public class DemandeListUIHandler extends AbstractFaxToMailDemandListHandler<Dem public void beforeInit(DemandeListUI ui) { super.beforeInit(ui); - config = getContext().newServiceContext().getConfigurationService().getConfiguration(); + try (FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + config = serviceContext.getConfigurationService().getConfiguration(); - DemandeListUIModel model = new DemandeListUIModel(); - Collection<MailFolder> folders = getContext().newServiceContext().getMailFolderService() - .getRootMailFoldersWithReadingRights(getContext().getCurrentUser()); - model.setFolders(new ArrayList<>(folders)); + DemandeListUIModel model = new DemandeListUIModel(); + Collection<MailFolder> folders = serviceContext.getMailFolderService() + .getRootMailFoldersWithReadingRights(getContext().getCurrentUser()); + model.setFolders(new ArrayList<>(folders)); - this.ui.setContextValue(model); + this.ui.setContextValue(model); + } catch (IOException eee){ + log.error("Cannot init UI"); + } } @Override 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 ec9020fb..2ad3e718 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 @@ -79,6 +79,7 @@ import java.awt.event.KeyListener; import java.awt.image.BufferedImage; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -181,13 +182,16 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, } else { filename = FaxToMailUIUtil.getEditedFileName(attachment.getOriginalFileName()); } - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - Email email = serviceContext.getEmailService().addToHistory(topiaId, - HistoryType.ATTACHMENT_OPENING, - getContext().getCurrentUser(), - new Date(), - filename); - getModel().setHistory(email.getHistory()); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + Email email = serviceContext.getEmailService().addToHistory(topiaId, + HistoryType.ATTACHMENT_OPENING, + getContext().getCurrentUser(), + new Date(), + filename); + getModel().setHistory(email.getHistory()); + } catch (IOException eee) { + log.error("Cannot get back email history",eee); + } } } @@ -503,10 +507,13 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, if (text.length()==filterStartChars){ //init list when x chars entered - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - List<Client> clients = serviceContext.getClientService().getClientsForFolder(getContext().getCurrentMailFolder(),text); - clientComboBox.getComboBoxModel().removeAllElements(); - clientComboBox.getComboBoxModel().addAllElements(clients); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + List<Client> clients = serviceContext.getClientService().getClientsForFolder(getContext().getCurrentMailFolder(), text); + clientComboBox.getComboBoxModel().removeAllElements(); + clientComboBox.getComboBoxModel().addAllElements(clients); + } catch (IOException eee) { + log.error("Cannot populate client combobox",eee); + } } else if (text.length()<filterStartChars){ //empty list if less than x chars clientComboBox.getComboBoxModel().removeAllElements(); @@ -542,24 +549,27 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, if (log.isDebugEnabled()) { log.debug("closing: " + ui); } - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); + try (FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { - DemandeUIModel model = getModel(); + DemandeUIModel model = getModel(); - serviceContext.getEmailService().unlockEmail(model.getTopiaId()); + serviceContext.getEmailService().unlockEmail(model.getTopiaId()); - model.removePropertyChangeListener(listModelListener); - model.removePropertyChangeListener(Email.PROPERTY_DEMAND_TYPE, demandTypeListener); - for (RangeRowModel row : model.getValidRangeRowModels()) { - row.removePropertyChangeListener(rangeRowListener); - } + model.removePropertyChangeListener(listModelListener); + model.removePropertyChangeListener(Email.PROPERTY_DEMAND_TYPE, demandTypeListener); + for (RangeRowModel row : model.getValidRangeRowModels()) { + row.removePropertyChangeListener(rangeRowListener); + } - ui.getAttachmentsButton().onCloseUI(); - ui.getHistoryButton().onCloseUI(); - ui.getAttachmentsButton().getBean().removeAttachmentListener(attachmentListener); - ui.getDemandRepliesButton().onCloseUI(); + ui.getAttachmentsButton().onCloseUI(); + ui.getHistoryButton().onCloseUI(); + ui.getAttachmentsButton().getBean().removeAttachmentListener(attachmentListener); + ui.getDemandRepliesButton().onCloseUI(); - clearValidators(); + clearValidators(); + } catch (IOException eee) { + log.error("Error closing UI", eee); + } } public void closeButtonPopups() { diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java index 12f62699..1c34d869 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java @@ -28,6 +28,7 @@ import com.franciaflex.faxtomail.persistence.entities.Configuration; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.MailAction; import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.ui.swing.content.demande.actions.ArchiveAction; import com.franciaflex.faxtomail.ui.swing.content.demande.actions.SaveAndOpenChooseAttachmentToPrintAction; import com.franciaflex.faxtomail.ui.swing.content.demande.actions.SaveAndOpenForwardFormAction; @@ -54,6 +55,7 @@ import javax.swing.JTabbedPane; import java.awt.Component; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.IOException; /** * @author Kevin Morin (Code Lutin) @@ -100,7 +102,11 @@ public class DemandesUIHandler extends AbstractFaxToMailUIHandler<DemandesUIMode DemandesUIModel model = new DemandesUIModel(); - config = getContext().newServiceContext().getConfigurationService().getConfiguration(); + try(FaxToMailServiceContext faxToMailServiceContext = getContext().newServiceContext()) { + config = faxToMailServiceContext.getConfigurationService().getConfiguration(); + } catch (IOException eee) { + log.error("Error getting config", eee); + } this.ui.setContextValue(model); } @@ -110,7 +116,6 @@ public class DemandesUIHandler extends AbstractFaxToMailUIHandler<DemandesUIMode initUI(ui); DemandesUIModel model = getModel(); -// setCustomTab(0, getModel().getDemands().get(0)); model.addDemandsListener(new DemandsListener() { @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/ComputeQuantitiesByRangeAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/ComputeQuantitiesByRangeAction.java index dc6110f4..35f99939 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/ComputeQuantitiesByRangeAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/ComputeQuantitiesByRangeAction.java @@ -59,91 +59,91 @@ public class ComputeQuantitiesByRangeAction extends AbstractFaxToMailAction<Quan @Override public void doAction() throws Exception { MailFolder folder = getModel().getRootFolder(); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - QuantitiesByRange quantitiesByRange = serviceContext.getEmailService().computeQuantitiesByRange(folder); - - //inProgress demands Model building - List<RangeRowModel> inProgressRangeRows = new ArrayList<>(); - Map<Range, Quantities> inProgressQuantitiesByRangeMap = quantitiesByRange.getInProgressQuantitiesByRange(); - for (Map.Entry<Range, Quantities> entry : inProgressQuantitiesByRangeMap.entrySet()) { - RangeRowModel row = new RangeRowModel(); - row.setRange(entry.getKey()); - - Quantities quantities = entry.getValue(); - - Long productQuantity = quantities.getProductQuantity(); - if (productQuantity == null) { - productQuantity = 0L; + try (FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + QuantitiesByRange quantitiesByRange = serviceContext.getEmailService().computeQuantitiesByRange(folder); + + //inProgress demands Model building + List<RangeRowModel> inProgressRangeRows = new ArrayList<>(); + Map<Range, Quantities> inProgressQuantitiesByRangeMap = quantitiesByRange.getInProgressQuantitiesByRange(); + for (Map.Entry<Range, Quantities> entry : inProgressQuantitiesByRangeMap.entrySet()) { + RangeRowModel row = new RangeRowModel(); + row.setRange(entry.getKey()); + + Quantities quantities = entry.getValue(); + + Long productQuantity = quantities.getProductQuantity(); + if (productQuantity == null) { + productQuantity = 0L; + } + row.setProductQuantity(productQuantity.intValue()); + + Long savQuantity = quantities.getSavQuantity(); + if (savQuantity == null) { + savQuantity = 0L; + } + row.setSavQuantity(savQuantity.intValue()); + + Long quotationQuantity = quantities.getQuotationQuantity(); + if (quotationQuantity == null) { + quotationQuantity = 0L; + } + row.setQuotationQuantity(quotationQuantity.intValue()); + + inProgressRangeRows.add(row); } - row.setProductQuantity(productQuantity.intValue()); - Long savQuantity = quantities.getSavQuantity(); - if (savQuantity == null) { - savQuantity = 0L; + Quantities inProgressDemandsQuantities = quantitiesByRange.getInProgressDemandsQuantities(); + if (inProgressDemandsQuantities != null) { + RangeRowModel inProgressRow = createRangeRowModelForQuantities(inProgressDemandsQuantities, + t("faxtomail.rangeRows.quantities.subtotal.label")); + inProgressRangeRows.add(inProgressRow); } - row.setSavQuantity(savQuantity.intValue()); - Long quotationQuantity = quantities.getQuotationQuantity(); - if (quotationQuantity == null) { - quotationQuantity = 0L; + //waiting demands Model building + List<RangeRowModel> waitingRangeRows = new ArrayList<>(); + Map<Range, Quantities> waitingQuantitiesByRangeMap = quantitiesByRange.getWaitingQuantitiesByRange(); + for (Map.Entry<Range, Quantities> entry : waitingQuantitiesByRangeMap.entrySet()) { + RangeRowModel row = new RangeRowModel(); + row.setRange(entry.getKey()); + + Quantities quantities = entry.getValue(); + + Long productQuantity = quantities.getProductQuantity(); + if (productQuantity == null) { + productQuantity = 0L; + } + row.setProductQuantity(productQuantity.intValue()); + + Long savQuantity = quantities.getSavQuantity(); + if (savQuantity == null) { + savQuantity = 0L; + } + row.setSavQuantity(savQuantity.intValue()); + + Long quotationQuantity = quantities.getQuotationQuantity(); + if (quotationQuantity == null) { + quotationQuantity = 0L; + } + row.setQuotationQuantity(quotationQuantity.intValue()); + + waitingRangeRows.add(row); } - row.setQuotationQuantity(quotationQuantity.intValue()); - - inProgressRangeRows.add(row); - } - - Quantities inProgressDemandsQuantities = quantitiesByRange.getInProgressDemandsQuantities(); - if (inProgressDemandsQuantities != null) { - RangeRowModel inProgressRow = createRangeRowModelForQuantities(inProgressDemandsQuantities, - t("faxtomail.rangeRows.quantities.subtotal.label")); - inProgressRangeRows.add(inProgressRow); - } - - //waiting demands Model building - List<RangeRowModel> waitingRangeRows = new ArrayList<>(); - Map<Range, Quantities> waitingQuantitiesByRangeMap = quantitiesByRange.getWaitingQuantitiesByRange(); - for (Map.Entry<Range, Quantities> entry : waitingQuantitiesByRangeMap.entrySet()) { - RangeRowModel row = new RangeRowModel(); - row.setRange(entry.getKey()); - - Quantities quantities = entry.getValue(); - Long productQuantity = quantities.getProductQuantity(); - if (productQuantity == null) { - productQuantity = 0L; + Quantities waitingDemandsQuantities = quantitiesByRange.getWaitingQuantities(); + if (waitingDemandsQuantities != null) { + RangeRowModel waitingRow = createRangeRowModelForQuantities(waitingDemandsQuantities, + t("faxtomail.rangeRows.quantities.subtotal.label")); + waitingRangeRows.add(waitingRow); } - row.setProductQuantity(productQuantity.intValue()); - Long savQuantity = quantities.getSavQuantity(); - if (savQuantity == null) { - savQuantity = 0L; - } - row.setSavQuantity(savQuantity.intValue()); - - Long quotationQuantity = quantities.getQuotationQuantity(); - if (quotationQuantity == null) { - quotationQuantity = 0L; - } - row.setQuotationQuantity(quotationQuantity.intValue()); - - waitingRangeRows.add(row); - } + RangeRowModel totalRow = createRangeRowModelForQuantities(quantitiesByRange.getTotalQuantities(), ""); + List<RangeRowModel> totalRangeRows = new ArrayList<>(); + totalRangeRows.add(totalRow); - Quantities waitingDemandsQuantities = quantitiesByRange.getWaitingQuantities(); - if (waitingDemandsQuantities != null) { - RangeRowModel waitingRow = createRangeRowModelForQuantities(waitingDemandsQuantities, - t("faxtomail.rangeRows.quantities.subtotal.label")); - waitingRangeRows.add(waitingRow); + getModel().setEnCoursRangeRows(inProgressRangeRows); + getModel().setEnAttenteRangeRows(waitingRangeRows); + getModel().setTotalsRangeRows(totalRangeRows); } - - RangeRowModel totalRow = createRangeRowModelForQuantities(quantitiesByRange.getTotalQuantities(),""); - List<RangeRowModel> totalRangeRows = new ArrayList<>(); - totalRangeRows.add(totalRow); - - getModel().setEnCoursRangeRows(inProgressRangeRows); - getModel().setEnAttenteRangeRows(waitingRangeRows); - getModel().setTotalsRangeRows(totalRangeRows); - } protected RangeRowModel createRangeRowModelForQuantities(Quantities quantities, String label) { diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/LoadFolderEmailsAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/LoadFolderEmailsAction.java index fa0f0964..2e3ab6f8 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/LoadFolderEmailsAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/LoadFolderEmailsAction.java @@ -28,6 +28,7 @@ import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.WaitingState; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.actions.AbstractFaxToMailAction; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUI; @@ -156,45 +157,47 @@ public class LoadFolderEmailsAction extends AbstractFaxToMailAction<DemandeListU MailFolder folder = model.getSelectedFolder(); FaxToMailUser currentUser = getContext().getCurrentUser(); - PaginationResult<Email> paginationResult = getContext().newServiceContext().getEmailService() - .getEmailForFolder(folder, - currentUser, - getModel().getEmailFilter(), - model.getPaginationParameter()); - List<Email> emails = paginationResult.getElements(); - if (log.isDebugEnabled()) { - log.debug(emails.size() + " emails in folder " + folder.getName()); - } + try (FaxToMailServiceContext faxToMailServiceContext = getContext().newServiceContext()) { + PaginationResult<Email> paginationResult = faxToMailServiceContext.getEmailService() + .getEmailForFolder(folder, + currentUser, + getModel().getEmailFilter(), + model.getPaginationParameter()); + List<Email> emails = paginationResult.getElements(); + if (log.isDebugEnabled()) { + log.debug(emails.size() + " emails in folder " + folder.getName()); + } - Map<String, WaitingState> waitingStateById = Maps.uniqueIndex(getContext().getWaitingStateCache(), TopiaEntities.getTopiaIdFunction()); + Map<String, WaitingState> waitingStateById = Maps.uniqueIndex(getContext().getWaitingStateCache(), TopiaEntities.getTopiaIdFunction()); - List<DemandeUIModel> demands = new ArrayList<DemandeUIModel>(); - for (Email email : emails) { - DemandeUIModel demand = new DemandeUIModel(); - demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_MAIL_FOLDER, Email.PROPERTY_HISTORY)); - demand.recomputeValidRangeRows(); + List<DemandeUIModel> demands = new ArrayList<DemandeUIModel>(); + for (Email email : emails) { + DemandeUIModel demand = new DemandeUIModel(); + demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_MAIL_FOLDER, Email.PROPERTY_HISTORY)); + demand.recomputeValidRangeRows(); - demand.setMailFolder(folder); - demand.setEditable(folder.isFolderWritable() && demand.getDemandStatus().isEditableStatus()); - WaitingState waitingState = email.getWaitingState(); - if (waitingState != null) { - demand.setWaitingState(waitingStateById.get(waitingState.getTopiaId())); + demand.setMailFolder(folder); + demand.setEditable(folder.isFolderWritable() && demand.getDemandStatus().isEditableStatus()); + WaitingState waitingState = email.getWaitingState(); + if (waitingState != null) { + demand.setWaitingState(waitingStateById.get(waitingState.getTopiaId())); + } + demand.setValid(handler.isDemandeValid(demand)); + demands.add(demand); } - demand.setValid(handler.isDemandeValid(demand)); - demands.add(demand); - } - //FIXME enlever la rustine - if (getContext().isUseFolderCache()) { - FaxToMailUIContext.FolderData currentFolderEmails = getContext().getCurrentFolderEmails(); - currentFolderEmails.setFolder(folder); - currentFolderEmails.setDemands(demands); - currentFolderEmails.setPaginationResult(paginationResult); - } + //FIXME enlever la rustine + if (getContext().isUseFolderCache()) { + FaxToMailUIContext.FolderData currentFolderEmails = getContext().getCurrentFolderEmails(); + currentFolderEmails.setFolder(folder); + currentFolderEmails.setDemands(demands); + currentFolderEmails.setPaginationResult(paginationResult); + } - model.setEmails(demands); - model.setPaginationParameter(paginationResult.getCurrentPage()); - model.setPaginationResult(paginationResult); + model.setEmails(demands); + model.setPaginationParameter(paginationResult.getCurrentPage()); + model.setPaginationResult(paginationResult); + } } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenForwardFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenForwardFormAction.java index 37e5d67f..a375e091 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenForwardFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenForwardFormAction.java @@ -63,24 +63,25 @@ public class OpenForwardFormAction extends AbstractFaxToMailAction<DemandeListUI DemandeUIModel demand = getModel().getSelectedEmails().get(0); if (StringUtils.isNotBlank(demand.getTopiaId())) { - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - Email email = serviceContext.getEmailService().getFullEmailById(demand.getTopiaId(), getContext().getCurrentUser()); - demand.fromEntity(email); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + Email email = serviceContext.getEmailService().getFullEmailById(demand.getTopiaId(), getContext().getCurrentUser()); + demand.fromEntity(email); - getContext().setCurrentEmail(demand); + getContext().setCurrentEmail(demand); - frameContent = new ReplyFormUI(getUI()); - ReplyFormUIModel model = frameContent.getModel(); + frameContent = new ReplyFormUI(getUI()); + ReplyFormUIModel model = frameContent.getModel(); - SigningForDomain signingForDomain = null; - if (!demand.isFax() && demand.getRecipient() != null) { - signingForDomain = getContext().newServiceContext().getConfigurationService().getSigningForEmailAddress(demand.getRecipient()).orNull(); - } - model.setSigning(signingForDomain); + SigningForDomain signingForDomain = null; + if (!demand.isFax() && demand.getRecipient() != null) { + signingForDomain = serviceContext.getConfigurationService().getSigningForEmailAddress(demand.getRecipient()).orNull(); + } + model.setSigning(signingForDomain); - model.setForward(true); - model.setOriginalDemand(demand); - frameContent.getHandler().addReferences(); + model.setForward(true); + model.setOriginalDemand(demand); + frameContent.getHandler().addReferences(); + } } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyFormAction.java index 2bb82348..4c79b9e1 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyFormAction.java @@ -66,31 +66,32 @@ public class OpenReplyFormAction extends AbstractFaxToMailAction<DemandeListUIMo DemandeUIModel demand = getModel().getSelectedEmails().get(0); if (StringUtils.isNotBlank(demand.getTopiaId())) { - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - Email email = serviceContext.getEmailService().getFullEmailById(demand.getTopiaId(), getContext().getCurrentUser()); - demand.fromEntity(email); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + Email email = serviceContext.getEmailService().getFullEmailById(demand.getTopiaId(), getContext().getCurrentUser()); + demand.fromEntity(email); - getContext().setCurrentEmail(demand); + getContext().setCurrentEmail(demand); - frameContent = new ReplyFormUI(getUI()); - ReplyFormUIModel model = frameContent.getModel(); + frameContent = new ReplyFormUI(getUI()); + ReplyFormUIModel model = frameContent.getModel(); - SigningForDomain signingForDomain = null; - if (!demand.isFax() && demand.getRecipient() != null) { - signingForDomain = getContext().newServiceContext().getConfigurationService().getSigningForEmailAddress(demand.getRecipient()).orNull(); - } - model.setSigning(signingForDomain); + SigningForDomain signingForDomain = null; + if (!demand.isFax() && demand.getRecipient() != null) { + signingForDomain = serviceContext.getConfigurationService().getSigningForEmailAddress(demand.getRecipient()).orNull(); + } + model.setSigning(signingForDomain); - model.setForward(false); - model.setOriginalDemand(demand); + model.setForward(false); + model.setOriginalDemand(demand); - String sender = JAXXUtil.getStringValue(demand.getSender()); - if (demand.isFax()) { - MailFolder selectedFolder = getModel().getSelectedFolder(); - sender = FaxToMailServiceUtils.addFaxDomainToFaxNumber(sender, selectedFolder); + String sender = JAXXUtil.getStringValue(demand.getSender()); + if (demand.isFax()) { + MailFolder selectedFolder = getModel().getSelectedFolder(); + sender = FaxToMailServiceUtils.addFaxDomainToFaxNumber(sender, selectedFolder); + } + model.setTo(sender); + frameContent.getHandler().addReferences(); } - model.setTo(sender); - frameContent.getHandler().addReferences(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java index a6922956..5360f76a 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java @@ -26,6 +26,7 @@ package com.franciaflex.faxtomail.ui.swing.content.demande.actions; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.service.MailFolderService; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.actions.AbstractFaxToMailAction; @@ -69,11 +70,13 @@ public class OpenTakenByFormAction extends AbstractFaxToMailAction<DemandeListUI MailFolder folder = demand.getMailFolder(); - MailFolderService mailFolderService = getContext().newServiceContext().getMailFolderService(); - List<FaxToMailUser> users = (List<FaxToMailUser>) mailFolderService.getUsersForFolder(folder.getTopiaId()); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + MailFolderService mailFolderService = serviceContext.getMailFolderService(); + List<FaxToMailUser> users = (List<FaxToMailUser>) mailFolderService.getUsersForFolder(folder.getTopiaId()); - model.setUsers(users); - getUI().setContextValue(model); + model.setUsers(users); + getUI().setContextValue(model); + } frameContent = new TakenByFormUI(getUI()); } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenForwardFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenForwardFormAction.java index d91f5df9..939d5b53 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenForwardFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenForwardFormAction.java @@ -25,6 +25,7 @@ package com.franciaflex.faxtomail.ui.swing.content.demande.actions; */ import com.franciaflex.faxtomail.persistence.entities.SigningForDomain; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandesUIHandler; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUI; @@ -63,7 +64,9 @@ public class SaveAndOpenForwardFormAction extends SaveAndOpenModalFrameAction<Re SigningForDomain signingForDomain = null; if (!currentDemand.isFax() && currentDemand.getRecipient() != null) { - signingForDomain = getContext().newServiceContext().getConfigurationService().getSigningForEmailAddress(currentDemand.getRecipient()).orNull(); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + signingForDomain = serviceContext.getConfigurationService().getSigningForEmailAddress(currentDemand.getRecipient()).orNull(); + } } model.setSigning(signingForDomain); model.setForward(true); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyFormAction.java index e8d4b119..25adcfed 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyFormAction.java @@ -25,6 +25,7 @@ package com.franciaflex.faxtomail.ui.swing.content.demande.actions; */ import com.franciaflex.faxtomail.persistence.entities.SigningForDomain; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandesUIHandler; @@ -66,7 +67,9 @@ public class SaveAndOpenReplyFormAction extends SaveAndOpenModalFrameAction<Repl SigningForDomain signingForDomain = null; if (!currentDemand.isFax() && currentDemand.getRecipient() != null) { - signingForDomain = getContext().newServiceContext().getConfigurationService().getSigningForEmailAddress(currentDemand.getRecipient()).orNull(); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + signingForDomain = serviceContext.getConfigurationService().getSigningForEmailAddress(currentDemand.getRecipient()).orNull(); + } } model.setSigning(signingForDomain); model.setForward(false); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenSearchToGroupAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenSearchToGroupAction.java index 1b48b8e6..4218b56b 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenSearchToGroupAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenSearchToGroupAction.java @@ -26,6 +26,7 @@ package com.franciaflex.faxtomail.ui.swing.content.demande.actions; import com.franciaflex.faxtomail.persistence.entities.Client; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandesUIHandler; import com.franciaflex.faxtomail.ui.swing.content.search.SearchToGroupUI; @@ -61,8 +62,10 @@ public class SaveAndOpenSearchToGroupAction extends SaveAndOpenModalFrameAction< FaxToMailUIContext context = getContext(); FaxToMailUser currentUser = context.getCurrentUser(); - List<Client> allowedClients = context.newServiceContext().getClientService().getAllClientsForUser(currentUser); - getUI().setContextValue(allowedClients, SearchUIModel.PROPERTY_ALLOWED_CLIENTS); + try(FaxToMailServiceContext serviceContext = context.newServiceContext()) { + List<Client> allowedClients = serviceContext.getClientService().getAllClientsForUser(currentUser); + getUI().setContextValue(allowedClients, SearchUIModel.PROPERTY_ALLOWED_CLIENTS); + } frameContent = new SearchToGroupUI(getUI()); } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveDemandeAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveDemandeAction.java index 7005a1c3..5e2cd5a2 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveDemandeAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveDemandeAction.java @@ -79,90 +79,76 @@ public class SaveDemandeAction extends AbstractFaxToMailAction<DemandeUIModel, D Email persistedEmail; String topiaId = model.getTopiaId(); - FaxToMailServiceContext serviceContext = context.newServiceContext(); - if (StringUtils.isNotBlank(topiaId)) { - persistedEmail = serviceContext.getEmailService().getFullEmailById(topiaId); - } else { - persistedEmail = new EmailImpl(); - } - model.setRangeRow(persistedEmail.getRangeRow()); + try(FaxToMailServiceContext serviceContext = context.newServiceContext()) { + if (StringUtils.isNotBlank(topiaId)) { + persistedEmail = serviceContext.getEmailService().getFullEmailById(topiaId); + } else { + persistedEmail = new EmailImpl(); + } + model.setRangeRow(persistedEmail.getRangeRow()); + + Collection<RangeRowModel> rows = model.getValidRangeRowModels(); + + //remove null range rows + boolean cont = true; + while (cont) { + try { + model.removeRangeRow(null); + } catch (IllegalArgumentException eee) { + cont = false; + } + } + Collection<RangeRow> rangeRows = model.getRangeRow(); + if (rangeRows == null) { + rangeRows = new ArrayList<>(); + } - Collection<RangeRowModel> rows = model.getValidRangeRowModels(); + Map<String, RangeRow> rangeRowsById = Maps.uniqueIndex(rangeRows, TopiaEntities.getTopiaIdFunction()); - //remove null range rows - boolean cont = true; - while (cont) { - try { - model.removeRangeRow(null); - } catch (IllegalArgumentException eee) { - cont = false; + model.setRangeRow(new ArrayList<RangeRow>()); + for (RangeRowModel rangeRowModel : rows) { + RangeRow rangeRow = rangeRowsById.get(rangeRowModel.getTopiaId()); + if (rangeRow == null) { + model.addRangeRow(rangeRowModel.toEntity()); + } else { + model.addRangeRow(rangeRowModel.toEntity(rangeRow)); + } } - } - Collection<RangeRow> rangeRows = model.getRangeRow(); - if (rangeRows == null) { - rangeRows = new ArrayList<>(); - } - Map<String, RangeRow> rangeRowsById = Maps.uniqueIndex(rangeRows, TopiaEntities.getTopiaIdFunction()); + FaxToMailUser currentUser = context.getCurrentUser(); + DemandStatus demandStatus = model.getDemandStatus(); + if (demandStatus != DemandStatus.ARCHIVED && takeIfNotTaken && model.getTakenBy() == null) { + model.setTakenBy(getContext().getCurrentUser()); + } - model.setRangeRow(new ArrayList<RangeRow>()); - for (RangeRowModel rangeRowModel : rows) { - RangeRow rangeRow = rangeRowsById.get(rangeRowModel.getTopiaId()); - if (rangeRow == null) { - model.addRangeRow(rangeRowModel.toEntity()); - } else { - model.addRangeRow(rangeRowModel.toEntity(rangeRow)); + Email email = model.toEntity(persistedEmail); + if (email.getOriginalEmail() == null) { + email.setOriginalEmail(model.getOriginalEmail()); } - } - FaxToMailUser currentUser = context.getCurrentUser(); - DemandStatus demandStatus = model.getDemandStatus(); - if (demandStatus != DemandStatus.ARCHIVED && takeIfNotTaken && model.getTakenBy() == null) { - model.setTakenBy(getContext().getCurrentUser()); - } + Collection<Attachment> attachments = model.getAttachment(); + Collection<Reply> replies = model.getReplies(); - Email email = model.toEntity(persistedEmail); - if (email.getOriginalEmail() == null) { - email.setOriginalEmail(model.getOriginalEmail()); - } + BeanMonitor monitor = getHandler().getMonitor(); + String[] modifiedProperties = monitor.getModifiedProperties(); + email = serviceContext.getEmailService().saveEmail(email, attachments, replies, currentUser, modifiedProperties); - Collection<Attachment> attachments = model.getAttachment(); - Collection<Reply> replies = model.getReplies(); + model.fromEntity(email); + MailFolder folder = model.getMailFolder(); + boolean folderWritable = folder.isFolderWritable(); + if (model.getArchiveDate() != null + || !folderWritable + || !model.getDemandStatus().isEditableStatus()) { + model.setEditable(false); + } - BeanMonitor monitor = getHandler().getMonitor(); - String[] modifiedProperties = monitor.getModifiedProperties(); - email = serviceContext.getEmailService().saveEmail(email, attachments, replies, currentUser, modifiedProperties); + // reload range rows with ids + RangeTableModel rangeTableModel = (RangeTableModel) getUI().getRangeTable().getModel(); + model.recomputeValidRangeRows(); + rangeTableModel.setRows(new ArrayList<>(model.getValidRangeRowModels())); - model.fromEntity(email); - MailFolder folder = model.getMailFolder(); - boolean folderWritable = folder.isFolderWritable(); - if (model.getArchiveDate() != null - || !folderWritable - || !model.getDemandStatus().isEditableStatus()) { - model.setEditable(false); + getModel().setModify(false); + monitor.clearModified(); } - - // reload range rows with ids - RangeTableModel rangeTableModel = (RangeTableModel) getUI().getRangeTable().getModel(); - model.recomputeValidRangeRows(); - rangeTableModel.setRows(new ArrayList<RangeRowModel>(model.getValidRangeRowModels())); - - getModel().setModify(false); - monitor.clearModified(); } - -// public void postFailedAction(Throwable error) { -// -// if (error instanceof InvalidClientException) { -// DemandeUIModel model = getModel(); -//// BeanMonitor monitor = getHandler().getMonitor(); -//// String previousClientCode = (String) monitor.getOriginalValues().get(DemandeUIModel.PROPERTY_CLIENT_CODE); -// model.setClientCode(null); -// -// // reset the range rows of the model -//// BeanMonitor monitor = getHandler().getMonitor(); -//// List<RangeRow> enCoursRangeRows = (List<RangeRow>) monitor.getOriginalValues().get(Email.PROPERTY_RANGE_ROW); -//// model.setRangeRow(enCoursRangeRows); -// } -// } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveDemandeFromListAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveDemandeFromListAction.java index 9ae9ba66..d72a4b5e 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveDemandeFromListAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveDemandeFromListAction.java @@ -86,19 +86,20 @@ public class SaveDemandeFromListAction extends AbstractFaxToMailAction<DemandeLi public void doAction() throws Exception { FaxToMailUIContext context = getContext(); - FaxToMailServiceContext serviceContext = context.newServiceContext(); - EmailService emailService = serviceContext.getEmailService(); + try(FaxToMailServiceContext serviceContext = context.newServiceContext()) { + EmailService emailService = serviceContext.getEmailService(); - for (DemandeUIModel model : getModel().getSelectedEmails()) { + for (DemandeUIModel model : getModel().getSelectedEmails()) { - String topiaId = model.getTopiaId(); - Email persistedEmail = emailService.getFullEmailById(topiaId); + String topiaId = model.getTopiaId(); + Email persistedEmail = emailService.getFullEmailById(topiaId); - FaxToMailUser currentUser = context.getCurrentUser(); - Email email = model.toEntity(persistedEmail); + FaxToMailUser currentUser = context.getCurrentUser(); + Email email = model.toEntity(persistedEmail); - email = emailService.saveEmail(email, currentUser, modifiedProperties); - model.fromEntity(email); + email = emailService.saveEmail(email, currentUser, modifiedProperties); + model.fromEntity(email); + } } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/actions/OpenGroupedDemandAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/actions/OpenGroupedDemandAction.java index aa5b357c..51240144 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/actions/OpenGroupedDemandAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/actions/OpenGroupedDemandAction.java @@ -76,8 +76,7 @@ public class OpenGroupedDemandAction extends AbstractFaxToMailAction<DemandeUIMo if (StringUtils.isNotBlank(topiaId)) { FaxToMailUser currentUser = getContext().getCurrentUser(); - try { - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); + try (FaxToMailServiceContext serviceContext = getContext().newServiceContext()){ EmailService emailService = serviceContext.getEmailService(); // tentative de verrouillages des email existants @@ -165,28 +164,29 @@ public class OpenGroupedDemandAction extends AbstractFaxToMailAction<DemandeUIMo public void doAction() throws Exception { MailFolder folder = demandToOpen.getMailFolder(); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { - if (StringUtils.isNotBlank(demandToOpen.getTopiaId())) { + if (StringUtils.isNotBlank(demandToOpen.getTopiaId())) { - Email email = serviceContext.getEmailService().openEmail(demandToOpen.getTopiaId(), - getContext().getCurrentUser(), - takeEmail); + Email email = serviceContext.getEmailService().openEmail(demandToOpen.getTopiaId(), + getContext().getCurrentUser(), + takeEmail); - demandToOpen.fromEntity(email, true); - demandToOpen.recomputeValidRangeRows(); + demandToOpen.fromEntity(email, true); + demandToOpen.recomputeValidRangeRows(); + + if (demandToOpen.getArchiveDate() != null + || !folder.isFolderWritable() + || !demandToOpen.getDemandStatus().isEditableStatus()) { + demandToOpen.setEditable(false); + } + demandToOpen.setCloseable(true); - if (demandToOpen.getArchiveDate() != null - || !folder.isFolderWritable() - || !demandToOpen.getDemandStatus().isEditableStatus()) { - demandToOpen.setEditable(false); } - demandToOpen.setCloseable(true); + List<Client> allowedClients = serviceContext.getClientService().getClientsForFolder(folder); + demandToOpen.setAllowedClients(allowedClients); } - - List<Client> allowedClients = serviceContext.getClientService().getClientsForFolder(folder); - demandToOpen.setAllowedClients(allowedClients); } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/actions/OpenReplyAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/actions/OpenReplyAction.java index eb44236d..53f49f82 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/actions/OpenReplyAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/actions/OpenReplyAction.java @@ -73,40 +73,41 @@ public class OpenReplyAction extends AbstractFaxToMailAction<DemandeUIModel, Dem public void doAction() throws Exception { DemandeUIModel demand = getModel(); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - Email email = serviceContext.getEmailService().getFullEmailById(demand.getTopiaId(), getContext().getCurrentUser()); - demand.fromEntity(email); - - Reply reply = item.getReply(); - FaxToMailUIUtil.forceReplyContentLoading(getContext(), reply); - boolean forward = item.isForward(); - - frameContent = new ReplyFormUI(getUI()); - // TODO echatellier 20140804 : c'est très technique et très bas niveau, ca devrait se trouver dans les services - ReplyContent replyContent = reply.getReplyContent(); - MimeMessage message = MimeMessageUtils.createMimeMessage(null, replyContent.getSource()); - ReplyFormUIModel replyModel = frameContent.getModel(); - replyModel.setEditable(demand.isEditable()); - replyModel.setForward(forward); - replyModel.setOriginalDemand(demand); - replyModel.setReadonly(true); - replyModel.setReadSentDate(reply.getSentDate()); - replyModel.setSubject(message.getSubject()); - replyModel.setTo(StringUtils.join(message.getRecipients(MimeMessage.RecipientType.TO), " ; ")); - replyModel.setFrom(message.getFrom()[0].toString()); - if (ArrayUtils.isNotEmpty(message.getRecipients(MimeMessage.RecipientType.CC))) { - replyModel.setCc(StringUtils.join(message.getRecipients(MimeMessage.RecipientType.CC), " ; ")); - } - if (ArrayUtils.isNotEmpty(message.getRecipients(MimeMessage.RecipientType.BCC))) { - replyModel.setCci(StringUtils.join(message.getRecipients(MimeMessage.RecipientType.BCC), " ; ")); - } + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + Email email = serviceContext.getEmailService().getFullEmailById(demand.getTopiaId(), getContext().getCurrentUser()); + demand.fromEntity(email); + + Reply reply = item.getReply(); + FaxToMailUIUtil.forceReplyContentLoading(getContext(), reply); + boolean forward = item.isForward(); + + frameContent = new ReplyFormUI(getUI()); + // TODO echatellier 20140804 : c'est très technique et très bas niveau, ca devrait se trouver dans les services + ReplyContent replyContent = reply.getReplyContent(); + MimeMessage message = MimeMessageUtils.createMimeMessage(null, replyContent.getSource()); + ReplyFormUIModel replyModel = frameContent.getModel(); + replyModel.setEditable(demand.isEditable()); + replyModel.setForward(forward); + replyModel.setOriginalDemand(demand); + replyModel.setReadonly(true); + replyModel.setReadSentDate(reply.getSentDate()); + replyModel.setSubject(message.getSubject()); + replyModel.setTo(StringUtils.join(message.getRecipients(MimeMessage.RecipientType.TO), " ; ")); + replyModel.setFrom(message.getFrom()[0].toString()); + if (ArrayUtils.isNotEmpty(message.getRecipients(MimeMessage.RecipientType.CC))) { + replyModel.setCc(StringUtils.join(message.getRecipients(MimeMessage.RecipientType.CC), " ; ")); + } + if (ArrayUtils.isNotEmpty(message.getRecipients(MimeMessage.RecipientType.BCC))) { + replyModel.setCci(StringUtils.join(message.getRecipients(MimeMessage.RecipientType.BCC), " ; ")); + } - if (message.isMimeType("multipart/*")) { - handler.decomposeMultipartEmail(message, replyModel); + if (message.isMimeType("multipart/*")) { + handler.decomposeMultipartEmail(message, replyModel); - } else { - String content = FaxToMailServiceUtils.getTextFromMessage(message); - replyModel.setMessage(content); + } else { + String content = FaxToMailServiceUtils.getTextFromMessage(message); + replyModel.setMessage(content); + } } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java index f6c08931..91251a8c 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java @@ -26,6 +26,7 @@ package com.franciaflex.faxtomail.ui.swing.content.demande.takenby.actions; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.service.EmailService; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.actions.AbstractFaxToMailAction; @@ -54,25 +55,27 @@ public class TakenByAction extends AbstractFaxToMailAction<TakenByFormUIModel, T @Override public void doAction() throws Exception { FaxToMailUIContext context = getContext(); - EmailService emailService = context.newServiceContext().getEmailService(); + try(FaxToMailServiceContext serviceContext = context.newServiceContext()) { + EmailService emailService = serviceContext.getEmailService(); - FaxToMailUser user = getModel().getTakenBy(); + FaxToMailUser user = getModel().getTakenBy(); - Collection<DemandeUIModel> demands = getModel().getDemandsToTake(); + Collection<DemandeUIModel> demands = getModel().getDemandsToTake(); - List<Email> emails = new ArrayList<>(); + List<Email> emails = new ArrayList<>(); - for (DemandeUIModel demand : demands) { - Email email = demand.toEntity(); - emails.add(email); - } + for (DemandeUIModel demand : demands) { + Email email = demand.toEntity(); + emails.add(email); + } - List<Email> returnedEmails = emailService.takeBy(emails, user); + List<Email> returnedEmails = emailService.takeBy(emails, user); - for (DemandeUIModel demand : demands) { - for (Email email : returnedEmails) { - if (demand.getTopiaId().equals(email.getTopiaId())){ - demand.fromEntity(email); + for (DemandeUIModel demand : demands) { + for (Email email : returnedEmails) { + if (demand.getTopiaId().equals(email.getTopiaId())) { + demand.fromEntity(email); + } } } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java index 169859e0..731a9bff 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java @@ -476,11 +476,12 @@ public class PDFEditorUIHandler extends AbstractFaxToMailUIHandler<PDFEditorUIMo public File convertFileToPdf(AttachmentFile attachmentFile) throws IOException, DocumentException { File target = FaxToMailUIUtil.convertFileToPdf(attachmentFile); // convert content to blob - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - AttachmentFile attachmentFileNew = serviceContext.getEmailService().getAttachmentFileFromStream(new FileInputStream(target)); - attachmentFileNew.setFilename(attachmentFile.getFilename() + ".pdf"); - attachmentFileNew.setRotation(0); - getModel().setEditedFile(attachmentFileNew); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + AttachmentFile attachmentFileNew = serviceContext.getEmailService().getAttachmentFileFromStream(new FileInputStream(target)); + attachmentFileNew.setFilename(attachmentFile.getFilename() + ".pdf"); + attachmentFileNew.setRotation(0); + getModel().setEditedFile(attachmentFileNew); + } return target; } @@ -516,13 +517,16 @@ public class PDFEditorUIHandler extends AbstractFaxToMailUIHandler<PDFEditorUIMo // j'ai essayé une action vite fait mais ca ferme l'éditeur à la fin de l'action if (print) { DemandeUIModel demand = model.getDemand(); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - Email email = serviceContext.getEmailService().addToHistory(demand.getTopiaId(), - HistoryType.PRINTING, - getContext().getCurrentUser(), - new Date(), - attachmentFile.getFilename()); - demand.setHistory(email.getHistory()); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + Email email = serviceContext.getEmailService().addToHistory(demand.getTopiaId(), + HistoryType.PRINTING, + getContext().getCurrentUser(), + new Date(), + attachmentFile.getFilename()); + demand.setHistory(email.getHistory()); + } catch (IOException eee) { + log.error("Error creating history entry",eee); + } } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/actions/GenerateAnnotatedAttachmentAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/actions/GenerateAnnotatedAttachmentAction.java index 9394c898..ee5002f2 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/actions/GenerateAnnotatedAttachmentAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/actions/GenerateAnnotatedAttachmentAction.java @@ -148,12 +148,13 @@ public class GenerateAnnotatedAttachmentAction extends AbstractFaxToMailAction<P // convert content to blob InputStream is = new BufferedInputStream(new FileInputStream(target)); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - AttachmentFile attachmentFileNew = serviceContext.getEmailService().getAttachmentFileFromStream(is); - attachmentFileNew.setRotation(rotation); - String fileName = model.getOriginalFile().getFilename(); - attachmentFileNew.setFilename(FaxToMailUIUtil.getEditedFileName(fileName)); - model.setEditedFile(attachmentFileNew); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + AttachmentFile attachmentFileNew = serviceContext.getEmailService().getAttachmentFileFromStream(is); + attachmentFileNew.setRotation(rotation); + String fileName = model.getOriginalFile().getFilename(); + attachmentFileNew.setFilename(FaxToMailUIUtil.getEditedFileName(fileName)); + model.setEditedFile(attachmentFileNew); + } } protected void addHighlightToPdf(float zoom, int rotation, PdfContentByte cb, PDFEditorHighlighterUI panel) { diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java index 283a4972..c2636d4e 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java @@ -45,6 +45,7 @@ import javax.swing.*; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.io.IOException; /** * @author Kevin Morin (Code Lutin) @@ -71,27 +72,30 @@ public class AttachmentToPrintChooserUIHandler extends AbstractFaxToMailUIHandle printInlineAttachment = Boolean.TRUE.equals(folder.getPrintInlineAttachments()); // add demand details - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - EmailService emailService = serviceContext.getEmailService(); - Email email = getModel().getDemand().toEntity(); - final AttachmentFile demandDetailAttachment = emailService.getEmailDetailAsAttachment(email); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + EmailService emailService = serviceContext.getEmailService(); + Email email = getModel().getDemand().toEntity(); + final AttachmentFile demandDetailAttachment = emailService.getEmailDetailAsAttachment(email); - JCheckBox checkBox = new JCheckBox(demandDetailAttachment.getFilename(), true); - ui.getAttachmentPanel().add(checkBox); + JCheckBox checkBox = new JCheckBox(demandDetailAttachment.getFilename(), true); + ui.getAttachmentPanel().add(checkBox); - // add attached files - getModel().addAttachmentToPrint(demandDetailAttachment); - checkBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - log.info("state changed " + e.getStateChange()); - if (e.getStateChange() == ItemEvent.SELECTED) { - getModel().addAttachmentToPrint(demandDetailAttachment); - } else { - getModel().removeAttachmentToPrint(demandDetailAttachment); + // add attached files + getModel().addAttachmentToPrint(demandDetailAttachment); + checkBox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + log.info("state changed " + e.getStateChange()); + if (e.getStateChange() == ItemEvent.SELECTED) { + getModel().addAttachmentToPrint(demandDetailAttachment); + } else { + getModel().removeAttachmentToPrint(demandDetailAttachment); + } } - } - }); + }); + } catch(IOException eee) { + log.error("Error adding demand details",eee); + } for (Attachment attachment : demand.getAttachment()) { 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 bdbaedeb..52d885ba 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 @@ -31,6 +31,7 @@ import com.franciaflex.faxtomail.persistence.entities.AttachmentImpl; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.SigningForDomain; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.service.ldap.Contact; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.reply.actions.AddAttachmentToReplyAction; @@ -102,8 +103,12 @@ public class ReplyFormUIHandler extends AbstractFaxToMailUIHandler<ReplyFormUIMo ReplyFormUIModel model = new ReplyFormUIModel(); //TODO kmorin 20140813 action ? - long maxSize = getContext().newServiceContext().getConfigurationService().getEmailMaxSize(); - model.setMaxAttachmentLength(maxSize); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + long maxSize = serviceContext.getConfigurationService().getEmailMaxSize(); + model.setMaxAttachmentLength(maxSize); + } catch (IOException eee){ + log.error("Error setting maxAttachmentLength",eee); + } this.ui.setContextValue(model); } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/AddAttachmentToReplyAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/AddAttachmentToReplyAction.java index 352d5daf..ae036065 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/AddAttachmentToReplyAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/AddAttachmentToReplyAction.java @@ -26,6 +26,7 @@ package com.franciaflex.faxtomail.ui.swing.content.reply.actions; import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.persistence.entities.AttachmentFile; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.service.EmailService; import com.franciaflex.faxtomail.ui.swing.actions.AbstractFaxToMailAction; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyAttachmentModel; @@ -57,14 +58,16 @@ public class AddAttachmentToReplyAction extends AbstractFaxToMailAction<ReplyFor public void doAction() throws Exception { Attachment attachment = replyAttachmentModel.getAttachment(); if (replyAttachmentModel.getAttachmentFile() == null && attachment.isPersisted()) { - EmailService service = getContext().newServiceContext().getEmailService(); - boolean original = replyAttachmentModel.isOriginal(); - AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), - original); - if (original) { - attachment.setOriginalFile(file); - } else { - attachment.setEditedFile(file); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + EmailService service = serviceContext.getEmailService(); + boolean original = replyAttachmentModel.isOriginal(); + AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), + original); + if (original) { + attachment.setOriginalFile(file); + } else { + attachment.setEditedFile(file); + } } } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/ReplyAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/ReplyAction.java index 6bc96a95..eb45b85a 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/ReplyAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/ReplyAction.java @@ -60,27 +60,28 @@ public class ReplyAction extends AbstractFaxToMailAction<ReplyFormUIModel, Reply @Override public void doAction() throws Exception { ReplyFormUIModel model = getModel(); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - EmailService emailService = serviceContext.getEmailService(); - DemandeUIModel originalDemand = getModel().getOriginalDemand(); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + EmailService emailService = serviceContext.getEmailService(); + DemandeUIModel originalDemand = getModel().getOriginalDemand(); - Collection<AttachmentFile> attachmentFiles = Collections2.transform(model.getAttachments(), new Function<ReplyAttachmentModel, AttachmentFile>() { - @Override - public AttachmentFile apply(ReplyAttachmentModel replyAttachmentModel) { - return replyAttachmentModel.getAttachmentFile(); - } - }); - Email email = emailService.reply(model.getFrom(), - model.getTo(), - model.getCc(), - model.getCci(), - model.getSubject(), - model.getMessage(), - attachmentFiles, - originalDemand.getTopiaId(), - getContext().getCurrentUser()); + Collection<AttachmentFile> attachmentFiles = Collections2.transform(model.getAttachments(), new Function<ReplyAttachmentModel, AttachmentFile>() { + @Override + public AttachmentFile apply(ReplyAttachmentModel replyAttachmentModel) { + return replyAttachmentModel.getAttachmentFile(); + } + }); + Email email = emailService.reply(model.getFrom(), + model.getTo(), + model.getCc(), + model.getCci(), + model.getSubject(), + model.getMessage(), + attachmentFiles, + originalDemand.getTopiaId(), + getContext().getCurrentUser()); - originalDemand.fromEntityIncluding(email, Sets.newHashSet(Email.PROPERTY_REPLIES, Email.PROPERTY_HISTORY)); + originalDemand.fromEntityIncluding(email, Sets.newHashSet(Email.PROPERTY_REPLIES, Email.PROPERTY_HISTORY)); + } } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SenderChangedAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SenderChangedAction.java index 0dd185db..09bbb7a9 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SenderChangedAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SenderChangedAction.java @@ -59,10 +59,11 @@ public class SenderChangedAction extends AbstractFaxToMailAction<ReplyFormUIMode @Override public void doAction() throws Exception { ReplyFormUIModel model = getModel(); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - signingForDomain = null; - if (model.getOriginalDemand() != null && !model.getOriginalDemand().isFax() && model.getFrom() != null) { - signingForDomain = serviceContext.getConfigurationService().getSigningForEmailAddress(model.getFrom()).orNull(); + try (FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + signingForDomain = null; + if (model.getOriginalDemand() != null && !model.getOriginalDemand().isFax() && model.getFrom() != null) { + signingForDomain = serviceContext.getConfigurationService().getSigningForEmailAddress(model.getFrom()).orNull(); + } } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java index cc3a56d6..7bb4679a 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java @@ -30,6 +30,7 @@ import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.HasLabel; import com.franciaflex.faxtomail.persistence.entities.MailField; import com.franciaflex.faxtomail.persistence.entities.SearchFilter; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.search.actions.GroupAction; @@ -70,6 +71,7 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.IOException; import java.util.Arrays; import java.util.Calendar; import java.util.Date; @@ -327,7 +329,11 @@ public class SearchToGroupUIHandler extends AbstractFaxToMailDemandListHandler<S @Override public List<MailField> getColumns() { if (tableColumns == null) { - tableColumns = getContext().newServiceContext().getConfigurationService().getSearchDisplayColumns(); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + tableColumns = serviceContext.getConfigurationService().getSearchDisplayColumns(); + } catch (IOException eee) { + log.error("Error getting configuration",eee); + } } return tableColumns; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java index cfefa1e9..6d526602 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java @@ -55,6 +55,7 @@ import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.IOException; import java.util.Arrays; import java.util.Calendar; import java.util.Collections; @@ -83,20 +84,14 @@ public class SearchUIHandler extends AbstractFaxToMailDemandListHandler<SearchUI SearchUIModel searchUIModel = getContext().getSearch(); if (searchUIModel == null) { searchUIModel = new SearchUIModel(); -// searchUIModel.setTakenBy(getContext().getCurrentUser()); -// searchUIModel.setModifiedBy(getContext().getCurrentUser()); Date now = new Date(); Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, -2); Date twoMonthsAgo = cal.getTime(); -// searchUIModel.setMaxModificationDate(now); -// searchUIModel.setMinModificationDate(twoMonthsAgo); searchUIModel.setMaxReceptionDate(now); searchUIModel.setMinReceptionDate(twoMonthsAgo); - //searchUIModel.setMaxPrintingDate(now); - //searchUIModel.setMinPrintingDate(twoMonthsAgo); List<Client> allowedClients = ui.getContextValue(List.class, SearchUIModel.PROPERTY_ALLOWED_CLIENTS); searchUIModel.setAllowedClients(allowedClients); @@ -147,10 +142,13 @@ public class SearchUIHandler extends AbstractFaxToMailDemandListHandler<SearchUI if (text.length()==filterStartChars){ //init list when x chars entered - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - List<Client> clients = serviceContext.getClientService().getAllClientsForUserFilter(getContext().getCurrentUser(),text); - clientComboBox.getComboBoxModel().removeAllElements(); - clientComboBox.getComboBoxModel().addAllElements(clients); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + List<Client> clients = serviceContext.getClientService().getAllClientsForUserFilter(getContext().getCurrentUser(), text); + clientComboBox.getComboBoxModel().removeAllElements(); + clientComboBox.getComboBoxModel().addAllElements(clients); + } catch (IOException eee) { + log.error("Error initialising client combobox"); + } } else if (text.length()<filterStartChars){ //empty list if less than x chars clientComboBox.getComboBoxModel().removeAllElements(); @@ -324,7 +322,11 @@ public class SearchUIHandler extends AbstractFaxToMailDemandListHandler<SearchUI @Override public List<MailField> getColumns() { if (tableColumns == null) { - tableColumns = getContext().newServiceContext().getConfigurationService().getSearchDisplayColumns(); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + tableColumns = serviceContext.getConfigurationService().getSearchDisplayColumns(); + } catch (IOException eee) { + log.error("Error getting configuration", eee); + } } return tableColumns; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/GroupAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/GroupAction.java index 35cb0d76..0ed06294 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/GroupAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/GroupAction.java @@ -77,13 +77,14 @@ public class GroupAction extends AbstractFaxToMailAction<SearchUIModel, SearchTo @Override public void doAction() throws Exception { - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - EmailService emailService = serviceContext.getEmailService(); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + EmailService emailService = serviceContext.getEmailService(); - FaxToMailUser currentUser = getContext().getCurrentUser(); - Email email = emailService.groupEmails(currentEmail.getTopiaId(), selectedEmail.getTopiaId(), currentUser); - currentEmail.fromEntity(email); - currentEmail.setGroupedDemandes(email.getEmailGroup()); + FaxToMailUser currentUser = getContext().getCurrentUser(); + Email email = emailService.groupEmails(currentEmail.getTopiaId(), selectedEmail.getTopiaId(), currentUser); + currentEmail.fromEntity(email); + currentEmail.setGroupedDemandes(email.getEmailGroup()); + } } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/SearchAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/SearchAction.java index e486ae60..60b9bc62 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/SearchAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/SearchAction.java @@ -65,30 +65,31 @@ public class SearchAction extends AbstractFaxToMailAction<SearchUIModel, SearchU SearchFilter searchFilter = model.toEntity(); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - PaginationResult<Email> paginationResult = serviceContext.getEmailService().search(searchFilter, - getContext().getCurrentUser(), getModel().getPaginationParameter()); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + PaginationResult<Email> paginationResult = serviceContext.getEmailService().search(searchFilter, + getContext().getCurrentUser(), getModel().getPaginationParameter()); - List<Email> emails = paginationResult.getElements(); - List<DemandeUIModel> result = new ArrayList<>(); + List<Email> emails = paginationResult.getElements(); + List<DemandeUIModel> result = new ArrayList<>(); - Map<String, WaitingState> waitingStateById = Maps.uniqueIndex(getContext().getWaitingStateCache(), TopiaEntities.getTopiaIdFunction()); + Map<String, WaitingState> waitingStateById = Maps.uniqueIndex(getContext().getWaitingStateCache(), TopiaEntities.getTopiaIdFunction()); - for (Email email : emails) { - DemandeUIModel demand = new DemandeUIModel(); - demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_HISTORY)); - demand.recomputeValidRangeRows(); + for (Email email : emails) { + DemandeUIModel demand = new DemandeUIModel(); + demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_HISTORY)); + demand.recomputeValidRangeRows(); - demand.setValid(handler.isDemandeValid(demand)); - WaitingState waitingState = email.getWaitingState(); - if (waitingState != null) { - demand.setWaitingState(waitingStateById.get(waitingState.getTopiaId())); - } + demand.setValid(handler.isDemandeValid(demand)); + WaitingState waitingState = email.getWaitingState(); + if (waitingState != null) { + demand.setWaitingState(waitingStateById.get(waitingState.getTopiaId())); + } - result.add(demand); + result.add(demand); + } + model.setResults(result); + model.setPaginationParameter(paginationResult.getCurrentPage()); + model.setPaginationResult(paginationResult); } - model.setResults(result); - model.setPaginationParameter(paginationResult.getCurrentPage()); - model.setPaginationResult(paginationResult); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/SearchToGroupAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/SearchToGroupAction.java index 4751817e..75a4e682 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/SearchToGroupAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/actions/SearchToGroupAction.java @@ -64,48 +64,49 @@ public class SearchToGroupAction extends AbstractFaxToMailAction<SearchUIModel, SearchUIModel model = getModel(); SearchFilter searchFilter = model.toEntity(); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - PaginationResult<Email> paginationResult = serviceContext.getEmailService().search(searchFilter, - getContext().getCurrentUser(), getModel().getPaginationParameter()); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + PaginationResult<Email> paginationResult = serviceContext.getEmailService().search(searchFilter, + getContext().getCurrentUser(), getModel().getPaginationParameter()); - List<Email> emails = paginationResult.getElements(); - List<DemandeUIModel> result = new ArrayList<>(); + List<Email> emails = paginationResult.getElements(); + List<DemandeUIModel> result = new ArrayList<>(); - Map<String, WaitingState> waitingStateById = Maps.uniqueIndex(getContext().getWaitingStateCache(), TopiaEntities.getTopiaIdFunction()); + Map<String, WaitingState> waitingStateById = Maps.uniqueIndex(getContext().getWaitingStateCache(), TopiaEntities.getTopiaIdFunction()); - for (Email email : emails) { - DemandeUIModel demand = new DemandeUIModel(); - demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_HISTORY)); - demand.recomputeValidRangeRows(); + for (Email email : emails) { + DemandeUIModel demand = new DemandeUIModel(); + demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_HISTORY)); + demand.recomputeValidRangeRows(); - demand.setValid(handler.isDemandeValid(demand)); - WaitingState waitingState = email.getWaitingState(); - if (waitingState != null) { - demand.setWaitingState(waitingStateById.get(waitingState.getTopiaId())); + demand.setValid(handler.isDemandeValid(demand)); + WaitingState waitingState = email.getWaitingState(); + if (waitingState != null) { + demand.setWaitingState(waitingStateById.get(waitingState.getTopiaId())); + } + result.add(demand); } - result.add(demand); - } - model.setResults(result); - model.setPaginationParameter(paginationResult.getCurrentPage()); - model.setPaginationResult(paginationResult); + model.setResults(result); + model.setPaginationParameter(paginationResult.getCurrentPage()); + model.setPaginationResult(paginationResult); - getContext().addPropertyChangeListener(FaxToMailUIContext.PROPERTY_BUSY, new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - if (!getContext().isBusy()) { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - final JFrame frame = getUI().getParentContainer(JFrame.class); - if (frame != null) { - frame.toFront(); + getContext().addPropertyChangeListener(FaxToMailUIContext.PROPERTY_BUSY, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (!getContext().isBusy()) { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + final JFrame frame = getUI().getParentContainer(JFrame.class); + if (frame != null) { + frame.toFront(); + } } - } - }); - getContext().removePropertyChangeListener(FaxToMailUIContext.PROPERTY_BUSY, this); + }); + getContext().removePropertyChangeListener(FaxToMailUIContext.PROPERTY_BUSY, this); + } } - } - }); + }); + } } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java index c0637bf1..bbfdb562 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java @@ -32,6 +32,8 @@ import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.franciaflex.faxtomail.ui.swing.util.FolderTreeNode; import jaxx.runtime.validator.swing.SwingValidator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.swing.util.Cancelable; import javax.swing.JComponent; @@ -40,6 +42,7 @@ import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import java.awt.Component; +import java.io.IOException; import java.util.Collection; import java.util.HashSet; import java.util.Map; @@ -51,6 +54,9 @@ import java.util.Set; */ public class MailFolderChooserUIHandler extends AbstractFaxToMailUIHandler<MailFolderChooserUIModel, MailFolderChooserUI> implements Cancelable { + /** Logger. */ + private static final Log log = LogFactory.getLog(AbstractFaxToMailUIHandler.class); + @Override public void afterInit(MailFolderChooserUI mailFolderChooserUI) { initUI(mailFolderChooserUI); @@ -66,47 +72,50 @@ public class MailFolderChooserUIHandler extends AbstractFaxToMailUIHandler<MailF } } - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - Collection<MailFolder> foldersWithWaitingState = null; - // foldersWithWaitingState reste à null dans le cas ou l'arbre ne doit pas être filtré - // sinon l'appel peut renvoyer une liste de vide dans le cas où aucun dossier n'est selectionnable - if (!allWaitingStates.isEmpty()) { - foldersWithWaitingState = serviceContext.getMailFolderService().getFoldersWithWaitingState(allWaitingStates); - } + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + Collection<MailFolder> foldersWithWaitingState = null; + // foldersWithWaitingState reste à null dans le cas ou l'arbre ne doit pas être filtré + // sinon l'appel peut renvoyer une liste de vide dans le cas où aucun dossier n'est selectionnable + if (!allWaitingStates.isEmpty()) { + foldersWithWaitingState = serviceContext.getMailFolderService().getFoldersWithWaitingState(allWaitingStates); + } - // init tree - Collection<MailFolder> folders = serviceContext.getMailFolderService(). - getRootMailFoldersWithMoveRights(getContext().getCurrentUser()); - JTree navigationTree = ui.getNavigationTree(); + // init tree + Collection<MailFolder> folders = serviceContext.getMailFolderService(). + getRootMailFoldersWithMoveRights(getContext().getCurrentUser()); + JTree navigationTree = ui.getNavigationTree(); - Map<MailFolder, FolderTreeNode> nodesByFolder = - FaxToMailUIUtil.initFolderTree(getContext(), navigationTree, folders, false); + Map<MailFolder, FolderTreeNode> nodesByFolder = + FaxToMailUIUtil.initFolderTree(getContext(), navigationTree, folders, false); - for (Map.Entry<MailFolder, FolderTreeNode> entry : nodesByFolder.entrySet()) { - FolderTreeNode node = nodesByFolder.get(entry.getKey()); + for (Map.Entry<MailFolder, FolderTreeNode> entry : nodesByFolder.entrySet()) { + FolderTreeNode node = nodesByFolder.get(entry.getKey()); - // le dossier n'est pas grisé si: - // - le n'est pas le dossier courrant - // - l'utilsateur à les droits sur le dossier - // - le dossier cible à les mêmes etatAttente/typeDemande que toutes les demandes à bouger - node.setCanSelect(!currentMailFolder.equals(entry.getKey()) && entry.getKey().isFolderMoveable() && - (foldersWithWaitingState == null || foldersWithWaitingState.contains(entry.getKey()))); - } + // le dossier n'est pas grisé si: + // - le n'est pas le dossier courrant + // - l'utilsateur à les droits sur le dossier + // - le dossier cible à les mêmes etatAttente/typeDemande que toutes les demandes à bouger + node.setCanSelect(!currentMailFolder.equals(entry.getKey()) && entry.getKey().isFolderMoveable() && + (foldersWithWaitingState == null || foldersWithWaitingState.contains(entry.getKey()))); + } - navigationTree.addTreeSelectionListener(new TreeSelectionListener() { - @Override - public void valueChanged(TreeSelectionEvent e) { - FolderTreeNode folderNode = (FolderTreeNode) e.getPath().getLastPathComponent(); - MailFolder folder = folderNode.getMailFolder(); - if (!folderNode.isCanSelect()) { - folder = null; + navigationTree.addTreeSelectionListener(new TreeSelectionListener() { + @Override + public void valueChanged(TreeSelectionEvent e) { + FolderTreeNode folderNode = (FolderTreeNode) e.getPath().getLastPathComponent(); + MailFolder folder = folderNode.getMailFolder(); + if (!folderNode.isCanSelect()) { + folder = null; + } + getModel().setMailFolder(folder); } - getModel().setMailFolder(folder); - } - }); - - // fix jaxx binding, apparement, il faut lui refaire un set null - getModel().setMailFolder(null); + }); + + // fix jaxx binding, apparement, il faut lui refaire un set null + getModel().setMailFolder(null); + } catch (IOException eee) { + log.error("Error initialising UI", eee); + } } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/actions/TransmitAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/actions/TransmitAction.java index 600cc54f..af921a02 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/actions/TransmitAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/actions/TransmitAction.java @@ -25,6 +25,7 @@ package com.franciaflex.faxtomail.ui.swing.content.transmit.actions; */ import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.ui.swing.actions.AbstractFaxToMailAction; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUI; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIHandler; @@ -116,7 +117,9 @@ public class TransmitAction extends AbstractFaxToMailAction<MailFolderChooserUIM return demandeUIModel.getTopiaId(); } }); - getContext().newServiceContext().getEmailService().transmit(emailIds, model.getMailFolder(), getContext().getCurrentUser()); + try(FaxToMailServiceContext faxToMailServiceContext = getContext().newServiceContext()) { + faxToMailServiceContext.getEmailService().transmit(emailIds, model.getMailFolder(), getContext().getCurrentUser()); + } } @Override diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java index 05e4a9ba..992384bc 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java @@ -29,6 +29,7 @@ import com.franciaflex.faxtomail.persistence.entities.MailAction; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.WaitingState; import com.franciaflex.faxtomail.services.DecoratorService; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; @@ -80,6 +81,7 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.IOException; import java.io.Serializable; import java.lang.reflect.Method; import java.util.ArrayList; @@ -137,12 +139,18 @@ public abstract class AbstractFaxToMailUIHandler<M, UI extends FaxToMailUI<M, ?> @Override public <O> Decorator<O> getDecorator(Class<O> type, String name) { - DecoratorService decoratorService = getContext().newServiceContext().getDecoratorService(); + try(FaxToMailServiceContext serviceContext = getContext().newServiceContext()) { + DecoratorService decoratorService = serviceContext.getDecoratorService(); - Preconditions.checkNotNull(type); + Preconditions.checkNotNull(type); - Decorator<O> decorator = decoratorService.getDecoratorByType(type, name); - return decorator; + Decorator<O> decorator = decoratorService.getDecoratorByType(type, name); + return decorator; + } catch (IOException eee) { + log.error("Error while getting decorator",eee); + } + + return null; } // sonar signale cette methode comme inutile, mais elle augmente la visibilité en fait 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 87bb7c75..0ead04b4 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 @@ -411,15 +411,18 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { log.debug("Force attachment loading " + attachment.getOriginalFileName()); } if (attachment.isPersisted()) { - FaxToMailServiceContext serviceContext = context.newServiceContext(); - EmailService service = serviceContext.getEmailService(); - if (attachment.getOriginalFile() == null) { - AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), true); - attachment.setOriginalFile(file); - } - if (attachment.getEditedFile() == null) { - AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), false); - attachment.setEditedFile(file); + try(FaxToMailServiceContext serviceContext = context.newServiceContext()) { + EmailService service = serviceContext.getEmailService(); + if (attachment.getOriginalFile() == null) { + AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), true); + attachment.setOriginalFile(file); + } + if (attachment.getEditedFile() == null) { + AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), false); + attachment.setEditedFile(file); + } + } catch (IOException eee) { + log.error("Error while loading attachment file", eee); } } } @@ -429,11 +432,14 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { log.debug("Force attachment loading " + attachment.getOriginalFileName()); } if (attachment.isPersisted()) { - FaxToMailServiceContext serviceContext = context.newServiceContext(); - EmailService service = serviceContext.getEmailService(); - if (attachment.getOriginalFile() == null) { - AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), true); - attachment.setOriginalFile(file); + try(FaxToMailServiceContext serviceContext = context.newServiceContext()) { + EmailService service = serviceContext.getEmailService(); + if (attachment.getOriginalFile() == null) { + AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), true); + attachment.setOriginalFile(file); + } + } catch (IOException eee) { + log.error("Error while loading original file", eee); } } @@ -446,11 +452,14 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { log.debug("Force generated pages loading " + attachment.getOriginalFileName()); } if (attachment.isPersisted()) { - FaxToMailServiceContext serviceContext = context.newServiceContext(); - EmailService service = serviceContext.getEmailService(); - if (attachment.getGeneratedPDFPages() == null) { - Collection<GeneratedPDFPage> pages = service.getGeneratedPDFPage(attachment.getTopiaId()); - attachment.setGeneratedPDFPages(pages); + try(FaxToMailServiceContext serviceContext = context.newServiceContext()) { + EmailService service = serviceContext.getEmailService(); + if (attachment.getGeneratedPDFPages() == null) { + Collection<GeneratedPDFPage> pages = service.getGeneratedPDFPage(attachment.getTopiaId()); + attachment.setGeneratedPDFPages(pages); + } + } catch (IOException eee) { + log.error("Error while loading generated PDF pages", eee); } } @@ -463,11 +472,14 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { log.debug("Force attachment loading " + attachment.getOriginalFileName()); } if (attachment.isPersisted()) { - FaxToMailServiceContext serviceContext = context.newServiceContext(); - EmailService service = serviceContext.getEmailService(); - if (attachment.getEditedFile() == null) { - AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), false); - attachment.setEditedFile(file); + try(FaxToMailServiceContext serviceContext = context.newServiceContext()) { + EmailService service = serviceContext.getEmailService(); + if (attachment.getEditedFile() == null) { + AttachmentFile file = service.getAttachmentFile(attachment.getTopiaId(), false); + attachment.setEditedFile(file); + } + } catch (IOException eee) { + log.error("Error while loading edited file", eee); } } @@ -487,10 +499,13 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { log.debug("Force source loading " + reply.getSubject()); } if (reply.isPersisted() && reply.getReplyContent() == null) { - FaxToMailServiceContext serviceContext = context.newServiceContext(); - EmailService service = serviceContext.getEmailService(); - ReplyContent replyContent = service.getReplyContent(reply.getTopiaId()); - reply.setReplyContent(replyContent); + try(FaxToMailServiceContext serviceContext = context.newServiceContext()) { + EmailService service = serviceContext.getEmailService(); + ReplyContent replyContent = service.getReplyContent(reply.getTopiaId()); + reply.setReplyContent(replyContent); + } catch (IOException eee) { + log.error("Error while loading reply content", eee); + } } } @@ -844,9 +859,12 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { // get configuration extension command ExtensionCommand extCommand = null; if (StringUtils.isNotBlank(extension)) { - FaxToMailServiceContext serviceContext = context.newServiceContext(); - ConfigurationService service = serviceContext.getConfigurationService(); - extCommand = service.getExtensionCommand(extension); + try (FaxToMailServiceContext serviceContext = context.newServiceContext()) { + ConfigurationService service = serviceContext.getConfigurationService(); + extCommand = service.getExtensionCommand(extension); + } catch (IOException eee) { + log.error("Error while getting extension command",eee); + } } // open file diff --git a/faxtomail-ui-web/src/test/java/com/franciaflex/faxtomail/web/job/MailFilterJobTest.java b/faxtomail-ui-web/src/test/java/com/franciaflex/faxtomail/web/job/MailFilterJobTest.java new file mode 100644 index 00000000..4b6769e2 --- /dev/null +++ b/faxtomail-ui-web/src/test/java/com/franciaflex/faxtomail/web/job/MailFilterJobTest.java @@ -0,0 +1,76 @@ +package com.franciaflex.faxtomail.web.job; + +import com.franciaflex.faxtomail.persistence.entities.EmailAccount; +import com.franciaflex.faxtomail.persistence.entities.EmailAccountImpl; +import com.franciaflex.faxtomail.persistence.entities.EmailProtocol; +import com.franciaflex.faxtomail.services.service.ConfigurationService; +import com.franciaflex.faxtomail.services.service.MailFolderService; +import com.franciaflex.faxtomail.services.service.UserService; +//import com.franciaflex.faxtomail.services.service.AbstractFaxToMailServiceTest; +import com.icegreen.greenmail.junit.GreenMailRule; +import com.icegreen.greenmail.user.GreenMailUser; +import com.icegreen.greenmail.util.GreenMailUtil; +import com.icegreen.greenmail.util.ServerSetupTest; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +import javax.mail.MessagingException; +import java.io.IOException; + +/** + * @author Jean Couteau (Code Lutin) + * @since 2.4.27 + */ +public class MailFilterJobTest { + + @Rule + public final GreenMailRule greenMail = new GreenMailRule(ServerSetupTest.SMTP_IMAP); + + @Before + public void setUp() throws IOException { +// service = newService(MailFolderService.class); +// newService(InitTestData.class).initTestData(); +// userService = newService(UserService.class); + } + + @Test + public void testMailReceptionNoFilter() throws MessagingException { + GreenMailUser user = greenMail.setUser("to@localhost.com", "test", "test"); + + //user.deliver(createMimeMessage()); // You can either create a more complex message... + GreenMailUtil.sendTextEmailTest("to@localhost.com", "from@localhost.com", + "subject", "body"); // ...or use the default messages + + //Prepare test Data + EmailAccount emailAccount = getTestAccount(); + //confService.getMailFilters(); + //confService save mailAccount(); + + + //Create a conf to put to@localhost.com -> Cyril + + + + MailFilterJob job = new MailFilterJob(); + job.checkEmails(emailAccount); + //job.execute(); + + //Check that mail is still on server + Assert.assertEquals(1, greenMail.getReceivedMessages().length); + //Check that database contains no email + // ?????? + } + + protected EmailAccount getTestAccount(){ + EmailAccount emailAccount = new EmailAccountImpl(); + emailAccount.setLogin("test"); + emailAccount.setPassword("test"); + emailAccount.setHost("127.0.0.1"); + emailAccount.setPort(greenMail.getImap().getPort()); + emailAccount.setProtocol(EmailProtocol.IMAP); + return emailAccount; + } + +} \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm