package com.yoghurt.crypto.transactions.client.util.misc; import java.util.HashMap; public final class ColorBuilder { // List of all CSS1 colors private static final HashMap<String, Color> COLORS = new HashMap<String, Color>(); static { COLORS.put("aqua", interpretHex("00ffff")); COLORS.put("aliceblue", interpretHex("f0f8ff")); COLORS.put("antiquewhite", interpretHex("faebd7")); COLORS.put("black", interpretHex("000000")); COLORS.put("blue", interpretHex("0000ff")); COLORS.put("cyan", interpretHex("00ffff")); COLORS.put("darkblue", interpretHex("00008b")); COLORS.put("darkcyan", interpretHex("008b8b")); COLORS.put("darkgreen", interpretHex("006400")); COLORS.put("darkturquoise", interpretHex("00ced1")); COLORS.put("deepskyblue", interpretHex("00bfff")); COLORS.put("green", interpretHex("008000")); COLORS.put("lime", interpretHex("00ff00")); COLORS.put("mediumblue", interpretHex("0000cd")); COLORS.put("mediumspringgreen", interpretHex("00fa9a")); COLORS.put("navy", interpretHex("000080")); COLORS.put("springgreen", interpretHex("00ff7f")); COLORS.put("teal", interpretHex("008080")); COLORS.put("midnightblue", interpretHex("191970")); COLORS.put("dodgerblue", interpretHex("1e90ff")); COLORS.put("lightseagreen", interpretHex("20b2aa")); COLORS.put("forestgreen", interpretHex("228b22")); COLORS.put("seagreen", interpretHex("2e8b57")); COLORS.put("darkslategray", interpretHex("2f4f4f")); COLORS.put("darkslategrey", interpretHex("2f4f4f")); COLORS.put("limegreen", interpretHex("32cd32")); COLORS.put("mediumseagreen", interpretHex("3cb371")); COLORS.put("turquoise", interpretHex("40e0d0")); COLORS.put("royalblue", interpretHex("4169e1")); COLORS.put("steelblue", interpretHex("4682b4")); COLORS.put("darkslateblue", interpretHex("483d8b")); COLORS.put("mediumturquoise", interpretHex("48d1cc")); COLORS.put("indigo", interpretHex("4b0082")); COLORS.put("darkolivegreen", interpretHex("556b2f")); COLORS.put("cadetblue", interpretHex("5f9ea0")); COLORS.put("cornflowerblue", interpretHex("6495ed")); COLORS.put("mediumaquamarine", interpretHex("66cdaa")); COLORS.put("dimgray", interpretHex("696969")); COLORS.put("dimgrey", interpretHex("696969")); COLORS.put("slateblue", interpretHex("6a5acd")); COLORS.put("olivedrab", interpretHex("6b8e23")); COLORS.put("slategray", interpretHex("708090")); COLORS.put("slategrey", interpretHex("708090")); COLORS.put("lightslategray", interpretHex("778899")); COLORS.put("lightslategrey", interpretHex("778899")); COLORS.put("mediumslateblue", interpretHex("7b68ee")); COLORS.put("lawngreen", interpretHex("7cfc00")); COLORS.put("aquamarine", interpretHex("7fffd4")); COLORS.put("chartreuse", interpretHex("7fff00")); COLORS.put("gray", interpretHex("808080")); COLORS.put("grey", interpretHex("808080")); COLORS.put("maroon", interpretHex("800000")); COLORS.put("olive", interpretHex("808000")); COLORS.put("purple", interpretHex("800080")); COLORS.put("lightskyblue", interpretHex("87cefa")); COLORS.put("skyblue", interpretHex("87ceeb")); COLORS.put("blueviolet", interpretHex("8a2be2")); COLORS.put("darkmagenta", interpretHex("8b008b")); COLORS.put("darkred", interpretHex("8b0000")); COLORS.put("saddlebrown", interpretHex("8b4513")); COLORS.put("darkseagreen", interpretHex("8fbc8f")); COLORS.put("lightgreen", interpretHex("90ee90")); COLORS.put("mediumpurple", interpretHex("9370db")); COLORS.put("darkviolet", interpretHex("9400d3")); COLORS.put("palegreen", interpretHex("98fb98")); COLORS.put("darkorchid", interpretHex("9932cc")); COLORS.put("yellowgreen", interpretHex("9acd32")); COLORS.put("sienna", interpretHex("a0522d")); COLORS.put("brown", interpretHex("a52a2a")); COLORS.put("darkgray", interpretHex("a9a9a9")); COLORS.put("darkgrey", interpretHex("a9a9a9")); COLORS.put("greenyellow", interpretHex("adff2f")); COLORS.put("lightblue", interpretHex("add8e6")); COLORS.put("paleturquoise", interpretHex("afeeee")); COLORS.put("lightsteelblue", interpretHex("b0c4de")); COLORS.put("powderblue", interpretHex("b0e0e6")); COLORS.put("firebrick", interpretHex("b22222")); COLORS.put("darkgoldenrod", interpretHex("b8860b")); COLORS.put("mediumorchid", interpretHex("ba55d3")); COLORS.put("rosybrown", interpretHex("bc8f8f")); COLORS.put("darkkhaki", interpretHex("bdb76b")); COLORS.put("silver", interpretHex("c0c0c0")); COLORS.put("mediumvioletred", interpretHex("c71585")); COLORS.put("indianred", interpretHex("cd5c5c")); COLORS.put("peru", interpretHex("cd853f")); COLORS.put("chocolate", interpretHex("d2691e")); COLORS.put("tan", interpretHex("d2b48c")); COLORS.put("lightgray", interpretHex("d3d3d3")); COLORS.put("lightgrey", interpretHex("d3d3d3")); COLORS.put("thistle", interpretHex("d8bfd8")); COLORS.put("goldenrod", interpretHex("daa520")); COLORS.put("orchid", interpretHex("da70d6")); COLORS.put("palevioletred", interpretHex("db7093")); COLORS.put("crimson", interpretHex("dc143c")); COLORS.put("gainsboro", interpretHex("dcdcdc")); COLORS.put("plum", interpretHex("dda0dd")); COLORS.put("burlywood", interpretHex("deb887")); COLORS.put("lightcyan", interpretHex("e0ffff")); COLORS.put("lavender", interpretHex("e6e6fa")); COLORS.put("darksalmon", interpretHex("e9967a")); COLORS.put("palegoldenrod", interpretHex("eee8aa")); COLORS.put("violet", interpretHex("ee82ee")); COLORS.put("azure", interpretHex("f0ffff")); COLORS.put("honeydew", interpretHex("f0fff0")); COLORS.put("khaki", interpretHex("f0e68c")); COLORS.put("lightcoral", interpretHex("f08080")); COLORS.put("sandybrown", interpretHex("f4a460")); COLORS.put("beige", interpretHex("f5f5dc")); COLORS.put("mintcream", interpretHex("f5fffa")); COLORS.put("wheat", interpretHex("f5deb3")); COLORS.put("whitesmoke", interpretHex("f5f5f5")); COLORS.put("ghostwhite", interpretHex("f8f8ff")); COLORS.put("lightgoldenrodyellow", interpretHex("fafad2")); COLORS.put("linen", interpretHex("faf0e6")); COLORS.put("salmon", interpretHex("fa8072")); COLORS.put("oldlace", interpretHex("fdf5e6")); COLORS.put("bisque", interpretHex("ffe4c4")); COLORS.put("blanchedalmond", interpretHex("ffebcd")); COLORS.put("coral", interpretHex("ff7f50")); COLORS.put("cornsilk", interpretHex("fff8dc")); COLORS.put("darkorange", interpretHex("ff8c00")); COLORS.put("deeppink", interpretHex("ff1493")); COLORS.put("floralwhite", interpretHex("fffaf0")); COLORS.put("fuchsia", interpretHex("ff00ff")); COLORS.put("gold", interpretHex("ffd700")); COLORS.put("hotpink", interpretHex("ff69b4")); COLORS.put("ivory", interpretHex("fffff0")); COLORS.put("lavenderblush", interpretHex("fff0f5")); COLORS.put("lemonchiffon", interpretHex("fffacd")); COLORS.put("lightpink", interpretHex("ffb6c1")); COLORS.put("lightsalmon", interpretHex("ffa07a")); COLORS.put("lightyellow", interpretHex("ffffe0")); COLORS.put("magenta", interpretHex("ff00ff")); COLORS.put("mistyrose", interpretHex("ffe4e1")); COLORS.put("moccasin", interpretHex("ffe4b5")); COLORS.put("navajowhite", interpretHex("ffdead")); COLORS.put("orange", interpretHex("ffa500")); COLORS.put("orangered", interpretHex("ff4500")); COLORS.put("papayawhip", interpretHex("ffefd5")); COLORS.put("peachpuff", interpretHex("ffdab9")); COLORS.put("pink", interpretHex("ffc0cb")); COLORS.put("red", interpretHex("ff0000")); COLORS.put("seashell", interpretHex("fff5ee")); COLORS.put("snow", interpretHex("fffafa")); COLORS.put("tomato", interpretHex("ff6347")); COLORS.put("white", interpretHex("ffffff")); COLORS.put("yellow", interpretHex("ffff00")); COLORS.put("rebeccapurple", interpretHex("663399")); } public static Color interpret(final String color, final double a) { final Color clr = interpret(color); clr.setA(a); return clr; } public static Color interpret(final String color) { final String fixedColor = color.toLowerCase().replace("-", ""); if (COLORS.containsKey(fixedColor)) { return COLORS.get(fixedColor); } return interpretHex(color); } private static Color interpretHex(final String hex) { if(hex.startsWith("#")) { return interpretHex(hex.substring(1)); } final int r = Integer.parseInt(hex.substring(0, 2).toUpperCase(), 16); final int g = Integer.parseInt(hex.substring(2, 4).toUpperCase(), 16); final int b = Integer.parseInt(hex.substring(4, 6).toUpperCase(), 16); return new Color(r, g, b); } }