r635 - in trunk: faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities 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 faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search faxtomail-ui-web/src/main/resources/i18n
Author: kmorin Date: 2014-09-23 17:41:05 +0200 (Tue, 23 Sep 2014) New Revision: 635 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/635 Log: - prendre l'?\195?\169l?\195?\169ment quand on enregsitre m?\195?\170me s'il n'y a pas eu de modifications - correction du bug des colonnes (toutes les colonnes etaient affich?\195?\169es quand on quittait un ?\195?\169l?\195?\169ment) - les gammes ne s'affichaient plus quand on venait de la recherche - correction du message d'erreur quand on ne pouvait d?\195?\169placer un ?\195?\169l?\195?\169ment depuis la liste - fermeture de la fenetre des pieces jointes dans la liste quand on change de dossier Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/SearchFilter.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenMailFolderChooserFromListAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenModalFrameAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.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/content/demande/DemandeListTableFilter.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-09-23 15:41:05 UTC (rev 635) @@ -438,10 +438,6 @@ Hibernate.initialize(history.getFields()); } } - EmailGroup emailGroup = email.getEmailGroup(); - if (emailGroup != null) { - Hibernate.initialize(emailGroup.getEmail()); - } } return result; } Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/SearchFilter.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/SearchFilter.java 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/SearchFilter.java 2014-09-23 15:41:05 UTC (rev 635) @@ -65,6 +65,7 @@ public static final String PROPERTY_MIN_REPLY_DATE = "minReplyDate"; public static final String PROPERTY_MAX_REPLY_DATE = "maxReplyDate"; public static final String PROPERTY_CLIENT_CODE = "clientCode"; + public static final String PROPERTY_ADD_GROUP_DEMANDS = "addGroupDemands"; protected String sender; @@ -128,6 +129,8 @@ protected String clientCode; + protected boolean addGroupDemands; + public String getSender() { return sender; } @@ -432,4 +435,14 @@ this.maxReplyDate = maxReplyDate; firePropertyChange(PROPERTY_MAX_REPLY_DATE, oldValue, maxReplyDate); } + + public boolean isAddGroupDemands() { + return addGroupDemands; + } + + public void setAddGroupDemands(boolean addGroupDemands) { + Object oldValue = this.addGroupDemands; + this.addGroupDemands = addGroupDemands; + firePropertyChange(PROPERTY_ADD_GROUP_DEMANDS, oldValue, addGroupDemands); + } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java 2014-09-23 15:41:05 UTC (rev 635) @@ -91,7 +91,9 @@ @Override protected void releaseAction() { super.releaseAction(); - frame.toFront(); - frame = null; + if (frame != null) { + frame.toFront(); + frame = null; + } } } \ No newline at end of file Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenMailFolderChooserFromListAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenMailFolderChooserFromListAction.java 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenMailFolderChooserFromListAction.java 2014-09-23 15:41:05 UTC (rev 635) @@ -101,7 +101,9 @@ @Override protected void releaseAction() { super.releaseAction(); - frame.toFront(); - frame = null; + if (frame != null) { + frame.toFront(); + frame = null; + } } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenModalFrameAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenModalFrameAction.java 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenModalFrameAction.java 2014-09-23 15:41:05 UTC (rev 635) @@ -58,7 +58,9 @@ @Override protected void releaseAction() { super.releaseAction(); - frame.toFront(); - frame = null; + if (frame != null) { + frame.toFront(); + frame = null; + } } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java 2014-09-23 15:41:05 UTC (rev 635) @@ -37,8 +37,8 @@ } @Override - public void postSuccessAction() { - super.postSuccessAction(); + public void doAction() throws Exception { + super.doAction(); getActionEngine().runInternalAction(getContext().getMainUI().getHandler(), GoToPreviousScreenAction.class); } } 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-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java 2014-09-23 15:41:05 UTC (rev 635) @@ -27,10 +27,19 @@ import static org.nuiton.i18n.I18n.t; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import java.util.Map; +import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import com.franciaflex.faxtomail.persistence.entities.RangeRow; import com.franciaflex.faxtomail.persistence.entities.SearchFilter; +import com.franciaflex.faxtomail.persistence.entities.WaitingState; import com.franciaflex.faxtomail.services.FaxToMailServiceContext; +import com.franciaflex.faxtomail.ui.swing.content.demande.RangeRowModel; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.util.pagination.PaginationResult; import com.franciaflex.faxtomail.persistence.entities.Email; @@ -60,19 +69,41 @@ 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<>(); + + Map<String, WaitingState> waitingStateById = Maps.uniqueIndex(getContext().getWaitingStateCache(), TopiaEntities.getTopiaIdFunction()); + for (Email email : emails) { DemandeUIModel demand = new DemandeUIModel(); - demand.fromEntity(email); - demand.setMailFolder(email.getMailFolder()); + demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_MAIL_FOLDER, Email.PROPERTY_EMAIL_GROUP, 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 + Collection<RangeRow> rangeRows = demand.getRangeRow(); + if (rangeRows != null) { + for (RangeRow rangeRow : rangeRows) { + if (rangeRow != null) { + RangeRowModel rangeRowModel = new RangeRowModel(); + rangeRowModel.fromEntity(rangeRow); + if (rangeRowModel.isValid()) { + demand.addValidRangeRow(rangeRowModel); + } + } + } + } + + 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())); + } + result.add(demand); - - if (model.isShowGroupesDemandsInResults()) { - demand.setGroupedDemandes(email.getEmailGroup()); - result.addAll(demand.getGroupedDemandes()); - } } model.setResults(result); model.setPaginationParameter(paginationResult.getCurrentPage()); 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-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.java 2014-09-23 15:41:05 UTC (rev 635) @@ -25,16 +25,25 @@ */ import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import com.franciaflex.faxtomail.persistence.entities.RangeRow; import com.franciaflex.faxtomail.persistence.entities.SearchFilter; +import com.franciaflex.faxtomail.persistence.entities.WaitingState; import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; +import com.franciaflex.faxtomail.ui.swing.content.demande.RangeRowModel; import com.franciaflex.faxtomail.ui.swing.content.search.SearchToGroupUI; import com.franciaflex.faxtomail.ui.swing.content.search.SearchToGroupUIHandler; import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIModel; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import java.util.Map; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.util.pagination.PaginationResult; import static org.nuiton.i18n.I18n.t; @@ -59,13 +68,39 @@ 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<DemandeUIModel> result = new ArrayList<>(); - for (Email mail : emails) { + Map<String, WaitingState> waitingStateById = Maps.uniqueIndex(getContext().getWaitingStateCache(), TopiaEntities.getTopiaIdFunction()); + + for (Email email : emails) { DemandeUIModel demand = new DemandeUIModel(); - demand.fromEntity(mail); + demand.fromEntityExcluding(email, Sets.newHashSet(Email.PROPERTY_MAIL_FOLDER, Email.PROPERTY_EMAIL_GROUP, 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 + Collection<RangeRow> rangeRows = demand.getRangeRow(); + if (rangeRows != null) { + for (RangeRow rangeRow : rangeRows) { + if (rangeRow != null) { + RangeRowModel rangeRowModel = new RangeRowModel(); + rangeRowModel.fromEntity(rangeRow); + if (rangeRowModel.isValid()) { + demand.addValidRangeRow(rangeRowModel); + } + } + } + } + + 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())); + } result.add(demand); } model.setResults(result); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListTableFilter.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListTableFilter.java 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListTableFilter.java 2014-09-23 15:41:05 UTC (rev 635) @@ -280,7 +280,7 @@ context.getActionFactory().createLogicAction(handler, LoadFolderEmailsAction.class); if (context.isActionInProgress(null)) { - context.getActionEngine().runInternalAction(loadFolderEmailsAction); + context.getActionEngine().runFullInternalAction(loadFolderEmailsAction); } else { context.getActionEngine().runAction(loadFolderEmailsAction); } 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-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-09-23 15:41:05 UTC (rev 635) @@ -49,6 +49,7 @@ import javax.swing.event.ListSelectionListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; +import javax.swing.table.TableCellEditor; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; @@ -253,12 +254,17 @@ navigationTree.addTreeSelectionListener(new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { + TableCellEditor cellEditor = dataTable.getCellEditor(); + if (cellEditor != null) { + cellEditor.stopCellEditing(); + } + FolderTreeNode folderNode = (FolderTreeNode) e.getPath().getLastPathComponent(); if (folderNode.isCanSelect()) { MailFolder folder = folderNode.getMailFolder(); + getContext().setCurrentMailFolder(folder); getModel().setSelectedFolder(folder); - getContext().setCurrentMailFolder(folder); DemandeUIModel currentEmail = getContext().getCurrentEmail(); if (currentEmail != null) { 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-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java 2014-09-23 15:41:05 UTC (rev 635) @@ -303,6 +303,7 @@ closeButtonPopups(); DemandeUI demandeUI = (DemandeUI) getTabPanel().getSelectedComponent(); SaveDemandeAndExitAction action = new SaveDemandeAndExitAction(demandeUI.getHandler()); + action.setTakeIfNotTaken(true); getContext().getActionEngine().runAction(action); } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css 2014-09-23 15:41:05 UTC (rev 635) @@ -267,6 +267,7 @@ #addGroupedElementCheckbox { text: "faxtomail.search.addGroupedElement.label"; + selected: { model.isAddGroupDemands() }; } #searchButton { Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx 2014-09-23 15:41:05 UTC (rev 635) @@ -345,7 +345,7 @@ <row> <cell columns="6"> <JCheckBox id="addGroupedElementCheckbox" - onItemStateChanged='handler.setBoolean(event, "showGroupesDemandsInResults")'/> + onItemStateChanged='handler.setBoolean(event, "addGroupDemands")'/> </cell> </row> Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-09-23 15:41:05 UTC (rev 635) @@ -63,7 +63,6 @@ protected boolean menuEnabled; protected boolean groupEnabled; - protected boolean showGroupesDemandsInResults; protected static Binder<SearchUIModel, SearchFilter> toBeanBinder = BinderFactory.newBinder(SearchUIModel.class, @@ -445,12 +444,14 @@ firePropertyChanged(PROPERTY_GROUP_ENABLED, oldValue, groupEnabled); } - public boolean isShowGroupesDemandsInResults() { - return showGroupesDemandsInResults; + public boolean isAddGroupDemands() { + return editObject.isAddGroupDemands(); } - public void setShowGroupesDemandsInResults(boolean showGroupesDemandsInResults) { - this.showGroupesDemandsInResults = showGroupesDemandsInResults; + public void setAddGroupDemands(boolean addGroupDemands) { + Object oldValue = isAddGroupDemands(); + editObject.setAddGroupDemands(addGroupDemands); + firePropertyChange(SearchFilter.PROPERTY_ADD_GROUP_DEMANDS, oldValue, addGroupDemands); } @Override Modified: trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties =================================================================== --- trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties 2014-09-19 13:11:03 UTC (rev 634) +++ trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties 2014-09-23 15:41:05 UTC (rev 635) @@ -16,7 +16,6 @@ com.franciaflex.faxtomail.persistence.entities.MailField.DEMAND_STATUS=Statut de demande com.franciaflex.faxtomail.persistence.entities.MailField.DEMAND_TYPE=Type de demande com.franciaflex.faxtomail.persistence.entities.MailField.EDI_RETURN=Retour EDI -com.franciaflex.faxtomail.persistence.entities.MailField.WAITING_STATE=État d'attente com.franciaflex.faxtomail.persistence.entities.MailField.FAX=Fax com.franciaflex.faxtomail.persistence.entities.MailField.LAST_ATTACHMENT_OPENING_IN_THIS_FOLDER_USER=Dernier à ouvrir une PJ com.franciaflex.faxtomail.persistence.entities.MailField.MAIL_FOLDER=Dossier @@ -34,6 +33,7 @@ com.franciaflex.faxtomail.persistence.entities.MailField.SAV_NB=Quantité de SAV com.franciaflex.faxtomail.persistence.entities.MailField.SENDER=Émetteur com.franciaflex.faxtomail.persistence.entities.MailField.TAKEN_BY=Pris par +com.franciaflex.faxtomail.persistence.entities.MailField.WAITING_STATE=État d'attente faxtomail.email.content.attachment.htmlfileName=contenu html du mail faxtomail.email.content.attachment.plainfileName=contenu texte du mail faxtomail.email.object.noClient=Client non trouvé
participants (1)
-
kmorin@users.forge.codelutin.com