1 /* 2 * Copyright (c) 2002-2014, Mairie de Paris 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright notice 10 * and the following disclaimer. 11 * 12 * 2. Redistributions in binary form must reproduce the above copyright notice 13 * and the following disclaimer in the documentation and/or other materials 14 * provided with the distribution. 15 * 16 * 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its 17 * contributors may be used to endorse or promote products derived from 18 * this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE 24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * POSSIBILITY OF SUCH DAMAGE. 31 * 32 * License 1.0 33 */ 34 package fr.paris.lutece.util.html; 35 36 import java.io.Serializable; 37 38 import java.util.List; 39 40 41 /** 42 * Handles paging 43 * @param <E> the type 44 */ 45 public interface IPaginator<E> extends Serializable 46 { 47 /** Default value for Page Index Parameter */ 48 String PARAMETER_PAGE_INDEX = "page_index"; 49 50 /** Default value for Items Per Page Parameter */ 51 String PARAMETER_ITEMS_PER_PAGE = "items_per_page"; 52 String LABEL_FIRST = "|<"; 53 String LABEL_PREVIOUS = "<"; 54 String LABEL_NEXT = ">"; 55 String LABEL_LAST = ">|"; 56 57 /** 58 * Gets the number of pages 59 * @return the number of pages 60 */ 61 int getPagesCount( ); 62 63 /** 64 * Returns the List 65 * 66 * @return The List 67 */ 68 List<E> getPageItems( ); 69 70 /** 71 * Returns the current page index 72 * 73 * @return The current page index 74 */ 75 int getPageCurrent( ); 76 77 /** 78 * Returns the previous page link 79 * 80 * @return The previous page link 81 */ 82 String getFirstPageLink( ); 83 84 /** 85 * Returns the previous page link 86 * 87 * @return The previous page link 88 */ 89 String getPreviousPageLink( ); 90 91 /** 92 * Returns the previous page link 93 * 94 * @return The previous page link 95 */ 96 String getLastPageLink( ); 97 98 /** 99 * Returns the previous page link 100 * 101 * @return The previous page link 102 */ 103 String getNextPageLink( ); 104 105 /** 106 * Returns Pages Links 107 * 108 * @return Pages Links 109 */ 110 List<PaginatorPage> getPagesLinks( ); 111 112 /** 113 * Returns the index of the first item of the current page range 114 * @return The index of the first item of the current page range 115 */ 116 int getRangeMin( ); 117 118 /** 119 * Returns the index of the last item of the current page range 120 * @return The index of the last item of the current page range 121 */ 122 int getRangeMax( ); 123 124 /** 125 * Returns the number of items in the collection 126 * @return The number of items in the collection 127 */ 128 int getItemsCount( ); 129 130 /** 131 * Get First label 132 * @return The Label 133 */ 134 String getLabelFirst( ); 135 136 /** 137 * Get Previous label 138 * @return The Label 139 */ 140 String getLabelPrevious( ); 141 142 /** 143 * Get Next label 144 * @return The Label 145 */ 146 String getLabelNext( ); 147 148 /** 149 * Get First label 150 * @return The Label 151 */ 152 String getLabelLast( ); 153 154 /** 155 * Get Item Count label 156 * @return The Label 157 */ 158 String getLabelItemCount( ); 159 160 /** 161 * Get Item Count per page label 162 * @return The Label 163 */ 164 String getLabelItemCountPerPage( ); 165 166 /** 167 * Get the parameter name of the <code>items_per_page</code> 168 * @return the parameter name 169 */ 170 String getItemsPerPageParameterName( ); 171 172 /** 173 * Set the parameter name of the <code>items_per_page</code> 174 * @param strItemsPerPageParameterName the parameter name 175 */ 176 void setItemsPerPageParameterName( String strItemsPerPageParameterName ); 177 178 /** 179 * Gets the items count per page. 180 * @return items count per page. 181 */ 182 int getItemsPerPage( ); 183 }