Author: ivaynberg
Date: Fri Feb  5 04:38:22 2010
New Revision: 906809

URL: http://svn.apache.org/viewvc?rev=906809&view=rev
Log:
unroll WICKET-2532

Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/navigation/paging/PagingNavigationLink.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/navigation/paging/PagingNavigationLink.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/navigation/paging/PagingNavigationLink.java?rev=906809&r1=906808&r2=906809&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/navigation/paging/PagingNavigationLink.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/navigation/paging/PagingNavigationLink.java
 Fri Feb  5 04:38:22 2010
@@ -46,8 +46,8 @@
         * @param pageable
         *            The pageable component for this page link
         * @param pageNumber
-        *            The page number in the PageableListView that this link 
links
-        *            to. Negative pageNumbers are relative to the end of the 
list.
+        *            The page number in the PageableListView that this link 
links to. Negative
+        *            pageNumbers are relative to the end of the list.
         */
        public PagingNavigationLink(final String id, final IPageable pageable, 
final int pageNumber)
        {
@@ -73,12 +73,39 @@
         */
        public final int getPageNumber()
        {
-               return pageNumber;
+               return cullPageNumber(pageNumber);
        }
 
        /**
-        * @return True if this page is the first page of the containing
-        *         PageableListView
+        * Allows the link to cull the page number to the valid range before it 
is retrieved from the
+        * link
+        * 
+        * @param pageNumber
+        * @return culled page number
+        */
+       protected int cullPageNumber(int pageNumber)
+       {
+               int idx = pageNumber;
+               if (idx < 0)
+               {
+                       idx = pageable.getPageCount() + idx;
+               }
+
+               if (idx > (pageable.getPageCount() - 1))
+               {
+                       idx = pageable.getPageCount() - 1;
+               }
+
+               if (idx < 0)
+               {
+                       idx = 0;
+               }
+
+               return idx;
+       }
+
+       /**
+        * @return True if this page is the first page of the containing 
PageableListView
         */
        public final boolean isFirst()
        {
@@ -86,8 +113,7 @@
        }
 
        /**
-        * @return True if this page is the last page of the containing
-        *         PageableListView
+        * @return True if this page is the last page of the containing 
PageableListView
         */
        public final boolean isLast()
        {
@@ -95,8 +121,7 @@
        }
 
        /**
-        * Returns true if this PageableListView navigation link links to the 
given
-        * page.
+        * Returns true if this PageableListView navigation link links to the 
given page.
         * 
         * @param page
         *            The page


Reply via email to