📄 tabscontainertag.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 + -