1 package de.java2html.options; 2 3 import java.util.HashMap ; 4 import java.util.Iterator ; 5 import java.util.Map ; 6 7 import de.java2html.javasource.JavaSourceType; 8 import de.java2html.util.RGB; 9 10 17 public class JavaSourceStyleTable { 18 private final Map table = new HashMap (); 19 private static JavaSourceStyleEntry defaultColorEntry = new JavaSourceStyleEntry(RGB.BLACK); 20 private String name; 21 22 private JavaSourceStyleTable(String name) { 23 setName(name); 24 } 25 26 public boolean equals(Object obj) { 27 if (!(obj instanceof JavaSourceStyleTable)) { 28 return false; 29 } 30 JavaSourceStyleTable other = (JavaSourceStyleTable) obj; 31 32 if (!name.equals(other.name)) { 33 return false; 34 } 35 if (other.table.size() != table.size()) { 36 return false; 37 } 38 39 Iterator iterator = table.keySet().iterator(); 40 while (iterator.hasNext()) { 41 String key = (String ) iterator.next(); 42 JavaSourceStyleEntry value = get(key); 43 if (!value.equals(other.table.get(key))) { 44 return false; 45 } 46 } 47 return true; 48 } 49 50 public JavaSourceStyleTable getClone() { 51 JavaSourceStyleTable clone = new JavaSourceStyleTable(getName()); 52 Iterator iterator = table.keySet().iterator(); 53 while (iterator.hasNext()) { 54 String key = (String ) iterator.next(); 55 JavaSourceStyleEntry value = get(key); 56 clone.table.put(key, value); 57 } 58 return clone; 59 } 60 61 public static JavaSourceStyleTable[] getPredefinedTables() { 62 return new JavaSourceStyleTable[]{ 63 createDefaultEclipseStyleTable(), 64 createDefaultKawaStyleTable(), 65 createDefaultMonochromeStyleTable(), }; 66 } 67 68 75 public static JavaSourceStyleTable getPredefinedTable(String name) { 76 if (name == null) { 77 throw new IllegalArgumentException ("name is null."); } 79 JavaSourceStyleTable[] tables = getPredefinedTables(); 80 for (int i = 0; i < tables.length; ++i) { 81 if (tables[i].getName().equalsIgnoreCase(name)) { 82 return tables[i]; 83 } 84 } 85 return null; 86 } 87 88 private static JavaSourceStyleTable createDefaultKawaStyleTable() { 89 JavaSourceStyleTable table = new JavaSourceStyleTable("Kawa"); table.put(JavaSourceType.UNDEFINED, new JavaSourceStyleEntry(new RGB(255, 97, 0))); 91 table.put(JavaSourceType.CODE, new JavaSourceStyleEntry(RGB.BLACK)); 92 table.put(JavaSourceType.KEYWORD, new JavaSourceStyleEntry(new RGB(0, 0, 192), true, false)); 93 table.put(JavaSourceType.CODE_TYPE, new JavaSourceStyleEntry(new RGB(192, 0, 0), true, false)); 94 table.put(JavaSourceType.STRING, new JavaSourceStyleEntry(new RGB(153, 0, 0))); table.put(JavaSourceType.COMMENT_LINE, new JavaSourceStyleEntry(new RGB(0, 128, 0))); table.put(JavaSourceType.COMMENT_BLOCK, new JavaSourceStyleEntry(new RGB(0, 128, 0))); table.put(JavaSourceType.JAVADOC, new JavaSourceStyleEntry(new RGB(0, 128, 0))); table.put(JavaSourceType.JAVADOC_KEYWORD, new JavaSourceStyleEntry(new RGB(0, 85, 0))); 100 table.put(JavaSourceType.BACKGROUND, new JavaSourceStyleEntry(new RGB(255, 255, 255))); 104 table.put(JavaSourceType.NUM_CONSTANT, new JavaSourceStyleEntry(new RGB(153, 0, 0))); 105 table.put(JavaSourceType.CHAR_CONSTANT, new JavaSourceStyleEntry(new RGB(153, 0, 0))); 107 table.put(JavaSourceType.PARENTHESIS, new JavaSourceStyleEntry(RGB.BLACK)); 109 table.put(JavaSourceType.JAVADOC_HTML_TAG, new JavaSourceStyleEntry(new RGB(0, 128, 0))); 110 table.put(JavaSourceType.JAVADOC_LINKS, new JavaSourceStyleEntry(new RGB(0, 128, 0))); 111 table.put(JavaSourceType.LINE_NUMBERS, new JavaSourceStyleEntry(new RGB(128, 128, 128))); 112 table.put(JavaSourceType.ANNOTATION, new JavaSourceStyleEntry(new RGB(100, 100, 100))); 113 return table; 114 } 115 116 private static JavaSourceStyleTable createDefaultEclipseStyleTable() { 117 JavaSourceStyleTable table = new JavaSourceStyleTable("Eclipse"); table.put(JavaSourceType.CODE, new JavaSourceStyleEntry(RGB.BLACK)); 119 table.put(JavaSourceType.KEYWORD, new JavaSourceStyleEntry(new RGB(127, 0, 85), true, false)); 120 table.put(JavaSourceType.CODE_TYPE, new JavaSourceStyleEntry(new RGB(127, 0, 85), true, false)); 121 table.put(JavaSourceType.STRING, new JavaSourceStyleEntry(new RGB(42, 0, 255))); 122 table.put(JavaSourceType.COMMENT_LINE, new JavaSourceStyleEntry(new RGB(63, 127, 95))); 123 table.put(JavaSourceType.COMMENT_BLOCK, new JavaSourceStyleEntry(new RGB(63, 127, 95))); 124 table.put(JavaSourceType.JAVADOC, new JavaSourceStyleEntry(new RGB(63, 95, 191))); 125 table.put(JavaSourceType.JAVADOC_KEYWORD, new JavaSourceStyleEntry(new RGB(127, 159, 191))); 126 table.put(JavaSourceType.NUM_CONSTANT, new JavaSourceStyleEntry(new RGB(153, 0, 0))); 127 table.put(JavaSourceType.CHAR_CONSTANT, new JavaSourceStyleEntry(new RGB(153, 0, 0))); 128 table.put(JavaSourceType.PARENTHESIS, new JavaSourceStyleEntry(new RGB(0, 0, 0))); 129 table.put(JavaSourceType.JAVADOC_HTML_TAG, new JavaSourceStyleEntry(new RGB(127, 127, 159))); 130 table.put(JavaSourceType.JAVADOC_LINKS, new JavaSourceStyleEntry(new RGB(63, 63, 191))); 131 table.put(JavaSourceType.UNDEFINED, new JavaSourceStyleEntry(new RGB(255, 97, 0))); 132 table.put(JavaSourceType.BACKGROUND, new JavaSourceStyleEntry(new RGB(255, 255, 255))); 133 table.put(JavaSourceType.LINE_NUMBERS, new JavaSourceStyleEntry(new RGB(128, 128, 128))); 134 table.put(JavaSourceType.ANNOTATION, new JavaSourceStyleEntry(new RGB(100, 100, 100))); 135 return table; 136 } 137 138 private static JavaSourceStyleTable createDefaultMonochromeStyleTable() { 139 JavaSourceStyleTable table = new JavaSourceStyleTable("Monochrome"); table.put(JavaSourceType.CODE, new JavaSourceStyleEntry(RGB.BLACK)); 141 table.put(JavaSourceType.KEYWORD, new JavaSourceStyleEntry(RGB.BLACK, true, false)); 142 table.put(JavaSourceType.CODE_TYPE, new JavaSourceStyleEntry(RGB.BLACK, true, false)); 143 table.put(JavaSourceType.STRING, new JavaSourceStyleEntry(RGB.BLACK)); 144 table.put(JavaSourceType.COMMENT_LINE, new JavaSourceStyleEntry(RGB.BLACK, false, true)); 145 table.put(JavaSourceType.COMMENT_BLOCK, new JavaSourceStyleEntry(RGB.BLACK, false, true)); 146 table.put(JavaSourceType.JAVADOC, new JavaSourceStyleEntry(RGB.BLACK, false, true)); 147 table.put(JavaSourceType.JAVADOC_KEYWORD, new JavaSourceStyleEntry(RGB.BLACK)); 148 table.put(JavaSourceType.NUM_CONSTANT, new JavaSourceStyleEntry(RGB.BLACK)); 149 table.put(JavaSourceType.CHAR_CONSTANT, new JavaSourceStyleEntry(RGB.BLACK)); 150 table.put(JavaSourceType.PARENTHESIS, new JavaSourceStyleEntry(RGB.BLACK)); 151 table.put(JavaSourceType.JAVADOC_HTML_TAG, new JavaSourceStyleEntry(RGB.BLACK)); 152 table.put(JavaSourceType.JAVADOC_LINKS, new JavaSourceStyleEntry(RGB.BLACK)); 153 table.put(JavaSourceType.UNDEFINED, new JavaSourceStyleEntry(RGB.BLACK)); 154 table.put(JavaSourceType.BACKGROUND, new JavaSourceStyleEntry(RGB.WHITE)); 155 table.put(JavaSourceType.LINE_NUMBERS, new JavaSourceStyleEntry(RGB.BLACK)); 156 table.put(JavaSourceType.ANNOTATION, new JavaSourceStyleEntry(RGB.BLACK)); 157 return table; 158 } 159 160 165 public void put(JavaSourceType key, JavaSourceStyleEntry javaSourceStyleEntry) { 166 put(key.getName(), javaSourceStyleEntry); 167 } 168 169 public void put(String key, JavaSourceStyleEntry javaSourceStyleEntry) { 170 table.put(key, javaSourceStyleEntry); 171 } 172 173 179 public static JavaSourceStyleTable getDefault() { 180 return createDefaultEclipseStyleTable(); 181 } 182 183 190 public static JavaSourceStyleTable getDefaultKawaStyleTable() { 191 return createDefaultKawaStyleTable(); 192 } 193 194 201 public static JavaSourceStyleTable getDefaultEclipseStyleTable() { 202 return createDefaultEclipseStyleTable(); 203 } 204 205 212 public static JavaSourceStyleTable getDefaultMonochromeStyleTable() { 213 return createDefaultMonochromeStyleTable(); 214 } 215 216 222 public JavaSourceStyleEntry get(JavaSourceType key) { 223 return get(key.getName()); 224 } 225 226 227 public JavaSourceStyleEntry get(String key) { 228 JavaSourceStyleEntry e = (JavaSourceStyleEntry) table.get(key); 229 return e == null ? defaultColorEntry : e; 230 } 231 232 public String getName() { 233 return name; 234 } 235 236 237 public void setName(String name) { 238 this.name = name; 239 } 240 } | Popular Tags |