1 19 20 package com.sslexplorer.tabs.tags; 21 22 import javax.servlet.jsp.JspException ; 23 import javax.servlet.jsp.tagext.BodyTagSupport ; 24 25 import org.apache.struts.taglib.TagUtils; 26 27 import com.sslexplorer.tabs.TabModel; 28 29 42 public class TabTag extends BodyTagSupport { 43 44 46 protected String tabName; 47 protected TabModel model; 48 protected String text; 49 50 55 public int doStartTag() throws JspException { 56 Object value = findAncestorWithClass(this, TabSetTag.class); 57 if (value == null) { 58 throw new JspException ("TabTag must be contained in a TabSetTag"); 59 } 60 model = ((TabSetTag) value).getModel(); 61 text = null; 62 return EVAL_BODY_BUFFERED; 63 } 64 65 68 public int doAfterBody() throws JspException { 69 if (bodyContent != null) { 70 String value = bodyContent.getString().trim(); 71 if (value.length() > 0) 72 text = value; 73 } 74 return (SKIP_BODY); 75 } 76 77 80 public int doEndTag() throws JspException { 81 82 boolean selected = (tabName.equals(model.getSelectedTab() == null ? model.getTabName(0) : model.getSelectedTab())); 83 84 StringBuffer results = new StringBuffer (); 85 results.append("<div id=\""); 86 results.append("tab_panel_"); 87 results.append(tabName); 88 results.append("\" "); 89 if (selected) { 90 results.append("class=\"tabPanel\"><div class=\"tabContent\">"); 92 } else { 93 results.append("class=\"tabPanelHidden\"><div class=\"tabContent\">"); 94 95 } 96 results.append(text); 98 results.append("</div></div>"); 99 TagUtils.getInstance().write(pageContext, results.toString()); 101 return (EVAL_PAGE); 103 } 104 105 111 public void setTabName(String tabName) { 112 this.tabName = tabName; 113 } 114 } 115 | Popular Tags |