| ## Licensed to the Apache Software Foundation (ASF) under one |
| ## or more contributor license agreements. See the NOTICE file |
| ## distributed with this work for additional information |
| ## regarding copyright ownership. The ASF licenses this file |
| ## to you under the Apache License, Version 2.0 (the |
| ## "License"); you may not use this file except in compliance |
| ## with the License. You may obtain a copy of the License at |
| ## |
| ## http://www.apache.org/licenses/LICENSE-2.0 |
| ## |
| ## Unless required by applicable law or agreed to in writing, |
| ## software distributed under the License is distributed on an |
| ## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ## KIND, either express or implied. See the License for the |
| ## specific language governing permissions and limitations |
| ## under the License. |
| #title( 'PagerTool' ) |
| <p> |
| #set( $demo = $text.demo ) |
| $demo.thisPage.insert("#doclink( 'PagerTool' false )"). In this |
| case, we provide a control to set the item list from a template. Typically, |
| your "action" class would place the list in the request attributes under the |
| "new.items" key. |
| </p> |
| |
| <p> |
| If you set a list of items using the "Try it!" form at the top of the table below, |
| then that will activate a full demonstration of this tool's abilities |
| <a href="#fullDemo">below the function list</a>. An easy list to begin is a list |
| of numbers by entering something like <code>[111..2222]</code> in the |
| "${esc.d}pager.setItems" field. |
| </p> |
| |
| #demoTableStart() |
| |
| ## set quote character to empty string so values are not treated as strings |
| #set( $quote = '' ) |
| |
| #set( $desc = 'Sets the List to page through.' ) |
| #demo1( 'pager' 'setItems' 10 $desc ) |
| |
| #set( $desc = 'Sets the index of the first result in the current page' ) |
| #demo1( 'pager' 'setIndex' 4 $desc ) |
| |
| #set( $desc = 'Sets the number of items returned in a page of items' ) |
| #demo1( 'pager' 'setItemsPerPage' 4 $desc ) |
| |
| #set( $desc = 'Sets the number of result page indices for $pager.slip to list.' ) |
| #demo1( 'pager' 'setSlipSize' 4 $desc ) |
| |
| #set( $desc = 'Checks whether or not the result list is empty.' ) |
| #demo( 'pager' 'hasItems()' $desc ) |
| |
| #set( $desc = 'Returns the current search result index.' ) |
| #demo( 'pager' 'index' $desc ) |
| |
| #set( $desc = 'Returns the index of the first item on the current page of results (as determined by the current index, items per page, and the number of items).' ) |
| #demo( 'pager' 'firstIndex' $desc ) |
| |
| #set( $desc = 'Returns the index of the last item on the current page of results (as determined by the current index, items per page, and the number of items).' ) |
| #demo( 'pager' 'lastIndex' $desc ) |
| |
| #set( $desc = 'Return the index for the previous page of items (as determined by the current index, items per page, and the number of items).' ) |
| #demo( 'pager' 'prevIndex' $desc ) |
| |
| #set( $desc = 'Returns the index for the next page of items (as determined by the current index, items per page, and the number of items).' ) |
| #demo( 'pager' 'nextIndex' $desc ) |
| |
| #set( $desc = 'Returns the item list.' ) |
| #demo( 'pager' 'items' $desc ) |
| |
| #set( $desc = 'Returns the current "page" of search items.' ) |
| #demo( 'pager' 'page' $desc ) |
| |
| #set( $desc = 'Returns a description of the current page.' ) |
| #demo( 'pager' 'pageDescription' $desc ) |
| |
| #set( $desc = 'Returns the "page number" for the current index.' ) |
| #demo( 'pager' 'pageNumber' $desc ) |
| |
| #set( $desc = 'Returns the "page number" for the specified index.' ) |
| #demo1( 'pager' 'getPageNumber' 4 $desc ) |
| |
| #set( $desc = 'Returns the set number of items to be displayed per page of items' ) |
| #demo( 'pager' 'itemsPerPage' $desc ) |
| |
| #set( $desc = 'Returns the number of pages that can be made from this list given the set number of items per page.' ) |
| #demo( 'pager' 'pagesAvailable' $desc ) |
| |
| #set( $desc = 'Returns the total number of items available.' ) |
| #demo( 'pager' 'total' $desc ) |
| |
| #set( $desc = 'Returns a Sliding List of Indices for Pages of items.' ) |
| #demo( 'pager' 'slip' $desc ) |
| |
| #set( $desc = 'Returns the number of result page indices $pager.slip will return per request (if available).' ) |
| #demo( 'pager' 'slipSize' $desc ) |
| |
| #demoCustom( 'pager' ) |
| </table> |
| |
| <div align="center"> |
| <a name="fullDemo"><h3>$demo.mainExampleHeader</h3></a> |
| #if( $pager.hasItems() ) |
| <div align="left"> |
| Showing $!pager.pageDescription<br> |
| #set( $i = $pager.index + 1 ) |
| #foreach( $item in $pager.page ) |
| ${i}. $!item <br> |
| #set( $i = $i + 1 ) |
| #end |
| <br> |
| #if ( $pager.pagesAvailable > 1 ) |
| #set( $pagelink = $link.self.anchor('fullDemo').param("layout",$!params.layout).param("show",$!pager.itemsPerPage) ) |
| #if( $pager.prevIndex ) |
| <a href="$pagelink.param('index',$!pager.prevIndex)">Prev</a> |
| #end |
| #foreach( $index in $pager.slip ) |
| #if( $index == $pager.index ) |
| <b>$pager.pageNumber</b> |
| #else |
| <a href="$pagelink.param('index',$!index)">$!pager.getPageNumber($index)</a> |
| #end |
| #end |
| #if( $pager.nextIndex ) |
| <a href="$pagelink.param('index',$!pager.nextIndex)">Next</a> |
| #end |
| #end |
| </div> |
| #else |
| <p> |
| There are no items to display. |
| To activate this example, follow the directions at the top of this page. |
| </p> |
| #end |
| </div> |