001: /*
002: * Copyright 2006-2007 Pentaho Corporation. All rights reserved.
003: * This software was developed by Pentaho Corporation and is provided under the terms
004: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
005: * this file except in compliance with the license. If you need a copy of the license,
006: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt.
007: *
008: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
009: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
010: * the license for the specific language governing your rights and limitations.
011: *
012: * Additional Contributor(s): Martin Schmid gridvision engineering GmbH
013: */
014: package org.pentaho.reportdesigner.crm.report.util;
015:
016: import org.jetbrains.annotations.NotNull;
017: import org.jetbrains.annotations.Nullable;
018:
019: import java.awt.*;
020: import java.util.Map;
021: import java.util.TreeMap;
022:
023: public class ColorHelper {
024: @NotNull
025: private static final Map<String, Color> colors = new TreeMap<String, Color>();
026:
027: private ColorHelper() {
028: }
029:
030: static {
031: // Source - W3C defined RGB colors
032: colors.put("alice blue", Color.decode("#f0f8ff")); //$NON-NLS-1$ //$NON-NLS-2$
033: colors.put("antique white", Color.decode("#faebd7")); //$NON-NLS-1$ //$NON-NLS-2$
034: colors.put("aquamarine", Color.decode("#7fffd4")); //$NON-NLS-1$ //$NON-NLS-2$
035: colors.put("azure", Color.decode("#f0ffff")); //$NON-NLS-1$ //$NON-NLS-2$
036: colors.put("beige", Color.decode("#f5f5dc")); //$NON-NLS-1$ //$NON-NLS-2$
037: colors.put("bisque", Color.decode("#ffe4c4")); //$NON-NLS-1$ //$NON-NLS-2$
038: colors.put("black", Color.decode("#000000")); //$NON-NLS-1$ //$NON-NLS-2$
039: colors.put("blanched almond", Color.decode("#ffebcd")); //$NON-NLS-1$ //$NON-NLS-2$
040: colors.put("blue", Color.decode("#0000ff")); //$NON-NLS-1$ //$NON-NLS-2$
041: colors.put("blue violet", Color.decode("#8a2be2")); //$NON-NLS-1$ //$NON-NLS-2$
042: colors.put("brown", Color.decode("#a52a2a")); //$NON-NLS-1$ //$NON-NLS-2$
043: colors.put("burlywood", Color.decode("#deb887")); //$NON-NLS-1$ //$NON-NLS-2$
044: colors.put("cadet blue", Color.decode("#5f9ea0")); //$NON-NLS-1$ //$NON-NLS-2$
045: colors.put("chartreuse", Color.decode("#7fff00")); //$NON-NLS-1$ //$NON-NLS-2$
046: colors.put("chocolate", Color.decode("#d2691e")); //$NON-NLS-1$ //$NON-NLS-2$
047: colors.put("coral", Color.decode("#ff7f50")); //$NON-NLS-1$ //$NON-NLS-2$
048: colors.put("cornflower blue", Color.decode("#6495ed")); //$NON-NLS-1$ //$NON-NLS-2$
049: colors.put("cornsilk", Color.decode("#fff8dc")); //$NON-NLS-1$ //$NON-NLS-2$
050: colors.put("crimson", Color.decode("#dc143c")); //$NON-NLS-1$ //$NON-NLS-2$
051: colors.put("cyan", Color.decode("#00ffff")); //$NON-NLS-1$ //$NON-NLS-2$
052: colors.put("dark blue", Color.decode("#00008b")); //$NON-NLS-1$ //$NON-NLS-2$
053: colors.put("dark cyan", Color.decode("#008b8b")); //$NON-NLS-1$ //$NON-NLS-2$
054: colors.put("dark goldenrod", Color.decode("#b8860b")); //$NON-NLS-1$ //$NON-NLS-2$
055: colors.put("dark gray", Color.decode("#a9a9a9")); //$NON-NLS-1$ //$NON-NLS-2$
056: colors.put("dark green", Color.decode("#006400")); //$NON-NLS-1$ //$NON-NLS-2$
057: colors.put("dark khaki", Color.decode("#bdb76b")); //$NON-NLS-1$ //$NON-NLS-2$
058: colors.put("dark magenta", Color.decode("#8b008b")); //$NON-NLS-1$ //$NON-NLS-2$
059: colors.put("dark olive green", Color.decode("#556b2f")); //$NON-NLS-1$ //$NON-NLS-2$
060: colors.put("dark orange", Color.decode("#ff8c00")); //$NON-NLS-1$ //$NON-NLS-2$
061: colors.put("dark orchid", Color.decode("#9932cc")); //$NON-NLS-1$ //$NON-NLS-2$
062: colors.put("dark red", Color.decode("#8b0000")); //$NON-NLS-1$ //$NON-NLS-2$
063: colors.put("dark salmon", Color.decode("#e9967a")); //$NON-NLS-1$ //$NON-NLS-2$
064: colors.put("dark seagreen", Color.decode("#8dbc8f")); //$NON-NLS-1$ //$NON-NLS-2$
065: colors.put("dark slate blue", Color.decode("#483d8b")); //$NON-NLS-1$ //$NON-NLS-2$
066: colors.put("dark slate gray", Color.decode("#2f4f4f")); //$NON-NLS-1$ //$NON-NLS-2$
067: colors.put("dark turquoise", Color.decode("#00ded1")); //$NON-NLS-1$ //$NON-NLS-2$
068: colors.put("dark violet", Color.decode("#9400d3")); //$NON-NLS-1$ //$NON-NLS-2$
069: colors.put("deep pink", Color.decode("#ff1493")); //$NON-NLS-1$ //$NON-NLS-2$
070: colors.put("deep sky blue", Color.decode("#00bfff")); //$NON-NLS-1$ //$NON-NLS-2$
071: colors.put("dim gray", Color.decode("#696969")); //$NON-NLS-1$ //$NON-NLS-2$
072: colors.put("dodger blue", Color.decode("#1e90ff")); //$NON-NLS-1$ //$NON-NLS-2$
073: colors.put("firebrick", Color.decode("#b22222")); //$NON-NLS-1$ //$NON-NLS-2$
074: colors.put("floral white", Color.decode("#fffaf0")); //$NON-NLS-1$ //$NON-NLS-2$
075: colors.put("forest green", Color.decode("#228b22")); //$NON-NLS-1$ //$NON-NLS-2$
076: colors.put("gainsboro", Color.decode("#dcdcdc")); //$NON-NLS-1$ //$NON-NLS-2$
077: colors.put("ghost white", Color.decode("#f8f8ff")); //$NON-NLS-1$ //$NON-NLS-2$
078: colors.put("gold", Color.decode("#ffd700")); //$NON-NLS-1$ //$NON-NLS-2$
079: colors.put("goldenrod", Color.decode("#daa520")); //$NON-NLS-1$ //$NON-NLS-2$
080: colors.put("gray", Color.decode("#808080")); //$NON-NLS-1$ //$NON-NLS-2$
081: colors.put("green", Color.decode("#008000")); //$NON-NLS-1$ //$NON-NLS-2$
082: colors.put("green yellow", Color.decode("#adff2f")); //$NON-NLS-1$ //$NON-NLS-2$
083: colors.put("honeydew", Color.decode("#f0fff0")); //$NON-NLS-1$ //$NON-NLS-2$
084: colors.put("hot pink", Color.decode("#ff69b4")); //$NON-NLS-1$ //$NON-NLS-2$
085: colors.put("indian red", Color.decode("#cd5c5c")); //$NON-NLS-1$ //$NON-NLS-2$
086: colors.put("indigo", Color.decode("#4b0082")); //$NON-NLS-1$ //$NON-NLS-2$
087: colors.put("ivory", Color.decode("#fffff0")); //$NON-NLS-1$ //$NON-NLS-2$
088: colors.put("khaki", Color.decode("#f0e68c")); //$NON-NLS-1$ //$NON-NLS-2$
089: colors.put("lavender", Color.decode("#e6e6fa")); //$NON-NLS-1$ //$NON-NLS-2$
090: colors.put("lavender blush", Color.decode("#fff0f5")); //$NON-NLS-1$ //$NON-NLS-2$
091: colors.put("lawngreen", Color.decode("#7cfc00")); //$NON-NLS-1$ //$NON-NLS-2$
092: colors.put("lemon chiffon", Color.decode("#fffacd")); //$NON-NLS-1$ //$NON-NLS-2$
093: colors.put("light blue", Color.decode("#add8e6")); //$NON-NLS-1$ //$NON-NLS-2$
094: colors.put("light coral", Color.decode("#f08080")); //$NON-NLS-1$ //$NON-NLS-2$
095: colors.put("light cyan", Color.decode("#e0ffff")); //$NON-NLS-1$ //$NON-NLS-2$
096: colors.put("light goldenrod yellow", Color.decode("#fafad2")); //$NON-NLS-1$ //$NON-NLS-2$
097: colors.put("light green", Color.decode("#90ee90")); //$NON-NLS-1$ //$NON-NLS-2$
098: colors.put("light grey", Color.decode("#d3d3d3")); //$NON-NLS-1$ //$NON-NLS-2$
099: colors.put("light pink", Color.decode("#ffb6c1")); //$NON-NLS-1$ //$NON-NLS-2$
100: colors.put("light salmon", Color.decode("#ffa07a")); //$NON-NLS-1$ //$NON-NLS-2$
101: colors.put("light seagreen", Color.decode("#20b2aa")); //$NON-NLS-1$ //$NON-NLS-2$
102: colors.put("light sky blue", Color.decode("#87cefa")); //$NON-NLS-1$ //$NON-NLS-2$
103: colors.put("light slate gray", Color.decode("#778899")); //$NON-NLS-1$ //$NON-NLS-2$
104: colors.put("light steel blue", Color.decode("#b0c4de")); //$NON-NLS-1$ //$NON-NLS-2$
105: colors.put("light yellow", Color.decode("#ffffe0")); //$NON-NLS-1$ //$NON-NLS-2$
106: colors.put("lime", Color.decode("#00ff00")); //$NON-NLS-1$ //$NON-NLS-2$
107: colors.put("lime green", Color.decode("#32cd32")); //$NON-NLS-1$ //$NON-NLS-2$
108: colors.put("linen", Color.decode("#faf0e6")); //$NON-NLS-1$ //$NON-NLS-2$
109: colors.put("magenta", Color.decode("#ff00ff")); //$NON-NLS-1$ //$NON-NLS-2$
110: colors.put("maroon", Color.decode("#800000")); //$NON-NLS-1$ //$NON-NLS-2$
111: colors.put("medium aquamarine", Color.decode("#66cdaa")); //$NON-NLS-1$ //$NON-NLS-2$
112: colors.put("medium blue", Color.decode("#0000cd")); //$NON-NLS-1$ //$NON-NLS-2$
113: colors.put("medium orchid", Color.decode("#ba55d3")); //$NON-NLS-1$ //$NON-NLS-2$
114: colors.put("medium purple", Color.decode("#9370db")); //$NON-NLS-1$ //$NON-NLS-2$
115: colors.put("medium sea green", Color.decode("#3cb371")); //$NON-NLS-1$ //$NON-NLS-2$
116: colors.put("medium slate blue", Color.decode("#7b68ee")); //$NON-NLS-1$ //$NON-NLS-2$
117: colors.put("medium spring green", Color.decode("#00fa9a")); //$NON-NLS-1$ //$NON-NLS-2$
118: colors.put("medium turquoise", Color.decode("#48d1cc")); //$NON-NLS-1$ //$NON-NLS-2$
119: colors.put("medium violet red", Color.decode("#c71585")); //$NON-NLS-1$ //$NON-NLS-2$
120: colors.put("midnight blue", Color.decode("#191970")); //$NON-NLS-1$ //$NON-NLS-2$
121: colors.put("mint cream", Color.decode("#f5fffa")); //$NON-NLS-1$ //$NON-NLS-2$
122: colors.put("misty rose", Color.decode("#ffe4e1")); //$NON-NLS-1$ //$NON-NLS-2$
123: colors.put("moccasin", Color.decode("#ffe4b5")); //$NON-NLS-1$ //$NON-NLS-2$
124: colors.put("navajo white", Color.decode("#ffdead")); //$NON-NLS-1$ //$NON-NLS-2$
125: colors.put("navy", Color.decode("#000080")); //$NON-NLS-1$ //$NON-NLS-2$
126: colors.put("old lace", Color.decode("#fdf5e6")); //$NON-NLS-1$ //$NON-NLS-2$
127: colors.put("olive drab", Color.decode("#6b8e23")); //$NON-NLS-1$ //$NON-NLS-2$
128: colors.put("orange", Color.decode("#ffa500")); //$NON-NLS-1$ //$NON-NLS-2$
129: colors.put("orange red", Color.decode("#ff4500")); //$NON-NLS-1$ //$NON-NLS-2$
130: colors.put("orchid", Color.decode("#da70d6")); //$NON-NLS-1$ //$NON-NLS-2$
131: colors.put("pale goldenrod", Color.decode("#eee8aa")); //$NON-NLS-1$ //$NON-NLS-2$
132: colors.put("pale green", Color.decode("#98fb98")); //$NON-NLS-1$ //$NON-NLS-2$
133: colors.put("pale turquoise", Color.decode("#afeeee")); //$NON-NLS-1$ //$NON-NLS-2$
134: colors.put("pale violet red", Color.decode("#db7093")); //$NON-NLS-1$ //$NON-NLS-2$
135: colors.put("papaya whip", Color.decode("#ffefd5")); //$NON-NLS-1$ //$NON-NLS-2$
136: colors.put("peach puff", Color.decode("#ffdab9")); //$NON-NLS-1$ //$NON-NLS-2$
137: colors.put("peru", Color.decode("#cd853f")); //$NON-NLS-1$ //$NON-NLS-2$
138: colors.put("pink", Color.decode("#ffc8cb")); //$NON-NLS-1$ //$NON-NLS-2$
139: colors.put("plum", Color.decode("#dda0dd")); //$NON-NLS-1$ //$NON-NLS-2$
140: colors.put("powder blue", Color.decode("#b0e0e6")); //$NON-NLS-1$ //$NON-NLS-2$
141: colors.put("purple", Color.decode("#800080")); //$NON-NLS-1$ //$NON-NLS-2$
142: colors.put("red", Color.decode("#ff0000")); //$NON-NLS-1$ //$NON-NLS-2$
143: colors.put("rosy brown", Color.decode("#bc8f8f")); //$NON-NLS-1$ //$NON-NLS-2$
144: colors.put("royal blue", Color.decode("#4169e1")); //$NON-NLS-1$ //$NON-NLS-2$
145: colors.put("saddle brown", Color.decode("#8b4513")); //$NON-NLS-1$ //$NON-NLS-2$
146: colors.put("salmon", Color.decode("#fa8072")); //$NON-NLS-1$ //$NON-NLS-2$
147: colors.put("sandy brown", Color.decode("#f4a460")); //$NON-NLS-1$ //$NON-NLS-2$
148: colors.put("sea green", Color.decode("#2e8b57")); //$NON-NLS-1$ //$NON-NLS-2$
149: colors.put("sea shell", Color.decode("#fff5ee")); //$NON-NLS-1$ //$NON-NLS-2$
150: colors.put("sienna", Color.decode("#a0522d")); //$NON-NLS-1$ //$NON-NLS-2$
151: colors.put("silver", Color.decode("#c0c0c0")); //$NON-NLS-1$ //$NON-NLS-2$
152: colors.put("sky blue", Color.decode("#87ceeb")); //$NON-NLS-1$ //$NON-NLS-2$
153: colors.put("slate blue", Color.decode("#6a5acd")); //$NON-NLS-1$ //$NON-NLS-2$
154: colors.put("snow", Color.decode("#fffafa")); //$NON-NLS-1$ //$NON-NLS-2$
155: colors.put("spring green", Color.decode("#00ff7f")); //$NON-NLS-1$ //$NON-NLS-2$
156: colors.put("steelblue", Color.decode("#4682b4")); //$NON-NLS-1$ //$NON-NLS-2$
157: colors.put("tan", Color.decode("#d2b48c")); //$NON-NLS-1$ //$NON-NLS-2$
158: colors.put("teal", Color.decode("#008080")); //$NON-NLS-1$ //$NON-NLS-2$
159: colors.put("thistle", Color.decode("#d8bfd8")); //$NON-NLS-1$ //$NON-NLS-2$
160: colors.put("tomato", Color.decode("#ff6347")); //$NON-NLS-1$ //$NON-NLS-2$
161: colors.put("turquoise", Color.decode("#40e0d0")); //$NON-NLS-1$ //$NON-NLS-2$
162: colors.put("violet", Color.decode("#ee82ee")); //$NON-NLS-1$ //$NON-NLS-2$
163: colors.put("wheat", Color.decode("#f5deb3")); //$NON-NLS-1$ //$NON-NLS-2$
164: colors.put("white", Color.decode("#ffffff")); //$NON-NLS-1$ //$NON-NLS-2$
165: colors.put("whitesmoke", Color.decode("#f5f5f5")); //$NON-NLS-1$ //$NON-NLS-2$
166: colors.put("yellow", Color.decode("#ffff00")); //$NON-NLS-1$ //$NON-NLS-2$
167: colors.put("yellow green", Color.decode("#9acd32")); //$NON-NLS-1$ //$NON-NLS-2$
168: }
169:
170: @Nullable
171: public static Color lookupColor(@Nullable
172: String col) {
173: if (col == null) {
174: return null;
175: }
176: //noinspection UnusedCatchParameter
177: try {
178: return Color.decode(col);
179: } catch (NumberFormatException e) {
180: return colors.get(col);
181: }
182: }
183:
184: }
|