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: JavaXhtmlRenderer.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.JavaHighlighter;
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 Java source.
018 *
019 * @author Geert Bevin (gbevin[remove] at uwyn dot com)
020 * @version $Revision: 3108 $
021 * @since 1.0
022 */
023 public class JavaXhtmlRenderer extends XhtmlRenderer
024 {
025 public final static HashMap DEFAULT_CSS = new HashMap() {{
026 put("h1",
027 "font-family: sans-serif; " +
028 "font-size: 16pt; " +
029 "font-weight: bold; " +
030 "color: rgb(0,0,0); " +
031 "background: rgb(210,210,210); " +
032 "border: solid 1px black; " +
033 "padding: 5px; " +
034 "text-align: center;");
035
036 put("code",
037 "color: rgb(0,0,0); " +
038 "font-family: monospace; " +
039 "font-size: 12px; " +
040 "white-space: nowrap;");
041
042 put(".java_plain",
043 "color: rgb(0,0,0);");
044
045 put(".java_keyword",
046 "color: rgb(0,0,0); " +
047 "font-weight: bold;");
048
049 put(".java_type",
050 "color: rgb(0,44,221);");
051
052 put(".java_operator",
053 "color: rgb(0,124,31);");
054
055 put(".java_separator",
056 "color: rgb(0,33,255);");
057
058 put(".java_literal",
059 "color: rgb(188,0,0);");
060
061 put(".java_comment",
062 "color: rgb(147,147,147); " +
063 "background-color: rgb(247,247,247);");
064
065 put(".java_javadoc_comment",
066 "color: rgb(147,147,147); " +
067 "background-color: rgb(247,247,247); " +
068 "font-style: italic;");
069
070 put(".java_javadoc_tag",
071 "color: rgb(147,147,147); " +
072 "background-color: rgb(247,247,247); " +
073 "font-style: italic; " +
074 "font-weight: bold;");
075 }};
076
077 protected Map getDefaultCssStyles()
078 {
079 return DEFAULT_CSS;
080 }
081
082 protected String getCssClass(int style)
083 {
084 switch (style)
085 {
086 case JavaHighlighter.PLAIN_STYLE:
087 return "java_plain";
088 case JavaHighlighter.KEYWORD_STYLE:
089 return "java_keyword";
090 case JavaHighlighter.TYPE_STYLE:
091 return "java_type";
092 case JavaHighlighter.OPERATOR_STYLE:
093 return "java_operator";
094 case JavaHighlighter.SEPARATOR_STYLE:
095 return "java_separator";
096 case JavaHighlighter.LITERAL_STYLE:
097 return "java_literal";
098 case JavaHighlighter.JAVA_COMMENT_STYLE:
099 return "java_comment";
100 case JavaHighlighter.JAVADOC_COMMENT_STYLE:
101 return "java_javadoc_comment";
102 case JavaHighlighter.JAVADOC_TAG_STYLE:
103 return "java_javadoc_tag";
104 }
105
106 return null;
107 }
108
109 protected ExplicitStateHighlighter getHighlighter()
110 {
111 JavaHighlighter highlighter = new JavaHighlighter();
112 highlighter.ASSERT_IS_KEYWORD = true;
113
114 return highlighter;
115 }
116 }
117