Author: echatellier Date: 2014-08-07 10:10:55 +0200 (Thu, 07 Aug 2014) New Revision: 487 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/487 Log: Fix lazy collections in search ui Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java trunk/faxtomail-ui-web/pom.xml Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-08-07 07:54:58 UTC (rev 486) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-08-07 08:10:55 UTC (rev 487) @@ -64,6 +64,7 @@ import org.apache.pdfbox.pdmodel.PDDocumentCatalog; import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm; import org.apache.pdfbox.pdmodel.interactive.form.PDField; +import org.hibernate.Hibernate; import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep; import org.nuiton.util.beans.Binder; @@ -525,7 +526,7 @@ @Override public Email addToHistory(String emailId, HistoryType type, FaxToMailUser user, Date date, String... fields) { EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); - Email email = getEmailByTopiaId(emailDao, emailId); + Email email = getEmailById(emailId); HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao(); History history = historyDao.create(History.PROPERTY_TYPE, type, @@ -551,7 +552,7 @@ @Override public Email takeEmail(String emailId, FaxToMailUser user) { EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); - Email email = getEmailByTopiaId(emailDao, emailId); + Email email = getEmailById(emailId); email.setTakenBy(user); HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao(); @@ -580,7 +581,7 @@ // get current lock on mail if any EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); MailLockTopiaDao mailLockDao = getPersistenceContext().getMailLockDao(); - Email email = getEmailByTopiaId(emailDao, emailId); + Email email = emailDao.forTopiaIdEquals(emailId).findUnique(); MailLock mailLock = mailLockDao.forLockOnEquals(email).findUniqueOrNull(); // if no lock found, create new one @@ -670,6 +671,11 @@ EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); PaginationResult<Email> result = emailDao.search(emailFilter, readMailFolders, pagination); + // Fetch lazy field for list display + for (Email email : result.getElements()) { + fetchEmailData(email); + } + return result; } @@ -1029,7 +1035,7 @@ } } - protected void setField( PDDocument pdfDocument, String name, String value ) throws IOException { + protected void setField(PDDocument pdfDocument, String name, String value ) throws IOException { PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog(); PDAcroForm acroForm = docCatalog.getAcroForm(); PDField field = acroForm.getField( name ); @@ -1038,47 +1044,36 @@ } else if (log.isWarnEnabled()) { log.warn("Can't find field " + name + " in pdf form"); } - } - - protected Email getEmailByTopiaId(EmailTopiaDao emailDao, String emailId) { - Email email = emailDao.forTopiaIdEquals(emailId).findUnique(); - fetchEmailData(email); - return email; } protected void fetchEmailData(Email email) { if (email.getDemandType() != null) { - for (MailField mailField : email.getDemandType().getFields()) { - mailField.toString(); - } + Hibernate.initialize(email.getDemandType().getFields()); } if (email.sizeRangeRow() > 0) { for (RangeRow rangeRow : email.getRangeRow()) { - if (rangeRow.getRange() != null) { - rangeRow.getRange().getLabel(); - } + Hibernate.initialize(rangeRow.getRange()); } } if (email.sizeHistory() > 0) { for (History history : email.getHistory()) { history.getType(); - if (history.getFaxToMailUser() != null) { - history.getFaxToMailUser().getTrigraph(); - } + Hibernate.initialize(history.getType()); + Hibernate.initialize(history.getFaxToMailUser()); history.sizeFields(); } } email.sizeReplies(); email.sizeAttachment(); - email.getTakenBy(); - email.getClient(); - email.getDemandStatus(); + Hibernate.initialize(email.getTakenBy()); + Hibernate.initialize(email.getClient()); + Hibernate.initialize(email.getDemandStatus()); if (email.getEmailGroup() != null) { email.getEmailGroup().sizeEmail(); } - email.getEtatAttente(); - email.getPriority(); + Hibernate.initialize(email.getEtatAttente()); + Hibernate.initialize(email.getPriority()); } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java 2014-08-07 07:54:58 UTC (rev 486) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java 2014-08-07 08:10:55 UTC (rev 487) @@ -111,7 +111,6 @@ @Override public Component getTopestUI() { - Component result; ApplicationActionUI actionUI = getContext().getActionUI(); return actionUI; } @@ -245,7 +244,7 @@ final AbstractApplicationUIHandler handler = dialogContent.getHandler(); - if (handler instanceof org.nuiton.jaxx.application.swing.util.Cancelable) { + if (handler instanceof Cancelable) { // add a auto-close action JRootPane rootPane = result.getRootPane(); @@ -263,7 +262,6 @@ } }); } - SwingUtil.center(getContext().getMainUI(), result); result.setVisible(true); } @@ -308,7 +306,6 @@ }); } - result.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); result.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { Modified: trunk/faxtomail-ui-web/pom.xml =================================================================== --- trunk/faxtomail-ui-web/pom.xml 2014-08-07 07:54:58 UTC (rev 486) +++ trunk/faxtomail-ui-web/pom.xml 2014-08-07 08:10:55 UTC (rev 487) @@ -88,11 +88,6 @@ </dependency> <dependency> - <groupId>org.nuiton.jaxx</groupId> - <artifactId>jaxx-application-api</artifactId> - </dependency> - - <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </dependency>