1 10 11 package org.mmbase.bridge.jsp.taglib.typehandler; 12 13 import javax.servlet.jsp.JspTagException ; 14 import org.mmbase.bridge.*; 15 import org.mmbase.bridge.jsp.taglib.FieldInfoTag; 16 import org.mmbase.util.StringBufferWriter; 17 import org.mmbase.util.logging.Logging; 18 import java.io.*; 19 import javax.xml.transform.*; 20 import javax.xml.transform.Transformer ; 21 import javax.xml.transform.dom.DOMSource ; 22 import javax.xml.transform.stream.StreamResult ; 23 import org.mmbase.util.transformers.*; 24 25 33 34 public class XmlHandler extends StringHandler { 35 36 40 public XmlHandler(FieldInfoTag tag) { 41 super(tag); 42 } 43 44 private static ChainedCharTransformer ct; 45 46 static { 47 ct = new ChainedCharTransformer(); 48 ct.add(new TabToSpacesTransformer(2)); 49 Xml x = new Xml(); 50 x.configure(Xml.ESCAPE); 51 ct.add(x); 52 } 53 54 55 58 public String htmlInput(Node node, Field field, boolean search) throws JspTagException { 59 if(! search) { 60 StringBuffer buffer = new StringBuffer (); 61 buffer.append("<textarea class=\"big " + getClasses(field) + "\" rows=\"10\" cols=\"80\" "); 64 buffer.append("name=\"").append(prefix(field.getName())).append("\" "); 65 buffer.append("id=\"").append(prefixID(field.getName())).append("\" "); 66 addExtraAttributes(buffer); 67 buffer.append(">"); 68 String value; 69 if (node != null) { 70 value = org.mmbase.util.Encode.encode("ESCAPE_XML", tag.decode(node.getStringValue(field.getName()), node)); 71 } else { 72 value = ""; 73 } 74 buffer.append(value); 75 String opt = tag.getOptions(); 76 if (opt != null && opt.indexOf("noempty") > -1 && value.equals("")) { 77 buffer.append(" "); 78 } 79 buffer.append("</textarea>"); 80 return buffer.toString(); 81 } else { 82 return super.htmlInput(node, field, search); 83 } 84 85 } 86 87 88 } 89 | Popular Tags |