/***************************************************************************** * * * 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) * * * *****************************************************************************/ package com.frameworkset.common.tag.pager.tags; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.Tag; /** * 根据列表分页是否有数据来输出相应的提示信息 * @author biaoping.yin * created on 2005-4-4 * version 1.0 */ public class NotifyTag extends PagerTagSupport { private int colid = -1; private String colName; private String property; private int index = -1; /** * @return int */ public int getIndex() { return index; } public int getColid() { return this.colid; } /** * @param colid */ public void setColid(int colid) { this.colid = colid; } /** * @return String 返回属性名称 */ public String getColName() { return colName; } /** * @param string */ public void setColName(String string) { colName = string; } protected PagerDataSet searchDataSet(Tag obj,Class clazz) { PagerDataSet dataSet = null; if (this.getIndex() < 0) { 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(this.getIndex()); } return dataSet; } // private Notification notification; public int doStartTag() throws JspException { super.doStartTag(); // this.setMeta(); //System.out.println("cell dataset:" + dataSet); if (this.getColid() != -1) { PagerDataSet dataSet = searchDataSet(this,PagerDataSet.class); if (getProperty() == null) { Collection datas = (Collection)dataSet.getValue(dataSet.getRowid(), getColid()); if(datas.size() <=0) { //this.notification.setOutput(true); return EVAL_BODY_INCLUDE; } } else { Collection datas = (Collection)dataSet.getValue(dataSet.getRowid(),getColid(),getProperty()); if(datas.size() <=0) { //this.notification.setOutput(true); return EVAL_BODY_INCLUDE; } } } else if (getColName() != null) { PagerDataSet dataSet = searchDataSet(this,PagerDataSet.class); if (getProperty() == null) { Collection datas = (Collection)dataSet.getValue(dataSet.getRowid(), this.getColName()); if(datas.size() <=0) { //this.notification.setOutput(true); return EVAL_BODY_INCLUDE; } } else { Collection datas = (Collection)dataSet.getValue(dataSet.getRowid(),getColName(),getProperty()); if(datas.size() <=0) { //this.notification.setOutput(true); return EVAL_BODY_INCLUDE; } } //outStr = dataSet.getString(dataSet.getRowid(), this.getColName()); } else { if(pagerContext != null ) { if(pagerContext.isNotifyed()) return SKIP_BODY; pagerContext.setNotifyed(true); // out.print(super.pagerContext.getItemCount()); if(!pagerContext.ListMode()) { if(pagerContext.getItemCount() <= 0 ) { if(pagerContext.getDataResultSize() <= 0) return EVAL_BODY_INCLUDE; } } else { if(pagerContext.getDataSize() <= 0) return EVAL_BODY_INCLUDE; } } else { // out.println(super.pagerContext.getDataSize()); return EVAL_BODY_INCLUDE; } // PagerInfo pager = (PagerInfo) findAncestorWithClass(this, PagerTag.class); // if(pager.getDataSize() <= 0) // { // //this.notification.setOutput(true); // return EVAL_BODY_INCLUDE; // } } return SKIP_BODY; } public void setMeta() { // if(this.isExportMeta()) // { // if(this.notification == null) // { // this.notification = new Notification(); // //notification.setNotification(this.getBodyContent().getString()); // } // // /** // * 保存dataModel // */ // if(!notification.isHasAdded()) // { // //如果没有最上层的dataSet元数据则在pagerTag中添加添加, // //否则直接搜索父dataSet元数据,将notification添加到其元数据模型中 // if(pagerContext != null && !pagerContext.getMetaDatas().hasDataModel()) // { // pagerContext.getMetaDatas().setNotification(notification); // // } // else // { // //直接保存到上一级dataSet的元数据模型中 // PagerDataSet data_father = (PagerDataSet)findAncestorWithClass(this, PagerDataSet.class); // data_father.getDataModel().getMetaDatas().setNotification(notification); // } // notification.setHasAdded(true); // } // } } public String getProperty() { return property; } public void setProperty(String property) { this.property = property; } public void setIndex(int index) { this.index = index; } public int doEndTag() throws JspException { this.colid = -1; this.colName = null; this.index = -1; this.property = null; return super.doEndTag(); } }