1 20 package org.enhydra.barracuda.core.comp.renderer.xml; 21 22 import java.util.*; 23 24 import org.apache.log4j.*; 25 import org.w3c.dom.*; 26 import org.w3c.dom.html.*; 27 28 import org.enhydra.barracuda.core.comp.*; 29 import org.enhydra.barracuda.core.comp.renderer.*; 30 import org.enhydra.barracuda.core.util.dom.*; 31 import org.enhydra.barracuda.plankton.*; 32 33 36 public class XMLTextRenderer extends XMLComponentRenderer { 37 38 protected static final Logger logger = Logger.getLogger(XMLTextRenderer.class.getName()); 39 40 43 public void renderComponent(BComponent comp, View view, ViewContext vc) throws RenderException { 44 if (!(comp instanceof BText)) throw new NoSuitableRendererException("This renderer can only render BText components"); 46 BText btext = (BText) comp; 47 Node node = view.getNode(); 48 String text = btext.getText(); 50 if (logger.isDebugEnabled()) showNodeInterfaces(view, logger); 52 53 super.renderComponent(comp, view, vc); 55 56 if (node instanceof Element) { 59 if (logger.isInfoEnabled()) logger.info("Rendering based on Element interface..."); 60 if (text!=null) DOMUtil.setTextInNode((Element) node, text, btext.allowMarkupInText()); } else { 63 String errmsg = "Node does not implement Element and cannot be rendered: "+node; 64 logger.warn(errmsg); 65 throw new NoSuitableRendererException(errmsg); 66 } 67 } 68 69 } | Popular Tags |