r659 - in trunk: faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande
Author: kmorin Date: 2014-10-01 17:58:42 +0200 (Wed, 01 Oct 2014) New Revision: 659 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/659 Log: - am?\195?\169lioration de la gestion de l'?\195?\169ditabilit?\195?\169 des ?\195?\169l?\195?\169ments - ne pas d?\195?\169placer un ?\195?\169l?\195?\169ment archiv?\195?\169 group?\195?\169 Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/DemandStatus.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenGroupedDemandAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.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/actions/TransmitAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/DemandStatus.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/DemandStatus.java 2014-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/DemandStatus.java 2014-10-01 15:58:42 UTC (rev 659) @@ -32,17 +32,20 @@ */ public enum DemandStatus implements HasLabel { - UNTREATED(n("faxtomail.demandStatus.untreated")), - IN_PROGRESS(n("faxtomail.demandStatus.inProgress")), - TRANSMISSION_TO_EDI(n("faxtomail.demandStatus.transmissionToEdi")), - TRANSMITTED_TO_EDI(n("faxtomail.demandStatus.transmittedToEdi")), - QUALIFIED(n("faxtomail.demandStatus.qualified")), - ARCHIVED(n("faxtomail.demandStatus.archive")); + UNTREATED(n("faxtomail.demandStatus.untreated"), true), + IN_PROGRESS(n("faxtomail.demandStatus.inProgress"), true), + TRANSMISSION_TO_EDI(n("faxtomail.demandStatus.transmissionToEdi"), false), + TRANSMITTED_TO_EDI(n("faxtomail.demandStatus.transmittedToEdi"), false), + QUALIFIED(n("faxtomail.demandStatus.qualified"), true), + ARCHIVED(n("faxtomail.demandStatus.archive"), false); protected String labelKey; - private DemandStatus(String labelKey) { + protected boolean editableStatus; + + private DemandStatus(String labelKey, boolean editable) { this.labelKey = labelKey; + this.editableStatus = editable; } public String getLabelKey() { @@ -52,4 +55,8 @@ public String getLabel() { return t(labelKey); } + + public boolean isEditableStatus() { + return editableStatus; + } } Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java 2014-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java 2014-10-01 15:58:42 UTC (rev 659) @@ -147,10 +147,7 @@ if (folder.isChildrenNotEmpty()) { for (MailFolder child : folder.getChildren()) { - // if the child is in the readable roots, remove it to merge the branches - if (!readableRoots.remove(child)) { - browseReadableFolders(child, readableRoots, user, writable); - } + browseReadableFolders(child, readableRoots, user, writable); } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenGroupedDemandAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenGroupedDemandAction.java 2014-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenGroupedDemandAction.java 2014-10-01 15:58:42 UTC (rev 659) @@ -153,9 +153,9 @@ demandToOpen.fromEntity(email); MailFolder folder = demandToOpen.getMailFolder(); - if (demandToOpen.getArchiveDate() != null || !folder.isFolderWritable()) { - demandToOpen.setEditable(false); - } + demandToOpen.setEditable(demandToOpen.getArchiveDate() == null + && folder.isFolderWritable() + && demandToOpen.getDemandStatus().isEditableStatus()); demandToOpen.setCloseable(true); } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java 2014-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java 2014-10-01 15:58:42 UTC (rev 659) @@ -31,6 +31,7 @@ import java.util.List; import java.util.Map; +import com.franciaflex.faxtomail.persistence.entities.DemandStatus; import org.apache.commons.lang3.StringUtils; import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.util.beans.BeanMonitor; @@ -114,7 +115,7 @@ } FaxToMailUser currentUser = context.getCurrentUser(); - if (takeIfNotTaken && model.getTakenBy() == null) { + if (model.getDemandStatus() != DemandStatus.ARCHIVED && takeIfNotTaken && model.getTakenBy() == null) { model.setTakenBy(getContext().getCurrentUser()); } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java 2014-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java 2014-10-01 15:58:42 UTC (rev 659) @@ -77,7 +77,7 @@ for (Email email : emails) { DemandeUIModel demand = new DemandeUIModel(); - demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_MAIL_FOLDER, Email.PROPERTY_HISTORY)); + demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_HISTORY)); // on ajoute toutes les lignes de rangeRow, // qui sont toutes valides puisqu'on les récupère de la base et qu'on ne sauvegarde que les lignes valides @@ -94,10 +94,7 @@ } } - MailFolder mailFolder = email.getMailFolder(); demand.setValid(handler.isDemandeValid(demand)); - demand.setMailFolder(mailFolder); - demand.setEditable(mailFolder.isFolderWritable()); WaitingState waitingState = email.getWaitingState(); if (waitingState != null) { demand.setWaitingState(waitingStateById.get(waitingState.getTopiaId())); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.java 2014-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.java 2014-10-01 15:58:42 UTC (rev 659) @@ -76,7 +76,7 @@ for (Email email : emails) { DemandeUIModel demand = new DemandeUIModel(); - demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_MAIL_FOLDER, Email.PROPERTY_HISTORY)); + demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_HISTORY)); // on ajoute toutes les lignes de rangeRow, // qui sont toutes valides puisqu'on les récupère de la base et qu'on ne sauvegarde que les lignes valides @@ -95,8 +95,6 @@ MailFolder mailFolder = email.getMailFolder(); demand.setValid(handler.isDemandeValid(demand)); - demand.setMailFolder(mailFolder); - demand.setEditable(mailFolder.isFolderWritable()); WaitingState waitingState = email.getWaitingState(); if (waitingState != null) { demand.setWaitingState(waitingStateById.get(waitingState.getTopiaId())); 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-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-10-01 15:58:42 UTC (rev 659) @@ -157,9 +157,9 @@ currentEmail.fromEntity(email); MailFolder folder = currentEmail.getMailFolder(); - if (currentEmail.getArchiveDate() != null || !folder.isFolderWritable()) { - currentEmail.setEditable(false); - } + currentEmail.setEditable(currentEmail.getArchiveDate() == null + && folder.isFolderWritable() + && currentEmail.getDemandStatus().isEditableStatus()); } super.doAction(); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/TransmitAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/TransmitAction.java 2014-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/TransmitAction.java 2014-10-01 15:58:42 UTC (rev 659) @@ -26,6 +26,7 @@ import static org.nuiton.i18n.I18n.t; +import com.franciaflex.faxtomail.persistence.entities.DemandStatus; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI; @@ -75,6 +76,7 @@ @Override public boolean apply(DemandeUIModel groupDemandeUIModel) { return !demandeUIModel.equals(groupDemandeUIModel) + && groupDemandeUIModel.getDemandStatus().isEditableStatus() && mailFolder.equals(groupDemandeUIModel.getMailFolder()); } }); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-10-01 15:58:42 UTC (rev 659) @@ -435,7 +435,13 @@ @Override protected MailField[] getEditableTableProperties() { - return new MailField[] { MailField.PRIORITY, MailField.ATTACHMENT, MailField.REPLIES }; + MailField[] result; + if (getModel().getSelectedFolder() != null && getModel().getSelectedFolder().isFolderWritable()) { + result = new MailField[] { MailField.PRIORITY, MailField.ATTACHMENT, MailField.REPLIES }; + } else { + result = new MailField[] { MailField.ATTACHMENT, MailField.REPLIES }; + } + return result; } @Override 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-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-10-01 15:58:42 UTC (rev 659) @@ -31,13 +31,11 @@ } JTextField, JXTable, BeanFilterableComboBox, #commentField, ButtonAttachment, ButtonDemandReplies { - editable: { model.isEditable() && - !DemandStatus.TRANSMITTED_TO_EDI.equals(model.getDemandStatus()) }; + editable: { model.isEditable() }; } BeanFilterableComboBox { - enabled: { model.isEditable() && - !DemandStatus.TRANSMITTED_TO_EDI.equals(model.getDemandStatus()) }; + enabled: { model.isEditable() }; } .rightLabel { 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-10-01 13:38:51 UTC (rev 658) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java 2014-10-01 15:58:42 UTC (rev 659) @@ -194,7 +194,7 @@ */ @Override public void fromEntity(Email entity) { - fromBeanBinder.copyExcluding(entity, this, Email.PROPERTY_ATTACHMENT, Email.PROPERTY_REPLIES); + fromBeanBinder.copyExcluding(entity, this, Email.PROPERTY_ATTACHMENT, Email.PROPERTY_REPLIES, Email.PROPERTY_EMAIL_GROUP); loadAttachments(entity); setGroupedDemandes(entity.getEmailGroup()); loadReplies(entity); @@ -724,6 +724,7 @@ demandeUIModel.setCompanyReference(email.getCompanyReference()); demandeUIModel.setTopiaId(email.getTopiaId()); demandeUIModel.setMailFolder(email.getMailFolder()); + demandeUIModel.setDemandStatus(email.getDemandStatus()); groupedDemandes.add(demandeUIModel); } }
participants (1)
-
kmorin@users.forge.codelutin.com