r258 - in trunk: faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content 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/reply
Author: kmorin Date: 2014-06-23 21:28:15 +0200 (Mon, 23 Jun 2014) New Revision: 258 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/258 Log: - d?\195?\169sactivation de la popup de validation sur l'ecran d'accueil et la recherche - d?\195?\169but de la gestion des droits - correction des colonnes (h?\195?\169ritage) - suppression de la config swing - correction de la prise en compte de la taille des pj dans la r?\195?\169ponse Removed: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowConfigAction.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailScreen.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/CloseApplicationAction.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/MainUI.css trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUIHandler.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/reply/ReplyFormUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java 2014-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java 2014-06-23 19:28:15 UTC (rev 258) @@ -31,6 +31,8 @@ import java.util.List; import java.util.Map; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserGroup; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -89,6 +91,29 @@ return result; } + public List<MailFolder> getRootMailFoldersWithReadingRights(FaxToMailUser user) { + List<MailFolder> rootFolders = getRootMailFolders(); + List<MailFolder> result = new ArrayList<>(); + + for (MailFolder folder : rootFolders) { + findReadableFolders(folder, user, result); + } + + return result; + } + + protected void findReadableFolders(MailFolder folder, FaxToMailUser user, List<MailFolder> folders) { + if (folder.containsReadRightUsers(user) + || !CollectionUtils.intersection(folder.getReadRightGroups(), user.getUserGroups()).isEmpty()) { + folders.add(folder); + + } else if (folder.isChildrenNotEmpty()) { + for (MailFolder child : folder.getChildren()) { + findReadableFolders(child, user, folders); + } + } + } + public List<MailFolder> getMailFolders(Collection<String> ids) { MailFolderTopiaDao dao = getPersistenceContext().getMailFolderDao(); return new ArrayList<MailFolder>(dao.forTopiaIdIn(ids).findAll()); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailScreen.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailScreen.java 2014-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailScreen.java 2014-06-23 19:28:15 UTC (rev 258) @@ -30,13 +30,6 @@ */ public enum FaxToMailScreen { - /** - * To display config. - * - * @since 1.0 - */ - CONFIG, - SEARCH, DEMANDE, Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/CloseApplicationAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/CloseApplicationAction.java 2014-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/CloseApplicationAction.java 2014-06-23 19:28:15 UTC (rev 258) @@ -55,7 +55,6 @@ RunFaxToMail.closeFaxToMail(getHandler(), exitCode); } - @Override public void releaseAction() { exitCode = RunFaxToMail.NORMAL_EXIT_CODE; Deleted: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowConfigAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowConfigAction.java 2014-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowConfigAction.java 2014-06-23 19:28:15 UTC (rev 258) @@ -1,39 +0,0 @@ -package com.franciaflex.faxtomail.ui.swing.actions; - -/* - * #%L - * FaxToMail :: UI - * %% - * Copyright (C) 2014 Franciaflex - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.franciaflex.faxtomail.ui.swing.FaxToMailScreen; -import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler; - -/** - * To show config screen. - * - * @author tchemit <chemit@codelutin.com> - * @since 1.1 - */ -public class ShowConfigAction extends AbstractChangeScreenAction { - - public ShowConfigAction(MainUIHandler handler) { - super(handler, true, FaxToMailScreen.CONFIG); - } -} 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-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-06-23 19:28:15 UTC (rev 258) @@ -24,9 +24,11 @@ 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.ui.swing.FaxToMailScreen; import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; @@ -65,8 +67,17 @@ DemandeUIModel currentEmail = getContext().getCurrentEmail(); FaxToMailUser takenBy = currentEmail.getTakenBy(); FaxToMailUser currentUser = getContext().getCurrentUser(); + MailFolder folder = currentEmail.getMailFolder(); - if (currentEmail.getArchiveDate() != null) { + boolean canWrite = false; + while (!canWrite && folder.getParent() != null) { + canWrite = folder.containsWriteRightUsers(currentUser) + || !CollectionUtils.intersection(folder.getWriteRightGroups(), + currentUser.getUserGroups()).isEmpty(); + folder = folder.getParent(); + } + + if (currentEmail.getArchiveDate() != null || !canWrite) { currentEmail.setEditable(false); } else if (takenBy != null && !currentUser.equals(takenBy)) { Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUI.css =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUI.css 2014-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUI.css 2014-06-23 19:28:15 UTC (rev 258) @@ -55,16 +55,6 @@ _applicationAction: {com.franciaflex.faxtomail.ui.swing.actions.ShowRechercheAction.class}; } -#menuFileConfiguration { - actionIcon: config; - text: "faxtomail.main.action.configuration"; - toolTipText: "faxtomail.main.action.configuration.tip"; - i18nMnemonic: "faxtomail.main.action.configuration.mnemonic"; - enabled: true;//{model.getScreen() != TuttiScreen.CONFIG}; - _applicationAction: {com.franciaflex.faxtomail.ui.swing.actions.ShowConfigAction.class}; - _help: {"faxtomail.main.menu.action.configuration.help"}; -} - #menuFileExit { actionIcon: exit; text: "faxtomail.main.action.exit"; @@ -73,39 +63,6 @@ _help: {"faxtomail.main.menu.action.exit.help"}; } -/* -#menuHelp { - text: "tutti.main.menu.help"; - toolTipText: "tutti.main.menu.help.tip"; - i18nMnemonic: "tutti.main.menu.help.mnemonic"; -} - -#menuShowHelp { - actionIcon: help; - text: "tutti.main.action.showHelp"; - toolTipText: "tutti.main.action.showHelp.tip"; - i18nMnemonic: "tutti.main.action.showHelp.mnemonic"; - _help: {"tutti.index.help"}; -} - -#menuHelpSite { - actionIcon: site; - text: "tutti.main.action.site"; - toolTipText: "tutti.main.action.site.tip"; - i18nMnemonic: "tutti.main.action.site.mnemonic"; - _help: {"tutti.main.menu.action.site.help"}; -} - -#menuHelpAbout { - text: "tutti.main.action.about"; - toolTipText: "tutti.main.action.about.tip"; - actionIcon: about; - i18nMnemonic: "tutti.main.action.about.mnemonic"; - _tuttiAction: {ShowAboutAction.class}; - _help: {"tutti.main.menu.action.about.help"}; -} -*/ - #bottomBar { floatable: false; margin: {new java.awt.Insets(0, 0, 0, 5)}; @@ -119,15 +76,4 @@ #status { showClock: false; showMemoryStatus: false; -} -/* -#showHelp { - actionIcon:"show-help"; - toolTipText:"tutti.main.action.showHelp.tip"; - _help: {"tutti.main.menu.action.showHelp.help"}; -} - -#body { - _help: {"tutti.main.help"}; -} -*/ +} \ No newline at end of file Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUIHandler.java 2014-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUIHandler.java 2014-06-23 19:28:15 UTC (rev 258) @@ -331,15 +331,10 @@ JComponent screenUI; JToolBar rightDecoration = null; String screenTitle; + boolean validatorWidgetEnabled = false; Icon icon; switch (screen) { - case CONFIG: - screenUI = new FaxToMailConfigUI(ui); - screenTitle = t("faxtomail.config.title"); - icon = ui.getMenuFileConfiguration().getIcon(); - break; - case SEARCH: screenUI = new SearchUI(ui); screenTitle = t("faxtomail.search.title"); @@ -351,6 +346,7 @@ screenTitle = t("faxtomail.demand.title"); icon = JAXXWidgetUtil.createActionIcon("email-group"); rightDecoration = ((DemandesUI) screenUI).getTopToolBar(); + validatorWidgetEnabled = true; break; default: @@ -377,13 +373,14 @@ ui.getBody().setLeftDecoration(new JLabel(icon)); ui.getBody().setRightDecoration(rightDecoration); ui.getBody().add(currentBody); + ui.getValidatorMessageWidget().setEnabled(validatorWidgetEnabled); } } public void changeTitle() { - String title = getSelectedCruiseTitle(); + String title = getTitle(); ui.setTitle(t("faxtomail.main.title.application", getConfig().getVersion(), @@ -391,7 +388,7 @@ title)); } - protected String getSelectedCruiseTitle() { + protected String getTitle() { String title; 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-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-06-23 19:28:15 UTC (rev 258) @@ -47,6 +47,7 @@ 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.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; @@ -93,7 +94,8 @@ public void propertyChange(PropertyChangeEvent evt) { String propertyName = evt.getPropertyName(); - if (Email.PROPERTY_PRIORITY.equals(propertyName)) { + if (Email.PROPERTY_PRIORITY.equals(propertyName) + || Email.PROPERTY_TAKEN_BY.equals(propertyName)) { if (evt.getNewValue() != null || evt.getOldValue() != null) { SaveDemandeFromListAction saveAction = getContext().getActionFactory().createLogicAction(DemandeListUIHandler.this, @@ -112,7 +114,7 @@ super.beforeInit(ui); DemandeListUIModel model = new DemandeListUIModel(); - Collection<MailFolder> folders = getContext().getMailFolderService().getRootMailFolders(); + Collection<MailFolder> folders = getContext().getMailFolderService().getRootMailFoldersWithReadingRights(getContext().getCurrentUser()); model.setFolders(new ArrayList<MailFolder>(folders)); model.addPropertyChangeListener(DemandeListUIModel.PROPERTY_SELECTED_FOLDER, new PropertyChangeListener() { @@ -312,6 +314,9 @@ List<MailField> tableColumns = null; MailFolder selectedFolder = getModel().getSelectedFolder(); if (selectedFolder != null) { + while (!selectedFolder.isUseCurrentLevelTableColumns() && selectedFolder.getParent() != null) { + selectedFolder = selectedFolder.getParent(); + } tableColumns = selectedFolder.getFolderTableColumns(); } return tableColumns; @@ -447,9 +452,20 @@ } public void print() { + DemandeListUIModel model = getModel(); + MailFolder selectedFolder = model.getSelectedFolder(); + while (selectedFolder.getParent() != null && selectedFolder.getPrintActionEqualTakeAction() == null) { + selectedFolder = selectedFolder.getParent(); + } + boolean take = Boolean.TRUE.equals(selectedFolder.getPrintActionEqualTakeAction()); + FaxToMailUser currentUser = getContext().getCurrentUser(); + //TODO kmorin 20140606 print a result page and maybe a page to separate the demands - List<DemandeUIModel> currentEmails = getModel().getCurrentEmails(); + List<DemandeUIModel> currentEmails = model.getCurrentEmails(); for (DemandeUIModel demandeUIModel : currentEmails) { + if (take) { + demandeUIModel.setTakenBy(currentUser); + } for (Attachment attachment : demandeUIModel.getAttachment()) { // force lasy loading Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java 2014-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java 2014-06-23 19:28:15 UTC (rev 258) @@ -280,7 +280,7 @@ public void openAttachment(AttachmentFile attachment) { File file = attachment.getFile(); - DesktopUtil.open(file); + DesktopUtil.browse(file.toURI()); } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel.java 2014-06-23 17:25:12 UTC (rev 257) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel.java 2014-06-23 19:28:15 UTC (rev 258) @@ -197,7 +197,9 @@ } public void setValid(boolean valid) { + log.info("set valid " + valid); Object oldValue = isValid(); + log.info("oldValue " + oldValue); this.valid = valid; firePropertyChange(PROPERTY_VALID, oldValue, valid); } @@ -205,7 +207,10 @@ // Do not remove the unused parameter, it is just for the validation // to bind the totalAttachmentLength property public boolean isAttachmentSizeValid(long totalAttachmentLength) { - return maxAttachmentLength == 0 || this.totalAttachmentLength < maxAttachmentLength; + log.info(this.totalAttachmentLength + ", " + maxAttachmentLength + ", " + (this.totalAttachmentLength < maxAttachmentLength)); + boolean valid = maxAttachmentLength == 0 || this.totalAttachmentLength < maxAttachmentLength; + log.info(valid); + return valid; } public List<String> getSenderAllowedDomains() {
participants (1)
-
kmorin@users.forge.codelutin.com