/*
* Copyright 2004-2006 Geert Bevin <gbevin[remove] at uwyn dot com>
* Distributed under the terms of either:
* - the common development and distribution license (CDDL), v1.0; or
* - the GNU Lesser General Public License, v2.1 or later
* $Id: XmlXhtmlRenderer.java 3108 2006-03-13 18:03:00Z gbevin $
*/
package com.uwyn.jhighlight.renderer;
import com.uwyn.jhighlight.highlighter.ExplicitStateHighlighter;
import com.uwyn.jhighlight.highlighter.XmlHighlighter;
import com.uwyn.jhighlight.renderer.XhtmlRenderer;
import java.util.HashMap;
import java.util.Map;
/**
* Generates highlighted syntax in XHTML from XML source.
* <p><a href="https://rife.dev.java.net">RIFE</a> template tags are also
* supported and will be clearly highlighted.
*
* @author Geert Bevin (gbevin[remove] at uwyn dot com)
* @version $Revision: 3108 $
* @since 1.0
*/
public class XmlXhtmlRenderer extends XhtmlRenderer
{
public final static HashMap DEFAULT_CSS = new HashMap() {{
put("h1",
"font-family: sans-serif; "+
"font-size: 16pt; "+
"font-weight: bold; "+
"color: rgb(0,0,0); "+
"background: rgb(210,210,210); "+
"border: solid 1px black; "+
"padding: 5px; "+
"text-align: center;");
put("code",
"color: rgb(0,0,0); "+
"font-family: monospace; "+
"font-size: 12px; " +
"white-space: nowrap;");
put(".xml_plain",
"color: rgb(0,0,0);");
put(".xml_char_data",
"color: rgb(0,0,0);");
put(".xml_tag_symbols",
"color: rgb(0,59,255);");
put(".xml_comment",
"color: rgb(147,147,147); "+
"background-color: rgb(247,247,247);");
put(".xml_attribute_value",
"color: rgb(193,0,0);");
put(".xml_attribute_name",
"color: rgb(0,0,0); "+
"font-weight: bold;");
put(".xml_processing_instruction",
"color: rgb(0,0,0); "+
"font-weight: bold; "+
"font-style: italic;");
put(".xml_tag_name",
"color: rgb(0,55,255);");
put(".xml_rife_tag",
"color: rgb(0,0,0); "+
"background-color: rgb(228,230,160);");
put(".xml_rife_name",
"color: rgb(0,0,196); "+
"background-color: rgb(228,230,160);");
}};
@Override
protected Map getDefaultCssStyles()
{
return DEFAULT_CSS;
}
@Override
protected String getCssClass(int style)
{
switch (style)
{
case XmlHighlighter.PLAIN_STYLE:
return "xml_plain";
case XmlHighlighter.CHAR_DATA:
return "xml_char_data";
case XmlHighlighter.TAG_SYMBOLS:
return "xml_tag_symbols";
case XmlHighlighter.COMMENT:
return "xml_comment";
case XmlHighlighter.ATTRIBUTE_VALUE:
return "xml_attribute_value";
case XmlHighlighter.ATTRIBUTE_NAME:
return "xml_attribute_name";
case XmlHighlighter.PROCESSING_INSTRUCTION:
return "xml_processing_instruction";
case XmlHighlighter.TAG_NAME:
return "xml_tag_name";
case XmlHighlighter.RIFE_TAG:
return "xml_rife_tag";
case XmlHighlighter.RIFE_NAME:
return "xml_rife_name";
}
return null;
}
@Override
protected ExplicitStateHighlighter getHighlighter()
{
return new XmlHighlighter();
}
}