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