1 /*
2 * The SmartWeb Framework
3 * Copyright (C) 2004-2006
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * For further informations on the SmartWeb Framework please visit
20 *
21 * http://smartweb.sourceforge.net
22 */
23
24 package net.smartlab.web.page;
25
26 import javax.servlet.jsp.JspException;
27 import javax.servlet.jsp.tagext.IterationTag;
28
29 /**
30 * TODO documentation
31 *
32 * @author rlogiacco
33 * @jsp.tag name = "pages"
34 */
35 public class PageListTag extends AbstractTag implements IterationTag, LinkableTag {
36
37 /**
38 * TODO documentation
39 */
40 protected int index;
41
42 /**
43 * @see javax.servlet.jsp.tagext.Tag#doStartTag()
44 */
45 public int doStartTag() throws JspException {
46 if (super.getPaginator().getPageCount() > 1) {
47 this.index = 0;
48 return EVAL_BODY_INCLUDE;
49 }
50 return SKIP_BODY;
51 }
52
53 /**
54 * @see javax.servlet.jsp.tagext.IterationTag#doAfterBody()
55 */
56 public int doAfterBody() throws JspException {
57 if (++index < super.getPaginator().getPages().length) {
58 return EVAL_BODY_AGAIN;
59 }
60 return SKIP_BODY;
61 }
62
63 /**
64 * @see net.smartlab.web.page.LinkableTag#getPage()
65 */
66 public int getPage() {
67 return super.getPaginator().getPages()[index];
68 }
69
70 }