Java tutorial
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ // Revised from jaspersoft ireport designer import java.awt.Color; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * * @author gtoffoli */ public class ColorSchemaGenerator { public final static String SCHEMA_DEFAULT = "default"; public final static String SCHEMA_PASTEL = "pastel"; public final static String SCHEMA_SOFT = "soft"; public final static String SCHEMA_HARD = "hard"; public final static String SCHEMA_LIGHT = "light"; public final static String SCHEMA_PALE = "pale"; private static float[] schema_default = new float[] { -1f, -1f, 1f, -0.7f, 0.25f, 1f, 0.5f, 1f }; private static float[] schema_pastel = new float[] { 0.5f, -0.9f, 0.5f, 0.5f, 0.1f, 0.9f, 0.75f, 0.75f }; private static float[] schema_soft = new float[] { 0.3f, -0.8f, 0.3f, 0.5f, 0.1f, 0.9f, 0.5f, 0.75f }; private static float[] schema_hard = new float[] { 1f, -1f, 1f, -0.6f, 0.1f, 1f, 0.6f, 1f }; private static float[] schema_light = new float[] { 0.25f, 1f, 0.5f, 0.75f, 0.1f, 1f, 0.5f, 1f }; private static float[] schema_pale = new float[] { 0.1f, -0.85f, 0.1f, 0.5f, 0.1f, 1f, 0.1f, 0.75f }; private static java.util.Map<String, float[]> schemas = new HashMap<String, float[]>(); static { schemas.put(SCHEMA_DEFAULT, schema_default); schemas.put(SCHEMA_PASTEL, schema_pastel); schemas.put(SCHEMA_SOFT, schema_soft); schemas.put(SCHEMA_HARD, schema_hard); schemas.put(SCHEMA_LIGHT, schema_light); schemas.put(SCHEMA_PALE, schema_pale); } /** * Create the schema color. * * @param base * @param i (a color between 0 and 3) * @param schemaName * @return */ public static Color createColor(Color base, int i, String schemaName) { i = Math.abs(i %= 3); if (schemaName == null) schemaName = SCHEMA_SOFT; float[] schema = schemas.get(schemaName); float[] components = Color.RGBtoHSB(base.getRed(), base.getGreen(), base.getBlue(), null); components[1] = (schema[i * 2] < 0) ? -schema[i * 2] * components[1] : schema[i * 2]; if (components[1] > 1) components[1] = 1.0f; if (components[1] < 0) components[1] = 0; components[2] = (schema[i * 2 + 1] < 0) ? -schema[i * 2 + 1] * components[2] : schema[i * 2 + 1]; if (components[2] > 1) components[2] = 1.0f; if (components[2] < 0) components[2] = 0; return new Color(Color.HSBtoRGB(components[0], components[1], components[2])); } public static List<String> getColors() { if (colorsList == null) { colorsList = new ArrayList<String>(); colorsMap = new HashMap<String, String>(); for (int i = 0; i < colors.length / 2; ++i) { colorsList.add(colors[i * 2]); colorsMap.put(colors[i * 2], colors[(i * 2) + 1]); } } return colorsList; } public static Color getColor(String name) { if (colorsMap == null) { getColors(); } String rgb = colorsMap.get(name); return decodeColor("#" + rgb); } public static java.awt.Color decodeColor(String colorString) { java.awt.Color color = null; char firstChar = colorString.charAt(0); if (firstChar == '#') { color = new java.awt.Color(Integer.parseInt(colorString.substring(1), 16)); } else if ('0' <= firstChar && firstChar <= '9') { color = new java.awt.Color(Integer.parseInt(colorString)); } else { color = java.awt.Color.black; } return color; } static private List<String> colorsList = null; static private HashMap<String, String> colorsMap = null; static private String[] colors = new String[] { "Aliceblue", "F0F8FF", "Antiquewhite", "FAEBD7", "Aqua", "00FFFF", "Aquamarine", "7FFFD4", "Azure", "F0FFFF", "Beige", "F5F5DC", "Bisque", "FFE4C4", "Black", "000000", "Blanchedalmond", "FFEBCD", "Blue", "0000FF", "Blueviolet", "8A2BE2", "Brown", "A52A2A", "Burlywood", "DEB887", "Cadetblue", "5F9EA0", "Chartreuse", "7FFF00", "Chocolate", "D2691E", "Coral", "FF7F50", "Cornflowerblue", "6495ED", "Cornsilk", "FFF8DC", "Crimson", "DC143C", "Cyan", "00FFFF", "Darkblue", "00008B", "Darkcyan", "008B8B", "Darkgoldenrod", "B8860B", "Darkgray", "A9A9A9", "Darkgreen", "006400", "Darkkhaki", "BDB76B", "Darkmagenta", "8B008B", "Darkolivegreen", "556B2F", "Darkorange", "FF8C00", "Darkorchid", "9932CC", "Darkred", "8B0000", "Darksalmon", "E9967A", "Darkseagreen", "8FBC8F", "Darkslateblue", "483D8B", "Darkturqoise", "00CED1", "Darkslategray", "2F4F4F", "Darkviolet", "9400D3", "Deeppink", "FF1493", "Deepskyblue", "00BFFF", "Dimgray", "696969", "Dodgerblue", "1E90FF", "Firebrick", "B22222", "Floralwhite", "FFFAF0", "Forestgreen", "228B22", "Fuchsia", "FF00FF", "Gainsboro", "DCDCDC", "Ghostwhite", "F8F8FF", "Gold", "FFD700", "Goldenrod", "DAA520", "Gray", "808080", "Green", "008000", "Greenyellow", "ADFF2F", "Honeydew", "F0FFF0", "Hotpink", "FF69B4", "Indianred", "CD5C5C", "Indigo", "4B0082", "Ivory", "FFFFF0", "Khaki", "F0E68C", "Lavender", "E6E6FA", "Lavenderblush", "FFF0F5", "Lawngreen", "7CFC00", "Lemonchiffon", "FFFACD", "Lightblue", "ADD8E6", "Lightcoral", "F08080", "Lightcyan", "E0FFFF", "Lightgoldenrodyellow", "FAFAD2", "Lightgreen", "90EE90", "Lightgrey", "D3D3D3", "Lightpink", "FFB6C1", "Lightsalmon", "FFA07A", "Lightseagreen", "20B2AA", "Lightskyblue", "87CEFA", "Lightslategray", "778899", "Lisghtsteelblue", "B0C4DE", "Lightyellow", "FFFFE0", "Lime", "00FF00", "Limegreen", "32CD32", "Linen", "FAF0E6", "Magenta", "FF00FF", "Maroon", "800000", "Mediumaquamarine", "66CDAA", "Mediumblue", "0000CD", "Mediumorchid", "BA55D3", "Mediumpurple", "9370DB", "Mediumseagreen", "3CB371", "Mediumslateblue", "7B68EE", "Mediumspringgreen", "00FA9A", "Mediumturquoise", "48D1CC", "Mediumvioletred", "C71585", "Midnightblue", "191970", "Mintcream", "F5FFFA", "Mistyrose", "FFE4E1", "Moccasin", "FFE4B5", "Navajowhite", "FFDEAD", "Navy", "000080", "Navyblue", "9FAFDF", "Oldlace", "FDF5E6", "Olive", "808000", "Olivedrab", "6B8E23", "Orange", "FFA500", "Orangered", "FF4500", "Orchid", "DA70D6", "Palegoldenrod", "EEE8AA", "Palegreen", "98FB98", "Paleturquoise", "AFEEEE", "Palevioletred", "DB7093", "Papayawhip", "FFEFD5", "Peachpuff", "FFDAB9", "Peru", "CD853F", "Pink", "FFC0CB", "Plum", "DDA0DD", "Powderblue", "B0E0E6", "Purple", "800080", "Red", "FF0000", "Rosybrown", "BC8F8F", "Royalblue", "4169E1", "Saddlebrown", "8B4513", "Salmon", "FA8072", "Sandybrown", "F4A460", "Seagreen", "2E8B57", "Seashell", "FFF5EE", "Sienna", "A0522D", "Silver", "C0C0C0", "Skyblue", "87CEEB", "Slateblue", "6A5ACD", "Snow", "FFFAFA", "Springgreen", "00FF7F", "Steelblue", "4682B4", "Tan", "D2B48C", "Teal", "008080", "Thistle", "D8BFD8", "Tomato", "FF6347", "Turquoise", "40E0D0", "Violet", "EE82EE", "Wheat", "F5DEB3", "White", "FFFFFF", "Whitesmoke", "F5F5F5", "Yellow", "FFFF00", "Yellowgreen", "9ACD32" }; }