/*****************************************************************************
* *
* This file is part of the tna framework distribution. *
* Documentation and updates may be get from biaoping.yin the author of *
* this framework *
* *
* Sun Public License Notice: *
* *
* The contents of this file are subject to the Sun Public License Version *
* 1.0 (the "License"); you may not use this file except in compliance with *
* the License. A copy of the License is available at http://www.sun.com *
* *
* The Original Code is tag. The Initial Developer of the Original *
* Code is biaoping yin. Portions created by biaoping yin are Copyright *
* (C) 2000. All Rights Reserved. *
* *
* GNU Public License Notice: *
* *
* Alternatively, the contents of this file may be used under the terms of *
* the GNU Lesser General Public License (the "LGPL"), in which case the *
* provisions of LGPL are applicable instead of those above. If you wish to *
* allow use of your version of this file only under the terms of the LGPL *
* and not to allow others to use your version of this file under the SPL, *
* indicate your decision by deleting the provisions above and replace *
* them with the notice and other provisions required by the LGPL. If you *
* do not delete the provisions above, a recipient may use your version of *
* this file under either the SPL or the LGPL. *
* *
* biaoping.yin (yin-bp@163.com) *
* Author of Learning Java *
* *
*****************************************************************************/
package com.frameworkset.common.tag.pager.tags;
import java.io.OutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Tag;
/**
* extends BaseTag to extends PagerTagSupport
* @author biaoping.yin
* 2004-6-28
*/
public class RowIDTag extends PagerTagSupport
{
protected String index;
protected String increament = null;
protected boolean offset = true;
protected int index()
{
return index == null ? 0 : Integer.parseInt(index);
}
protected PagerDataSet searchDataSet(Tag obj, Class clazz)
{
PagerDataSet dataSet = null;
if (this.getIndex() == null)
{
dataSet = (PagerDataSet) findAncestorWithClass(obj, clazz);
}
else
{
HttpServletRequest request = this.getHttpServletRequest();
int idx = index();
java.util.Stack stack =
(java.util.Stack) request.getAttribute(PagerDataSet.PAGERDATASET_STACK);
dataSet = (PagerDataSet) stack.elementAt(idx);
}
return dataSet;
}
public int doStartTag() throws JspException
{
super.doStartTag();
PagerDataSet parent = searchDataSet(this, PagerDataSet.class);
// PagerTag pagerTag = (PagerTag) findAncestorWithClass(this, PagerTag.class);
try
{
this.getJspWriter().print(parent.getOuterRowid(this.isOffset(),this.increament()));
// if(!isOffset())
// out.print(parent.getRowid() + increament());
// else
// out.print(pagerContext.getOffset() + parent.getRowid() + increament());
}
catch (Exception e)
{
throw new JspException(e.getMessage());
}
return SKIP_BODY;
}
/* (non-Javadoc)
* @see com.frameworkset.common.tag.BaseTag#generateContent()
*/
public String generateContent()
{
return null;
}
/* (non-Javadoc)
* @see com.frameworkset.common.tag.BaseTag#write(java.io.OutputStream)
*/
public void write(OutputStream output)
{
}
/**
* @return String
*/
public String getIncreament()
{
return increament;
}
/**
* @return int
*/
public int increament()
{
return increament == null ? 0 : Integer.parseInt(increament);
}
/**
* @param i
*/
public void setIncreament(String i)
{
increament = i;
}
/**
* Description:
* @return
* String
*/
public String getIndex()
{
return index;
}
/**
* Description:
* @param string
* void
*/
public void setIndex(String string)
{
index = string;
}
public boolean isOffset() {
return offset;
}
public void setOffset(boolean offset) {
this.offset = offset;
}
public int doEndTag()throws JspException
{
return super.doEndTag();
}
@Override
public void doFinally() {
this.increament = null;
this.index = null;
this.offset = true;
super.doFinally();
}
}