r297 - 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/java/com/franciaflex/faxtomail/ui/swing/content/demande faxtomail-ui-swing/src/main/resources/i18n faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job
Author: echatellier Date: 2014-06-30 14:18:46 +0200 (Mon, 30 Jun 2014) New Revision: 297 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/297 Log: Pagination de la liste des mails (par dossier) Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenAttachmentAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx 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/DemandeListUIModel.java trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.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-06-30 11:39:20 UTC (rev 296) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-06-30 12:18:46 UTC (rev 297) @@ -51,8 +51,8 @@ import com.franciaflex.faxtomail.persistence.entities.EdiReturn; import com.franciaflex.faxtomail.persistence.entities.EdiReturnTopiaDao; import com.franciaflex.faxtomail.persistence.entities.MailField; +import com.google.common.base.Function; -import com.google.common.base.Function; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; import org.apache.commons.io.IOUtils; @@ -67,6 +67,8 @@ import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; +import org.nuiton.util.pagination.PaginationParameter; +import org.nuiton.util.pagination.PaginationResult; import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.persistence.entities.AttachmentFile; @@ -415,16 +417,19 @@ } } - public List<Email> getEmailForFolder(MailFolder folder) { + public PaginationResult<Email> getEmailForFolder(MailFolder folder, PaginationParameter page) { EmailTopiaDao dao = getPersistenceContext().getEmailDao(); - List<Email> result = new ArrayList<>(dao.forMailFolderEquals(folder) - .addNull(Email.PROPERTY_ARCHIVE_DATE) - .addNotEquals(Email.PROPERTY_DEMAND_STATUS, DemandStatus.ARCHIVED) - .setOrderByArguments(Email.PROPERTY_RECEPTION_DATE) - .findAll()); + PaginationResult<Email> result = dao.forMailFolderEquals(folder) + .addNull(Email.PROPERTY_ARCHIVE_DATE) + .addNotEquals(Email.PROPERTY_DEMAND_STATUS, DemandStatus.ARCHIVED) + .findPage(page); return result; } + /** + * @deprecated Ne pas recuperer trop de mails + */ + @Deprecated public List<Email> getEmailForFolderAndSubfolders(MailFolder folder) { EmailTopiaDao dao = getPersistenceContext().getEmailDao(); List<MailFolder> folders = new ArrayList<>(); @@ -433,6 +438,7 @@ .findAll()); } + @Deprecated protected List<MailFolder> getChildrenRecursively(MailFolder folder) { List<MailFolder> folders = new ArrayList<>(); folders.add(folder); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java 2014-06-30 11:39:20 UTC (rev 296) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java 2014-06-30 12:18:46 UTC (rev 297) @@ -30,9 +30,11 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; +import org.nuiton.util.pagination.PaginationResult; import java.util.ArrayList; import java.util.List; @@ -76,7 +78,8 @@ DemandeListUIModel model = getModel(); MailFolder folder = model.getSelectedFolder(); - List<Email> emails = getContext().getEmailService().getEmailForFolder(folder); + PaginationResult<Email> paginationResult = getContext().getEmailService().getEmailForFolder(folder, model.getPaginationParameter()); + List<Email> emails = paginationResult.getElements(); log.info(emails.size() + " emails in folder " + folder.getName()); List<DemandeUIModel> demands = new ArrayList<DemandeUIModel>(); @@ -88,5 +91,7 @@ } model.setEmails(demands); + model.setPaginationParameter(paginationResult.getCurrentPage()); + model.setPaginationResult(paginationResult); } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenAttachmentAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenAttachmentAction.java 2014-06-30 11:39:20 UTC (rev 296) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenAttachmentAction.java 2014-06-30 12:18:46 UTC (rev 297) @@ -31,10 +31,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.util.DesktopUtil; -import java.io.File; - import static org.nuiton.i18n.I18n.t; /** Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-06-30 11:39:20 UTC (rev 296) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-06-30 12:18:46 UTC (rev 297) @@ -23,6 +23,10 @@ text: " | "; } +.page-separator { + text: "/"; +} + #mainSplitPane { resizeWeight: 0.2; } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx 2014-06-30 11:39:20 UTC (rev 296) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx 2014-06-30 12:18:46 UTC (rev 297) @@ -91,6 +91,19 @@ onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)' onKeyPressed='handler.openRowMenu(event, tablePopup)'/> </JScrollPane> + <JPanel layout="{new FlowLayout(FlowLayout.LEADING)}" constraints='BorderLayout.SOUTH'> + <JLabel text="faxtomail.demandeList.totalCount" /> + <JLabel text="{String.valueOf(model.getPaginationResult().getCount())}" /> + <JLabel styleClass="horizontal-separator"/> + <JLabel text="faxtomail.demandeList.pages" /> + <JButton text="faxtomail.demandeList.goToPreviousPage" onActionPerformed="handler.goToPreviousPage()" + enabled="{model.getPaginationParameter().getPageNumber() > 0}" /> + <JLabel text="{String.valueOf(getModel().getPaginationParameter().getPageNumber() + 1)}" /> + <JLabel styleClass="page-separator"/> + <JLabel text="{String.valueOf(model.getPaginationResult().getLastPage().getPageNumber() + 1)}" /> + <JButton text="faxtomail.demandeList.goToNextPage" onActionPerformed="handler.goToNextPage()" + enabled="{model.getPaginationResult().hasNextPage()}" /> + </JPanel> </JPanel> </JSplitPane> 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-30 11:39:20 UTC (rev 296) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-06-30 12:18:46 UTC (rev 297) @@ -295,6 +295,22 @@ } + public void goToNextPage() { + getModel().setPaginationParameter(getModel().getPaginationResult().getNextPage()); + LoadFolderEmailsAction loadFolderEmailsAction = + getContext().getActionFactory().createLogicAction(DemandeListUIHandler.this, + LoadFolderEmailsAction.class); + getContext().getActionEngine().runAction(loadFolderEmailsAction); + } + + public void goToPreviousPage() { + getModel().setPaginationParameter(getModel().getPaginationResult().getPreviousPage()); + LoadFolderEmailsAction loadFolderEmailsAction = + getContext().getActionFactory().createLogicAction(DemandeListUIHandler.this, + LoadFolderEmailsAction.class); + getContext().getActionEngine().runAction(loadFolderEmailsAction); + } + @Override public void initDemandeTable(final JXTable table, boolean sortable) { super.initDemandeTable(table, sortable); @@ -529,5 +545,4 @@ ArchiveFromListAction.class); getContext().getActionEngine().runAction(saveAction); } - } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-06-30 11:39:20 UTC (rev 296) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-06-30 12:18:46 UTC (rev 297) @@ -22,12 +22,16 @@ * #L% */ -import com.franciaflex.faxtomail.persistence.entities.MailFolder; -import org.jdesktop.beans.AbstractSerializableBean; - import java.util.ArrayList; import java.util.List; +import org.jdesktop.beans.AbstractSerializableBean; +import org.nuiton.util.pagination.PaginationParameter; +import org.nuiton.util.pagination.PaginationResult; + +import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.MailFolder; + /** * @author kmorin <kmorin@codelutin.com> * @since x.x @@ -36,6 +40,8 @@ public static final String PROPERTY_FOLDERS = "folders"; public static final String PROPERTY_EMAILS = "emails"; + public static final String PROPERTY_PAGINATION_PARAMETER = "paginationParameter"; + public static final String PROPERTY_PAGINATION_RESULT = "paginationResult"; public static final String PROPERTY_FILTERED_EMAILS = "filteredEmails"; public static final String PROPERTY_CURRENT_EMAILS = "currentEmails"; public static final String PROPERTY_EMAIL_NB = "emailNb"; @@ -52,6 +58,10 @@ protected List<DemandeUIModel> emails; + protected PaginationParameter paginationParameter = PaginationParameter.of(0, 50, Email.PROPERTY_RECEPTION_DATE, true); + + protected PaginationResult<Email> paginationResult; + protected List<DemandeUIModel> filteredEmails; protected List<DemandeUIModel> currentEmails; @@ -92,6 +102,26 @@ firePropertyChange(PROPERTY_EMAILS, null, emails); } + public void setPaginationParameter(PaginationParameter paginationParameter) { + PaginationParameter oldValue = this.paginationParameter; + this.paginationParameter = paginationParameter; + firePropertyChange(PROPERTY_PAGINATION_PARAMETER, oldValue, paginationParameter); + } + + public PaginationParameter getPaginationParameter() { + return paginationParameter; + } + + public void setPaginationResult(PaginationResult<Email> paginationResult) { + PaginationResult<Email> oldValue = this.paginationResult; + this.paginationResult = paginationResult; + firePropertyChange(PROPERTY_PAGINATION_RESULT, oldValue, paginationResult); + } + + public PaginationResult<Email> getPaginationResult() { + return paginationResult; + } + public List<DemandeUIModel> getFilteredEmails() { return filteredEmails; } 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-06-30 11:39:20 UTC (rev 296) +++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-06-30 12:18:46 UTC (rev 297) @@ -1,4 +1,5 @@ \ |\ = +/= \:= X= application.action.create.error= @@ -155,6 +156,9 @@ faxtomail.demandeList.action.reply=Répondre faxtomail.demandeList.action.reply.tip=Répondre faxtomail.demandeList.demandNbLabel=Nombre de demandes +faxtomail.demandeList.goToNextPage=> +faxtomail.demandeList.goToPreviousPage=< +faxtomail.demandeList.pages=Pages \: faxtomail.demandeList.pfNbLabel=Nombre de produits finis faxtomail.demandeList.quotationNbLabel=Nombre de devis faxtomail.demandeList.savNbLabel=Nombre de SAV @@ -203,6 +207,7 @@ faxtomail.demandeList.table.header.waitingState=État attente faxtomail.demandeList.table.header.waitingState.tip=État attente faxtomail.demandeList.title=Liste des éléments +faxtomail.demandeList.totalCount=Nombre de demandes \: faxtomail.historyList.action.tip=Historique faxtomail.historyList.text=Historique (%s) faxtomail.historyList.title=Historique Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-06-30 11:39:20 UTC (rev 296) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-06-30 12:18:46 UTC (rev 297) @@ -26,19 +26,11 @@ import static org.nuiton.i18n.I18n.t; -import java.awt.image.RenderedImage; -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; -import java.io.FileReader; import java.io.IOException; -import java.io.StringBufferInputStream; import java.io.UnsupportedEncodingException; -import java.net.URL; -import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.text.DateFormat; import java.util.ArrayList;
participants (1)
-
echatellier@users.forge.codelutin.com