1 25 package org.snipsnap.jsp; 26 27 import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager; 28 import org.radeox.util.logging.Logger; 29 import org.radeox.util.i18n.ResourceManager; 30 import org.radeox.util.Encoder; 31 32 import javax.servlet.jsp.JspException ; 33 import javax.servlet.jsp.JspWriter ; 34 import javax.servlet.jsp.tagext.TagSupport ; 35 import java.io.IOException ; 36 37 38 44 45 public class PathSelectorTag extends TagSupport { 46 String parent = null; 47 String selected = null; 48 49 public int doStartTag() throws JspException { 50 if (null != parent ) { 51 try { 52 JspWriter out = pageContext.getOut(); 53 String [] elements = parent.split("/"); 54 out.write("<select name=\"parent\" size=\"1\""); 55 if ("".equals(parent)) { 56 out.write(" disabled=\"disabled\""); 57 } 58 out.write(">"); 59 out.write("<option value=\"\">"); 60 out.write(ResourceManager.getString("i18n.messages", "snip.path.noparent")); 61 out.write("</option>"); 62 String path = ""; 63 String value = ""; 64 for (int i = 0; i < elements.length; i++) { 65 String element = Encoder.escape(elements[i]); 66 if (i !=0 ) { 67 path = path + " > "; 68 value = value + "/"; 69 } 70 path = path + element; 71 value = value + element; 72 out.write("<option value=\""+value+"\""); 73 if(value.equals(selected)) { 74 out.write(" selected=\"selected\""); 75 } 76 out.write(">"); 77 out.write(path); 78 out.write("</option>"); 79 } 80 out.write("</select>"); 81 } catch (IOException e) { 82 Logger.warn("doStartTag in PathTag", e); 83 } 84 } 85 return super.doStartTag(); 86 } 87 88 public void setParentName(String parent) { 89 try { 90 this.parent = (String ) ExpressionEvaluatorManager.evaluate("parent", parent, String .class, this, pageContext); 91 } catch (JspException e) { 92 Logger.warn("unable to evaluate expression", e); 93 } 94 } 95 96 public void setSelected(String selected) { 97 try { 98 this.selected = (String ) ExpressionEvaluatorManager.evaluate("selected", selected, String .class, this, pageContext); 99 } catch (JspException e) { 100 Logger.warn("unable to evaluate expression", e); 101 } 102 } 103 } 104 | Popular Tags |