package org.skyscreamer.yoga.view; import java.io.IOException; import java.io.OutputStream; import org.dom4j.Element; import org.dom4j.dom.DOMElement; import org.skyscreamer.yoga.mapper.YogaRequestContext; import org.skyscreamer.yoga.model.HierarchicalModel; import org.skyscreamer.yoga.model.XhtmlHierarchyModelImpl; import org.skyscreamer.yoga.util.XmlYogaViewUtil; public class XhtmlSelectorView extends AbstractYogaView { @Override public void render( Object value, YogaRequestContext context, OutputStream os ) throws IOException { Element rootElement = new DOMElement( "html" ); initHead( rootElement ); HierarchicalModel<Element> model = getModel( value, rootElement ); _resultTraverser.traverse( value, context.getSelector(), model, context ); XmlYogaViewUtil.write( rootElement, os ); } protected HierarchicalModel<Element> getModel( Object value, Element rootElement ) { Element topDiv = rootElement.addElement( "body" ).addElement( "div" ) .addAttribute( "class", getClassName( value ) ); return new XhtmlHierarchyModelImpl( topDiv ); } protected void initHead( Element rootElement ) { Element cssLink = rootElement.addElement( "head" ).addElement( "link" ); cssLink.addAttribute( "href", "/css/xhtml.css" ); cssLink.addAttribute( "rel", "stylesheet" ); } @Override public String getContentType() { return "text/html"; } @Override public String getHrefSuffix() { return "xhtml"; } }