1 16 package org.ajaxtags.tags; 17 18 import java.io.IOException ; 19 20 import javax.servlet.jsp.JspException ; 21 import javax.servlet.jsp.JspWriter ; 22 import javax.servlet.jsp.tagext.TagSupport ; 23 24 import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager; 25 26 32 public class AjaxTabPageTag extends TagSupport { 33 34 private String caption; 35 36 private String baseUrl; 37 38 private String defaultTab; 39 40 private String parameters = ""; 41 42 public String getCaption() { 43 return caption; 44 } 45 46 public void setCaption(String caption) { 47 this.caption = caption; 48 } 49 50 public String getDefaultTab() { 51 return defaultTab; 52 } 53 54 public void setDefaultTab(String defaultTab) { 55 this.defaultTab = defaultTab; 56 } 57 58 public String getParameters() { 59 return parameters; 60 } 61 62 public void setParameters(String parameters) { 63 this.parameters = parameters; 64 } 65 66 public String getBaseUrl() { 67 return baseUrl; 68 } 69 70 public void setBaseUrl(String baseUrl) { 71 this.baseUrl = baseUrl; 72 } 73 74 @Override 75 public int doStartTag() throws JspException { 76 this.baseUrl = (String ) ExpressionEvaluatorManager.evaluate("baseUrl", 78 this.baseUrl, String .class, this, super.pageContext); 79 this.caption = (String ) ExpressionEvaluatorManager.evaluate("caption", 80 this.caption, String .class, this, super.pageContext); 81 82 if (this.parameters != null) { 84 this.parameters = (String ) ExpressionEvaluatorManager.evaluate( 85 "parameters", this.parameters, String .class, this, 86 super.pageContext); 87 } 88 if (this.defaultTab != null) { 89 this.defaultTab = (String ) ExpressionEvaluatorManager.evaluate( 90 "defaultTab", this.defaultTab, String .class, this, 91 super.pageContext); 92 } 93 return SKIP_BODY; 94 } 95 96 @Override 97 public int doEndTag() throws JspException { 98 AjaxTabPanelTag parent = (AjaxTabPanelTag) TagSupport 99 .findAncestorWithClass(this, AjaxTabPanelTag.class); 100 StringBuffer script = new StringBuffer (); 101 if (Boolean.valueOf(this.defaultTab).booleanValue()) { 102 script.append("<li><a class=\""); 103 script.append(parent.getCurrentStyleClass()); 104 script.append("\" "); 105 parent.setDefaultTabBaseUrl(this.baseUrl); 106 parent.setDefaultTabParameters(this.parameters); 107 } else { 108 script.append("<li><a "); 109 } 110 script.append("href=\"javascript://nop/\" onclick=\"executeAjaxTab_"); 111 script.append(parent.getPanelStyleId()); 112 script.append("(this,'"); 113 script.append(parent.getCurrentStyleClass()); 114 script.append("', '"); 115 script.append(this.baseUrl); 116 script.append("', '"); 117 script.append(this.parameters); 118 script.append("'); return false;\">"); 119 script.append(this.caption); 120 script.append("</a></li>"); 121 JspWriter writer = pageContext.getOut(); 122 try { 123 writer.println(script); 124 } catch (IOException e) { 125 throw new JspException (e.getMessage()); 126 } 127 return EVAL_PAGE; 128 } 129 130 @Override 131 public void release() { 132 this.caption = null; 133 this.baseUrl = null; 134 this.defaultTab = null; 135 this.parameters = null; 136 super.release(); 137 } 138 139 } 140 | Popular Tags |