diff --git a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/panels/Paginator.java b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/panels/Paginator.java index 1bb7159a0..64f56ef9a 100644 --- a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/panels/Paginator.java +++ b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/panels/Paginator.java @@ -6,6 +6,7 @@ import com.arsdigita.web.URL; import com.arsdigita.web.Web; import com.arsdigita.xml.Element; import java.util.Iterator; +import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; @@ -97,6 +98,18 @@ public class Paginator { getEnd())); query.setRange(getBegin(), getEnd() + 1); } + + public List applyListLimits(final List list, final Class type) { + int begin = getBegin() - 1; + if (begin < 0) { + begin = 0; + } + int end = getEnd() - 1; + if (end >= list.size()) { + end = list.size(); + } + return list.subList(begin, end); + } public int getPageCount() { return (int) Math.ceil((double) objectCount / (double) pageSize); @@ -123,7 +136,7 @@ public class Paginator { public int getBegin() { if (pageNumber == 1) { - return 0; + return 1; } else { return ((pageNumber - 1) * pageSize) + 1; } diff --git a/ccm-sci-personalpublications/src/com/arsdigita/cms/publicpersonalprofile/PersonalPublications.java b/ccm-sci-personalpublications/src/com/arsdigita/cms/publicpersonalprofile/PersonalPublications.java index 2cdb32ad5..6126307a1 100644 --- a/ccm-sci-personalpublications/src/com/arsdigita/cms/publicpersonalprofile/PersonalPublications.java +++ b/ccm-sci-personalpublications/src/com/arsdigita/cms/publicpersonalprofile/PersonalPublications.java @@ -260,7 +260,8 @@ public class PersonalPublications implements ContentGenerator { if (withPaginator) { final Paginator paginator = new Paginator(state.getRequest(), publications.size(), config.getPageSize()); - publicationList = publicationList.subList(paginator.getBegin(), paginator.getEnd()); + //publicationList = publicationList.subList(paginator.getBegin() - 1, paginator.getEnd() - 1); + publicationList = paginator.applyListLimits(publicationList, PublicationBundle.class); paginator.generateXml(groupElem); }