import java.awt.color.ColorSpace;
public final class Color
extends java.awt.Color
{
/**
* serial version uid
*/
private static final long serialVersionUID = 6674118578427330427L;
/*
* 16 predefined colors. Theese colors are considered to be html
* standard colors. Therefore some colors own the same names as
* in "java.awt.Color", but doesn't have the same values.
*/
@SuppressWarnings("hiding")
public static final Color black = new Color(0, 0, 0);
public static final Color maroon = new Color(128, 0, 0);
@SuppressWarnings("hiding")
public static final Color green = new Color(0, 128, 0);
public static final Color olive = new Color(128, 128, 0);
public static final Color navy = new Color(0, 0, 128);
public static final Color purple = new Color(128, 0, 128);
public static final Color teal = new Color(0, 128, 128);
public static final Color silver = new Color(192, 192, 192);
@SuppressWarnings("hiding")
public static final Color gray = new Color(128, 128, 128);
@SuppressWarnings("hiding")
public static final Color red = new Color(255, 0, 0);
public static final Color lime = new Color(0, 255, 0);
@SuppressWarnings("hiding")
public static final Color yellow = new Color(255, 255, 0);
@SuppressWarnings("hiding")
public static final Color blue = new Color(0, 0, 255);
public static final Color fuchsia = new Color(255, 0, 255);
public static final Color aqua = new Color(0, 255, 255);
@SuppressWarnings("hiding")
public static final Color white = new Color(255, 255, 255);
@SuppressWarnings("hiding")
public static final Color BLACK = black;
public static final Color MAROON = maroon;
@SuppressWarnings("hiding")
public static final Color GREEN = green;
public static final Color OLIVE = olive;
public static final Color NAVY = navy;
public static final Color PURPLE = purple;
public static final Color TEAL = teal;
public static final Color SILVER = silver;
@SuppressWarnings("hiding")
public static final Color GRAY = gray;
@SuppressWarnings("hiding")
public static final Color RED = red;
public static final Color LIME = lime;
@SuppressWarnings("hiding")
public static final Color YELLOW = yellow;
@SuppressWarnings("hiding")
public static final Color BLUE = blue;
public static final Color FUCHSIA = fuchsia;
public static final Color AQUA = aqua;
@SuppressWarnings("hiding")
public static final Color WHITE = white;
/**
* Parses html color strings like "#9afde4", "marron" aso.
* @param value
* @return instance of color
*/
public static Color parseColor(String value)
{
Color rc = null;
value = value.trim();
int rgb;
if(value.startsWith("#")) {
rgb = Integer.parseInt(value.substring(1, 7), 16);
rc = new Color(rgb, false);
} else if(value.startsWith("rgb")) {
value.substring(4,value.length() - 1);
String tmp[] = value.split(",");
rgb = 0;
for(int i = 0; i < tmp.length; i++) {
rgb <<= 8;
rgb |= (tmp[i].indexOf("%") <= 0)?
(int) (Float.parseFloat(tmp[i].substring(0, tmp[i].length() - 1).trim()) * 2.55f)
: Integer.parseInt(tmp[i].trim());
}
rc = new Color(rgb, false);
} else {
if(value.equalsIgnoreCase("black")) rc = black;
if(value.equalsIgnoreCase("maroon")) rc = maroon;
if(value.equalsIgnoreCase("green")) rc = green;
if(value.equalsIgnoreCase("olive")) rc = olive;
if(value.equalsIgnoreCase("navy")) rc = navy;
if(value.equalsIgnoreCase("purple")) rc = purple;
if(value.equalsIgnoreCase("teal")) rc = teal;
if(value.equalsIgnoreCase("silver")) rc = silver;
if(value.equalsIgnoreCase("gray")) rc = gray;
if(value.equalsIgnoreCase("red")) rc = red;
if(value.equalsIgnoreCase("lime")) rc = lime;
if(value.equalsIgnoreCase("yellow")) rc = yellow;
if(value.equalsIgnoreCase("blue")) rc = blue;
if(value.equalsIgnoreCase("fuchsia")) rc = fuchsia;
if(value.equalsIgnoreCase("aqua")) rc = aqua;
if(value.equalsIgnoreCase("white")) rc = white;
}
if(rc == null) {
throw new IllegalArgumentException("unkown color description \"" + value + "\"");
}
return rc;
}
public Color(ColorSpace cspace, float[] components, float alpha)
{
super(cspace, components, alpha);
}
public Color(float r, float g, float b, float a)
{
super(r, g, b, a);
}
public Color(float r, float g, float b)
{
super(r, g, b);
}
public Color(int rgba, boolean hasalpha)
{
super(rgba, hasalpha);
}
public Color(int r, int g, int b, int a)
{
super(r, g, b, a);
}
public Color(int r, int g, int b)
{
super(r, g, b);
}
public Color(int rgb)
{
super(rgb);
}
}