Author: kmorin Date: 2014-06-12 22:00:25 +0200 (Thu, 12 Jun 2014) New Revision: 205 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/205 Log: - etat des boutons en fonction de la validit?\195?\169 et de l'etat d'attente - ajout du trigramme ?\195?\160 l'utilisateur Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.css trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIModel.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java 2014-06-12 17:00:35 UTC (rev 204) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java 2014-06-12 20:00:25 UTC (rev 205) @@ -298,6 +298,9 @@ user.setLastName(fullName); } + String trigraph = searchEntry.getAttributeValue("sAMAccountName"); + user.setTrigraph(StringUtils.upperCase(trigraph)); + // manage user groups user.clearUserGroups(); String[] groups = searchEntry.getAttributeValues("memberOf"); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.css =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.css 2014-06-12 17:00:35 UTC (rev 204) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUI.css 2014-06-12 20:00:25 UTC (rev 205) @@ -48,21 +48,22 @@ #printButton { text: "faxtomail.demande.print.button.label"; actionIcon: print; + enabled: { model.isPrintEnabled() }; } #archiveButton { text: "faxtomail.demande.archive.button.label"; - enabled: { model.getCurrentDemand().isEditable() }; + enabled: { model.isArchiveEnabled() }; } #replyButton { text: "faxtomail.demande.reply.button.label"; actionIcon: reply; - enabled: { model.getCurrentDemand().isEditable() || model.getCurrentDemand().getArchiveDate() != null }; + enabled: { model.isReplyEnabled() }; } #groupButton { text: "faxtomail.demande.group.button.label"; actionIcon: group; - enabled: { model.getCurrentDemand().isEditable() || model.getCurrentDemand().getArchiveDate() != null }; + enabled: { model.isGroupEnabled() }; } \ No newline at end of file Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java 2014-06-12 17:00:35 UTC (rev 204) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java 2014-06-12 20:00:25 UTC (rev 205) @@ -24,6 +24,8 @@ * #L% */ +import com.franciaflex.faxtomail.FaxToMailConfiguration; +import com.franciaflex.faxtomail.persistence.entities.Configuration; import com.franciaflex.faxtomail.persistence.entities.DemandType; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EtatAttente; @@ -79,7 +81,6 @@ currentEmail.setCloseable(false); DemandesUIModel model = new DemandesUIModel(); -// model.addDemand(currentEmail); this.ui.setContextValue(model); } @@ -109,15 +110,10 @@ } if (evt.getPropertyName().equals(DemandeUIModel.PROPERTY_VALID) + || evt.getPropertyName().equals(DemandeUIModel.PROPERTY_EDITABLE) || evt.getPropertyName().equals(Email.PROPERTY_ETAT_ATTENTE)) { - DemandeUIModel model = (DemandeUIModel) evt.getSource(); - EtatAttente etatAttente = model.getEtatAttente(); - boolean transmitEnabled = model.isEditable() - && (etatAttente == null - || model.isValid() && !etatAttente.containsValidFormDisabledActions(MailAction.TRANSMIT) - || !model.isValid() && !etatAttente.containsInvalidFormDisabledActions(MailAction.TRANSMIT)); - getModel().setTransmitEnabled(transmitEnabled); + updateButtonEnability(); } } }; @@ -149,6 +145,42 @@ model.addDemand(currentEmail); } + protected boolean isActionEnabled(DemandeUIModel model, MailAction action) { + Configuration config = getContext().getFaxToMailConfiguration(); + + EtatAttente etatAttente = model.getEtatAttente(); + boolean valid = model.isValid(); + + boolean enabled = + etatAttente == null && (valid || !config.containsInvalidFormDisabledActions(action)) + || etatAttente != null && + (valid && !etatAttente.containsValidFormDisabledActions(action) + || !valid && !etatAttente.containsInvalidFormDisabledActions(action)); + + return enabled; + } + + protected void updateButtonEnability() { + DemandeUIModel model = getModel().getCurrentDemand(); + boolean editable = model.isEditable(); + boolean archived = model.getArchiveDate() != null; + + boolean transmitEnabled = editable && isActionEnabled(model, MailAction.TRANSMIT); + getModel().setTransmitEnabled(transmitEnabled); + + boolean archiveEnabled = editable && isActionEnabled(model, MailAction.ARCHIVE); + getModel().setArchiveEnabled(archiveEnabled); + + boolean groupEnabled = isActionEnabled(model, MailAction.GROUP); + getModel().setGroupEnabled(groupEnabled); + + boolean printEnabled = isActionEnabled(model, MailAction.PRINT); + getModel().setPrintEnabled(printEnabled); + + boolean replyEnabled = (editable || archived) && isActionEnabled(model, MailAction.REPLY); + getModel().setReplyEnabled(replyEnabled); + } + @Override public boolean quitUI() { closeButtonPopups(); @@ -199,8 +231,8 @@ if (index >= 0 && index < tabPanel.getTabCount()) { Component tab = tabPanel.getComponentAt(index); if (ApplicationUI.class.isInstance(tab)) { - ApplicationUI tuttiTab = (ApplicationUI) tabPanel.getComponentAt(index); - AbstractApplicationUIHandler handler = tuttiTab.getHandler(); + ApplicationUI faxToMailTab = (ApplicationUI) tabPanel.getComponentAt(index); + AbstractApplicationUIHandler handler = faxToMailTab.getHandler(); if (TabHandler.class.isInstance(handler)) { tabHandler = (TabHandler) handler; } @@ -251,6 +283,7 @@ if (mustChangeTab) { super.setSelectedIndex(index); } + updateButtonEnability(); } }); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIModel.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIModel.java 2014-06-12 17:00:35 UTC (rev 204) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIModel.java 2014-06-12 20:00:25 UTC (rev 205) @@ -44,8 +44,16 @@ public static final String PROPERTY_CURRENT_DEMAND = "currentDemand"; public static final String PROPERTY_TRANSMIT_ENABLED = "transmitEnabled"; + public static final String PROPERTY_ARCHIVE_ENABLED = "archiveEnabled"; + public static final String PROPERTY_GROUP_ENABLED = "groupEnabled"; + public static final String PROPERTY_PRINT_ENABLED = "printEnabled"; + public static final String PROPERTY_REPLY_ENABLED = "replyEnabled"; protected boolean transmitEnabled; + protected boolean archiveEnabled; + protected boolean groupEnabled; + protected boolean printEnabled; + protected boolean replyEnabled; protected List<DemandeUIModel> demands = new ArrayList<DemandeUIModel>(); @@ -60,9 +68,49 @@ public void setTransmitEnabled(boolean transmitEnabled) { Object oldValue = isTransmitEnabled(); this.transmitEnabled = transmitEnabled; - firePropertyChange(PROPERTY_TRANSMIT_ENABLED,oldValue, transmitEnabled); + firePropertyChange(PROPERTY_TRANSMIT_ENABLED, oldValue, transmitEnabled); } + public boolean isArchiveEnabled() { + return archiveEnabled; + } + + public void setArchiveEnabled(boolean archiveEnabled) { + Object oldValue = isArchiveEnabled(); + this.archiveEnabled = archiveEnabled; + firePropertyChange(PROPERTY_ARCHIVE_ENABLED, oldValue, archiveEnabled); + } + + public boolean isGroupEnabled() { + return groupEnabled; + } + + public void setGroupEnabled(boolean groupEnabled) { + Object oldValue = isGroupEnabled(); + this.groupEnabled = groupEnabled; + firePropertyChange(PROPERTY_GROUP_ENABLED, oldValue, groupEnabled); + } + + public boolean isPrintEnabled() { + return printEnabled; + } + + public void setPrintEnabled(boolean printEnabled) { + Object oldValue = isPrintEnabled(); + this.printEnabled = printEnabled; + firePropertyChange(PROPERTY_PRINT_ENABLED, oldValue, printEnabled); + } + + public boolean isReplyEnabled() { + return replyEnabled; + } + + public void setReplyEnabled(boolean replyEnabled) { + Object oldValue = isReplyEnabled(); + this.replyEnabled = replyEnabled; + firePropertyChange(PROPERTY_REPLY_ENABLED, oldValue, replyEnabled); + } + protected List<DemandeUIModel> getDemands() { return demands; }