⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tabscontainertag.java

📁 struts+spring+hibernate自创框架
💻 JAVA
字号:
package com.pegasus.framework.component.taglib.html.tabs;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;

import com.pegasus.framework.component.taglib.util.BaseBodySupportTag;
import com.pegasus.framework.component.taglib.util.JspResponseWriter;
import com.pegasus.framework.component.taglib.xml.Xhtml;

/**
 * CHIIC SYSTEMS, INC.
 * Author: RoyZ
 * Date: 2007-7-20
 * Time: 16:29:30
 */
public class TabsContainerTag extends BaseBodySupportTag {

	public static final java.lang.String TAB_SKIN_CLASS_NAME = "ditch-tab-skin-";
    public static final java.lang.String TAB_CONTAINER_CLASS_NAME = "ditch-tab-container";
    public static final java.lang.String TAB_WRAP_CLASS_NAME = "ditch-tab-wrap";
    public static final java.lang.String TAB_CLASS_NAME = "ditch-tab";
    public static final java.lang.String TAB_BG_LEFT_CLASS_NAME = "ditch-tab-bg-left";
    public static final java.lang.String TAB_PANE_WRAP_CLASS_NAME = "ditch-tab-pane-wrap";
    public static final java.lang.String TAB_PANE_CLASS_NAME = "ditch-tab-pane";
    public static final java.lang.String CLEAR_CLASS_NAME = "ditch-clear";
    public static final java.lang.String FOCUSED_CLASS_NAME = "ditch-focused";
    public static final java.lang.String UNFOCUSED_CLASS_NAME = "ditch-unfocused";
    public static final java.lang.String TAB_ID_SUFFIX = "-tab";










	public static final String TABS_NAME = "pegasus-tabs";
	public static final String TAB_LABLE_NAME = "pegasus-tablables";

	private String skin;
	private List children;
	private String selectedTabPaneId;
	//	private String urlSelectedTabPaneId;
	private int selectedIndex = 0;
	private String jsTabListener;
	private JspResponseWriter out = new JspResponseWriter();
	private StringBuffer afterEnd = new StringBuffer();
	private StringBuffer childTab = new StringBuffer();
	private int childIndex = -1;


	public StringBuffer getChildTab() {
		return childTab;
	}

	public void setChildTab(StringBuffer childTab) {
		this.childTab = childTab;
	}

	public int getChildIndex() {
		return childIndex;
	}

	public void setChildIndex(int childIndex) {
		this.childIndex = childIndex;
	}

	public String getSkin() {
		if (null == skin || 0 == skin.length()) {
			skin = "default";
		}
		return skin;
	}

	public void setSkin(String skin) {
		this.skin = skin;
	}

	public List getChildren() {
		if (null == children) {
			children = new ArrayList();
		}
		return children;
	}

	public void setChildren(List children) {
		this.children = children;
	}

	int getChildCount() {
		return getChildren().size();
	}

	void addChild(final TabContentTag child) {
		getChildren().add(child);
	}

	public String getSelectedTabPaneId() {
		return selectedTabPaneId;
	}

	public void setSelectedTabPaneId(String selectedTabPaneId) {
		this.selectedTabPaneId = selectedTabPaneId;
	}

	public int getSelectedIndex() {
		return selectedIndex;
	}

	public void setSelectedIndex(int selectedIndex) {
		this.selectedIndex = selectedIndex;
	}

	public JspResponseWriter getOut() {
		return out;
	}

	public void setOut(JspResponseWriter out) {
		this.out = out;
	}


	public StringBuffer getAfterEnd() {
		return afterEnd;
	}

	public void setAfterEnd(StringBuffer afterEnd) {
		this.afterEnd = afterEnd;
	}

	public String getJsTabListener() {
		return jsTabListener;
	}

	public void setJsTabListener(String jsTabListener) {
		this.jsTabListener = jsTabListener;
	}

	public int doStartTag() throws JspException {
//		System.out.println("start father" +  this.getId() + "doStartTag");
//		consumeQueryStringParam();

		out.text(JSOUT);

		out.startElement(Xhtml.Html.DIV);
		out.attribute(Xhtml.Attr.CLASS, TAB_SKIN_CLASS_NAME + getSkin());
		out.startElement(Xhtml.Html.DIV);
		out.attribute(Xhtml.Attr.ID, id);
		out.attribute(Xhtml.Attr.CLASS, TAB_CONTAINER_CLASS_NAME);
		out.startElement(Xhtml.Html.DIV);
		out.attribute(Xhtml.Attr.CLASS, TAB_WRAP_CLASS_NAME);

//		try {
//			pageContext.getOut().println(out.getBuffer());
//		}
//		catch (IOException e) {
//			throw new JspException(e);
//		}

//	System.out.println("end father" +  this.getId() + "doStartTag");
		return (EVAL_BODY_TAG);
	}


	public int doEndTag() throws JspException {
//System.out.println("start father" +  this.getId() + "doEndTag");
//		StringWriter evalResult    = new StringWriter();
//		getJspBody().invoke(evalResult);
//		evalResult.getBuffer().delete(0,evalResult.getBuffer().length());
//		determineSelectedIndex();
//		children = null;
//		getJspBody().invoke(evalResult);

		out.text(childTab);

		out.startElement(Xhtml.Html.BR);
		out.attribute(Xhtml.Attr.CLASS, CLEAR_CLASS_NAME);
		out.endElement(Xhtml.Html.BR);
		out.endElement(Xhtml.Html.DIV);
		out.comment(TAB_WRAP_CLASS_NAME);
		out.startElement(Xhtml.Html.DIV);
		out.attribute(Xhtml.Attr.CLASS, TAB_PANE_WRAP_CLASS_NAME);
//		out.text(evalResult.getBuffer().toString());

		out.text(afterEnd);

		out.endElement(Xhtml.Html.DIV);
		out.comment(TAB_PANE_WRAP_CLASS_NAME);
		out.endElement(Xhtml.Html.DIV);
		out.comment(TAB_CONTAINER_CLASS_NAME);
		out.endElement(Xhtml.Html.DIV);
		out.comment(TAB_SKIN_CLASS_NAME + getSkin());


		try {
			pageContext.getOut().println(out.getBuffer());
		}
		catch (IOException e) {
			throw new JspException(e);
		}
//		System.out.println("end father out"  + out.getBuffer());
		children = new ArrayList();
		afterEnd = new StringBuffer();
		childTab = new StringBuffer();
		childIndex = -1;
		out = new JspResponseWriter();
//		System.out.println("end father   " + this.getId() + "doEndTag");
		return EVAL_PAGE;
	}

	public void release() {
		super.release();
		skin = null;
		children = new ArrayList();
		selectedTabPaneId = null;
//	private String urlSelectedTabPaneId;
//		selectedIndex = 0;
		jsTabListener = null;
		out = new JspResponseWriter();
		afterEnd = new StringBuffer();
		childTab = new StringBuffer();
		childIndex = -1;

	}


	private void consumeQueryStringParam() {
		String tabPaneIdParamValue = getRequest().getParameter(
				TabHrefTag.PARAM_NAME_TAB_PANE_ID);
		if (null == tabPaneIdParamValue
				|| 0 == tabPaneIdParamValue.length()) {
			return;
		}
		setSelectedTabPaneId(tabPaneIdParamValue);
	}

	private HttpServletRequest getRequest() {
//		PageContext pageContext = (PageContext)getJspContext();
		HttpServletRequest request =
				(HttpServletRequest) pageContext.getRequest();
		return request;
	}

	private  final String JSOUT = "\t<script language=\"JavaScript\" type=\"text/javascript\">\n" +
			"\t\tvar focusStyle = \"ditch-tab ditch-focused\";\n" +
			"\t\tvar unfocusStyle = \"ditch-tab ditch-unfocused\";\n" +
			"\t\t//\t\tvar idPostfix = \"-tab\";\n" +
			"\t\t<!--\n" +
			"\t\tfunction tabLinkShow(elementId, elementName, lableId, lableNames, url, frameId, isParentFrame)\n" +
			"\t\t{\n" +
			"\t\t\tvar iFrame1;\n" +
			"\t\t\tif (isParentFrame == \"true\")\n" +
			"\t\t\t\tiFrame1 = window.parent.document.getElementById(frameId);\n" +
			"\t\t\telse\n" +
			"\t\t\t\tiFrame1 = document.getElementById(frameId);\n" +
			"\t\t\tiFrame1.src = url;\n" +
			"\t\t\ttabShow(elementId, elementName, lableId, lableNames);\n" +
			"\t\t}\n" +
			"\t\tfunction tabShow(elementId, elementName, lableId, lableNames)\n" +
			"\t\t{\n" +
			"\t\t\tvar allElements = getMyElementsByName(elementName);\n" +
			"\t\t\tif (allElements != null)\n" +
			"\t\t\t{\n" +
			"\t\t\t\tfor (var i = 0; i < allElements.length; i++)\n" +
			"\t\t\t\t{\n" +
			"\t\t\t\t\tallElements[i].style.display = \"none\";\n" +
			"\t\t\t\t}\n" +
			"\t\t\t}\n" +
			"\t\t\tvar alllables = getMyElementsByName(lableNames);\n" +
			"\t\t\tif (alllables != null)\n" +
			"\t\t\t{\n" +
			"\t\t\t\tfor (var i = 0; i < alllables.length; i++)\n" +
			"\t\t\t\t{\n" +
			"\t\t\t\t\talllables[i].className = unfocusStyle;\n" +
			"\t\t\t\t}\n" +
			"\t\t\t}\n" +
			"\t\t\tvar selectedElement = document.getElementById(elementId);\n" +
			"\t\t\tif (selectedElement != null)\n" +
			"\t\t\t\tselectedElement.style.display = \"block\";\n" +
			"\t\t\tvar selectedLable = document.getElementById(lableId);\n" +
			"\t\t\tif (selectedLable != null)\n" +
			"\t\t\t\tselectedLable.className = focusStyle;\n" +
			"\t\t\treturn;\n" +
			"\t\t}\n" +
			"\t\tfunction getMyElementsByName(name) {\n" +
			"\t\t\tvar returns = document.getElementsByName(name);\n" +
			"\t\t\tif (returns.length > 0) return returns;\n" +
			"\t\t\treturns = new Array();\n" +
			"\t\t\tvar e = document.getElementsByTagName('div');\n" +
			"\t\t\tfor (i = 0; i < e.length; i++) {\n" +
			"\t\t\t\tif (e[i].getAttribute(\"name\") == name) {\n" +
			"\t\t\t\t\treturns[returns.length] = e[i];\n" +
			"\t\t\t\t}\n" +
			"\t\t\t}\n" +
			"\t\t\treturn returns;\n" +
			"\t\t}\n" +
			"\t\t//-->\n" +
			"\t</script>";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -