r2022 - in trunk: . wao-persistence/src/main/java/fr/ifremer/wao/entity wao-services/src/main/java/fr/ifremer/wao/services/service wao-services/src/test/java/fr/ifremer/wao/services wao-services/src/test/java/fr/ifremer/wao/services/service wao-web/src/main/java/fr/ifremer/wao/web wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer wao-web/src/main/webapp/WEB-INF/content/obsmer
Author: athimel Date: 2014-06-11 19:28:47 +0200 (Wed, 11 Jun 2014) New Revision: 2022 Url: http://forge.codelutin.com/projects/wao/repository/revisions/2022 Log: refs #4490 use new pagination beans Removed: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/PaginationBean.java Modified: trunk/pom.xml trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsList.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsList.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerBoatsServiceTest.java trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ContactsAction.java trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/pom.xml 2014-06-11 17:28:47 UTC (rev 2022) @@ -100,7 +100,7 @@ <projectId>wao</projectId> <!-- versions --> - <h2Version>1.4.178</h2Version> + <h2Version>1.3.176</h2Version> <struts2Version>2.3.16.3</struts2Version> <jqueryPluginVersion>3.7.1</jqueryPluginVersion> <bootstrapPluginVersion>1.7.0</bootstrapPluginVersion> @@ -119,8 +119,8 @@ <nuitonCsvVersion>3.0-rc-2</nuitonCsvVersion> <nuitonValidatorVersion>3.0-rc-1</nuitonValidatorVersion> <nuitonUtilsVersion>3.0-SNAPSHOT</nuitonUtilsVersion> - <eugeneVersion>2.9</eugeneVersion> - <topiaVersion>3.0-beta-4</topiaVersion> + <eugeneVersion>2.10</eugeneVersion> + <topiaVersion>3.0-beta-5</topiaVersion> <!--Site configuration --> <locales>fr</locales> Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -30,8 +30,8 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.HqlAndParametersBuilder; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.pager.TopiaPagerBean; -import org.nuiton.util.PagerBeanUtil; +import org.nuiton.util.pagination.PaginationParameter; +import org.nuiton.util.pagination.PaginationResult; import java.util.List; @@ -40,22 +40,6 @@ /** Logger. */ private static final Log log = LogFactory.getLog(BoatTopiaDao.class); - public TopiaPagerBean newPager(BoatsFilter filter, - int pageSize, - int pageIndex, - String sortProperty, - boolean sortAscendant) { - - HqlAndParametersBuilder<Boat> query = toBoatHqlAndParametersBuilder(filter); - - TopiaPagerBean pager = newPager(query.getHql(), query.getHqlParameters(), pageSize); - pager.setPageIndex(pageIndex); - PagerBeanUtil.computeRecordIndexesAndPagesNumber(pager); - pager.setSortColumn(sortProperty); - pager.setSortAscendant(sortAscendant); - return pager; - } - public List<Boat> findAll(BoatsFilter filter) { HqlAndParametersBuilder<Boat> query = toBoatHqlAndParametersBuilder(filter); @@ -65,11 +49,11 @@ return boats; } - public List<Boat> find(BoatsFilter filter, TopiaPagerBean pager) { + public PaginationResult<Boat> find(BoatsFilter filter, PaginationParameter pager) { HqlAndParametersBuilder<Boat> query = toBoatHqlAndParametersBuilder(filter); - List<Boat> boats = find(query.getHql(), query.getHqlParameters(), pager); + PaginationResult<Boat> boats = forHql(query.getHql(), query.getHqlParameters()).findPage(pager); return boats; } Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -38,8 +38,6 @@ import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep; import org.nuiton.topia.persistence.TopiaQueryBuilderRunQueryStep; -import org.nuiton.topia.persistence.pager.TopiaPagerBean; -import org.nuiton.util.PagerBeanUtil; import java.util.Arrays; import java.util.Calendar; @@ -84,25 +82,6 @@ return sampleRowIds; } - public TopiaPagerBean newPager(ContactsFilter filter, - int pageSize, - int pageIndex) { - - HqlAndParametersBuilder<Contact> query = toContactHqlAndParametersBuilder(filter); - - TopiaPagerBean pager = newPager(query.getHql(), query.getHqlParameters(), pageSize); - pager.setPageIndex(pageIndex); - PagerBeanUtil.computeRecordIndexesAndPagesNumber(pager); - - if (filter.isSortedByBoardingDate()) { - pager.setSortColumn(Contact.PROPERTY_OBSERVATION_BEGIN_DATE); - } else { - pager.setSortColumn(Contact.PROPERTY_CREATION_DATE); - } - pager.setSortAscendant(false); - return pager; - } - protected HqlAndParametersBuilder<Contact> toContactHqlAndParametersBuilder(ContactsFilter filter) { HqlAndParametersBuilder<Contact> query = newHqlAndParametersBuilder(); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsList.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsList.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsList.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -26,6 +26,8 @@ import java.io.Serializable; import java.util.List; +import org.nuiton.util.pagination.PaginationResult; + /** * Created on 4/1/14. * @@ -36,25 +38,15 @@ private static final long serialVersionUID = 1L; - protected PaginationBean pagination; + protected PaginationResult<Boat> boats; - protected List<Boat> boats; - protected BoatsFilterValues filterValues; - public PaginationBean getPagination() { - return pagination; - } - - public void setPagination(PaginationBean pagination) { - this.pagination = pagination; - } - - public List<Boat> getBoats() { + public PaginationResult<Boat> getBoats() { return boats; } - public void setBoats(List<Boat> boats) { + public void setBoats(PaginationResult<Boat> boats) { this.boats = boats; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -47,7 +47,8 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.csv.Export; import org.nuiton.csv.ExportModel; -import org.nuiton.topia.persistence.pager.TopiaPagerBean; +import org.nuiton.util.pagination.PaginationParameter; +import org.nuiton.util.pagination.PaginationResult; import java.io.InputStream; import java.util.Collection; @@ -105,36 +106,23 @@ public ObsMerBoatsList getBoatsList(AuthenticatedWaoUser authenticatedWaoUser, BoatsFilter filter, - TopiaPagerBean queryPager) { + PaginationParameter pager) { BoatTopiaDao dao = getBoatDao(); - TopiaPagerBean pager = dao.newPager(filter, - queryPager.getPageSize(), - queryPager.getPageIndex(), - queryPager.getSortColumn(), - queryPager.isSortAscendant()); + PaginationResult<Boat> boats = dao.find(filter, pager); - List<Boat> boats = dao.find(filter, pager); - - PaginationBean paginationBean = new PaginationBean(pager, 10); - BoatsFilterValues boatsFilterValues = getBoatsFilterValues(authenticatedWaoUser, filter); ObsMerBoatsList obsMerBoatsList = new ObsMerBoatsList(); obsMerBoatsList.setBoats(boats); - obsMerBoatsList.setPagination(paginationBean); obsMerBoatsList.setFilterValues(boatsFilterValues); return obsMerBoatsList; } - public TopiaPagerBean newBoatsPager(int pageSize) { - TopiaPagerBean queryPager = new TopiaPagerBean(); - queryPager.setPageSize(pageSize); - queryPager.setPageIndex(1); - queryPager.setSortColumn(Boat.PROPERTY_NAME); - queryPager.setSortAscendant(true); - return queryPager; + public PaginationParameter newBoatsPaginationParameter(int pageNumber, int pageSize) { + PaginationParameter result = PaginationParameter.of(pageNumber, pageSize, Boat.PROPERTY_NAME, false); + return result; } public BoatsFilter newBoatsFilter(AuthenticatedWaoUser authenticatedWaoUser) { @@ -274,11 +262,11 @@ public Collection<Boat> getBoats(BoatsFilter boatsFilter, int pageSize) { - TopiaPagerBean pager = newBoatsPager(pageSize); + PaginationParameter pager = newBoatsPaginationParameter(0, pageSize); - List<Boat> boats = getBoatDao().find(boatsFilter, pager); + PaginationResult<Boat> boats = getBoatDao().find(boatsFilter, pager); - return boats; + return boats.getElements(); } } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsList.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsList.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsList.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -26,6 +26,8 @@ import java.io.Serializable; import java.util.List; +import org.nuiton.util.pagination.PaginationResult; + /** * Created on 4/3/14. * @@ -36,25 +38,15 @@ private static final long serialVersionUID = 1L; - protected PaginationBean pagination; + protected PaginationResult<Contact> contacts; - protected List<Contact> contacts; - protected ContactsFilterValues filterValues; - public PaginationBean getPagination() { - return pagination; - } - - public void setPagination(PaginationBean pagination) { - this.pagination = pagination; - } - - public List<Contact> getContacts() { + public PaginationResult<Contact> getContacts() { return contacts; } - public void setContacts(List<Contact> contacts) { + public void setContacts(PaginationResult<Contact> contacts) { this.contacts = contacts; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -65,11 +65,12 @@ import org.nuiton.csv.ImportRow; import org.nuiton.i18n.I18n; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.pager.TopiaPagerBean; import org.nuiton.util.DateUtil; import org.nuiton.util.StringUtil; 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 java.io.InputStream; import java.util.Calendar; @@ -108,32 +109,32 @@ public ObsMerContactsList getContactsList(AuthenticatedWaoUser authenticatedWaoUser, ContactsFilter filter, - TopiaPagerBean queryPager) { + PaginationParameter queryPager) { ContactTopiaDao dao = getContactDao(); - TopiaPagerBean pager = dao.newPager(filter, - queryPager.getPageSize(), - queryPager.getPageIndex()); + // Need to copy to add sort attributes + PaginationParameter.PaginationParameterBuilder builder = PaginationParameter.builder(queryPager.getPageNumber(), queryPager.getPageSize()); + if (filter.isSortedByBoardingDate()) { + builder.addOrder(Contact.PROPERTY_OBSERVATION_BEGIN_DATE, true); + } else { + builder.addOrder(Contact.PROPERTY_CREATION_DATE, true); + } + PaginationParameter pager = builder.build(); - List<Contact> contacts = dao.forFilter(filter, false).find(pager); + PaginationResult<Contact> contacts = dao.forFilter(filter, false).findPage(pager); - PaginationBean paginationBean = new PaginationBean(pager, 10); - ContactsFilterValues filterValues = getContactsFilterValues(authenticatedWaoUser, filter); ObsMerContactsList contactsList = new ObsMerContactsList(); contactsList.setContacts(contacts); - contactsList.setPagination(paginationBean); contactsList.setFilterValues(filterValues); return contactsList; } - public TopiaPagerBean newContactsPager(int pageSize) { - TopiaPagerBean queryPager = new TopiaPagerBean(); - queryPager.setPageSize(pageSize); - queryPager.setPageIndex(1); - return queryPager; + public PaginationParameter newContactsPaginationParameter(int pageNumber, int pageSize) { + PaginationParameter result = PaginationParameter.of(pageNumber, pageSize); + return result; } public ContactsFilter newContactFilter(AuthenticatedWaoUser authenticatedWaoUser) { Deleted: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/PaginationBean.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/PaginationBean.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/PaginationBean.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -1,103 +0,0 @@ -package fr.ifremer.wao.services.service; - -/* - * #%L - * Wao :: Services - * %% - * Copyright (C) 2009 - 2014 Ifremer - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import org.nuiton.topia.persistence.pager.TopiaPagerBean; - -import java.io.Serializable; - -/** - * Created on 4/3/14. - * - * @author Tony Chemit <chemit@codelutin.com> - * @since 4.0 - */ -public class PaginationBean implements Serializable { - - private static final long serialVersionUID = 1L; - - protected TopiaPagerBean pagerBean; - - protected long firstPage; - - protected long lastPage; - - public PaginationBean(TopiaPagerBean pagerBean, int rangeSize) { - this.pagerBean = pagerBean; - this.firstPage = getPaginationFirstPage(rangeSize); - this.lastPage = getPaginationLastPage(rangeSize, firstPage); - } - - public long getFirstPage() { - return firstPage; - } - - public long getLastPage() { - return lastPage; - } - - public int getCurrentPage() { - return pagerBean.getPageIndex(); - } - - public long getNbPages() { - return pagerBean.getPagesNumber(); - } - - public long getNbRecords() { - return pagerBean.getRecords(); - } - - protected long getPaginationFirstPage(int rangeSize) { - int pageIndex = pagerBean.getPageIndex(); - long result = pageIndex; - long pagesNumber = pagerBean.getPagesNumber(); - if (pagesNumber <= rangeSize || pageIndex < rangeSize) { - // stick to begin - return 1; - } - if (pagesNumber - pageIndex < rangeSize) { - - // just center - result = pagesNumber - rangeSize; - if (result < 1) { - result = 1; - } - return result; - } - - if (pageIndex >= rangeSize) { - - // center - result = pageIndex - (rangeSize / 2); - } - return result; - } - - protected long getPaginationLastPage(int rangeSize, long firstPagination) { - long result = firstPagination + rangeSize; - if (result > pagerBean.getPagesNumber()) { - result = pagerBean.getPagesNumber(); - } - return result; - } -} Modified: trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java =================================================================== --- trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -99,13 +99,13 @@ log.trace("closing persistence context " + persistenceContext); } - persistenceContext.closeContext(); + persistenceContext.close(); if (log.isTraceEnabled()) { log.trace("closing application context " + applicationContext); } - applicationContext.closeContext(); + applicationContext.close(); File lockFile = new File(databaseRefFile, "h2data.lock.db"); @@ -162,6 +162,7 @@ hibernateH2Config.put(Environment.DIALECT, org.hibernate.dialect.H2Dialect.class.getName()); hibernateH2Config.put(Environment.USER, "sa"); hibernateH2Config.put(Environment.PASS, ""); + hibernateH2Config.put(Environment.HBM2DDL_AUTO, "update"); // TODO BLeNy 11/06/14 Remove when supported by ToPIA File databaseFile = getDatabaseFile(context); @@ -180,7 +181,8 @@ log.debug("jdbc url is\n" + jdbcUrl); } - return new WaoTopiaApplicationContext(hibernateH2Config); + WaoTopiaApplicationContext result = new WaoTopiaApplicationContext(hibernateH2Config); + return result; } @@ -239,7 +241,7 @@ @Override public void close() { if (topiaApplicationContext != null) { - topiaApplicationContext.closeContext(); + topiaApplicationContext.close(); } } Modified: trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerBoatsServiceTest.java =================================================================== --- trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerBoatsServiceTest.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerBoatsServiceTest.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -27,6 +27,7 @@ import org.junit.Before; import org.junit.Test; import org.nuiton.topia.persistence.pager.TopiaPagerBean; +import org.nuiton.util.pagination.PaginationParameter; /** * Created on 4/1/14. @@ -64,7 +65,7 @@ BoatsFilter filter = service.newBoatsFilter(fixtures.admin()); - TopiaPagerBean pager = service.newBoatsPager(50); + PaginationParameter pager = service.newBoatsPaginationParameter(0, 50); ObsMerBoatsList boatsList = service.getBoatsList(fixtures.admin(), filter, pager); Modified: trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java =================================================================== --- trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -30,8 +30,8 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.nuiton.topia.persistence.pager.TopiaPagerBean; import org.nuiton.util.DateUtil; +import org.nuiton.util.pagination.PaginationParameter; import java.io.InputStream; @@ -67,7 +67,7 @@ ContactsFilter filter = service.newContactFilter(fixtures.admin()); - TopiaPagerBean pager = service.newContactsPager(50); + PaginationParameter pager = service.newContactsPaginationParameter(0, 50); ObsMerContactsList contactsList = service.getContactsList(fixtures.admin(), filter, pager); } Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -186,7 +186,7 @@ if (topiaApplicationContext != null) { - topiaApplicationContext.closeContext(); + topiaApplicationContext.close(); } @@ -241,7 +241,7 @@ initWaoService.init(); - persistenceContext.closeContext(); + persistenceContext.close(); } Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -169,7 +169,7 @@ } finally { - serviceContext.getPersistenceContext().closeContext(); + serviceContext.getPersistenceContext().close(); } Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -21,13 +21,15 @@ * #L% */ +import java.util.Date; + +import org.apache.commons.lang3.time.DateUtils; +import org.nuiton.util.pagination.PaginationResult; + import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.entity.ObsProgram; import fr.ifremer.wao.services.AuthenticatedWaoUser; -import org.apache.commons.lang3.time.DateUtils; -import java.util.Date; - public class WaoJspActionSupport extends WaoActionSupport { private static final long serialVersionUID = 1L; @@ -75,11 +77,11 @@ public String formatDateMonth(Date date) { return date == null ? "" : WaoUtils.formatDateMonth(getLocale(), date); } - + public String formatDateYear(Date date) { return date == null ? "" : WaoUtils.formatDateYear(getLocale(), date); } - + public String formatDateTime(Date date) { return date == null ? "" : WaoUtils.formatDateTime(getLocale(), date); } @@ -97,7 +99,7 @@ */ public String getPaginationUrl(String fullUrl) { // remove pageIndex parameter - String paginationUrl = fullUrl.replaceAll("pager\\.pageIndex=([^&])+[&]*", ""); + String paginationUrl = fullUrl.replaceAll("pageNumber=([^&])+[&]*", ""); // clean & paginationUrl = paginationUrl.replaceAll("&&", "&"); // add [?|&]pageIndex= @@ -106,7 +108,7 @@ } else if (!paginationUrl.endsWith("?")) { paginationUrl += "&"; } - paginationUrl += "pager.pageIndex="; + paginationUrl += "pageNumber="; return paginationUrl; } @@ -118,4 +120,38 @@ return new Date(); } + protected long getPaginationFirstPage(PaginationResult<?> paginationResult, int rangeSize) { + int pageIndex = paginationResult.getCurrentPage().getPageNumber(); + long result = pageIndex; + long pagesNumber = paginationResult.getPageCount(); + if (pagesNumber <= rangeSize || pageIndex < rangeSize) { + // stick to begin + return 1; + } + if (pagesNumber - pageIndex < rangeSize) { + + // just center + result = pagesNumber - rangeSize; + if (result < 1) { + result = 1; + } + return result; + } + + if (pageIndex >= rangeSize) { + + // center + result = pageIndex - (rangeSize / 2); + } + return result; + } + + protected long getPaginationLastPage(PaginationResult<?> paginationResult, int rangeSize, long firstPagination) { + long result = firstPagination + rangeSize; + if (result > paginationResult.getPageCount()) { + result = paginationResult.getPageCount(); + } + return result; + } + } Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -30,13 +30,13 @@ import fr.ifremer.wao.services.service.ObsMerBoatsList; import fr.ifremer.wao.services.service.ObsMerBoatsService; import fr.ifremer.wao.services.service.ObsMerSamplingPlanService; -import fr.ifremer.wao.services.service.PaginationBean; import fr.ifremer.wao.services.service.administration.CompaniesService; import fr.ifremer.wao.web.WaoJspActionSupport; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.pager.TopiaPagerBean; +import org.nuiton.util.pagination.PaginationParameter; +import org.nuiton.util.pagination.PaginationResult; import java.util.List; @@ -58,11 +58,12 @@ protected transient ObsMerSamplingPlanService obsMerSamplingPlanService; - /** - * Input pager. - */ - protected TopiaPagerBean pager; + protected int pageNumber; // 1-based page number + protected long firstRangePage; + + protected long lastRangePage; + /** * Boats filter. */ @@ -81,13 +82,6 @@ this.service = service; } - public TopiaPagerBean getPager() { - if (pager == null) { - pager = service.newBoatsPager(25); - } - return pager; - } - public BoatsFilter getFilter() { if (filter == null) { prepare(); @@ -96,15 +90,15 @@ } public List<Boat> getBoats() { - return boatList.getBoats(); + return boatList.getBoats().getElements(); } public BoatsFilterValues getFilterValues() { return boatList.getFilterValues(); } - public PaginationBean getPagination() { - return boatList.getPagination(); + public PaginationResult<Boat> getPagination() { + return boatList.getBoats(); } public void setStartBoatSelectionForSampleRowId(String startBoatSelectionForSampleRowId) { @@ -119,6 +113,10 @@ this.companiesService = companiesService; } + public void setPageNumber(int pageNumber) { + this.pageNumber = pageNumber; + } + @Override public void prepare() { @@ -150,8 +148,12 @@ @Override public String execute() { - boatList = service.getBoatsList(getAuthenticatedWaoUser(), filter, getPager()); + PaginationParameter pager = service.newBoatsPaginationParameter(pageNumber, 25); + boatList = service.getBoatsList(getAuthenticatedWaoUser(), filter, pager); + firstRangePage = getPaginationFirstPage(boatList.getBoats(), 10); + lastRangePage = getPaginationLastPage(boatList.getBoats(), 10, firstRangePage); + return SUCCESS; } @@ -163,4 +165,11 @@ return companiesService.getAllCompanies(); } + public long getFirstRangePage() { + return firstRangePage; + } + + public long getLastRangePage() { + return lastRangePage; + } } Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ContactsAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ContactsAction.java 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ContactsAction.java 2014-06-11 17:28:47 UTC (rev 2022) @@ -32,10 +32,10 @@ import fr.ifremer.wao.services.service.ContactsFilterValues; import fr.ifremer.wao.services.service.ObsMerContactsList; import fr.ifremer.wao.services.service.ObsMerContactsService; -import fr.ifremer.wao.services.service.PaginationBean; import fr.ifremer.wao.web.WaoJspActionSupport; import org.apache.commons.lang3.time.DateUtils; -import org.nuiton.topia.persistence.pager.TopiaPagerBean; +import org.nuiton.util.pagination.PaginationParameter; +import org.nuiton.util.pagination.PaginationResult; import java.util.Date; import java.util.LinkedHashMap; @@ -54,11 +54,12 @@ protected transient ObsMerContactsService service; - /** - * Input pager. - */ - protected TopiaPagerBean pager; + protected int pageNumber; + protected long firstRangePage; + + protected long lastRangePage; + /** * Contacts filter. */ @@ -73,13 +74,18 @@ this.service = service; } - public TopiaPagerBean getPager() { - if (pager == null) { - pager = service.newContactsPager(50); - } - return pager; + public void setPageNumber(int pageNumber) { + this.pageNumber = pageNumber; } + public long getFirstRangePage() { + return firstRangePage; + } + + public long getLastRangePage() { + return lastRangePage; + } + public ContactsFilter getFilter() { if (filter == null) { prepare(); @@ -88,15 +94,15 @@ } public List<Contact> getContacts() { - return contactsList.getContacts(); + return contactsList.getContacts().getElements(); } public ContactsFilterValues getFilterValues() { return contactsList.getFilterValues(); } - public PaginationBean getPagination() { - return contactsList.getPagination(); + public PaginationResult<Contact> getPagination() { + return contactsList.getContacts(); } @Override @@ -113,8 +119,12 @@ @Override public String execute() { - contactsList = service.getContactsList(getAuthenticatedWaoUser(), filter, getPager()); + PaginationParameter pager = service.newContactsPaginationParameter(pageNumber, 25); + contactsList = service.getContactsList(getAuthenticatedWaoUser(), filter, pager); + firstRangePage = getPaginationFirstPage(contactsList.getContacts(), 10); + lastRangePage = getPaginationLastPage(contactsList.getContacts(), 10, firstRangePage); + return SUCCESS; } Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp 2014-06-11 17:28:47 UTC (rev 2022) @@ -167,7 +167,7 @@ <div class="arrow-right"></div> <h2> <s:text name="wao.ui.boats.title"> - <s:param value="%{pagination.nbRecords}"/> + <s:param value="%{pagination.count}"/> </s:text> </h2> @@ -250,38 +250,38 @@ <ul> <s:url var="fullUrl" includeParams="get"/> <s:set var="paginationUrl" value="%{getPaginationUrl(#fullUrl)}"/> - <s:if test="pagination.firstPage > 2"> + <s:if test="firstRangePage > 2"> <li> - <a href="${paginationUrl}1">1</a> + <a href="${paginationUrl}0">1</a> </li> <li> - <a href="${paginationUrl}2">2</a> + <a href="${paginationUrl}1">2</a> </li> <li> <span>...</span> </li> </s:if> - <s:iterator var="currentPage" begin="pagination.firstPage" end="pagination.lastPage"> - <li class="<s:if test="#currentPage == pagination.currentPage">active</s:if>"> - <a href="${paginationUrl}${currentPage}"> + <s:iterator var="currentPage" begin="firstRangePage" end="lastRangePage"> + <li class="<s:if test="#currentPage - 1 == pagination.currentPage.pageNumber">active</s:if>"> + <a href="${paginationUrl}${currentPage - 1}"> <s:property/> </a> </li> </s:iterator> - <s:if test="pagination.lastPage < pagination.nbPages - 1"> + <s:if test="lastRangePage < pagination.pageCount - 1"> <li> <span>...</span> </li> <li> - <a href="${paginationUrl}${pagination.nbPages - 1}"> - <s:property value="pagination.nbPages - 1"/> + <a href="${paginationUrl}${pagination.pageCount - 2}"> + <s:property value="pagination.pageCount - 1"/> </a> </li> <li> - <a href="${paginationUrl}${pagination.nbPages}"> - <s:property value="pagination.nbPages"/> + <a href="${paginationUrl}${pagination.pageCount - 1}"> + <s:property value="pagination.pageCount"/> </a> </li> </s:if> Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-06-10 16:02:27 UTC (rev 2021) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-06-11 17:28:47 UTC (rev 2022) @@ -233,7 +233,7 @@ <h3> <s:text name="wao.ui.contacts.title"> - <s:param value="%{pagination.nbRecords}"/> + <s:param value="%{pagination.count}"/> </s:text> </h3> @@ -243,38 +243,38 @@ <ul> <s:url var="fullUrl" includeParams="get"/> <s:set var="paginationUrl" value="%{getPaginationUrl(#fullUrl)}"/> - <s:if test="pagination.firstPage > 2"> + <s:if test="firstRangePage > 2"> <li> - <a href="${paginationUrl}1">1</a> + <a href="${paginationUrl}0">1</a> </li> <li> - <a href="${paginationUrl}2">2</a> + <a href="${paginationUrl}1">2</a> </li> <li> <span>...</span> </li> </s:if> - <s:iterator var="currentPage" begin="pagination.firstPage" end="pagination.lastPage"> - <li class="<s:if test="#currentPage == pagination.currentPage">active</s:if>"> - <a href="${paginationUrl}${currentPage}"> + <s:iterator var="currentPage" begin="firstRangePage" end="lastRangePage"> + <li class="<s:if test="#currentPage - 1 == pagination.currentPage.pageNumber">active</s:if>"> + <a href="${paginationUrl}${currentPage - 1}"> <s:property/> </a> </li> </s:iterator> - <s:if test="pagination.lastPage < pagination.nbPages - 1"> + <s:if test="lastRangePage < pagination.pageCount - 1"> <li> <span>...</span> </li> <li> - <a href="${paginationUrl}${pagination.nbPages - 1}"> - <s:property value="pagination.nbPages - 1"/> + <a href="${paginationUrl}${pagination.pageCount - 2}"> + <s:property value="pagination.pageCount - 1"/> </a> </li> <li> - <a href="${paginationUrl}${pagination.nbPages}"> - <s:property value="pagination.nbPages"/> + <a href="${paginationUrl}${pagination.pageCount - 1}"> + <s:property value="pagination.pageCount"/> </a> </li> </s:if>
participants (1)
-
athimelï¼ users.forge.codelutin.com