001 /*
002 * Copyright 2004-2006 Geert Bevin <gbevin[remove] at uwyn dot com>
003 * Distributed under the terms of either:
004 * - the common development and distribution license (CDDL), v1.0; or
005 * - the GNU Lesser General Public License, v2.1 or later
006 * $Id: XmlXhtmlRenderer.java 3108 2006-03-13 18:03:00Z gbevin $
007 */
008 package com.uwyn.jhighlight.renderer;
009
010 import com.uwyn.jhighlight.highlighter.ExplicitStateHighlighter;
011 import com.uwyn.jhighlight.highlighter.XmlHighlighter;
012 import com.uwyn.jhighlight.renderer.XhtmlRenderer;
013 import java.util.HashMap;
014 import java.util.Map;
015
016 /**
017 * Generates highlighted syntax in XHTML from XML source.
018 * <p><a href="https://rife.dev.java.net">RIFE</a> template tags are also
019 * supported and will be clearly highlighted.
020 *
021 * @author Geert Bevin (gbevin[remove] at uwyn dot com)
022 * @version $Revision: 3108 $
023 * @since 1.0
024 */
025 public class XmlXhtmlRenderer extends XhtmlRenderer
026 {
027 public final static HashMap DEFAULT_CSS = new HashMap() {{
028 put("h1",
029 "font-family: sans-serif; "+
030 "font-size: 16pt; "+
031 "font-weight: bold; "+
032 "color: rgb(0,0,0); "+
033 "background: rgb(210,210,210); "+
034 "border: solid 1px black; "+
035 "padding: 5px; "+
036 "text-align: center;");
037
038 put("code",
039 "color: rgb(0,0,0); "+
040 "font-family: monospace; "+
041 "font-size: 12px; " +
042 "white-space: nowrap;");
043
044 put(".xml_plain",
045 "color: rgb(0,0,0);");
046
047 put(".xml_char_data",
048 "color: rgb(0,0,0);");
049
050 put(".xml_tag_symbols",
051 "color: rgb(0,59,255);");
052
053 put(".xml_comment",
054 "color: rgb(147,147,147); "+
055 "background-color: rgb(247,247,247);");
056
057 put(".xml_attribute_value",
058 "color: rgb(193,0,0);");
059
060 put(".xml_attribute_name",
061 "color: rgb(0,0,0); "+
062 "font-weight: bold;");
063
064 put(".xml_processing_instruction",
065 "color: rgb(0,0,0); "+
066 "font-weight: bold; "+
067 "font-style: italic;");
068
069 put(".xml_tag_name",
070 "color: rgb(0,55,255);");
071
072 put(".xml_rife_tag",
073 "color: rgb(0,0,0); "+
074 "background-color: rgb(228,230,160);");
075
076 put(".xml_rife_name",
077 "color: rgb(0,0,196); "+
078 "background-color: rgb(228,230,160);");
079 }};
080
081 protected Map getDefaultCssStyles()
082 {
083 return DEFAULT_CSS;
084 }
085
086 protected String getCssClass(int style)
087 {
088 switch (style)
089 {
090 case XmlHighlighter.PLAIN_STYLE:
091 return "xml_plain";
092 case XmlHighlighter.CHAR_DATA:
093 return "xml_char_data";
094 case XmlHighlighter.TAG_SYMBOLS:
095 return "xml_tag_symbols";
096 case XmlHighlighter.COMMENT:
097 return "xml_comment";
098 case XmlHighlighter.ATTRIBUTE_VALUE:
099 return "xml_attribute_value";
100 case XmlHighlighter.ATTRIBUTE_NAME:
101 return "xml_attribute_name";
102 case XmlHighlighter.PROCESSING_INSTRUCTION:
103 return "xml_processing_instruction";
104 case XmlHighlighter.TAG_NAME:
105 return "xml_tag_name";
106 case XmlHighlighter.RIFE_TAG:
107 return "xml_rife_tag";
108 case XmlHighlighter.RIFE_NAME:
109 return "xml_rife_name";
110 }
111
112 return null;
113 }
114
115 protected ExplicitStateHighlighter getHighlighter()
116 {
117 return new XmlHighlighter();
118 }
119 }
120