/*
* This file is part of LaTeXDraw.
* Copyright (c) 2005-2017 Arnaud BLOUIN
* LaTeXDraw is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later version.
* LaTeXDraw is distributed without any warranty; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/package net.sf.latexdraw.parsers.svg;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
import net.sf.latexdraw.badaboom.BadaboomCollector;
import net.sf.latexdraw.models.ShapeFactory;
import net.sf.latexdraw.models.interfaces.shape.Color;
/**
* Defines colours used in CSS2.
* @author Arnaud BLOUIN
*/
public final class CSSColors {
// /** The colours defined by the user. */
// private List<Color> userColours = new ArrayList<Color>();
//
// /** The name of the colours defined by the user. */
// private List<String> usernameColours = new ArrayList<String>();
private final Map<String, Color> userColours;
private final Map<String, Color> colourHashtable;
private final Map<Color, String> nameColourHashtable;
public static final String CSS_LINEN_NAME = "linen";//$NON-NLS-1$
public static final String CSS_ALICEBLUE_NAME = "aliceblue";//$NON-NLS-1$
public static final String CSS_ANTIQUEWHITE_NAME = "antiquewhite";//$NON-NLS-1$
public static final String CSS_AQUAMARINE_NAME = "aquamarine";//$NON-NLS-1$
public static final String CSS_AQUA_NAME = "aqua";//$NON-NLS-1$
public static final String CSS_AZURE_NAME = "azure";//$NON-NLS-1$
public static final String CSS_BEIGE_NAME = "beige";//$NON-NLS-1$
public static final String CSS_BISQUE_NAME = "bisque";//$NON-NLS-1$
public static final String CSS_BLACK_NAME = "black";//$NON-NLS-1$
public static final String CSS_BLANCHEDALMOND_NAME = "blanchedalmond";//$NON-NLS-1$
public static final String CSS_BLUEVIOLET_NAME = "blueviolet";//$NON-NLS-1$
public static final String CSS_BLUE_NAME = "blue";//$NON-NLS-1$
public static final String CSS_BROWN_NAME = "brown";//$NON-NLS-1$
public static final String CSS_BURLYWOOD_NAME = "burlywood";//$NON-NLS-1$
public static final String CSS_CADETBLUE_NAME = "cadetblue";//$NON-NLS-1$
public static final String CSS_CHARTREUSE_NAME = "chartreuse";//$NON-NLS-1$
public static final String CSS_CHOCOLATE_NAME = "chocolate";//$NON-NLS-1$
public static final String CSS_CORAL_NAME = "coral";//$NON-NLS-1$
public static final String CSS_CORNFLOWERBLUE_NAME = "cornflowerblue";//$NON-NLS-1$
public static final String CSS_CORNSILK_NAME = "cornsilk";//$NON-NLS-1$
public static final String CSS_CRIMSON_NAME = "crimson";//$NON-NLS-1$
public static final String CSS_CYAN_NAME = "cyan";//$NON-NLS-1$
public static final String CSS_DARKBLUE_NAME = "darkblue";//$NON-NLS-1$
public static final String CSS_DARKCYAN_NAME = "darkcyan";//$NON-NLS-1$
public static final String CSS_DARKGOLDENROD_NAME = "darkgoldenrod";//$NON-NLS-1$
public static final String CSS_DARKGRAY_NAME = "darkgray";//$NON-NLS-1$
public static final String CSS_DARKGREEN_NAME = "darkgreen";//$NON-NLS-1$
public static final String CSS_DARKGREY_NAME = "darkgrey";//$NON-NLS-1$
public static final String CSS_DARKKHAKI_NAME = "darkkhaki";//$NON-NLS-1$
public static final String CSS_DARKMAGENTA_NAME = "darkmagenta";//$NON-NLS-1$
public static final String CSS_DARKOLIVEGREEN_NAME = "darkolivegreen";//$NON-NLS-1$
public static final String CSS_DARKORANGE_NAME = "darkorange";//$NON-NLS-1$
public static final String CSS_DARKORCHID_NAME = "darkorchid";//$NON-NLS-1$
public static final String CSS_DARKRED_NAME = "darkred";//$NON-NLS-1$
public static final String CSS_DARKSALMON_NAME = "darksalmon";//$NON-NLS-1$
public static final String CSS_DARKSEAGREEN_NAME = "darkseagreen";//$NON-NLS-1$
public static final String CSS_DARKSLATEBLUE_NAME = "darkslateblue";//$NON-NLS-1$
public static final String CSS_DARKSLATEGRAY_NAME = "darkslategray";//$NON-NLS-1$
public static final String CSS_DARKSLATEGREY_NAME = "darkslategrey";//$NON-NLS-1$
public static final String CSS_DARKTURQUOISE_NAME = "darkturquoise";//$NON-NLS-1$
public static final String CSS_DARKVIOLET_NAME = "darkviolet";//$NON-NLS-1$
public static final String CSS_DEEPPINK_NAME = "deeppink";//$NON-NLS-1$
public static final String CSS_DEEPSKYBLUE_NAME = "deepskyblue";//$NON-NLS-1$
public static final String CSS_DIMGRAY_NAME = "dimgray";//$NON-NLS-1$
public static final String CSS_DIMGREY_NAME = "dimgrey";//$NON-NLS-1$
public static final String CSS_DODGERBLUE_NAME = "dodgerblue";//$NON-NLS-1$
public static final String CSS_FIREBRICK_NAME = "firebrick";//$NON-NLS-1$
public static final String CSS_FLORALWHITE_NAME = "floralwhite";//$NON-NLS-1$
public static final String CSS_FORESTGREEN_NAME = "forestgreen";//$NON-NLS-1$
public static final String CSS_FUCHSIA_NAME = "fuchsia";//$NON-NLS-1$
public static final String CSS_GAINSBORO_NAME = "gainsboro";//$NON-NLS-1$
public static final String CSS_GHOSTWHITE_NAME = "ghostwhite";//$NON-NLS-1$
public static final String CSS_GOLDENROD_NAME = "goldenrod";//$NON-NLS-1$
public static final String CSS_GOLD_NAME = "gold";//$NON-NLS-1$
public static final String CSS_GRAY_NAME = "gray";//$NON-NLS-1$
public static final String CSS_GREENYELLOW_NAME = "greenyellow";//$NON-NLS-1$
public static final String CSS_GREEN_NAME = "green";//$NON-NLS-1$
public static final String CSS_GREY_NAME = "grey";//$NON-NLS-1$
public static final String CSS_HONEYDEW_NAME = "honeydew";//$NON-NLS-1$
public static final String CSS_HOTPINK_NAME = "hotpink";//$NON-NLS-1$
public static final String CSS_INDIGO_NAME = "indigo";//$NON-NLS-1$
public static final String CSS_IVORY_NAME = "ivory";//$NON-NLS-1$
public static final String CSS_INDIANRED_NAME = "indianred";//$NON-NLS-1$
public static final String CSS_KHAKI_NAME = "khaki";//$NON-NLS-1$
public static final String CSS_LAVENDERBLUSH_NAME = "lavenderblush";//$NON-NLS-1$
public static final String CSS_LAVENDER_NAME = "lavender";//$NON-NLS-1$
public static final String CSS_LAWNGREEN_NAME = "lawngreen";//$NON-NLS-1$
public static final String CSS_LEMONCHIFFON_NAME = "lemonchiffon";//$NON-NLS-1$
public static final String CSS_LIGHTBLUE_NAME = "lightblue";//$NON-NLS-1$
public static final String CSS_LIGHTCORAL_NAME = "lightcoral";//$NON-NLS-1$
public static final String CSS_LIGHTCYAN_NAME = "lightcyan";//$NON-NLS-1$
public static final String CSS_LIGHTGOLDENRODYELLOW_NAME = "lightgoldenrodyellow";//$NON-NLS-1$
public static final String CSS_LIGHTGRAY_NAME = "lightgray";//$NON-NLS-1$
public static final String CSS_LIGHTGREEN_NAME = "lightgreen";//$NON-NLS-1$
public static final String CSS_LIGHTGREY_NAME = "lightgrey";//$NON-NLS-1$
public static final String CSS_LIGHTPINK_NAME = "lightpink";//$NON-NLS-1$
public static final String CSS_LIGHTSALMON_NAME = "lightsalmon";//$NON-NLS-1$
public static final String CSS_LIGHTSEAGREEN_NAME = "lightseagreen";//$NON-NLS-1$
public static final String CSS_LIGHTSKYBLUE_NAME = "lightskyblue";//$NON-NLS-1$
public static final String CSS_LIGHTSLATEGRAY_NAME = "lightslategray";//$NON-NLS-1$
public static final String CSS_LIGHTSLATEGREY_NAME = "lightslategrey";//$NON-NLS-1$
public static final String CSS_LIGHTSTEELBLUE_NAME = "lightsteelblue";//$NON-NLS-1$
public static final String CSS_LIGHTYELLOW_NAME = "lightyellow";//$NON-NLS-1$
public static final String CSS_LIMEGREEN_NAME = "limegreen";//$NON-NLS-1$
public static final String CSS_LIME_NAME = "lime";//$NON-NLS-1$
public static final String CSS_MAGENTA_NAME = "magenta";//$NON-NLS-1$
public static final String CSS_MAROON_NAME = "maroon";//$NON-NLS-1$
public static final String CSS_MEDIUMAQUAMARINE_NAME = "mediumaquamarine";//$NON-NLS-1$
public static final String CSS_MEDIUMBLUE_NAME = "mediumblue";//$NON-NLS-1$
public static final String CSS_MEDIUMORCHID_NAME = "mediumorchid";//$NON-NLS-1$
public static final String CSS_MEDIUMPURPLE_NAME = "mediumpurple";//$NON-NLS-1$
public static final String CSS_MEDIUMSEAGREEN_NAME = "mediumseagreen";//$NON-NLS-1$
public static final String CSS_MEDIUMSLATEBLUE_NAME = "mediumslateblue";//$NON-NLS-1$
public static final String CSS_MEDIUMSPRINGGREEN_NAME = "mediumspringgreen";//$NON-NLS-1$
public static final String CSS_MEDIUMTURQUOISE_NAME = "mediumturquoise";//$NON-NLS-1$
public static final String CSS_MEDIUMVIOLETRED_NAME = "mediumvioletred";//$NON-NLS-1$
public static final String CSS_MIDNIGHTBLUE_NAME = "midnightblue";//$NON-NLS-1$
public static final String CSS_MINTCREAM_NAME = "mintcream";//$NON-NLS-1$
public static final String CSS_MISTYROSE_NAME = "mistyrose";//$NON-NLS-1$
public static final String CSS_MOCCASIN_NAME = "moccasin";//$NON-NLS-1$
public static final String CSS_NAVAJOWHITE_NAME = "navajowhite";//$NON-NLS-1$
public static final String CSS_NAVY_NAME = "navy";//$NON-NLS-1$
public static final String CSS_OLDLACE_NAME = "oldlace";//$NON-NLS-1$
public static final String CSS_OLIVEDRAB_NAME = "olivedrab";//$NON-NLS-1$
public static final String CSS_OLIVE_NAME = "olive";//$NON-NLS-1$
public static final String CSS_ORANGERED_NAME = "orangered";//$NON-NLS-1$
public static final String CSS_ORANGE_NAME = "orange";//$NON-NLS-1$
public static final String CSS_ORCHID_NAME = "orchid";//$NON-NLS-1$
public static final String CSS_PALEGOLDENROD_NAME = "palegoldenrod";//$NON-NLS-1$
public static final String CSS_PALEGREEN_NAME = "palegreen";//$NON-NLS-1$
public static final String CSS_PALETURQUOISE_NAME = "paleturquoise";//$NON-NLS-1$
public static final String CSS_PALEVIOLETRED_NAME = "palevioletred";//$NON-NLS-1$
public static final String CSS_PAPAYAWHIP_NAME = "papayawhip";//$NON-NLS-1$
public static final String CSS_PEACHPUFF_NAME = "peachpuff";//$NON-NLS-1$
public static final String CSS_PERU_NAME = "peru";//$NON-NLS-1$
public static final String CSS_PINK_NAME = "pink";//$NON-NLS-1$
public static final String CSS_PLUM_NAME = "plum";//$NON-NLS-1$
public static final String CSS_POWDERBLUE_NAME = "powderblue";//$NON-NLS-1$
public static final String CSS_PURPLE_NAME = "purple";//$NON-NLS-1$
public static final String CSS_RED_NAME = "red";//$NON-NLS-1$
public static final String CSS_ROSYBROWN_NAME = "rosybrown";//$NON-NLS-1$
public static final String CSS_ROYALBLUE_NAME = "royalblue";//$NON-NLS-1$
public static final String CSS_SADDLEBROWN_NAME = "saddlebrown";//$NON-NLS-1$
public static final String CSS_SALMON_NAME = "salmon";//$NON-NLS-1$
public static final String CSS_SANDYBROWN_NAME = "sandybrown";//$NON-NLS-1$
public static final String CSS_SEAGREEN_NAME = "seagreen";//$NON-NLS-1$
public static final String CSS_SEASHELL_NAME = "seashell";//$NON-NLS-1$
public static final String CSS_SIENNA_NAME = "sienna";//$NON-NLS-1$
public static final String CSS_SILVER_NAME = "silver";//$NON-NLS-1$
public static final String CSS_SKYBLUE_NAME = "skyblue";//$NON-NLS-1$
public static final String CSS_SLATEBLUE_NAME = "slateblue";//$NON-NLS-1$
public static final String CSS_SLATEGRAY_NAME = "slategray";//$NON-NLS-1$
public static final String CSS_SLATEGREY_NAME = "slategrey";//$NON-NLS-1$
public static final String CSS_SNOW_NAME = "snow";//$NON-NLS-1$
public static final String CSS_SPRINGGREEN_NAME = "springgreen";//$NON-NLS-1$
public static final String CSS_STEELBLUE_NAME = "steelblue";//$NON-NLS-1$
public static final String CSS_TAN_NAME = "tan";//$NON-NLS-1$
public static final String CSS_TEAL_NAME = "teal";//$NON-NLS-1$
public static final String CSS_THISTLE_NAME = "thistle";//$NON-NLS-1$
public static final String CSS_TOMATO_NAME = "tomato";//$NON-NLS-1$
public static final String CSS_TURQUOISE_NAME = "turquoise";//$NON-NLS-1$
public static final String CSS_VIOLET_NAME = "violet";//$NON-NLS-1$
public static final String CSS_WHEAT_NAME = "wheat";//$NON-NLS-1$
public static final String CSS_WHITESMOKE_NAME = "whitesmoke";//$NON-NLS-1$
public static final String CSS_WHITE_NAME = "white";//$NON-NLS-1$
public static final String CSS_YELLOWGREEN_NAME = "yellowgreen";//$NON-NLS-1$
public static final String CSS_YELLOW_NAME = "yellow";//$NON-NLS-1$
public static final Color CSS_YELLOW_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 255, 0);
public static final Color CSS_RED_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 0, 0);
public static final Color CSS_TEAL_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 128, 128);
public static final Color CSS_PURPLE_RGB_VALUE = ShapeFactory.INST.createColorInt(128, 0, 128);
public static final Color CSS_SILVER_RGB_VALUE = ShapeFactory.INST.createColorInt(192, 192, 192);
public static final Color CSS_NAVY_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 0, 128);
public static final Color CSS_OLIVE_RGB_VALUE = ShapeFactory.INST.createColorInt(128, 128, 0);
public static final Color CSS_LIME_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 255, 0);
public static final Color CSS_MAROON_RGB_VALUE = ShapeFactory.INST.createColorInt(128, 0, 0);
public static final Color CSS_GRAY_RGB_VALUE = ShapeFactory.INST.createColorInt(128, 128, 128);
public static final Color CSS_GREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 128, 0);
public static final Color CSS_BLACK_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 0, 0);
public static final Color CSS_WHITE_RGB_VALUE = ShapeFactory.INST.createColorInt(255,255,255);
public static final Color CSS_BLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 0, 255);
public static final Color CSS_FUCHSIA_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 0, 255);
public static final Color CSS_ALICEBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(240, 248, 255);
public static final Color CSS_ANTIQUEWHITE_RGB_VALUE = ShapeFactory.INST.createColorInt(250, 235, 215);
public static final Color CSS_AQUA_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 255, 255);
public static final Color CSS_AQUAMARINE_RGB_VALUE = ShapeFactory.INST.createColorInt(127, 255, 212);
public static final Color CSS_AZURE_RGB_VALUE = ShapeFactory.INST.createColorInt(240, 255, 255);
public static final Color CSS_BEIGE_RGB_VALUE = ShapeFactory.INST.createColorInt(245, 245, 220);
public static final Color CSS_BISQUE_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 228, 196);
public static final Color CSS_BLANCHEDALMOND_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 235, 205);
public static final Color CSS_BLUEVIOLET_RGB_VALUE = ShapeFactory.INST.createColorInt(138, 43, 226);
public static final Color CSS_BROWN_RGB_VALUE = ShapeFactory.INST.createColorInt(165, 42, 42);
public static final Color CSS_BURLYWOOD_RGB_VALUE = ShapeFactory.INST.createColorInt(222, 184, 135);
public static final Color CSS_CADETBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(95, 158, 160);
public static final Color CSS_CHARTREUSE_RGB_VALUE = ShapeFactory.INST.createColorInt(127, 255, 0);
public static final Color CSS_CHOCOLATE_RGB_VALUE = ShapeFactory.INST.createColorInt(210, 105, 30);
public static final Color CSS_CORAL_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 127, 80);
public static final Color CSS_CORNFLOWERBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(100, 149, 237);
public static final Color CSS_CORNSILK_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 248, 220);
public static final Color CSS_CRIMSON_RGB_VALUE = ShapeFactory.INST.createColorInt(220, 20, 60);
public static final Color CSS_CYAN_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 255, 255);
public static final Color CSS_DARKBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 0, 139);
public static final Color CSS_DARKCYAN_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 139, 139);
public static final Color CSS_DARKGOLDENROD_RGB_VALUE = ShapeFactory.INST.createColorInt(184, 134, 11);
public static final Color CSS_DARKGRAY_RGB_VALUE = ShapeFactory.INST.createColorInt(169, 169, 169);
public static final Color CSS_DARKGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 100, 0);
public static final Color CSS_DARKKHAKI_RGB_VALUE = ShapeFactory.INST.createColorInt(189, 183, 107);
public static final Color CSS_DARKMAGENTA_RGB_VALUE = ShapeFactory.INST.createColorInt(139, 0, 139);
public static final Color CSS_DARKOLIVEGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(85, 107, 47);
public static final Color CSS_DARKORANGE_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 140, 0);
public static final Color CSS_DARKORCHID_RGB_VALUE = ShapeFactory.INST.createColorInt(153, 50, 204);
public static final Color CSS_DARKRED_RGB_VALUE = ShapeFactory.INST.createColorInt(139, 0, 0);
public static final Color CSS_DARKSALMON_RGB_VALUE = ShapeFactory.INST.createColorInt(233, 150, 122);
public static final Color CSS_DARKSEAGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(143, 188, 143);
public static final Color CSS_DARKSLATEBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(72, 61, 139);
public static final Color CSS_DARKSLATEGRAY_RGB_VALUE = ShapeFactory.INST.createColorInt(47, 79, 79);
public static final Color CSS_DARKTURQUOISE_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 206, 209);
public static final Color CSS_DARKVIOLET_RGB_VALUE = ShapeFactory.INST.createColorInt(148, 0, 211);
public static final Color CSS_DEEPPINK_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 20, 147);
public static final Color CSS_DEEPSKYBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 191, 255);
public static final Color CSS_DIMGRAY_RGB_VALUE = ShapeFactory.INST.createColorInt(105, 105, 105);
public static final Color CSS_DODGERBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(30, 144, 255);
public static final Color CSS_FIREBRICK_RGB_VALUE = ShapeFactory.INST.createColorInt(178, 34, 34);
public static final Color CSS_FLORALWHITE_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 250, 240);
public static final Color CSS_FORESTGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(34, 139, 34);
public static final Color CSS_GAINSBORO_RGB_VALUE = ShapeFactory.INST.createColorInt(220, 200, 200);
public static final Color CSS_GHOSTWHITE_RGB_VALUE = ShapeFactory.INST.createColorInt(248, 248, 255);
public static final Color CSS_GOLD_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 215, 0);
public static final Color CSS_GOLDENROD_RGB_VALUE = ShapeFactory.INST.createColorInt(218, 165, 32);
public static final Color CSS_GREENYELLOW_RGB_VALUE = ShapeFactory.INST.createColorInt(173, 255, 47);
public static final Color CSS_HONEYDEW_RGB_VALUE = ShapeFactory.INST.createColorInt(240, 255, 240);
public static final Color CSS_HOTPINK_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 105, 180);
public static final Color CSS_INDIANRED_RGB_VALUE = ShapeFactory.INST.createColorInt(205, 92, 92);
public static final Color CSS_INDIGO_RGB_VALUE = ShapeFactory.INST.createColorInt(75, 0, 130);
public static final Color CSS_IVORY_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 255, 240);
public static final Color CSS_KHAKI_RGB_VALUE = ShapeFactory.INST.createColorInt(240, 230, 140);
public static final Color CSS_LAVENDER_RGB_VALUE = ShapeFactory.INST.createColorInt(230, 230, 250);
public static final Color CSS_LAVENDERBLUSH_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 240, 255);
public static final Color CSS_LAWNGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(124, 252, 0);
public static final Color CSS_LEMONCHIFFON_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 250, 205);
public static final Color CSS_LIGHTBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(173, 216, 230);
public static final Color CSS_LIGHTCORAL_RGB_VALUE = ShapeFactory.INST.createColorInt(240, 128, 128);
public static final Color CSS_LIGHTCYAN_RGB_VALUE = ShapeFactory.INST.createColorInt(224, 255, 255);
public static final Color CSS_LIGHTGOLDENRODYELLOW_RGB_VALUE= ShapeFactory.INST.createColorInt(250, 250, 210);
public static final Color CSS_LIGHTGRAY_RGB_VALUE = ShapeFactory.INST.createColorInt(211, 211, 211);
public static final Color CSS_LIGHTGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(144, 238, 144);
public static final Color CSS_LIGHTPINK_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 182, 193);
public static final Color CSS_LIGHTSALMON_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 160, 122);
public static final Color CSS_LIGHTSEAGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(32, 178, 170);
public static final Color CSS_LIGHTSKYBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(135, 206, 250);
public static final Color CSS_LIGHTSLATEGRAY_RGB_VALUE = ShapeFactory.INST.createColorInt(119, 136, 153);
public static final Color CSS_LIGHTSTEELBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(176, 196, 222);
public static final Color CSS_LIGHTYELLOW_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 255, 224);
public static final Color CSS_LIMEGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(50, 205, 50);
public static final Color CSS_LINEN_RGB_VALUE = ShapeFactory.INST.createColorInt(250, 240, 230);
public static final Color CSS_MAGENTA_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 0, 255);
public static final Color CSS_MEDIUMAQUAMARINE_RGB_VALUE = ShapeFactory.INST.createColorInt(102, 205, 170);
public static final Color CSS_MEDIUMBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 0, 205);
public static final Color CSS_MEDIUMORCHID_RGB_VALUE = ShapeFactory.INST.createColorInt(186, 85, 211);
public static final Color CSS_MEDIUMPURPLE_RGB_VALUE = ShapeFactory.INST.createColorInt(147, 112, 219);
public static final Color CSS_MEDIUMSEAGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(60, 179, 113);
public static final Color CSS_MEDIUMSLATEBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(123, 104, 238);
public static final Color CSS_MEDIUMSPRINGGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 250, 154);
public static final Color CSS_MEDIUMTURQUOISE_RGB_VALUE = ShapeFactory.INST.createColorInt(72, 209, 204);
public static final Color CSS_MEDIUMVIOLETRED_RGB_VALUE = ShapeFactory.INST.createColorInt(199, 21, 133);
public static final Color CSS_MIDNIGHTBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(25, 25, 112);
public static final Color CSS_MINTCREAM_RGB_VALUE = ShapeFactory.INST.createColorInt(245, 255, 250);
public static final Color CSS_MISTYROSE_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 228, 225);
public static final Color CSS_MOCCASIN_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 228, 181);
public static final Color CSS_NAVAJOWHITE_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 222, 173);
public static final Color CSS_OLDLACE_RGB_VALUE = ShapeFactory.INST.createColorInt(253, 245, 230);
public static final Color CSS_OLIVEDRAB_RGB_VALUE = ShapeFactory.INST.createColorInt(107, 142, 35);
public static final Color CSS_ORANGE_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 165, 0);
public static final Color CSS_ORANGERED_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 69, 0);
public static final Color CSS_ORCHID_RGB_VALUE = ShapeFactory.INST.createColorInt(218, 112, 214);
public static final Color CSS_PALEGOLDENROD_RGB_VALUE = ShapeFactory.INST.createColorInt(238, 232, 170);
public static final Color CSS_PALEGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(152, 251, 152);
public static final Color CSS_PALETURQUOISE_RGB_VALUE = ShapeFactory.INST.createColorInt(175, 238, 238);
public static final Color CSS_PALEVIOLETRED_RGB_VALUE = ShapeFactory.INST.createColorInt(219, 112, 147);
public static final Color CSS_PAPAYAWHIP_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 239, 213);
public static final Color CSS_PEACHPUFF_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 218, 185);
public static final Color CSS_PERU_RGB_VALUE = ShapeFactory.INST.createColorInt(205, 133, 63);
public static final Color CSS_PINK_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 192, 203);
public static final Color CSS_PLUM_RGB_VALUE = ShapeFactory.INST.createColorInt(221, 160, 221);
public static final Color CSS_POWDERBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(176, 224, 230);
public static final Color CSS_ROSYBROWN_RGB_VALUE = ShapeFactory.INST.createColorInt(188, 143, 143);
public static final Color CSS_ROYALBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(65, 105, 225);
public static final Color CSS_SADDLEBROWN_RGB_VALUE = ShapeFactory.INST.createColorInt(139, 69, 19);
public static final Color CSS_SALMON_RGB_VALUE = ShapeFactory.INST.createColorInt(250, 69, 114);
public static final Color CSS_SANDYBROWN_RGB_VALUE = ShapeFactory.INST.createColorInt(244, 164, 96);
public static final Color CSS_SEAGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(46, 139, 87);
public static final Color CSS_SEASHELL_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 245, 238);
public static final Color CSS_SIENNA_RGB_VALUE = ShapeFactory.INST.createColorInt(160, 82, 45);
public static final Color CSS_SKYBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(135, 206, 235);
public static final Color CSS_SLATEBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(106, 90, 205);
public static final Color CSS_SLATEGRAY_RGB_VALUE = ShapeFactory.INST.createColorInt(112, 128, 144);
public static final Color CSS_SNOW_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 250, 250);
public static final Color CSS_SPRINGGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(0, 255, 127);
public static final Color CSS_STEELBLUE_RGB_VALUE = ShapeFactory.INST.createColorInt(70, 130, 180);
public static final Color CSS_TAN_RGB_VALUE = ShapeFactory.INST.createColorInt(210, 180, 140);
public static final Color CSS_THISTLE_RGB_VALUE = ShapeFactory.INST.createColorInt(216, 91, 216);
public static final Color CSS_TOMATO_RGB_VALUE = ShapeFactory.INST.createColorInt(255, 99, 71);
public static final Color CSS_TURQUOISE_RGB_VALUE = ShapeFactory.INST.createColorInt(64, 224, 208);
public static final Color CSS_VIOLET_RGB_VALUE = ShapeFactory.INST.createColorInt(238, 130, 238);
public static final Color CSS_WHEAT_RGB_VALUE = ShapeFactory.INST.createColorInt(245, 222, 179);
public static final Color CSS_WHITESMOKE_RGB_VALUE = ShapeFactory.INST.createColorInt(245, 245, 245);
public static final Color CSS_YELLOWGREEN_RGB_VALUE = ShapeFactory.INST.createColorInt(154, 205, 50);
/** The singleton. */
public static final CSSColors INSTANCE = new CSSColors();
private void createColourHashTable() {
colourHashtable.clear();
colourHashtable.put(CSS_LINEN_NAME, CSS_LINEN_RGB_VALUE);
colourHashtable.put(CSS_ALICEBLUE_NAME, CSS_ALICEBLUE_RGB_VALUE);
colourHashtable.put(CSS_ANTIQUEWHITE_NAME, CSS_ANTIQUEWHITE_RGB_VALUE);
colourHashtable.put(CSS_AQUAMARINE_NAME, CSS_AQUAMARINE_RGB_VALUE);
colourHashtable.put(CSS_AQUA_NAME, CSS_AQUA_RGB_VALUE);
colourHashtable.put(CSS_AZURE_NAME, CSS_AZURE_RGB_VALUE);
colourHashtable.put(CSS_BEIGE_NAME, CSS_BEIGE_RGB_VALUE);
colourHashtable.put(CSS_BISQUE_NAME, CSS_BISQUE_RGB_VALUE);
colourHashtable.put(CSS_BLACK_NAME, CSS_BLACK_RGB_VALUE);
colourHashtable.put(CSS_BLANCHEDALMOND_NAME, CSS_BLANCHEDALMOND_RGB_VALUE);
colourHashtable.put(CSS_BLUEVIOLET_NAME, CSS_BLUEVIOLET_RGB_VALUE);
colourHashtable.put(CSS_BLUE_NAME, CSS_BLUE_RGB_VALUE);
colourHashtable.put(CSS_BROWN_NAME, CSS_BROWN_RGB_VALUE);
colourHashtable.put(CSS_BURLYWOOD_NAME, CSS_BURLYWOOD_RGB_VALUE);
colourHashtable.put(CSS_CADETBLUE_NAME, CSS_CADETBLUE_RGB_VALUE);
colourHashtable.put(CSS_CHARTREUSE_NAME, CSS_CHARTREUSE_RGB_VALUE);
colourHashtable.put(CSS_CHOCOLATE_NAME, CSS_CHOCOLATE_RGB_VALUE);
colourHashtable.put(CSS_CORAL_NAME, CSS_CORAL_RGB_VALUE);
colourHashtable.put(CSS_CORNFLOWERBLUE_NAME, CSS_CORNFLOWERBLUE_RGB_VALUE);
colourHashtable.put(CSS_CORNSILK_NAME, CSS_CORNSILK_RGB_VALUE);
colourHashtable.put(CSS_CRIMSON_NAME, CSS_CRIMSON_RGB_VALUE);
colourHashtable.put(CSS_CYAN_NAME, CSS_CYAN_RGB_VALUE);
colourHashtable.put(CSS_DARKBLUE_NAME, CSS_DARKBLUE_RGB_VALUE);
colourHashtable.put(CSS_DARKCYAN_NAME, CSS_DARKCYAN_RGB_VALUE);
colourHashtable.put(CSS_DARKGOLDENROD_NAME, CSS_DARKGOLDENROD_RGB_VALUE);
colourHashtable.put(CSS_DARKGRAY_NAME, CSS_DARKGRAY_RGB_VALUE);
colourHashtable.put(CSS_DARKGREEN_NAME, CSS_DARKGREEN_RGB_VALUE);
colourHashtable.put(CSS_DARKGREY_NAME, CSS_DARKGRAY_RGB_VALUE);
colourHashtable.put(CSS_DARKKHAKI_NAME, CSS_DARKKHAKI_RGB_VALUE);
colourHashtable.put(CSS_DARKMAGENTA_NAME, CSS_DARKMAGENTA_RGB_VALUE);
colourHashtable.put(CSS_DARKOLIVEGREEN_NAME, CSS_DARKOLIVEGREEN_RGB_VALUE);
colourHashtable.put(CSS_DARKORANGE_NAME, CSS_DARKORANGE_RGB_VALUE);
colourHashtable.put(CSS_DARKORCHID_NAME, CSS_DARKORCHID_RGB_VALUE);
colourHashtable.put(CSS_DARKRED_NAME, CSS_DARKRED_RGB_VALUE);
colourHashtable.put(CSS_DARKSALMON_NAME, CSS_DARKSALMON_RGB_VALUE);
colourHashtable.put(CSS_DARKSEAGREEN_NAME, CSS_DARKSEAGREEN_RGB_VALUE);
colourHashtable.put(CSS_DARKSLATEBLUE_NAME, CSS_DARKSLATEBLUE_RGB_VALUE);
colourHashtable.put(CSS_DARKSLATEGRAY_NAME, CSS_DARKSLATEGRAY_RGB_VALUE);
colourHashtable.put(CSS_DARKSLATEGREY_NAME, CSS_DARKSLATEGRAY_RGB_VALUE);
colourHashtable.put(CSS_DARKTURQUOISE_NAME, CSS_DARKTURQUOISE_RGB_VALUE);
colourHashtable.put(CSS_DARKVIOLET_NAME, CSS_DARKVIOLET_RGB_VALUE);
colourHashtable.put(CSS_DEEPPINK_NAME, CSS_DEEPPINK_RGB_VALUE);
colourHashtable.put(CSS_DEEPSKYBLUE_NAME, CSS_DEEPSKYBLUE_RGB_VALUE);
colourHashtable.put(CSS_DIMGRAY_NAME, CSS_DIMGRAY_RGB_VALUE);
colourHashtable.put(CSS_DIMGREY_NAME, CSS_DIMGRAY_RGB_VALUE);
colourHashtable.put(CSS_DODGERBLUE_NAME, CSS_DODGERBLUE_RGB_VALUE);
colourHashtable.put(CSS_FIREBRICK_NAME, CSS_FIREBRICK_RGB_VALUE);
colourHashtable.put(CSS_FLORALWHITE_NAME, CSS_FLORALWHITE_RGB_VALUE);
colourHashtable.put(CSS_FORESTGREEN_NAME, CSS_FORESTGREEN_RGB_VALUE);
colourHashtable.put(CSS_FUCHSIA_NAME, CSS_FUCHSIA_RGB_VALUE);
colourHashtable.put(CSS_GAINSBORO_NAME, CSS_GAINSBORO_RGB_VALUE);
colourHashtable.put(CSS_GHOSTWHITE_NAME, CSS_GHOSTWHITE_RGB_VALUE);
colourHashtable.put(CSS_GOLDENROD_NAME, CSS_GOLDENROD_RGB_VALUE);
colourHashtable.put(CSS_GOLD_NAME, CSS_GOLD_RGB_VALUE);
colourHashtable.put(CSS_GRAY_NAME, CSS_GRAY_RGB_VALUE);
colourHashtable.put(CSS_GREENYELLOW_NAME, CSS_GREENYELLOW_RGB_VALUE);
colourHashtable.put(CSS_GREEN_NAME, CSS_GREEN_RGB_VALUE);
colourHashtable.put(CSS_GREY_NAME, CSS_GRAY_RGB_VALUE);
colourHashtable.put(CSS_HONEYDEW_NAME, CSS_HONEYDEW_RGB_VALUE);
colourHashtable.put(CSS_HOTPINK_NAME, CSS_HOTPINK_RGB_VALUE);
colourHashtable.put(CSS_INDIGO_NAME, CSS_INDIGO_RGB_VALUE);
colourHashtable.put(CSS_IVORY_NAME, CSS_IVORY_RGB_VALUE);
colourHashtable.put(CSS_INDIANRED_NAME, CSS_INDIANRED_RGB_VALUE);
colourHashtable.put(CSS_KHAKI_NAME, CSS_KHAKI_RGB_VALUE);
colourHashtable.put(CSS_LAVENDERBLUSH_NAME, CSS_LAVENDERBLUSH_RGB_VALUE);
colourHashtable.put(CSS_LAVENDER_NAME, CSS_LAVENDER_RGB_VALUE);
colourHashtable.put(CSS_LAWNGREEN_NAME, CSS_LAWNGREEN_RGB_VALUE);
colourHashtable.put(CSS_LEMONCHIFFON_NAME, CSS_LEMONCHIFFON_RGB_VALUE);
colourHashtable.put(CSS_LIGHTBLUE_NAME, CSS_LIGHTBLUE_RGB_VALUE);
colourHashtable.put(CSS_LIGHTCORAL_NAME, CSS_LIGHTCORAL_RGB_VALUE);
colourHashtable.put(CSS_LIGHTCYAN_NAME, CSS_LIGHTCYAN_RGB_VALUE);
colourHashtable.put(CSS_LIGHTGOLDENRODYELLOW_NAME, CSS_LIGHTGOLDENRODYELLOW_RGB_VALUE);
colourHashtable.put(CSS_LIGHTGRAY_NAME, CSS_LIGHTGRAY_RGB_VALUE);
colourHashtable.put(CSS_LIGHTGREEN_NAME, CSS_LIGHTGREEN_RGB_VALUE);
colourHashtable.put(CSS_LIGHTGREY_NAME, CSS_LIGHTGRAY_RGB_VALUE);
colourHashtable.put(CSS_LIGHTPINK_NAME, CSS_LIGHTPINK_RGB_VALUE);
colourHashtable.put(CSS_LIGHTSALMON_NAME, CSS_LIGHTSALMON_RGB_VALUE);
colourHashtable.put(CSS_LIGHTSEAGREEN_NAME, CSS_LIGHTSEAGREEN_RGB_VALUE);
colourHashtable.put(CSS_LIGHTSKYBLUE_NAME, CSS_LIGHTSKYBLUE_RGB_VALUE);
colourHashtable.put(CSS_LIGHTSLATEGRAY_NAME, CSS_LIGHTSLATEGRAY_RGB_VALUE);
colourHashtable.put(CSS_LIGHTSLATEGREY_NAME, CSS_LIGHTSLATEGRAY_RGB_VALUE);
colourHashtable.put(CSS_LIGHTSTEELBLUE_NAME, CSS_LIGHTSTEELBLUE_RGB_VALUE);
colourHashtable.put(CSS_LIGHTYELLOW_NAME, CSS_LIGHTYELLOW_RGB_VALUE);
colourHashtable.put(CSS_LIMEGREEN_NAME, CSS_LIMEGREEN_RGB_VALUE);
colourHashtable.put(CSS_LIME_NAME, CSS_LIME_RGB_VALUE);
colourHashtable.put(CSS_MAGENTA_NAME, CSS_MAGENTA_RGB_VALUE);
colourHashtable.put(CSS_MAROON_NAME, CSS_MAROON_RGB_VALUE);
colourHashtable.put(CSS_MEDIUMAQUAMARINE_NAME, CSS_MEDIUMAQUAMARINE_RGB_VALUE);
colourHashtable.put(CSS_MEDIUMBLUE_NAME, CSS_MEDIUMBLUE_RGB_VALUE);
colourHashtable.put(CSS_MEDIUMORCHID_NAME, CSS_MEDIUMORCHID_RGB_VALUE);
colourHashtable.put(CSS_MEDIUMPURPLE_NAME, CSS_MEDIUMPURPLE_RGB_VALUE);
colourHashtable.put(CSS_MEDIUMSEAGREEN_NAME, CSS_MEDIUMSEAGREEN_RGB_VALUE);
colourHashtable.put(CSS_MEDIUMSLATEBLUE_NAME, CSS_MEDIUMSLATEBLUE_RGB_VALUE);
colourHashtable.put(CSS_MEDIUMSPRINGGREEN_NAME, CSS_MEDIUMSPRINGGREEN_RGB_VALUE);
colourHashtable.put(CSS_MEDIUMTURQUOISE_NAME, CSS_MEDIUMTURQUOISE_RGB_VALUE);
colourHashtable.put(CSS_MEDIUMVIOLETRED_NAME, CSS_MEDIUMVIOLETRED_RGB_VALUE);
colourHashtable.put(CSS_MIDNIGHTBLUE_NAME, CSS_MIDNIGHTBLUE_RGB_VALUE);
colourHashtable.put(CSS_MINTCREAM_NAME, CSS_MINTCREAM_RGB_VALUE);
colourHashtable.put(CSS_MISTYROSE_NAME, CSS_MISTYROSE_RGB_VALUE);
colourHashtable.put(CSS_MOCCASIN_NAME, CSS_MOCCASIN_RGB_VALUE);
colourHashtable.put(CSS_NAVAJOWHITE_NAME, CSS_NAVAJOWHITE_RGB_VALUE);
colourHashtable.put(CSS_NAVY_NAME, CSS_NAVY_RGB_VALUE);
colourHashtable.put(CSS_OLDLACE_NAME, CSS_OLDLACE_RGB_VALUE);
colourHashtable.put(CSS_OLIVEDRAB_NAME, CSS_OLIVEDRAB_RGB_VALUE);
colourHashtable.put(CSS_OLIVE_NAME, CSS_OLIVE_RGB_VALUE);
colourHashtable.put(CSS_ORANGERED_NAME, CSS_ORANGERED_RGB_VALUE);
colourHashtable.put(CSS_ORANGE_NAME, CSS_ORANGE_RGB_VALUE);
colourHashtable.put(CSS_ORCHID_NAME, CSS_ORCHID_RGB_VALUE);
colourHashtable.put(CSS_PALEGOLDENROD_NAME, CSS_PALEGOLDENROD_RGB_VALUE);
colourHashtable.put(CSS_PALEGREEN_NAME, CSS_PALEGREEN_RGB_VALUE);
colourHashtable.put(CSS_PALETURQUOISE_NAME, CSS_PALETURQUOISE_RGB_VALUE);
colourHashtable.put(CSS_PALEVIOLETRED_NAME, CSS_PALEVIOLETRED_RGB_VALUE);
colourHashtable.put(CSS_PAPAYAWHIP_NAME, CSS_PAPAYAWHIP_RGB_VALUE);
colourHashtable.put(CSS_PEACHPUFF_NAME, CSS_PEACHPUFF_RGB_VALUE);
colourHashtable.put(CSS_PERU_NAME, CSS_PERU_RGB_VALUE);
colourHashtable.put(CSS_PINK_NAME, CSS_PINK_RGB_VALUE);
colourHashtable.put(CSS_PLUM_NAME, CSS_PLUM_RGB_VALUE);
colourHashtable.put(CSS_POWDERBLUE_NAME, CSS_POWDERBLUE_RGB_VALUE);
colourHashtable.put(CSS_PURPLE_NAME, CSS_PURPLE_RGB_VALUE);
colourHashtable.put(CSS_RED_NAME, CSS_RED_RGB_VALUE);
colourHashtable.put(CSS_ROSYBROWN_NAME, CSS_ROSYBROWN_RGB_VALUE);
colourHashtable.put(CSS_ROYALBLUE_NAME, CSS_ROYALBLUE_RGB_VALUE);
colourHashtable.put(CSS_SADDLEBROWN_NAME, CSS_SADDLEBROWN_RGB_VALUE);
colourHashtable.put(CSS_SALMON_NAME, CSS_SALMON_RGB_VALUE);
colourHashtable.put(CSS_SANDYBROWN_NAME, CSS_SANDYBROWN_RGB_VALUE);
colourHashtable.put(CSS_SEAGREEN_NAME, CSS_SEAGREEN_RGB_VALUE);
colourHashtable.put(CSS_SEASHELL_NAME, CSS_SEASHELL_RGB_VALUE);
colourHashtable.put(CSS_SIENNA_NAME, CSS_SIENNA_RGB_VALUE);
colourHashtable.put(CSS_SILVER_NAME, CSS_SILVER_RGB_VALUE);
colourHashtable.put(CSS_SKYBLUE_NAME, CSS_SKYBLUE_RGB_VALUE);
colourHashtable.put(CSS_SLATEBLUE_NAME, CSS_SLATEBLUE_RGB_VALUE);
colourHashtable.put(CSS_SLATEGRAY_NAME, CSS_SLATEGRAY_RGB_VALUE);
colourHashtable.put(CSS_SLATEGREY_NAME, CSS_SLATEGRAY_RGB_VALUE);
colourHashtable.put(CSS_SNOW_NAME, CSS_SNOW_RGB_VALUE);
colourHashtable.put(CSS_SPRINGGREEN_NAME, CSS_SPRINGGREEN_RGB_VALUE);
colourHashtable.put(CSS_STEELBLUE_NAME, CSS_STEELBLUE_RGB_VALUE);
colourHashtable.put(CSS_TAN_NAME, CSS_TAN_RGB_VALUE);
colourHashtable.put(CSS_TEAL_NAME, CSS_TEAL_RGB_VALUE);
colourHashtable.put(CSS_THISTLE_NAME, CSS_THISTLE_RGB_VALUE);
colourHashtable.put(CSS_TOMATO_NAME, CSS_TOMATO_RGB_VALUE);
colourHashtable.put(CSS_TURQUOISE_NAME, CSS_TURQUOISE_RGB_VALUE);
colourHashtable.put(CSS_VIOLET_NAME, CSS_VIOLET_RGB_VALUE);
colourHashtable.put(CSS_WHEAT_NAME, CSS_WHEAT_RGB_VALUE);
colourHashtable.put(CSS_WHITESMOKE_NAME, CSS_WHITESMOKE_RGB_VALUE);
colourHashtable.put(CSS_WHITE_NAME, CSS_WHITE_RGB_VALUE);
colourHashtable.put(CSS_YELLOWGREEN_NAME, CSS_YELLOWGREEN_RGB_VALUE);
colourHashtable.put(CSS_YELLOW_NAME, CSS_YELLOW_RGB_VALUE);
}
private void createNameColourHashTable() {
nameColourHashtable.clear();
nameColourHashtable.put(CSS_ALICEBLUE_RGB_VALUE, CSS_ALICEBLUE_NAME);
nameColourHashtable.put(CSS_ANTIQUEWHITE_RGB_VALUE, CSS_ANTIQUEWHITE_NAME);
nameColourHashtable.put(CSS_AQUAMARINE_RGB_VALUE, CSS_AQUAMARINE_NAME);
nameColourHashtable.put(CSS_AZURE_RGB_VALUE, CSS_AZURE_NAME);
nameColourHashtable.put(CSS_BEIGE_RGB_VALUE, CSS_BEIGE_NAME);
nameColourHashtable.put(CSS_BISQUE_RGB_VALUE, CSS_BISQUE_NAME);
nameColourHashtable.put(CSS_BLACK_RGB_VALUE, CSS_BLACK_NAME);
nameColourHashtable.put(CSS_BLANCHEDALMOND_RGB_VALUE, CSS_BLANCHEDALMOND_NAME);
nameColourHashtable.put(CSS_BLUEVIOLET_RGB_VALUE, CSS_BLUEVIOLET_NAME);
nameColourHashtable.put(CSS_BLUE_RGB_VALUE, CSS_BLUE_NAME);
nameColourHashtable.put(CSS_BROWN_RGB_VALUE, CSS_BROWN_NAME);
nameColourHashtable.put(CSS_BURLYWOOD_RGB_VALUE, CSS_BURLYWOOD_NAME);
nameColourHashtable.put(CSS_CADETBLUE_RGB_VALUE, CSS_CADETBLUE_NAME);
nameColourHashtable.put(CSS_CHARTREUSE_RGB_VALUE, CSS_CHARTREUSE_NAME);
nameColourHashtable.put(CSS_CHOCOLATE_RGB_VALUE, CSS_CHOCOLATE_NAME);
nameColourHashtable.put(CSS_CORAL_RGB_VALUE, CSS_CORAL_NAME);
nameColourHashtable.put(CSS_CORNFLOWERBLUE_RGB_VALUE, CSS_CORNFLOWERBLUE_NAME);
nameColourHashtable.put(CSS_CORNSILK_RGB_VALUE, CSS_CORNSILK_NAME);
nameColourHashtable.put(CSS_CRIMSON_RGB_VALUE, CSS_CRIMSON_NAME);
nameColourHashtable.put(CSS_CYAN_RGB_VALUE, CSS_CYAN_NAME);
nameColourHashtable.put(CSS_DARKBLUE_RGB_VALUE, CSS_DARKBLUE_NAME);
nameColourHashtable.put(CSS_DARKCYAN_RGB_VALUE, CSS_DARKCYAN_NAME);
nameColourHashtable.put(CSS_DARKGOLDENROD_RGB_VALUE, CSS_DARKGOLDENROD_NAME);
nameColourHashtable.put(CSS_DARKGRAY_RGB_VALUE, CSS_DARKGRAY_NAME);
nameColourHashtable.put(CSS_DARKGREEN_RGB_VALUE, CSS_DARKGREEN_NAME);
nameColourHashtable.put(CSS_DARKKHAKI_RGB_VALUE, CSS_DARKKHAKI_NAME);
nameColourHashtable.put(CSS_DARKMAGENTA_RGB_VALUE, CSS_DARKMAGENTA_NAME);
nameColourHashtable.put(CSS_DARKOLIVEGREEN_RGB_VALUE, CSS_DARKOLIVEGREEN_NAME);
nameColourHashtable.put(CSS_DARKORANGE_RGB_VALUE, CSS_DARKORANGE_NAME);
nameColourHashtable.put(CSS_DARKORCHID_RGB_VALUE, CSS_DARKORCHID_NAME);
nameColourHashtable.put(CSS_DARKRED_RGB_VALUE, CSS_DARKRED_NAME);
nameColourHashtable.put(CSS_DARKSALMON_RGB_VALUE, CSS_DARKSALMON_NAME);
nameColourHashtable.put(CSS_DARKSEAGREEN_RGB_VALUE, CSS_DARKSEAGREEN_NAME);
nameColourHashtable.put(CSS_DARKSLATEBLUE_RGB_VALUE, CSS_DARKSLATEBLUE_NAME);
nameColourHashtable.put(CSS_DARKSLATEGRAY_RGB_VALUE, CSS_DARKSLATEGRAY_NAME);
nameColourHashtable.put(CSS_DARKTURQUOISE_RGB_VALUE, CSS_DARKTURQUOISE_NAME);
nameColourHashtable.put(CSS_DARKVIOLET_RGB_VALUE, CSS_DARKVIOLET_NAME);
nameColourHashtable.put(CSS_DEEPPINK_RGB_VALUE, CSS_DEEPPINK_NAME);
nameColourHashtable.put(CSS_DEEPSKYBLUE_RGB_VALUE, CSS_DEEPSKYBLUE_NAME);
nameColourHashtable.put(CSS_DIMGRAY_RGB_VALUE, CSS_DIMGRAY_NAME);
nameColourHashtable.put(CSS_DODGERBLUE_RGB_VALUE, CSS_DODGERBLUE_NAME);
nameColourHashtable.put(CSS_FIREBRICK_RGB_VALUE, CSS_FIREBRICK_NAME);
nameColourHashtable.put(CSS_FLORALWHITE_RGB_VALUE, CSS_FLORALWHITE_NAME);
nameColourHashtable.put(CSS_FORESTGREEN_RGB_VALUE, CSS_FORESTGREEN_NAME);
nameColourHashtable.put(CSS_GAINSBORO_RGB_VALUE, CSS_GAINSBORO_NAME);
nameColourHashtable.put(CSS_GHOSTWHITE_RGB_VALUE, CSS_GHOSTWHITE_NAME);
nameColourHashtable.put(CSS_GOLDENROD_RGB_VALUE, CSS_GOLDENROD_NAME);
nameColourHashtable.put(CSS_GOLD_RGB_VALUE, CSS_GOLD_NAME);
nameColourHashtable.put(CSS_GRAY_RGB_VALUE, CSS_GRAY_NAME);
nameColourHashtable.put(CSS_GREENYELLOW_RGB_VALUE, CSS_GREENYELLOW_NAME);
nameColourHashtable.put(CSS_GREEN_RGB_VALUE, CSS_GREEN_NAME);
nameColourHashtable.put(CSS_HONEYDEW_RGB_VALUE, CSS_HONEYDEW_NAME);
nameColourHashtable.put(CSS_HOTPINK_RGB_VALUE, CSS_HOTPINK_NAME);
nameColourHashtable.put(CSS_INDIGO_RGB_VALUE, CSS_INDIGO_NAME);
nameColourHashtable.put(CSS_INDIANRED_RGB_VALUE, CSS_INDIANRED_NAME);
nameColourHashtable.put(CSS_IVORY_RGB_VALUE, CSS_IVORY_NAME);
nameColourHashtable.put(CSS_KHAKI_RGB_VALUE, CSS_KHAKI_NAME);
nameColourHashtable.put(CSS_LAVENDERBLUSH_RGB_VALUE, CSS_LAVENDERBLUSH_NAME);
nameColourHashtable.put(CSS_LAVENDER_RGB_VALUE, CSS_LAVENDER_NAME);
nameColourHashtable.put(CSS_LAWNGREEN_RGB_VALUE, CSS_LAWNGREEN_NAME);
nameColourHashtable.put(CSS_LEMONCHIFFON_RGB_VALUE, CSS_LEMONCHIFFON_NAME);
nameColourHashtable.put(CSS_LIGHTBLUE_RGB_VALUE, CSS_LIGHTBLUE_NAME);
nameColourHashtable.put(CSS_LIGHTCORAL_RGB_VALUE, CSS_LIGHTCORAL_NAME);
nameColourHashtable.put(CSS_LIGHTCYAN_RGB_VALUE, CSS_LIGHTCYAN_NAME);
nameColourHashtable.put(CSS_LIGHTGOLDENRODYELLOW_RGB_VALUE, CSS_LIGHTGOLDENRODYELLOW_NAME);
nameColourHashtable.put(CSS_LIGHTGRAY_RGB_VALUE, CSS_LIGHTGRAY_NAME);
nameColourHashtable.put(CSS_LIGHTGREEN_RGB_VALUE, CSS_LIGHTGREEN_NAME);
nameColourHashtable.put(CSS_LIGHTPINK_RGB_VALUE, CSS_LIGHTPINK_NAME);
nameColourHashtable.put(CSS_LIGHTSALMON_RGB_VALUE, CSS_LIGHTSALMON_NAME);
nameColourHashtable.put(CSS_LIGHTSEAGREEN_RGB_VALUE, CSS_LIGHTSEAGREEN_NAME);
nameColourHashtable.put(CSS_LIGHTSKYBLUE_RGB_VALUE, CSS_LIGHTSKYBLUE_NAME);
nameColourHashtable.put(CSS_LIGHTSLATEGRAY_RGB_VALUE, CSS_LIGHTSLATEGRAY_NAME);
nameColourHashtable.put(CSS_LIGHTSTEELBLUE_RGB_VALUE, CSS_LIGHTSTEELBLUE_NAME);
nameColourHashtable.put(CSS_LIGHTYELLOW_RGB_VALUE, CSS_LIGHTYELLOW_NAME);
nameColourHashtable.put(CSS_LIMEGREEN_RGB_VALUE, CSS_LIMEGREEN_NAME);
nameColourHashtable.put(CSS_LIME_RGB_VALUE, CSS_LIME_NAME);
nameColourHashtable.put(CSS_MAGENTA_RGB_VALUE, CSS_MAGENTA_NAME);
nameColourHashtable.put(CSS_MAROON_RGB_VALUE, CSS_MAROON_NAME);
nameColourHashtable.put(CSS_MEDIUMAQUAMARINE_RGB_VALUE, CSS_MEDIUMAQUAMARINE_NAME);
nameColourHashtable.put(CSS_MEDIUMBLUE_RGB_VALUE, CSS_MEDIUMBLUE_NAME);
nameColourHashtable.put(CSS_MEDIUMORCHID_RGB_VALUE, CSS_MEDIUMORCHID_NAME);
nameColourHashtable.put(CSS_MEDIUMPURPLE_RGB_VALUE, CSS_MEDIUMPURPLE_NAME);
nameColourHashtable.put(CSS_MEDIUMSEAGREEN_RGB_VALUE, CSS_MEDIUMSEAGREEN_NAME);
nameColourHashtable.put(CSS_MEDIUMSLATEBLUE_RGB_VALUE, CSS_MEDIUMSLATEBLUE_NAME);
nameColourHashtable.put(CSS_MEDIUMSPRINGGREEN_RGB_VALUE, CSS_MEDIUMSPRINGGREEN_NAME);
nameColourHashtable.put(CSS_MEDIUMTURQUOISE_RGB_VALUE, CSS_MEDIUMTURQUOISE_NAME);
nameColourHashtable.put(CSS_MEDIUMVIOLETRED_RGB_VALUE, CSS_MEDIUMVIOLETRED_NAME);
nameColourHashtable.put(CSS_MIDNIGHTBLUE_RGB_VALUE, CSS_MIDNIGHTBLUE_NAME);
nameColourHashtable.put(CSS_MINTCREAM_RGB_VALUE, CSS_MINTCREAM_NAME);
nameColourHashtable.put(CSS_MISTYROSE_RGB_VALUE, CSS_MISTYROSE_NAME);
nameColourHashtable.put(CSS_MOCCASIN_RGB_VALUE, CSS_MOCCASIN_NAME);
nameColourHashtable.put(CSS_NAVAJOWHITE_RGB_VALUE, CSS_NAVAJOWHITE_NAME);
nameColourHashtable.put(CSS_NAVY_RGB_VALUE, CSS_NAVY_NAME);
nameColourHashtable.put(CSS_OLDLACE_RGB_VALUE, CSS_OLDLACE_NAME);
nameColourHashtable.put(CSS_OLIVEDRAB_RGB_VALUE, CSS_OLIVEDRAB_NAME);
nameColourHashtable.put(CSS_OLIVE_RGB_VALUE, CSS_OLIVE_NAME);
nameColourHashtable.put(CSS_ORANGERED_RGB_VALUE, CSS_ORANGERED_NAME);
nameColourHashtable.put(CSS_ORANGE_RGB_VALUE, CSS_ORANGE_NAME);
nameColourHashtable.put(CSS_ORCHID_RGB_VALUE, CSS_ORCHID_NAME);
nameColourHashtable.put(CSS_PALEGOLDENROD_RGB_VALUE, CSS_PALEGOLDENROD_NAME);
nameColourHashtable.put(CSS_PALEGREEN_RGB_VALUE, CSS_PALEGREEN_NAME);
nameColourHashtable.put(CSS_PALETURQUOISE_RGB_VALUE, CSS_PALETURQUOISE_NAME);
nameColourHashtable.put(CSS_PALEVIOLETRED_RGB_VALUE, CSS_PALEVIOLETRED_NAME);
nameColourHashtable.put(CSS_PAPAYAWHIP_RGB_VALUE, CSS_PAPAYAWHIP_NAME);
nameColourHashtable.put(CSS_PEACHPUFF_RGB_VALUE, CSS_PEACHPUFF_NAME);
nameColourHashtable.put(CSS_PERU_RGB_VALUE, CSS_PERU_NAME);
nameColourHashtable.put(CSS_PINK_RGB_VALUE, CSS_PINK_NAME);
nameColourHashtable.put(CSS_PLUM_RGB_VALUE, CSS_PLUM_NAME);
nameColourHashtable.put(CSS_POWDERBLUE_RGB_VALUE, CSS_POWDERBLUE_NAME);
nameColourHashtable.put(CSS_PURPLE_RGB_VALUE, CSS_PURPLE_NAME);
nameColourHashtable.put(CSS_RED_RGB_VALUE, CSS_RED_NAME);
nameColourHashtable.put(CSS_ROSYBROWN_RGB_VALUE, CSS_ROSYBROWN_NAME);
nameColourHashtable.put(CSS_ROYALBLUE_RGB_VALUE, CSS_ROYALBLUE_NAME);
nameColourHashtable.put(CSS_SADDLEBROWN_RGB_VALUE, CSS_SADDLEBROWN_NAME);
nameColourHashtable.put(CSS_SALMON_RGB_VALUE, CSS_SALMON_NAME);
nameColourHashtable.put(CSS_SANDYBROWN_RGB_VALUE, CSS_SANDYBROWN_NAME);
nameColourHashtable.put(CSS_SEAGREEN_RGB_VALUE, CSS_SEAGREEN_NAME);
nameColourHashtable.put(CSS_SEASHELL_RGB_VALUE, CSS_SEASHELL_NAME);
nameColourHashtable.put(CSS_SIENNA_RGB_VALUE, CSS_SIENNA_NAME);
nameColourHashtable.put(CSS_SILVER_RGB_VALUE, CSS_SILVER_NAME);
nameColourHashtable.put(CSS_SKYBLUE_RGB_VALUE, CSS_SKYBLUE_NAME);
nameColourHashtable.put(CSS_SLATEBLUE_RGB_VALUE, CSS_SLATEBLUE_NAME);
nameColourHashtable.put(CSS_SLATEGRAY_RGB_VALUE, CSS_SLATEGRAY_NAME);
nameColourHashtable.put(CSS_SNOW_RGB_VALUE, CSS_SNOW_NAME);
nameColourHashtable.put(CSS_SPRINGGREEN_RGB_VALUE, CSS_SPRINGGREEN_NAME);
nameColourHashtable.put(CSS_STEELBLUE_RGB_VALUE, CSS_STEELBLUE_NAME);
nameColourHashtable.put(CSS_TAN_RGB_VALUE, CSS_TAN_NAME);
nameColourHashtable.put(CSS_TEAL_RGB_VALUE, CSS_TEAL_NAME);
nameColourHashtable.put(CSS_THISTLE_RGB_VALUE, CSS_THISTLE_NAME);
nameColourHashtable.put(CSS_TOMATO_RGB_VALUE, CSS_TOMATO_NAME);
nameColourHashtable.put(CSS_TURQUOISE_RGB_VALUE, CSS_TURQUOISE_NAME);
nameColourHashtable.put(CSS_VIOLET_RGB_VALUE, CSS_VIOLET_NAME);
nameColourHashtable.put(CSS_WHEAT_RGB_VALUE, CSS_WHEAT_NAME);
nameColourHashtable.put(CSS_WHITESMOKE_RGB_VALUE, CSS_WHITESMOKE_NAME);
nameColourHashtable.put(CSS_WHITE_RGB_VALUE, CSS_WHITE_NAME);
nameColourHashtable.put(CSS_YELLOWGREEN_RGB_VALUE, CSS_YELLOWGREEN_NAME);
nameColourHashtable.put(CSS_YELLOW_RGB_VALUE, CSS_YELLOW_NAME);
}
private CSSColors() {
super();
colourHashtable = new HashMap<>();
nameColourHashtable = new HashMap<>();
userColours = new HashMap<>();
createColourHashTable();
createNameColourHashTable();
}
/**
* @param name The name of the wanted colour or null if the colour is not found.
* @return The colour.
*/
public Color getColor(final String name) {
if(name==null || name.isEmpty()) return null;
return colourHashtable.getOrDefault(name, userColours.get(name));
}
/**
* Adds a colour defined by the user.
* @param col The colour to add.
* @param name The name of this colour.
*/
public void addUserColor(final Color col, final String name) {
if(name==null || col==null || name.isEmpty())
return ;
userColours.put(name, col);
}
/**
* @param col The colour of the colour with the given name.
* @param create If true and if the colour is not found, then the colour will be created, added to the user's colours and returned.
* The created name will be then its hexadecimal value.
* @return The name of the colour or null.
*/
public String getColorName(final Color col, final boolean create) {
if(col==null)
return null;
final String name = nameColourHashtable.get(col);
if(name!=null)
return name;
Optional<Entry<String, Color>> opt = userColours.entrySet().stream().filter(v -> v.getValue().equals(col)).findFirst();
if(opt.isPresent())
return opt.get().getKey();
if(create) {
addUserColor(col, rgbToHex(col));
return getColorName(col, false);
}
return null;
}
/**
* Converts an hexadecimal colour to an RBG one.
* @param hex The colour in hexadecimal.
* @return The corresponding colour or null if there is a problem.
* @since 2.0.0
*/
public Color hexToRBG(final String hex) {
if(hex==null || !hex.startsWith("#")) //$NON-NLS-1$
return null;
try {
final String col = hex.substring(1);
String r;
String g;
String b;
switch(col.length()) {
case 6:// #112233 for instance.
r = col.substring(0, 2);
g = col.substring(2, 4);
b = col.substring(4, 6);
break;
case 3: // #123 for instance.
r = String.valueOf(col.charAt(0));
g = String.valueOf(col.charAt(1));
b = String.valueOf(col.charAt(2));
r+=r;
g+=g;
b+=b;
break;
default:
throw new IllegalArgumentException();
}
return ShapeFactory.INST.createColorInt(Integer.parseInt(r, 16), Integer.parseInt(g, 16), Integer.parseInt(b, 16));
}
catch(final Exception e) { BadaboomCollector.INSTANCE.add(e); }
return null;
}
/**
* Creates the corresponding hexadecimal colour given a RGB one.
* @param c The given RBG colour.
* @return The corresponding hexadecimal colour.
* @since 2.0.0
*/
public String rgbToHex(final Color c) {
if(c==null)
return ""; //$NON-NLS-1$
String r = Integer.toHexString((int) (255.0*c.getR()));
String g = Integer.toHexString((int) (255.0*c.getG()));
String b = Integer.toHexString((int) (255.0*c.getB()));
if(r.length()==1)
r = '0' + r;
if(g.length()==1)
g = '0' + g;
if(b.length()==1)
b = '0' + b;
return '#' + r + g + b;
}
/**
* Allows to get a RGB colour from a string which can be either an hexadecimal colour (CSS) or an explicit colour name (blue,...)
* or an RGB colour in this format: rgb(r,g,b).
* If <code>str</code> is null, null is returned.
* @param str The colour to read.
* @return The found colour or null.
* @since 2.0.0
*/
public Color getRGBColour(final String str) {
Color c = null;
if(str!=null)
if(str.startsWith("#"))//$NON-NLS-1$
c = hexToRBG(str);
else
if(str.startsWith("rgb("))//$NON-NLS-1$
c = svgRgbtoRgb(str);
else
c = getColor(str);
return c;
}
/**
* Converts an SVG RGB colour: "rgb(int,int,int)" or "rgb(pc,pc,pc)" in an AWT colour.
* @param str The string to parse.
* @return The extracted colour or null.
* @since 2.0.0
*/
public Color svgRgbtoRgb(final String str) {
if(str==null || !str.startsWith("rgb(") || !str.endsWith(")"))//$NON-NLS-1$//$NON-NLS-2$
return null;
Color c = null;
final String s = str.substring(4, str.length()-1);
final String[] rgbs = s.split(",");//$NON-NLS-1$
try {
if(rgbs.length==3){
rgbs[0] = rgbs[0].replaceAll("[\t ]", "");//$NON-NLS-1$//$NON-NLS-2$
rgbs[1] = rgbs[1].replaceAll("[\t ]", "");//$NON-NLS-1$//$NON-NLS-2$
rgbs[2] = rgbs[2].replaceAll("[\t ]", "");//$NON-NLS-1$//$NON-NLS-2$
if(rgbs[0].contains("%")) {//$NON-NLS-1$
if(rgbs[0].endsWith("%") && rgbs[1].endsWith("%") && rgbs[2].endsWith("%"))//$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
c = ShapeFactory.INST.createColor(Double.parseDouble(rgbs[0].substring(0, rgbs[0].length()-1))/100.,
Double.parseDouble(rgbs[1].substring(0, rgbs[1].length()-1))/100.,
Double.parseDouble(rgbs[2].substring(0, rgbs[2].length()-1))/100.);
}
else
c = ShapeFactory.INST.createColorInt(Integer.parseInt(rgbs[0]), Integer.parseInt(rgbs[1]), Integer.parseInt(rgbs[2]));
}
}
catch(final IllegalArgumentException e) { return null; }
return c;
}
}