r52 - in trunk: 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/resources/i18n
Author: echatellier Date: 2014-04-28 18:07:05 +0200 (Mon, 28 Apr 2014) New Revision: 52 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/52 Log: Display user message when client code is not correct. Added: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InvalidClientException.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.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/SaveDemandeAndExitAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeFromListAction.java trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-04-28 13:47:02 UTC (rev 51) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-04-28 16:07:05 UTC (rev 52) @@ -52,6 +52,8 @@ import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.persistence.entities.AttachmentTopiaDao; +import com.franciaflex.faxtomail.persistence.entities.Client; +import com.franciaflex.faxtomail.persistence.entities.ClientTopiaDao; import com.franciaflex.faxtomail.persistence.entities.DemandStatus; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EmailFilter; @@ -86,11 +88,17 @@ return email; } - public Email saveEmail(Email email, FaxToMailUser user, String... modifiedFields) { + public Email saveEmail(Email email, String clientCode, FaxToMailUser user, String... modifiedFields) throws InvalidClientException { Date now = getNow(); + ClientTopiaDao clientDao = getPersistenceContext().getClientDao(); EmailTopiaDao dao = getPersistenceContext().getEmailDao(); HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao(); + Client client = clientDao.forCodeEquals(clientCode).findUniqueOrNull(); + if (client == null) { + throw new InvalidClientException("Can't find client code " + clientCode); + } + if (email.getAttachment() != null) { AttachmentTopiaDao attachmentDao = getPersistenceContext().getAttachmentDao(); for (Attachment attachment : email.getAttachment()) { @@ -441,7 +449,7 @@ History.PROPERTY_MODIFICATION_DATE, now); email.addHistory(history); - email = saveEmail(email, user); + email = saveEmail(email, email.getClient().getCode(), user); } catch (Exception e) { if (log.isErrorEnabled()) { Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java 2014-04-28 13:47:02 UTC (rev 51) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java 2014-04-28 16:07:05 UTC (rev 52) @@ -351,7 +351,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) { + MailFolder folder, FaxToMailUser user) throws InvalidClientException { int r = random.nextInt(10) + 5; for (int i = 0 ; i < r ; i++) { createEmail(random, historyDao, rangeRowDao, emailDao, ranges, clients, types, priorities, folder, user); @@ -367,7 +367,7 @@ List<DemandType> types, List<Priority> priorities, MailFolder folder, - FaxToMailUser user) { + FaxToMailUser user) throws InvalidClientException { List<RangeRow> rangeRows = new ArrayList<>(); for (int j = 0 ; j < random.nextInt(4) + 1 ; j++) { @@ -418,7 +418,8 @@ email.setDemandType(types.get(random.nextInt(types.size()))); email.setPriority(priorities.get(random.nextInt(priorities.size()))); email.setRangeRow(rangeRows); - getEmailService().saveEmail(email, user, Email.PROPERTY_DEMAND_TYPE, Email.PROPERTY_PRIORITY, Email.PROPERTY_RANGE_ROW); + getEmailService().saveEmail(email, email.getClient().getCode(), user, + Email.PROPERTY_DEMAND_TYPE, Email.PROPERTY_PRIORITY, Email.PROPERTY_RANGE_ROW); } Calendar cal = Calendar.getInstance(); @@ -451,7 +452,8 @@ email.setDemandType(types.get(random.nextInt(types.size()))); email.setPriority(priorities.get(random.nextInt(priorities.size()))); email.setRangeRow(rangeRows); - getEmailService().saveEmail(email, user, Email.PROPERTY_DEMAND_TYPE, Email.PROPERTY_PRIORITY, Email.PROPERTY_RANGE_ROW); + getEmailService().saveEmail(email, email.getClient().getCode(), user, + Email.PROPERTY_DEMAND_TYPE, Email.PROPERTY_PRIORITY, Email.PROPERTY_RANGE_ROW); } } Added: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InvalidClientException.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InvalidClientException.java (rev 0) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InvalidClientException.java 2014-04-28 16:07:05 UTC (rev 52) @@ -0,0 +1,39 @@ +package com.franciaflex.faxtomail.services.service; + +/* + * #%L + * FaxToMail :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2014 Franciaflex, Code Lutin + * %% + * 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% + */ + +public class InvalidClientException extends Exception { + + /** serialVersionUID. */ + private static final long serialVersionUID = 1926451364755356679L; + + public InvalidClientException(String message, Throwable cause) { + super(message, cause); + } + + public InvalidClientException(String message) { + super(message); + } +} Property changes on: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InvalidClientException.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native 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-04-28 13:47:02 UTC (rev 51) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java 2014-04-28 16:07:05 UTC (rev 52) @@ -24,21 +24,21 @@ * #L% */ -import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EmailImpl; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.RangeRow; -import com.franciaflex.faxtomail.ui.swing.FaxToMailScreen; +import com.franciaflex.faxtomail.services.service.InvalidClientException; import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; -import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUI; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler; 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.demande.RangeTableModel; import com.google.common.collect.Maps; + import org.apache.commons.lang3.StringUtils; +import org.nuiton.jaxx.application.swing.action.ApplicationActionException; import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.util.beans.BeanMonitor; @@ -47,6 +47,10 @@ import java.util.List; import java.util.Map; +import javax.swing.JOptionPane; + +import static org.nuiton.i18n.I18n.t; + /** * @author Kevin Morin (Code Lutin) * @since x.x @@ -92,15 +96,33 @@ FaxToMailUser currentUser = context.getCurrentUser(); Email email = model.toEntity(persistedEmail); + String clientCode = model.getClientCode(); BeanMonitor monitor = getHandler().getMonitor(); String[] modifiedProperties = monitor.getModifiedProperties(); - email = context.getEmailService().saveEmail(email, currentUser, modifiedProperties); + email = context.getEmailService().saveEmail(email, clientCode, currentUser, modifiedProperties); + model.fromEntity(email); getModel().setModify(false); monitor.clearModified(); } + public void postFailedAction(Throwable error) { + + if (error instanceof InvalidClientException) { + DemandeUIModel model = getModel(); + String clientCode = model.getClientCode(); + + JOptionPane.showMessageDialog(getUI(), t("faxtomail.demande.clientCode.error", clientCode), + t("faxtomail.demandeList.title"), JOptionPane.ERROR_MESSAGE); + + // reset ui + model.setClientCode(null); + } else { + // FIXME echatellier 20140428 how to throw original exception ? + throw new RuntimeException(error); + } + } } 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-04-28 13:47:02 UTC (rev 51) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java 2014-04-28 16:07:05 UTC (rev 52) @@ -24,7 +24,6 @@ * #L% */ -import com.franciaflex.faxtomail.ui.swing.FaxToMailScreen; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler; /** Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeFromListAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeFromListAction.java 2014-04-28 13:47:02 UTC (rev 51) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeFromListAction.java 2014-04-28 16:07:05 UTC (rev 52) @@ -60,7 +60,7 @@ FaxToMailUser currentUser = context.getCurrentUser(); Email email = model.toEntity(persistedEmail); - email = context.getEmailService().saveEmail(email, currentUser, modifiedProperties); + email = context.getEmailService().saveEmail(email, email.getClient().getCode(), currentUser, modifiedProperties); model.fromEntity(email); } } Modified: trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties =================================================================== --- trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-04-28 13:47:02 UTC (rev 51) +++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-04-28 16:07:05 UTC (rev 52) @@ -67,6 +67,7 @@ faxtomail.demande.body.label=Corps du mail faxtomail.demande.client.label=Code client faxtomail.demande.clientBrand.label=Marque +faxtomail.demande.clientCode.error=Impossible de trouver le client %s \! faxtomail.demande.clientCode.label=Client faxtomail.demande.commandNumber.label=Numéro de commande faxtomail.demande.comment.label=Message
participants (1)
-
echatellier@users.forge.codelutin.com