Author: kmorin Date: 2014-08-08 17:19:04 +0200 (Fri, 08 Aug 2014) New Revision: 507 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/507 Log: v?\195?\169rification du pris par avant d'ouvrir le mail Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserServiceImpl.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveFromListAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-08-08 15:17:08 UTC (rev 506) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-08-08 15:19:04 UTC (rev 507) @@ -556,7 +556,6 @@ .addNotEquals(Email.PROPERTY_DEMAND_STATUS, DemandStatus.ARCHIVED) .addAllFetches( Email.PROPERTY_DEMAND_TYPE, - Email.PROPERTY_DEMAND_TYPE + "." + DemandType.PROPERTY_FIELDS, Email.PROPERTY_RANGE_ROW, Email.PROPERTY_RANGE_ROW + "." + RangeRow.PROPERTY_RANGE, Email.PROPERTY_HISTORY, @@ -566,8 +565,6 @@ Email.PROPERTY_ATTACHMENT, Email.PROPERTY_TAKEN_BY, Email.PROPERTY_CLIENT, - Email.PROPERTY_EMAIL_GROUP, - Email.PROPERTY_EMAIL_GROUP + "." + EmailGroup.PROPERTY_EMAIL, Email.PROPERTY_ETAT_ATTENTE, Email.PROPERTY_PRIORITY ) Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java 2014-08-08 15:17:08 UTC (rev 506) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java 2014-08-08 15:19:04 UTC (rev 507) @@ -322,7 +322,7 @@ protected void createEmails(Random random, HistoryTopiaDao historyDao, RangeRowTopiaDao rangeRowDao, EmailTopiaDao emailDao, List<Range> ranges, List<Client> clients, List<DemandType> types, List<Priority> priorities, MailFolder folder, FaxToMailUser user) throws InvalidClientException { - int r = random.nextInt(10) + 5; + int r = random.nextInt(100) + 50; for (int i = 0 ; i < r ; i++) { createEmail(random, historyDao, rangeRowDao, emailDao, ranges, clients, types, priorities, folder, user); } Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserServiceImpl.java 2014-08-08 15:17:08 UTC (rev 506) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/UserServiceImpl.java 2014-08-08 15:19:04 UTC (rev 507) @@ -70,10 +70,10 @@ @Override public FaxToMailUser getUserByLogin(String login) { FaxToMailUserTopiaDao dao = getPersistenceContext().getFaxToMailUserDao(); - FaxToMailUser user = dao.forLoginEquals(login).findUnique(); - //FIXME kmorin 20140805 use fetch - user.getUserGroups(); - user.getUserGroupsTopiaIds(); + FaxToMailUser user = dao.forLoginEquals(login) + .addAllFetches(FaxToMailUser.PROPERTY_USER_GROUPS, + FaxToMailUser.PROPERTY_AFFECTED_FOLDERS) + .findUnique(); return user; } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveFromListAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveFromListAction.java 2014-08-08 15:17:08 UTC (rev 506) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveFromListAction.java 2014-08-08 15:19:04 UTC (rev 507) @@ -78,4 +78,5 @@ getModel().removeEmails(getModel().getSelectedEmails()); getModel().setSelectedEmails(null); } + } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-08-08 15:17:08 UTC (rev 506) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-08-08 15:19:04 UTC (rev 507) @@ -60,22 +60,54 @@ DemandeUIModel currentEmail = getContext().getCurrentEmail(); - // tentative de verrouillages des email existants - if (StringUtils.isNotBlank(currentEmail.getTopiaId())) { - FaxToMailUser currentUser = getContext().getCurrentUser(); - + FaxToMailUser takenBy = currentEmail.getTakenBy(); + FaxToMailUser currentUser = getContext().getCurrentUser(); + int answer = -1; + + if (takenBy != null && !currentUser.equals(takenBy)) { + String htmlMessage = String.format( + AbstractApplicationUIHandler.CONFIRMATION_FORMAT, + t("faxtomail.alert.alreadyTakenBy.message", decorate(takenBy)), + t("faxtomail.alert.alreadyTakenBy.help")); + + answer = JOptionPane.showConfirmDialog(getHandler().getTopestUI(), + htmlMessage, + t("faxtomail.alert.alreadyTakenBy.title"), + JOptionPane.YES_NO_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE); + } + + if (answer == JOptionPane.CANCEL_OPTION) { + result = false; + + } else { + try { - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - serviceContext.getEmailService().lockEmail(currentEmail.getTopiaId(), currentUser); + // tentative de verrouillages des email existants + if (StringUtils.isNotBlank(currentEmail.getTopiaId())) { + FaxToMailServiceContext serviceContext = getContext().newServiceContext(); + serviceContext.getEmailService().lockEmail(currentEmail.getTopiaId(), currentUser); + } + if (answer == JOptionPane.NO_OPTION) { + currentEmail.setEditable(false); + } + // if the user takes the email + else if (answer == JOptionPane.YES_OPTION) { + FaxToMailServiceContext serviceContext = getContext().newServiceContext(); + serviceContext.getEmailService().takeEmail(currentEmail.getTopiaId(), currentUser); + currentEmail.setTakenBy(currentUser); + currentEmail.setEditable(true); + } + } catch (AlreadyLockedMailException ex) { result = false; - + String htmlMessage = t("faxtomail.alert.alreadyLockedBy.message", decorate(ex.getLockedBy())); JOptionPane.showMessageDialog(getHandler().getTopestUI(), - htmlMessage, - t("faxtomail.alert.alreadyLockedBy.title"), - JOptionPane.ERROR_MESSAGE); + htmlMessage, + t("faxtomail.alert.alreadyLockedBy.title"), + JOptionPane.ERROR_MESSAGE); } } @@ -93,7 +125,9 @@ getContext().getCurrentUser(), new Date()); + currentEmail.setHistory(email.getHistory()); currentEmail.setEtatAttente(email.getEtatAttente()); + currentEmail.setDemandType(email.getDemandType()); currentEmail.setGroupedDemandes(email.getEmailGroup()); currentEmail.setMailFolder(email.getMailFolder()); } @@ -105,41 +139,10 @@ super.postSuccessAction(); DemandeUIModel currentEmail = getContext().getCurrentEmail(); - FaxToMailUser takenBy = currentEmail.getTakenBy(); - FaxToMailUser currentUser = getContext().getCurrentUser(); MailFolder folder = currentEmail.getMailFolder(); if (currentEmail.getArchiveDate() != null || !folder.isFolderWritable()) { currentEmail.setEditable(false); - - } else if (takenBy != null && !currentUser.equals(takenBy)) { - String htmlMessage = String.format( - AbstractApplicationUIHandler.CONFIRMATION_FORMAT, - t("faxtomail.alert.alreadyTakenBy.message", decorate(takenBy)), - t("faxtomail.alert.alreadyTakenBy.help")); - - int result = JOptionPane.showConfirmDialog(getHandler().getTopestUI(), - htmlMessage, - t("faxtomail.alert.alreadyTakenBy.title"), - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE); - - switch (result) { - case JOptionPane.CANCEL_OPTION: - getContext().setScreen(FaxToMailScreen.LIST); - break; - - case JOptionPane.NO_OPTION: - currentEmail.setEditable(false); - break; - - case JOptionPane.YES_OPTION: - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - Email email = serviceContext.getEmailService().takeEmail(currentEmail.getTopiaId(), currentUser); - currentEmail.fromEntity(email); - currentEmail.setEditable(true); - break; - } } } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-08-08 15:17:08 UTC (rev 506) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-08-08 15:19:04 UTC (rev 507) @@ -274,12 +274,12 @@ } #leftVerticalSplitPanel { - dividerSize : { model.isRangePanelVisible() ? 10 : 0 }; + dividerSize : { FaxToMailUIUtil.isRangePanelVisible(model.getDemandType()) ? 10 : 0 }; resizeWeight: 0.8; } #rangePanel { - visible: { model.isRangePanelVisible() }; + visible: { FaxToMailUIUtil.isRangePanelVisible(model.getDemandType()) }; _validatorLabel: { t("faxtomail.demande.rangeRow.label") }; } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-08-08 15:17:08 UTC (rev 506) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-08-08 15:19:04 UTC (rev 507) @@ -391,18 +391,23 @@ ); final JSplitPane leftVerticalSplitPanel = getUI().getLeftVerticalSplitPanel(); - model.addPropertyChangeListener(DemandeUIModel.PROPERTY_RANGE_PANEL_VISIBLE, new PropertyChangeListener() { + model.addPropertyChangeListener(Email.PROPERTY_DEMAND_TYPE, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { - leftVerticalSplitPanel.setName("leftVerticalSplitPanel" + evt.getNewValue()); - getContext().getSwingSession().add(leftVerticalSplitPanel, true); - if (Boolean.FALSE.equals(evt.getNewValue())) { - leftVerticalSplitPanel.setDividerLocation(leftVerticalSplitPanel.getHeight()); + boolean oldRangePanelVisible = FaxToMailUIUtil.isRangePanelVisible((DemandType) evt.getOldValue()); + boolean newRangePanelVisible = FaxToMailUIUtil.isRangePanelVisible((DemandType) evt.getNewValue()); + + if (oldRangePanelVisible != newRangePanelVisible) { + leftVerticalSplitPanel.setName("leftVerticalSplitPanel" + newRangePanelVisible); + getContext().getSwingSession().add(leftVerticalSplitPanel, true); + if (!oldRangePanelVisible) { + leftVerticalSplitPanel.setDividerLocation(leftVerticalSplitPanel.getHeight()); + } } } }); - leftVerticalSplitPanel.setName("leftVerticalSplitPanel" + model.isRangePanelVisible()); + leftVerticalSplitPanel.setName("leftVerticalSplitPanel" + FaxToMailUIUtil.isRangePanelVisible(model.getDemandType())); getContext().getSwingSession().add(leftVerticalSplitPanel, true); listModelIsModify(getModel()); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java 2014-08-08 15:17:08 UTC (rev 506) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java 2014-08-08 15:19:04 UTC (rev 507) @@ -86,7 +86,6 @@ public static final String PROPERTY_QUOTATION_NB = "quotationNb"; public static final String PROPERTY_PF_NB = "pfNb"; public static final String PROPERTY_SAV_NB = "savNb"; - public static final String PROPERTY_RANGE_PANEL_VISIBLE = "rangePanelVisible"; public static final String PROPERTY_CLIENT_CODE = "clientCode"; public static final String PROPERTY_CLIENT_BRAND = "clientBrand"; public static final String PROPERTY_REFERENCE = "reference"; @@ -387,17 +386,10 @@ public void setDemandType(DemandType demandType) { Object oldValue = getDemandType(); - Object rangePanelVisibleOldValue = isRangePanelVisible(); editObject.setDemandType(demandType); firePropertyChanged(Email.PROPERTY_DEMAND_TYPE, oldValue, demandType); - firePropertyChanged(DemandeUIModel.PROPERTY_RANGE_PANEL_VISIBLE, rangePanelVisibleOldValue, isRangePanelVisible()); } - public boolean isRangePanelVisible() { - DemandType demandType = getDemandType(); - return demandType != null && demandType.containsFields(MailField.RANGE_ROW); - } - public DemandStatus getDemandStatus() { return editObject.getDemandStatus(); } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-08-08 15:17:08 UTC (rev 506) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-08-08 15:19:04 UTC (rev 507) @@ -64,6 +64,8 @@ import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; +import com.franciaflex.faxtomail.persistence.entities.DemandType; +import com.franciaflex.faxtomail.persistence.entities.MailField; import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import jaxx.runtime.JAXXObject; import jaxx.runtime.JAXXUtil; @@ -544,4 +546,8 @@ } } + public static boolean isRangePanelVisible(DemandType demandType) { + return demandType != null && demandType.containsFields(MailField.RANGE_ROW); + } + }