Author: echatellier Date: 2014-07-30 15:51:22 +0200 (Wed, 30 Jul 2014) New Revision: 451 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/451 Log: fixes #5542: les types sont ?\195?\160 mettre par soci?\195?\169t?\195?\169 fixes #5541: les gammes doivent ?\195?\170tre par soci?\195?\169t?\195?\169 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/ReferentielService.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.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/EmailService.java 2014-07-28 16:19:59 UTC (rev 450) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-07-30 13:51:22 UTC (rev 451) @@ -597,12 +597,16 @@ */ public void unlockEmail(String emailId) { MailLockTopiaDao mailLockDao = getPersistenceContext().getMailLockDao(); - MailLock mailLock = mailLockDao.forAll().addEquals(MailLock.PROPERTY_LOCK_ON + "." + Email.PROPERTY_TOPIA_ID, emailId).findUnique(); - mailLockDao.delete(mailLock); - if (log.isDebugEnabled()) { - log.debug("[UNLOCK] " + emailId + " unlocked"); + MailLock mailLock = mailLockDao.forAll().addEquals(MailLock.PROPERTY_LOCK_ON + "." + Email.PROPERTY_TOPIA_ID, emailId).findUniqueOrNull(); + // ca peut être null si c'est un emailId qui est valorisé suite à une creation et donc + // qui n'a pas été vérrouillé avant + if (mailLock != null) { + mailLockDao.delete(mailLock); + if (log.isDebugEnabled()) { + log.debug("[UNLOCK] " + emailId + " unlocked"); + } + getPersistenceContext().commit(); } - getPersistenceContext().commit(); } /** Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielService.java 2014-07-28 16:19:59 UTC (rev 450) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielService.java 2014-07-30 13:51:22 UTC (rev 451) @@ -32,8 +32,6 @@ import java.util.Map; import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.nuiton.csv.Import; import org.nuiton.csv.ImportRuntimeException; import org.nuiton.jaxx.application.ApplicationTechnicalException; @@ -70,8 +68,6 @@ */ public class ReferentielService extends FaxToMailServiceSupport { - private static final Log log = LogFactory.getLog(ReferentielService.class); - public List<DemandType> getAllDemandType() { DemandTypeTopiaDao dao = getPersistenceContext().getDemandTypeDao(); return new ArrayList<>(dao.findAll()); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-07-28 16:19:59 UTC (rev 450) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-07-30 13:51:22 UTC (rev 451) @@ -132,10 +132,20 @@ MailFolder folder = model.getMailFolder(); ReferentielService referentielService = getContext().getReferentielService(); - initBeanFilterableComboBox(ui.getDocTypeComboBox(), referentielService.getAllDemandType(), model.getDemandType()); initBeanFilterableComboBox(ui.getPriorityComboBox(), referentielService.getAllPriority(), model.getPriority()); initBeanFilterableComboBox(ui.getStatusComboBox(), Arrays.asList(DemandStatus.values()), model.getDemandStatus()); + + // utilisation des etats d'attente défini pour le dossier (si défini) + List<DemandType> demandTypes = new ArrayList<DemandType>(); + Collection<DemandType> folderDemandTypes = getDemandTypeForFolder(folder); + if (CollectionUtils.isEmpty(folderDemandTypes)) { + demandTypes.addAll(referentielService.getAllDemandType()); + } else { + demandTypes.addAll(folderDemandTypes); + } + initBeanFilterableComboBox(ui.getDocTypeComboBox(), demandTypes, model.getDemandType()); + // utilisation des etats d'attente défini pour le dossier (si défini) List<EtatAttente> etatAttentes = new ArrayList<EtatAttente>(); Collection<EtatAttente> folderEtatAttentes = getEtatAttenteForFolder(folder); if (CollectionUtils.isEmpty(folderEtatAttentes)) { @@ -151,11 +161,19 @@ // init table final JXTable table = ui.getRangeTable(); + // utilisation des gammes défini pour le dossier (si défini) + List<Range> ranges = new ArrayList<Range>(); + Collection<Range> folderRanges = getRangeForFolder(folder); + if (CollectionUtils.isEmpty(folderRanges)) { + ranges.addAll(referentielService.getAllRange()); + } else { + ranges.addAll(folderRanges); + } TableColumnModelExt columnModel = new DefaultTableColumnModelExt(); addComboDataColumnToModel(columnModel, RangeTableModel.RANGE_COLUMN, getDecorator(Range.class, null), - referentielService.getAllRange()); + ranges); addColumnToModel(columnModel, RangeTableModel.COMMAND_NUMBER_COLUMN); addIntegerColumnToModel(columnModel, @@ -439,7 +457,13 @@ return ui.getValidator(); } - public Collection<EtatAttente> getEtatAttenteForFolder(MailFolder folder) { + /** + * Récupère recursivement jusqu'au parent, les etats d'attentes définis pour un dossier. + * + * @param folder base folder + * @return etat d'attente to use + */ + protected Collection<EtatAttente> getEtatAttenteForFolder(MailFolder folder) { Collection<EtatAttente> result = null; while (CollectionUtils.isEmpty(result) && folder != null) { result = folder.getEtatAttentes(); @@ -448,6 +472,36 @@ return result; } + /** + * Récupère recursivement jusqu'au parent, les types de demande définies pour un dossier. + * + * @param folder base folder + * @return etat d'attente to use + */ + protected Collection<DemandType> getDemandTypeForFolder(MailFolder folder) { + Collection<DemandType> result = null; + while (CollectionUtils.isEmpty(result) && folder != null) { + result = folder.getDemandTypes(); + folder = folder.getParent(); + } + return result; + } + + /** + * Récupère recursivement jusqu'au parent, les gammes définies pour un dossier. + * + * @param folder base folder + * @return etat d'attente to use + */ + protected Collection<Range> getRangeForFolder(MailFolder folder) { + Collection<Range> result = null; + while (CollectionUtils.isEmpty(result) && folder != null) { + result = folder.getRanges(); + folder = folder.getParent(); + } + return result; + } + public BeanMonitor getMonitor() { return monitor; }