Author: echatellier Date: 2014-04-23 12:37:42 +0200 (Wed, 23 Apr 2014) New Revision: 39 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/39 Log: refs #4659: [ECRAN] Recherche Added: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailFilter.java trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java trunk/faxtomail-service/src/test/resources/ trunk/faxtomail-service/src/test/resources/log4j.properties Modified: trunk/ trunk/faxtomail-persistence/ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java trunk/faxtomail-persistence/src/main/resources/faxToMail.properties trunk/faxtomail-service/ trunk/faxtomail-service/pom.xml 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-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java trunk/faxtomail-ui-swing/ 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/search/SearchToGroupUI.jaxx 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/SearchUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties trunk/faxtomail-ui-web/ Property changes on: trunk ___________________________________________________________________ Modified: svn:ignore - target .idea *.idea *.ipr *.iws *.iml .project .classpath + target .idea *.idea *.ipr *.iws *.iml .project .classpath .settings Property changes on: trunk/faxtomail-persistence ___________________________________________________________________ Modified: svn:ignore - target .idea *.idea *.ipr *.iws *.iml .project .classpath + target .idea *.idea *.ipr *.iws *.iml .project .classpath .settings Added: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailFilter.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailFilter.java (rev 0) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailFilter.java 2014-04-23 10:37:42 UTC (rev 39) @@ -0,0 +1,251 @@ +package com.franciaflex.faxtomail.persistence.entities; + +import java.util.Date; + +import org.jdesktop.beans.AbstractSerializableBean; + +import com.franciaflex.faxtomail.persistence.entities.DemandType; +import com.franciaflex.faxtomail.persistence.entities.EtatAttente; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.persistence.entities.Priority; + +public class EmailFilter extends AbstractSerializableBean { + + /** serialVersionUID. */ + private static final long serialVersionUID = 7039570396201559352L; + + public static final String PROPERTY_SENDER = "sender"; + public static final String PROPERTY_RECIPIENT = "recipient"; + public static final String PROPERTY_SUBJECT = "subject"; + public static final String PROPERTY_ETAT_ATTENTE = "etatAttente"; + public static final String PROPERTY_TAKEN_BY = "takenBy"; + public static final String PROPERTY_PRIORITY = "priority"; + public static final String PROPERTY_DEMAND_TYPE = "demandType"; + public static final String PROPERTY_DEMAND_STATUS = "demandStatus"; + public static final String PROPERTY_EDI_CODE_NUMBER = "ediCodeNumber"; + public static final String PROPERTY_PROJECT_REFERENCE = "projectReference"; + public static final String PROPERTY_MODIFIED_BY = "modifiedBy"; + public static final String PROPERTY_MIN_MODIFICATION_DATE = "minModificationDate"; + public static final String PROPERTY_MAX_MODIFICATION_DATE = "maxModificationDate"; + public static final String PROPERTY_MIN_RECEPTION_DATE = "minReceptionDate"; + public static final String PROPERTY_MAX_RECEPTION_DATE = "maxReceptionDate"; + public static final String PROPERTY_MIN_PRINTING_DATE = "minPrintingDate"; + public static final String PROPERTY_MAX_PRINTING_DATE = "maxPrintingDate"; + public static final String PROPERTY_CLIENT_CODE = "clientCode"; + + protected String sender; + + protected String recipient; + + protected String subject; + + protected EtatAttente etatAttente; + + protected FaxToMailUser takenBy; + + protected Priority priority; + + protected DemandType demandType; + + protected DemandStatus demandStatus; + + protected String ediCodeNumber; + + protected String projectReference; + + protected FaxToMailUser modifiedBy; + + protected Date minModificationDate; + + protected Date maxModificationDate; + + protected Date minReceptionDate; + + protected Date maxReceptionDate; + + protected Date minPrintingDate; + + protected Date maxPrintingDate; + + protected String clientCode; + + public String getSender() { + return sender; + } + + public void setSender(String sender) { + String oldValue = this.sender; + this.sender = sender; + firePropertyChange(PROPERTY_SENDER, oldValue, sender); + } + + public String getRecipient() { + return recipient; + } + + public void setRecipient(String recipient) { + String oldValue = this.recipient; + this.recipient = recipient; + firePropertyChange(PROPERTY_RECIPIENT, oldValue, recipient); + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + String oldValue = this.subject; + this.subject = subject; + firePropertyChange(PROPERTY_SUBJECT, oldValue, subject); + } + + public EtatAttente getEtatAttente() { + return etatAttente; + } + + public void setEtatAttente(EtatAttente etatAttente) { + EtatAttente oldValue = this.etatAttente; + this.etatAttente = etatAttente; + firePropertyChange(PROPERTY_ETAT_ATTENTE, oldValue, etatAttente); + } + + public FaxToMailUser getTakenBy() { + return takenBy; + } + + public void setTakenBy(FaxToMailUser takenBy) { + FaxToMailUser oldValue = this.takenBy; + this.takenBy = takenBy; + firePropertyChange(PROPERTY_TAKEN_BY, oldValue, takenBy); + } + + public Priority getPriority() { + return priority; + } + + public void setPriority(Priority priority) { + Priority oldValue = this.priority; + this.priority = priority; + firePropertyChange(PROPERTY_PRIORITY, oldValue, priority); + } + + public DemandType getDemandType() { + return demandType; + } + + public void setDemandType(DemandType demandType) { + DemandType oldValue = this.demandType; + this.demandType = demandType; + firePropertyChange(PROPERTY_DEMAND_TYPE, oldValue, demandType); + } + + public DemandStatus getDemandStatus() { + return demandStatus; + } + + public void setDemandStatus(DemandStatus demandStatus) { + DemandStatus oldValue = this.demandStatus; + this.demandStatus = demandStatus; + firePropertyChange(PROPERTY_DEMAND_STATUS, oldValue, demandStatus); + } + + public String getEdiCodeNumber() { + return ediCodeNumber; + } + + public void setEdiCodeNumber(String ediCodeNumber) { + String oldValue = this.ediCodeNumber; + this.ediCodeNumber = ediCodeNumber; + firePropertyChange(PROPERTY_EDI_CODE_NUMBER, oldValue, ediCodeNumber); + } + + public String getProjectReference() { + return projectReference; + } + + public void setProjectReference(String projectReference) { + String oldValue = this.projectReference; + this.projectReference = projectReference; + firePropertyChange(PROPERTY_PROJECT_REFERENCE, oldValue, projectReference); + } + + public FaxToMailUser getModifiedBy() { + return modifiedBy; + } + + public void setModifiedBy(FaxToMailUser modifiedBy) { + FaxToMailUser oldValue = modifiedBy; + this.modifiedBy = modifiedBy; + firePropertyChange(PROPERTY_MODIFIED_BY, oldValue, modifiedBy); + } + + public Date getMinModificationDate() { + return minModificationDate; + } + + public void setMinModificationDate(Date minModificationDate) { + Date oldValue = this.minModificationDate; + this.minModificationDate = minModificationDate; + firePropertyChange(PROPERTY_MIN_MODIFICATION_DATE, oldValue, minModificationDate); + } + + public Date getMaxModificationDate() { + return maxModificationDate; + } + + public void setMaxModificationDate(Date maxModificationDate) { + Date oldValue = this.maxModificationDate; + this.maxModificationDate = maxModificationDate; + firePropertyChange(PROPERTY_MAX_MODIFICATION_DATE, oldValue, maxModificationDate); + } + + public Date getMinReceptionDate() { + return minReceptionDate; + } + + public void setMinReceptionDate(Date minReceptionDate) { + Date oldValue = this.minReceptionDate; + this.minReceptionDate = minReceptionDate; + firePropertyChange(PROPERTY_MIN_RECEPTION_DATE, oldValue, minReceptionDate); + } + + public Date getMaxReceptionDate() { + return maxReceptionDate; + } + + public void setMaxReceptionDate(Date maxReceptionDate) { + Date oldValue = this.maxReceptionDate; + this.maxReceptionDate = maxReceptionDate; + firePropertyChange(PROPERTY_MAX_RECEPTION_DATE, oldValue, maxReceptionDate); + } + + public Date getMinPrintingDate() { + return minPrintingDate; + } + + public void setMinPrintingDate(Date minPrintingDate) { + Date oldValue = this.minPrintingDate; + this.minPrintingDate = minPrintingDate; + firePropertyChange(PROPERTY_MIN_PRINTING_DATE, oldValue, minPrintingDate); + } + + public Date getMaxPrintingDate() { + return maxPrintingDate; + } + + public void setMaxPrintingDate(Date maxPrintingDate) { + Date oldValue = this.maxPrintingDate; + this.maxPrintingDate = maxPrintingDate; + firePropertyChange(PROPERTY_MAX_PRINTING_DATE, oldValue, maxPrintingDate); + } + + public String getClientCode() { + return clientCode; + } + + public void setClientCode(String clientCode) { + String oldValue = this.clientCode; + this.clientCode = clientCode; + firePropertyChange(PROPERTY_CLIENT_CODE, oldValue, clientCode); + } +} Property changes on: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailFilter.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native 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-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-04-23 10:37:42 UTC (rev 39) @@ -24,18 +24,15 @@ * #L% */ -import com.google.common.base.Preconditions; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.text.WordUtils; -import org.nuiton.topia.persistence.HqlAndParametersBuilder; -import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep; -import org.nuiton.topia.persistence.internal.AbstractTopiaDao; -import javax.annotation.Generated; - public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { - @Override + /*@Override public MyInnerTopiaQueryBuilderAddCriteriaOrRunQueryStep newQueryBuilder() { MyHqlAndParametersBuilder hqlAndParametersBuilder = new MyHqlAndParametersBuilder(getEntityClass()); MyInnerTopiaQueryBuilderAddCriteriaOrRunQueryStep result = new MyInnerTopiaQueryBuilderAddCriteriaOrRunQueryStep(this, hqlAndParametersBuilder); @@ -85,6 +82,140 @@ whereClauses.add(alias + "." + property + " = :" + hqlParameterName); } } + }*/ + + /** + * Search for email using filter. + * + * @param emailFilter email filter + * @return email list matching query filters + */ + public List<Email> search(EmailFilter emailFilter) { + + StringBuilder query = new StringBuilder("FROM " + Email.class.getName() + " E"); + query.append(" WHERE 1 = 1"); + Map<String, Object> args = new HashMap<>(); + + // email subject + if (StringUtils.isNotBlank(emailFilter.getSubject())) { + query.append(" AND lower(E." + Email.PROPERTY_SUBJECT + ") LIKE lower(:" + EmailFilter.PROPERTY_SUBJECT + ")"); + args.put(EmailFilter.PROPERTY_SUBJECT, "%" + emailFilter.getSubject() + "%"); + } + + // email sender + if (StringUtils.isNotBlank(emailFilter.getSender())) { + query.append(" AND lower(E." + Email.PROPERTY_SENDER + ") LIKE lower(:" + EmailFilter.PROPERTY_SENDER + ")"); + args.put(EmailFilter.PROPERTY_SENDER, "%" + emailFilter.getSender() + "%"); + } + + // email recipient + if (StringUtils.isNotBlank(emailFilter.getRecipient())) { + query.append(" AND lower(E." + Email.PROPERTY_RECIPIENT + ") LIKE lower(:" + EmailFilter.PROPERTY_RECIPIENT + ")"); + args.put(EmailFilter.PROPERTY_RECIPIENT, "%" + emailFilter.getRecipient() + "%"); + } + + // email etat attente + if (emailFilter.getEtatAttente() != null) { + query.append(" AND E." + Email.PROPERTY_ETAT_ATTENTE + " = :" + EmailFilter.PROPERTY_ETAT_ATTENTE); + args.put(EmailFilter.PROPERTY_ETAT_ATTENTE, emailFilter.getEtatAttente()); + } + + // email taken by + if (emailFilter.getTakenBy() != null) { + query.append(" AND E." + Email.PROPERTY_TAKEN_BY + " = :" + EmailFilter.PROPERTY_TAKEN_BY); + args.put(EmailFilter.PROPERTY_TAKEN_BY, emailFilter.getTakenBy()); + } + + // email priority + if (emailFilter.getPriority() != null) { + query.append(" AND E." + Email.PROPERTY_PRIORITY + " = :" + EmailFilter.PROPERTY_PRIORITY); + args.put(EmailFilter.PROPERTY_PRIORITY, emailFilter.getPriority()); + } + + // email demand type + if (emailFilter.getDemandType() != null) { + query.append(" AND E." + Email.PROPERTY_DEMAND_TYPE + " = :" + EmailFilter.PROPERTY_DEMAND_TYPE); + args.put(EmailFilter.PROPERTY_DEMAND_TYPE, emailFilter.getDemandType()); + } + + // email demand status + if (emailFilter.getDemandStatus() != null) { + query.append(" AND E." + Email.PROPERTY_DEMAND_STATUS + " = :" + EmailFilter.PROPERTY_DEMAND_STATUS); + args.put(EmailFilter.PROPERTY_DEMAND_STATUS, emailFilter.getDemandStatus()); + } + + // email ediCodeNumber + if (StringUtils.isNotBlank(emailFilter.getEdiCodeNumber())) { + query.append(" AND lower(E." + Email.PROPERTY_EDI_CODE_NUMBER + ") LIKE lower(:" + EmailFilter.PROPERTY_EDI_CODE_NUMBER + ")"); + args.put(EmailFilter.PROPERTY_EDI_CODE_NUMBER, "%" + emailFilter.getEdiCodeNumber() + "%"); + } + + // email projectReference + if (StringUtils.isNotBlank(emailFilter.getProjectReference())) { + query.append(" AND lower(E." + Email.PROPERTY_PROJECT_REFERENCE + ") LIKE lower(:" + EmailFilter.PROPERTY_PROJECT_REFERENCE + ")"); + args.put(EmailFilter.PROPERTY_PROJECT_REFERENCE, "%" + emailFilter.getProjectReference() + "%"); + } + + // history modifiedBy + if (emailFilter.getModifiedBy() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_MODIFIED_BY + ")"); + args.put(EmailFilter.PROPERTY_MODIFIED_BY, emailFilter.getModifiedBy()); + } + + // email minModificationDate + if (emailFilter.getMinModificationDate() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :modificationType"); + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_MODIFICATION_DATE + ")"); + args.put("modificationType", HistoryType.MODIFICATION); + args.put(EmailFilter.PROPERTY_MIN_MODIFICATION_DATE, emailFilter.getMinModificationDate()); + } + + // email maxModificationDate + if (emailFilter.getMaxModificationDate() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :modificationType"); + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " <= :" + EmailFilter.PROPERTY_MAX_MODIFICATION_DATE + ")"); + args.put("modificationType", HistoryType.MODIFICATION); + args.put(EmailFilter.PROPERTY_MAX_MODIFICATION_DATE, emailFilter.getMaxModificationDate()); + } + + // email minReceptionDate + if (emailFilter.getMinReceptionDate() != null) { + query.append(" AND E." + Email.PROPERTY_RECEPTION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_RECEPTION_DATE); + args.put(EmailFilter.PROPERTY_MIN_RECEPTION_DATE, emailFilter.getMinReceptionDate()); + } + + // email maxReceptionDate + if (emailFilter.getMaxReceptionDate() != null) { + query.append(" AND E." + Email.PROPERTY_RECEPTION_DATE + " <= :" + EmailFilter.PROPERTY_MAX_RECEPTION_DATE); + args.put(EmailFilter.PROPERTY_MAX_RECEPTION_DATE, emailFilter.getMaxReceptionDate()); + } + + // email minPrintingDate + if (emailFilter.getMinPrintingDate() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :printingType"); + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_PRINTING_DATE + ")"); + args.put("printingType", HistoryType.PRINTING); + args.put(EmailFilter.PROPERTY_MIN_PRINTING_DATE, emailFilter.getMinPrintingDate()); + } + + // email maxPrintingDate + if (emailFilter.getMaxPrintingDate() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :printingType"); + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MAX_PRINTING_DATE + ")"); + args.put("printingType", HistoryType.PRINTING); + args.put(EmailFilter.PROPERTY_MAX_PRINTING_DATE, emailFilter.getMaxPrintingDate()); + } + + // client code + if (StringUtils.isNoneBlank(emailFilter.getClientCode())) { + query.append(" AND lower(E." + Email.PROPERTY_CLIENT + "." + Client.PROPERTY_CODE + ") LIKE lower(:" + EmailFilter.PROPERTY_CLIENT_CODE + ")"); + args.put(EmailFilter.PROPERTY_CLIENT_CODE, "%" + emailFilter.getClientCode() + "%"); + } + + return findAll(query.toString(), args); } - } Modified: trunk/faxtomail-persistence/src/main/resources/faxToMail.properties =================================================================== --- trunk/faxtomail-persistence/src/main/resources/faxToMail.properties 2014-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-persistence/src/main/resources/faxToMail.properties 2014-04-23 10:37:42 UTC (rev 39) @@ -22,7 +22,7 @@ # #L% ### hibernate.connection.driver_class=org.h2.Driver -hibernate.connection.url=jdbc:h2:file:/tmp/faxtomail/h2data +hibernate.connection.url=jdbc:h2:file:/tmp/faxtomail/h2data;MODE=MSSQLServer hibernate.connection.username=sa hibernate.connection.password= @@ -35,8 +35,8 @@ hibernate.dialect=org.hibernate.dialect.H2Dialect hibernate.hbm2ddl.auto=update -hibernate.show_sql=false -hibernate.format_sql=true +#hibernate.show_sql=false +#hibernate.format_sql=true hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy hibernate.c3p0.min_size=5 Property changes on: trunk/faxtomail-service ___________________________________________________________________ Modified: svn:ignore - target .idea *.idea *.ipr *.iws *.iml .project .classpath + target .idea *.idea *.ipr *.iws *.iml .project .classpath .settings Modified: trunk/faxtomail-service/pom.xml =================================================================== --- trunk/faxtomail-service/pom.xml 2014-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-service/pom.xml 2014-04-23 10:37:42 UTC (rev 39) @@ -125,14 +125,19 @@ </dependency> <!-- Logging --> - <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jcl</artifactId> - <scope>provided</scope> + <scope>test</scope> </dependency> <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <scope>test</scope> + </dependency> + + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> 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-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-04-23 10:37:42 UTC (rev 39) @@ -2,11 +2,10 @@ 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.DemandStatus; import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.EmailFilter; import com.franciaflex.faxtomail.persistence.entities.EmailGroup; -import com.franciaflex.faxtomail.persistence.entities.EmailGroupImpl; import com.franciaflex.faxtomail.persistence.entities.EmailGroupTopiaDao; import com.franciaflex.faxtomail.persistence.entities.EmailTopiaDao; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; @@ -21,48 +20,23 @@ import com.franciaflex.faxtomail.services.FaxToMailServiceSupport; import com.google.common.collect.Lists; import com.google.common.collect.Sets; + import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.mail.DefaultAuthenticator; -import org.apache.commons.mail.EmailAttachment; -import org.apache.commons.mail.EmailException; import org.apache.commons.mail.MultiPartEmail; -import org.apache.commons.mail.SimpleEmail; -import org.nuiton.topia.persistence.TopiaEntityVisitor; -import org.nuiton.topia.persistence.internal.AbstractTopiaDao; -import org.nuiton.topia.persistence.pager.TopiaPagerBean; -import javax.activation.DataHandler; -import javax.activation.DataSource; -import javax.activation.FileDataSource; -import javax.mail.BodyPart; -import javax.mail.Message; -import javax.mail.MessagingException; -import javax.mail.Multipart; -import javax.mail.PasswordAuthentication; -import javax.mail.Session; -import javax.mail.Transport; -import javax.mail.internet.InternetAddress; import javax.mail.internet.MailDateFormat; -import javax.mail.internet.MimeBodyPart; -import javax.mail.internet.MimeMessage; -import javax.mail.internet.MimeMultipart; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; + import java.io.File; -import java.io.InputStream; import java.net.URL; import java.text.DateFormat; import java.util.ArrayList; -import java.util.Calendar; import java.util.Collection; import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Properties; import java.util.Set; @@ -204,31 +178,10 @@ return email; } - public List<Email> search(Email emailLike, Date minReceptionDate, Date maxReceptionDate, - Date minModificationDate, Date maxModificationDate, FaxToMailUser modifier, - Date minPrintingDate, Date maxPrintingDate) { + public List<Email> search(EmailFilter emailFilter) { - HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao(); - AbstractTopiaDao.InnerTopiaQueryBuilderAddCriteriaOrRunQueryStep<History> queryBuilder = - historyDao.newQueryBuilder(); - if (modifier != null) { - queryBuilder.addEquals(History.PROPERTY_FAX_TO_MAIL_USER, modifier); - } - List<History> histories = new ArrayList<>(queryBuilder.findAll()); - EmailTopiaDao dao = getPersistenceContext().getEmailDao(); - List<Email> result = new ArrayList<>(dao.newQueryBuilder() - .addContainsText(Email.PROPERTY_SUBJECT, emailLike.getSubject()) - .addContainsText(Email.PROPERTY_SENDER, emailLike.getSender()) -// .addContainsText(Email.PROPERTY_CLIENT_CODE, emailLike.getClientCode()) - .addContainsText(Email.PROPERTY_PROJECT_REFERENCE, emailLike.getProjectReference()) - .addContainsText(Email.PROPERTY_COMPANY_REFERENCE, emailLike.getCompanyReference()) - .addEqualsIfNotNull(Email.PROPERTY_TAKEN_BY, emailLike.getTakenBy()) - .addEqualsIfNotNull(Email.PROPERTY_DEMAND_TYPE, emailLike.getDemandType()) - .addEqualsIfNotNull(Email.PROPERTY_PRIORITY, emailLike.getPriority()) - .addEqualsIfNotNull(Email.PROPERTY_DEMAND_STATUS, emailLike.getDemandStatus()) - .addEqualsIfNotNull(Email.PROPERTY_ETAT_ATTENTE, emailLike.getEtatAttente()) - .findAll()); + List<Email> result = dao.search(emailFilter); return result; } 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-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java 2014-04-23 10:37:42 UTC (rev 39) @@ -34,7 +34,6 @@ import com.franciaflex.faxtomail.persistence.entities.DemandTypeTopiaDao; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EmailAccount; -import com.franciaflex.faxtomail.persistence.entities.EmailAccountTopiaDao; import com.franciaflex.faxtomail.persistence.entities.EmailTopiaDao; import com.franciaflex.faxtomail.persistence.entities.EtatAttente; import com.franciaflex.faxtomail.persistence.entities.EtatAttenteTopiaDao; @@ -65,10 +64,6 @@ import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; import java.util.Calendar; @@ -77,7 +72,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.Random; import static org.nuiton.i18n.I18n.t; @@ -230,7 +224,8 @@ MailFolderTopiaDao folderDao = getPersistenceContext().getMailFolderDao(); Map<String, MailFolder> folders = new HashMap<>(); - Random random = new Random(); + // fixme seed to be used in test + Random random = new Random(1234); EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao(); RangeRowTopiaDao rangeRowDao = getPersistenceContext().getRangeRowDao(); Modified: trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java =================================================================== --- trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java 2014-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java 2014-04-23 10:37:42 UTC (rev 39) @@ -67,12 +67,14 @@ hibernateH2Config.put(Environment.DRIVER, org.h2.Driver.class.getName()); hibernateH2Config.put(Environment.USER, "sa"); hibernateH2Config.put(Environment.PASS, ""); + hibernateH2Config.put(Environment.HBM2DDL_AUTO, "create"); File tempDirFile = SystemUtils.getJavaIoTmpDir(); File databaseFile = new File(tempDirFile, dataBase); - String h2dataPath = databaseFile.getAbsolutePath() + File.separator + "h2data-test"; + // Set test data in MSSQLServer mode (like production database) + String h2dataPath = databaseFile.getAbsolutePath() + File.separator + "h2data-test;MODE=MSSQLServer"; String jdbcUrl = "jdbc:h2:file:" + h2dataPath; Added: trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java =================================================================== --- trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java (rev 0) +++ trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java 2014-04-23 10:37:42 UTC (rev 39) @@ -0,0 +1,85 @@ +package com.franciaflex.faxtomail.services.service; + +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.EmailFilter; + +/* + * #%L + * Extranet ENC-AHI :: Services + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2013 Ministère des Affaires sociales et de la Santé + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +/** + * Email service tests. + * + * @author Eric Chatellier + */ +public class EmailServiceTest extends AbstractFaxToMailServiceTest { + + private static final Log log = LogFactory.getLog(MailFolderServiceTest.class); + + protected EmailService service; + + @Before + public void setUp() { + service = newService(EmailService.class); + log.info("init sample data"); + newService(InitFaxToMailService.class).initSampleData(); + } + + @Test + public void testSearch() { + + // empty filter + EmailFilter filter = new EmailFilter(); + List<Email> emails = service.search(filter); + Assert.assertEquals(116, emails.size()); + /*for (Email email : emails) { + System.out.println(email.getClient().getCode() + "," + email.getSubject()); + }*/ + + // client code filter + filter.setClientCode("23"); + emails = service.search(filter); + Assert.assertEquals(18, emails.size()); + + // client code filter + subject filter + filter.setSubject("ARENO"); + emails = service.search(filter); + Assert.assertEquals(2, emails.size()); + + // date + filter.setMinModificationDate(getServiceContext().getNow()); + filter.setMaxModificationDate(getServiceContext().getNow()); + filter.setMinReceptionDate(getServiceContext().getNow()); + filter.setMaxReceptionDate(getServiceContext().getNow()); + emails = service.search(filter); + Assert.assertEquals(0, emails.size()); // just to test synthax + } +} Property changes on: trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/faxtomail-service/src/test/resources/log4j.properties =================================================================== --- trunk/faxtomail-service/src/test/resources/log4j.properties (rev 0) +++ trunk/faxtomail-service/src/test/resources/log4j.properties 2014-04-23 10:37:42 UTC (rev 39) @@ -0,0 +1,36 @@ +### +# #%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% +### +log4j.rootCategory=WARN, console + +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=%d{yyyy/MM/dd hh:mm:ss} %5p (%F:%L) %M %m%n + +# global level +log4j.logger.com.franciaflex.faxtomail.ui.swing=DEBUG + +### persistence level +# log4j.logger.org.nuiton.topia=TRACE +# log4j.logger.com.franciaflex.faxtomail.persistence=TRACE + +### services level +# log4j.logger.com.franciaflex.faxtomail.services=TRACE Property changes on: trunk/faxtomail-service/src/test/resources/log4j.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: trunk/faxtomail-ui-swing ___________________________________________________________________ Modified: svn:ignore - target .idea *.idea *.ipr *.iws *.iml .project .classpath + target .idea *.idea *.ipr *.iws *.iml .project .classpath .settings 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-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java 2014-04-23 10:37:42 UTC (rev 39) @@ -1,15 +1,15 @@ package com.franciaflex.faxtomail.ui.swing.actions; +import java.util.ArrayList; +import java.util.List; + import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.EmailFilter; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.search.SearchUI; import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIHandler; import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIModel; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - /** * @author Kevin Morin (Code Lutin) * @since x.x @@ -25,10 +25,9 @@ SearchUIModel model = getModel(); getContext().setSearch(model); - Email email = model.toEntity(); - List<Email> emails = getContext().getEmailService().search(email, model.getMinReceptionDate(), model.getMaxReceptionDate(), - model.getMinModificationDate(), model.getMaxModificationDate(), model.getModifiedBy(), - model.getMinPrintingDate(), model.getMaxPrintingDate()); + EmailFilter emailFilter = model.toEntity(); + + List<Email> emails = getContext().getEmailService().search(emailFilter); List<DemandeUIModel> result = new ArrayList<>(); for (Email mail : emails) { DemandeUIModel demand = new DemandeUIModel(); 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-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.java 2014-04-23 10:37:42 UTC (rev 39) @@ -1,11 +1,10 @@ package com.franciaflex.faxtomail.ui.swing.actions; import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.EmailFilter; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; 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.SearchUI; -import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIHandler; import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIModel; import java.util.ArrayList; @@ -26,10 +25,9 @@ SearchUIModel model = getModel(); getContext().setSearch(model); - Email email = model.toEntity(); - List<Email> emails = getContext().getEmailService().search(email, model.getMinReceptionDate(), model.getMaxReceptionDate(), - model.getMinModificationDate(), model.getMaxModificationDate(), model.getModifiedBy(), - model.getMinPrintingDate(), model.getMaxPrintingDate()); + EmailFilter emailFilter = model.toEntity(); + List<Email> emails = getContext().getEmailService().search(emailFilter); + List<DemandeUIModel> result = new ArrayList<>(); for (Email mail : emails) { DemandeUIModel demand = new DemandeUIModel(); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx 2014-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx 2014-04-23 10:37:42 UTC (rev 39) @@ -1,4 +1,25 @@ -<JPanel id='searchToGroupPanel' +<!-- + #%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% + --> +<JPanel id='searchToGroupPanel' layout='{new BorderLayout()}' implements='com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI<SearchUIModel, SearchToGroupUIHandler>'> <import> 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-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css 2014-04-23 10:37:42 UTC (rev 39) @@ -48,6 +48,11 @@ text: "faxtomail.search.modifiedBy.label"; } +#modifiedByComboBox { + property: modifiedBy; + selectedItem: { model.getModifiedBy() }; +} + #takenByLabel { text: "faxtomail.demande.takenBy.label"; } 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-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx 2014-04-23 10:37:42 UTC (rev 39) @@ -19,7 +19,7 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<JPanel id='searchPanel' +<JPanel id='searchPanel' layout='{new BorderLayout()}' implements='com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI<SearchUIModel, SearchUIHandler>'> <import> Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-04-23 10:37:42 UTC (rev 39) @@ -26,20 +26,11 @@ import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.services.service.ReferentielService; import com.franciaflex.faxtomail.ui.swing.actions.SearchAction; -import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeAction; import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeListAction; -import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailDemandListHandler; -import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import com.franciaflex.faxtomail.ui.swing.util.CloseableUI; import com.franciaflex.faxtomail.ui.swing.util.DemandeTableModel; -import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI; -import com.google.common.base.Predicate; -import com.google.common.collect.Lists; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.context.JAXXContextEntryDef; -import jaxx.runtime.swing.editor.bean.BeanDoubleListModel; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -47,18 +38,12 @@ import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import javax.swing.*; -import java.awt.*; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.List; -import java.util.Set; import static org.nuiton.i18n.I18n.t; @@ -92,8 +77,8 @@ searchUIModel.setMinModificationDate(twoMonthsAgo); searchUIModel.setMaxReceptionDate(now); searchUIModel.setMinReceptionDate(twoMonthsAgo); - searchUIModel.setMaxPrintingDate(now); - searchUIModel.setMinPrintingDate(twoMonthsAgo); + //searchUIModel.setMaxPrintingDate(now); + //searchUIModel.setMinPrintingDate(twoMonthsAgo); } getUI().setContextValue(searchUIModel); 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-04-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-04-23 10:37:42 UTC (rev 39) @@ -22,36 +22,28 @@ * #L% */ -import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.persistence.entities.DemandStatus; import com.franciaflex.faxtomail.persistence.entities.DemandType; -import com.franciaflex.faxtomail.persistence.entities.Email; -import com.franciaflex.faxtomail.persistence.entities.EmailImpl; +import com.franciaflex.faxtomail.persistence.entities.EmailFilter; import com.franciaflex.faxtomail.persistence.entities.EtatAttente; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; -import com.franciaflex.faxtomail.persistence.entities.History; -import com.franciaflex.faxtomail.persistence.entities.HistoryType; -import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.Priority; -import com.franciaflex.faxtomail.persistence.entities.RangeRow; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailBeanUIModel; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; -import java.util.Collection; import java.util.Date; import java.util.List; -import static org.nuiton.i18n.I18n.t; - /** * @author kmorin <kmorin@codelutin.com> * @since x.x */ -public class SearchUIModel extends AbstractFaxToMailBeanUIModel<Email, SearchUIModel> { +public class SearchUIModel extends AbstractFaxToMailBeanUIModel<EmailFilter, SearchUIModel> { private static final Log log = LogFactory.getLog(SearchUIModel.class); @@ -59,44 +51,29 @@ public static final String PROPERTY_MENU_ENABLED = "menuEnabled"; public static final String PROPERTY_GROUP_ENABLED = "groupEnabled"; - protected final Email editObject = new EmailImpl(); + protected final EmailFilter editObject = new EmailFilter(); - protected FaxToMailUser modifiedBy; - - protected Date minModificationDate; - protected Date maxModificationDate; - - protected Date minReceptionDate; - protected Date maxReceptionDate; - - protected Date minPrintingDate; - protected Date maxPrintingDate; - protected List<DemandeUIModel> results; protected boolean menuEnabled; protected boolean groupEnabled; - protected static Binder<SearchUIModel, Email> toBeanBinder = + protected static Binder<SearchUIModel, EmailFilter> toBeanBinder = BinderFactory.newBinder(SearchUIModel.class, - Email.class); + EmailFilter.class); - protected static Binder<Email, SearchUIModel> fromBeanBinder = - BinderFactory.newBinder(Email.class, SearchUIModel.class); + protected static Binder<EmailFilter, SearchUIModel> fromBeanBinder = + BinderFactory.newBinder(EmailFilter.class, SearchUIModel.class); public SearchUIModel() { super(fromBeanBinder, toBeanBinder); } - @Override - public void fromEntity(Email entity) { - super.fromEntity(entity); - } - + public void setSender(String sender) { Object oldValue = getSender(); editObject.setSender(sender); - firePropertyChanged(Email.PROPERTY_SENDER, oldValue, sender); + firePropertyChanged(EmailFilter.PROPERTY_SENDER, oldValue, sender); } public String getSender() { @@ -106,7 +83,7 @@ public void setRecipient(String recipient) { Object oldValue = getRecipient(); editObject.setRecipient(recipient); - firePropertyChanged(Email.PROPERTY_RECIPIENT, oldValue, recipient); + firePropertyChanged(EmailFilter.PROPERTY_RECIPIENT, oldValue, recipient); } public String getRecipient() { @@ -116,27 +93,27 @@ public void setSubject(String subject) { Object oldValue = getSubject(); editObject.setSubject(subject); - firePropertyChanged(Email.PROPERTY_SUBJECT, oldValue, subject); + firePropertyChanged(EmailFilter.PROPERTY_SUBJECT, oldValue, subject); } public String getSubject() { return editObject.getSubject(); } -// public void setClientCode(String clientCode) { -// Object oldValue = getClientCode(); -// editObject.setClientCode(clientCode); -// firePropertyChanged(Email.PROPERTY_CLIENT_CODE, oldValue, clientCode); -// } + public void setClientCode(String clientCode) { + Object oldValue = getClientCode(); + editObject.setClientCode(clientCode); + firePropertyChanged(EmailFilter.PROPERTY_CLIENT_CODE, oldValue, clientCode); + } -// public String getClientCode() { -// return editObject.getClientCode(); -// } + public String getClientCode() { + return editObject.getClientCode(); + } public void setEtatAttente(EtatAttente etatAttente) { Object oldValue = getEtatAttente(); editObject.setEtatAttente(etatAttente); - firePropertyChanged(Email.PROPERTY_ETAT_ATTENTE, oldValue, etatAttente); + firePropertyChanged(EmailFilter.PROPERTY_ETAT_ATTENTE, oldValue, etatAttente); } public EtatAttente getEtatAttente() { @@ -146,7 +123,7 @@ public void setTakenBy(FaxToMailUser faxToMailUser) { Object oldValue = getTakenBy(); editObject.setTakenBy(faxToMailUser); - firePropertyChanged(Email.PROPERTY_TAKEN_BY, oldValue, faxToMailUser); + firePropertyChanged(EmailFilter.PROPERTY_TAKEN_BY, oldValue, faxToMailUser); } public FaxToMailUser getTakenBy() { @@ -160,7 +137,7 @@ public void setPriority(Priority priority) { Object oldValue = getPriority(); editObject.setPriority(priority); - firePropertyChanged(Email.PROPERTY_PRIORITY, oldValue, priority); + firePropertyChanged(EmailFilter.PROPERTY_PRIORITY, oldValue, priority); } public DemandType getDemandType() { @@ -170,7 +147,7 @@ public void setDemandType(DemandType demandType) { Object oldValue = getDemandType(); editObject.setDemandType(demandType); - firePropertyChanged(Email.PROPERTY_DEMAND_TYPE, oldValue, demandType); + firePropertyChanged(EmailFilter.PROPERTY_DEMAND_TYPE, oldValue, demandType); } public DemandStatus getDemandStatus() { @@ -180,13 +157,13 @@ public void setDemandStatus(DemandStatus demandStatus) { Object oldValue = getDemandStatus(); editObject.setDemandStatus(demandStatus); - firePropertyChanged(Email.PROPERTY_DEMAND_STATUS, oldValue, demandStatus); + firePropertyChanged(EmailFilter.PROPERTY_DEMAND_STATUS, oldValue, demandStatus); } public void setEdiCodeNumber(String ediCodeNumber) { Object oldValue = getEdiCodeNumber(); editObject.setEdiCodeNumber(ediCodeNumber); - firePropertyChanged(Email.PROPERTY_EDI_CODE_NUMBER, oldValue, ediCodeNumber); + firePropertyChanged(EmailFilter.PROPERTY_EDI_CODE_NUMBER, oldValue, ediCodeNumber); } public String getEdiCodeNumber() { @@ -196,7 +173,7 @@ public void setProjectReference(String projectReference) { Object oldValue = getProjectReference(); editObject.setProjectReference(projectReference); - firePropertyChanged(Email.PROPERTY_PROJECT_REFERENCE, oldValue, projectReference); + firePropertyChanged(EmailFilter.PROPERTY_PROJECT_REFERENCE, oldValue, projectReference); } public String getProjectReference() { @@ -204,59 +181,73 @@ } public FaxToMailUser getModifiedBy() { - return modifiedBy; + return editObject.getModifiedBy(); } public void setModifiedBy(FaxToMailUser modifiedBy) { - this.modifiedBy = modifiedBy; + Object oldValue = getModifiedBy(); + editObject.setModifiedBy(modifiedBy); + firePropertyChanged(EmailFilter.PROPERTY_MODIFIED_BY, oldValue, modifiedBy); } public Date getMinModificationDate() { - return minModificationDate; + return editObject.getMinModificationDate(); } public void setMinModificationDate(Date minModificationDate) { - this.minModificationDate = minModificationDate; + Object oldValue = getMinModificationDate(); + editObject.setMinModificationDate(minModificationDate); + firePropertyChanged(EmailFilter.PROPERTY_MIN_MODIFICATION_DATE, oldValue, minModificationDate); } public Date getMaxModificationDate() { - return maxModificationDate; + return editObject.getMaxModificationDate(); } public void setMaxModificationDate(Date maxModificationDate) { - this.maxModificationDate = maxModificationDate; + Object oldValue = getMaxModificationDate(); + editObject.setMaxModificationDate(maxModificationDate); + firePropertyChanged(EmailFilter.PROPERTY_MAX_MODIFICATION_DATE, oldValue, maxModificationDate); } public Date getMinReceptionDate() { - return minReceptionDate; + return editObject.getMinReceptionDate(); } public void setMinReceptionDate(Date minReceptionDate) { - this.minReceptionDate = minReceptionDate; + Object oldValue = getMinReceptionDate(); + editObject.setMinReceptionDate(minReceptionDate); + firePropertyChanged(EmailFilter.PROPERTY_MIN_RECEPTION_DATE, oldValue, minReceptionDate); } public Date getMaxReceptionDate() { - return maxReceptionDate; + return editObject.getMaxReceptionDate(); } public void setMaxReceptionDate(Date maxReceptionDate) { - this.maxReceptionDate = maxReceptionDate; + Object oldValue = getMaxReceptionDate(); + editObject.setMaxReceptionDate(maxReceptionDate); + firePropertyChanged(EmailFilter.PROPERTY_MAX_RECEPTION_DATE, oldValue, maxReceptionDate); } public Date getMinPrintingDate() { - return minPrintingDate; + return editObject.getMinPrintingDate(); } public void setMinPrintingDate(Date minPrintingDate) { - this.minPrintingDate = minPrintingDate; + Object oldValue = getMinPrintingDate(); + editObject.setMinPrintingDate(minPrintingDate); + firePropertyChanged(EmailFilter.PROPERTY_MIN_PRINTING_DATE, oldValue, minPrintingDate); } public Date getMaxPrintingDate() { - return maxPrintingDate; + return editObject.getMaxPrintingDate(); } public void setMaxPrintingDate(Date maxPrintingDate) { - this.maxPrintingDate = maxPrintingDate; + Object oldValue = getMaxPrintingDate(); + editObject.setMaxPrintingDate(maxPrintingDate); + firePropertyChanged(EmailFilter.PROPERTY_MAX_PRINTING_DATE, oldValue, maxPrintingDate); } public List<DemandeUIModel> getResults() { @@ -289,7 +280,7 @@ } @Override - protected Email newEntity() { - return new EmailImpl(); + protected EmailFilter newEntity() { + return new EmailFilter(); } } 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-22 16:52:11 UTC (rev 38) +++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-04-23 10:37:42 UTC (rev 39) @@ -61,7 +61,7 @@ faxtomail.demande.askSaveBeforeLeaving.save=Vous avez modifié l'élément mais vous n'avez pas enregistré ces modifications. faxtomail.demande.attachment.label=Pièces-jointes faxtomail.demande.back.button.label=Quitter -faxtomail.demande.client.label= +faxtomail.demande.client.label=Code client faxtomail.demande.clientBrand.label=Marque faxtomail.demande.clientCode.label=Client faxtomail.demande.companyReference.label=Notre référence Property changes on: trunk/faxtomail-ui-web ___________________________________________________________________ Modified: svn:ignore - target *.iml + target *.iml .classpath .project .settings