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