/*
* Pager Tag Library
*
* Copyright (C) 2002 James Klicman <james@jsptags.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.frameworkset.common.tag.pager.tags;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTag;
public final class PagesTag extends PageTagSupport implements BodyTag {
private BodyContent bodyContent = null;
private long page = 0;
private long lastPage = 0;
public void setBodyContent(BodyContent bc) {
bodyContent = bc;
}
public int doStartTag() throws JspException {
super.doStartTag();
long firstPage = pagerContext.getFirstIndexPage();
lastPage = pagerContext.getLastIndexPage(firstPage);
page = firstPage;
return (page <= lastPage ? EVAL_BODY_TAG : SKIP_BODY);
}
public void doInitBody() throws JspException {
setPageAttributes(page);
page++;
}
public int doAfterBody() throws JspException {
if (page <= lastPage) {
setPageAttributes(page);
page++;
return EVAL_BODY_TAG;
} else {
try {
bodyContent.writeOut(bodyContent.getEnclosingWriter());
return SKIP_BODY;
} catch (IOException e) {
throw new JspTagException(e.toString());
}
}
}
public int doEndTag() throws JspException {
bodyContent = null;
super.doEndTag();
return EVAL_PAGE;
}
public void release() {
bodyContent = null;
super.release();
}
/* (non-Javadoc)
* @see com.frameworkset.common.tag.BaseTag#generateContent()
*/
public String generateContent() {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.frameworkset.common.tag.BaseTag#write(java.io.OutputStream)
*/
public void write(OutputStream output) {
// TODO Auto-generated method stub
}
}
/* vim:set ts=4 sw=4: */