X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=unused%2Fjavajs%2Futil%2FCU.java;fp=unused%2Fjavajs%2Futil%2FCU.java;h=0000000000000000000000000000000000000000;hb=4f77328104498504339216829abf5ea87e2791ec;hp=e46287eff4249ee24547230062cf04253571888d;hpb=2b8c0785318a3528e1876e8e2dd48b7d831eae69;p=jalview.git diff --git a/unused/javajs/util/CU.java b/unused/javajs/util/CU.java deleted file mode 100644 index e46287e..0000000 --- a/unused/javajs/util/CU.java +++ /dev/null @@ -1,555 +0,0 @@ -package javajs.util; - -import java.util.Hashtable; -import java.util.Map; - -import javajs.api.GenericColor; - -/** - * ColorUtility - * - */ - -public class CU { - - public static String toRGBHexString(GenericColor c) { - int rgb = c.getRGB(); - if (rgb == 0) - return "000000"; - String r = "00" + Integer.toHexString((rgb >> 16) & 0xFF); - r = r.substring(r.length() - 2); - String g = "00" + Integer.toHexString((rgb >> 8) & 0xFF); - g = g.substring(g.length() - 2); - String b = "00" + Integer.toHexString(rgb & 0xFF); - b = b.substring(b.length() - 2); - return r + g + b; - } - - public static String toCSSString(GenericColor c) { - int opacity = c.getOpacity255(); - if (opacity == 255) - return "#" + toRGBHexString(c); - int rgb = c.getRGB(); - return "rgba(" + ((rgb>>16)&0xFF) + "," + ((rgb>>8)&0xff) + "," + (rgb&0xff) + "," + opacity/255f + ")"; - } - - private final static String[] colorNames = { - "black", // 000000 - "pewhite", // ffffff - "pecyan", // 00ffff - "pepurple", // d020ff - "pegreen", // 00ff00 - "peblue", // 6060ff - "peviolet", // ff80c0 - "pebrown", // a42028 - "pepink", // ffd8d8 - "peyellow", // ffff00 - "pedarkgreen", // 00c000 - "peorange", // ffb000 - "pelightblue", // b0b0ff - "pedarkcyan", // 00a0a0 - "pedarkgray", // 606060 - - "aliceblue", // F0F8FF - "antiquewhite", // FAEBD7 - "aqua", // 00FFFF - "aquamarine", // 7FFFD4 - "azure", // F0FFFF - "beige", // F5F5DC - "bisque", // FFE4C4 - "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 - "darkslategray", // 2F4F4F - "darkturquoise", // 00CED1 - "darkviolet", // 9400D3 - "deeppink", // FF1493 - "deepskyblue", // 00BFFF - "dimgray", // 696969 - "dodgerblue", // 1E90FF - "firebrick", // B22222 - "floralwhite", // FFFAF0 16775920 - "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 - "lightgray", // D3D3D3 - "lightpink", // FFB6C1 - "lightsalmon", // FFA07A - "lightseagreen", // 20B2AA - "lightskyblue", // 87CEFA - "lightslategray", // 778899 - "lightsteelblue", // 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 - "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 - "slategray", // 708090 - "snow", // FFFAFA 16775930 - "springgreen", // 00FF7F - "steelblue", // 4682B4 - "tan", // D2B48C - "teal", // 008080 - "thistle", // D8BFD8 - "tomato", // FF6347 - "turquoise", // 40E0D0 - "violet", // EE82EE - "wheat", // F5DEB3 - "white", // FFFFFF 16777215 - "whitesmoke", // F5F5F5 - "yellow", // FFFF00 - "yellowgreen", // 9ACD32 - // plus a few rasmol names/values - "bluetint", // AFD7FF - "greenblue", // 2E8B57 - "greentint", // 98FFB3 - "grey", // 808080 - "gray", - "pinktint", // FFABBB - "redorange", // FF4500 - "yellowtint", // F6F675 - }; - - private final static int[] colorArgbs = { - //#FFFFC3 hover - 0xFF000000, // black - // plus the PE chain colors - 0xFFffffff, // pewhite - 0xFF00ffff, // pecyan - 0xFFd020ff, // pepurple - 0xFF00ff00, // pegreen - 0xFF6060ff, // peblue - 0xFFff80c0, // peviolet - 0xFFa42028, // pebrown - 0xFFffd8d8, // pepink - 0xFFffff00, // peyellow - 0xFF00c000, // pedarkgreen - 0xFFffb000, // peorange - 0xFFb0b0ff, // pelightblue - 0xFF00a0a0, // pedarkcyan - 0xFF606060, // pedarkgray - // standard JavaScript - 0xFFF0F8FF, // aliceblue - 0xFFFAEBD7, // antiquewhite - 0xFF00FFFF, // aqua - 0xFF7FFFD4, // aquamarine - 0xFFF0FFFF, // azure - 0xFFF5F5DC, // beige - 0xFFFFE4C4, // bisque - 0xFFFFEBCD, // blanchedalmond - 0xFF0000FF, // blue - 0xFF8A2BE2, // blueviolet - 0xFFA52A2A, // brown - 0xFFDEB887, // burlywood - 0xFF5F9EA0, // cadetblue - 0xFF7FFF00, // chartreuse - 0xFFD2691E, // chocolate - 0xFFFF7F50, // coral - 0xFF6495ED, // cornflowerblue - 0xFFFFF8DC, // cornsilk - 0xFFDC143C, // crimson - 0xFF00FFFF, // cyan - 0xFF00008B, // darkblue - 0xFF008B8B, // darkcyan - 0xFFB8860B, // darkgoldenrod - 0xFFA9A9A9, // darkgray - 0xFF006400, // darkgreen - - 0xFFBDB76B, // darkkhaki - 0xFF8B008B, // darkmagenta - 0xFF556B2F, // darkolivegreen - 0xFFFF8C00, // darkorange - 0xFF9932CC, // darkorchid - 0xFF8B0000, // darkred - 0xFFE9967A, // darksalmon - 0xFF8FBC8F, // darkseagreen - 0xFF483D8B, // darkslateblue - 0xFF2F4F4F, // darkslategray - 0xFF00CED1, // darkturquoise - 0xFF9400D3, // darkviolet - 0xFFFF1493, // deeppink - 0xFF00BFFF, // deepskyblue - 0xFF696969, // dimgray - 0xFF1E90FF, // dodgerblue - 0xFFB22222, // firebrick - 0xFFFFFAF0, // floralwhite - 0xFF228B22, // forestgreen - 0xFFFF00FF, // fuchsia - 0xFFDCDCDC, // gainsboro - 0xFFF8F8FF, // ghostwhite - 0xFFFFD700, // gold - 0xFFDAA520, // goldenrod - 0xFF808080, // gray - 0xFF008000, // green - 0xFFADFF2F, // greenyellow - 0xFFF0FFF0, // honeydew - 0xFFFF69B4, // hotpink - 0xFFCD5C5C, // indianred - 0xFF4B0082, // indigo - 0xFFFFFFF0, // ivory - 0xFFF0E68C, // khaki - 0xFFE6E6FA, // lavender - 0xFFFFF0F5, // lavenderblush - 0xFF7CFC00, // lawngreen - 0xFFFFFACD, // lemonchiffon - 0xFFADD8E6, // lightblue - 0xFFF08080, // lightcoral - 0xFFE0FFFF, // lightcyan - 0xFFFAFAD2, // lightgoldenrodyellow - 0xFF90EE90, // lightgreen - 0xFFD3D3D3, // lightgrey - 0xFFD3D3D3, // lightgray - 0xFFFFB6C1, // lightpink - 0xFFFFA07A, // lightsalmon - 0xFF20B2AA, // lightseagreen - 0xFF87CEFA, // lightskyblue - 0xFF778899, // lightslategray - 0xFFB0C4DE, // lightsteelblue - 0xFFFFFFE0, // lightyellow - 0xFF00FF00, // lime - 0xFF32CD32, // limegreen - 0xFFFAF0E6, // linen - 0xFFFF00FF, // magenta - 0xFF800000, // maroon - 0xFF66CDAA, // mediumaquamarine - 0xFF0000CD, // mediumblue - 0xFFBA55D3, // mediumorchid - 0xFF9370DB, // mediumpurple - 0xFF3CB371, // mediumseagreen - 0xFF7B68EE, // mediumslateblue - 0xFF00FA9A, // mediumspringgreen - 0xFF48D1CC, // mediumturquoise - 0xFFC71585, // mediumvioletred - 0xFF191970, // midnightblue - 0xFFF5FFFA, // mintcream - 0xFFFFE4E1, // mistyrose - 0xFFFFE4B5, // moccasin - 0xFFFFDEAD, // navajowhite - 0xFF000080, // navy - 0xFFFDF5E6, // oldlace - 0xFF808000, // olive - 0xFF6B8E23, // olivedrab - 0xFFFFA500, // orange - 0xFFFF4500, // orangered - 0xFFDA70D6, // orchid - 0xFFEEE8AA, // palegoldenrod - 0xFF98FB98, // palegreen - 0xFFAFEEEE, // paleturquoise - 0xFFDB7093, // palevioletred - 0xFFFFEFD5, // papayawhip - 0xFFFFDAB9, // peachpuff - 0xFFCD853F, // peru - 0xFFFFC0CB, // pink - 0xFFDDA0DD, // plum - 0xFFB0E0E6, // powderblue - 0xFF800080, // purple - 0xFFFF0000, // red - 0xFFBC8F8F, // rosybrown - 0xFF4169E1, // royalblue - 0xFF8B4513, // saddlebrown - 0xFFFA8072, // salmon - 0xFFF4A460, // sandybrown - 0xFF2E8B57, // seagreen - 0xFFFFF5EE, // seashell - 0xFFA0522D, // sienna - 0xFFC0C0C0, // silver - 0xFF87CEEB, // skyblue - 0xFF6A5ACD, // slateblue - 0xFF708090, // slategray - 0xFFFFFAFA, // snow - 0xFF00FF7F, // springgreen - 0xFF4682B4, // steelblue - 0xFFD2B48C, // tan - 0xFF008080, // teal - 0xFFD8BFD8, // thistle - 0xFFFF6347, // tomato - 0xFF40E0D0, // turquoise - 0xFFEE82EE, // violet - 0xFFF5DEB3, // wheat - 0xFFFFFFFF, // white - 0xFFF5F5F5, // whitesmoke - 0xFFFFFF00, // yellow - 0xFF9ACD32, // yellowgreen - // plus a few rasmol names/values - 0xFFAFD7FF, // bluetint - 0xFF2E8B57, // greenblue - 0xFF98FFB3, // greentint - 0xFF808080, // grey - 0xFF808080, // gray - 0xFFFFABBB, // pinktint - 0xFFFF4500, // redorange - 0xFFF6F675, // yellowtint - }; - - private static final Map mapJavaScriptColors = new Hashtable(); - - static { - for (int i = colorNames.length; --i >= 0; ) - mapJavaScriptColors.put(colorNames[i], Integer.valueOf(colorArgbs[i])); - } - - /** - * accepts [xRRGGBB] or [0xRRGGBB] or [0xFFRRGGBB] or #RRGGBB or - * [red,green,blue] or a valid JavaScript color - * - * @param strColor - * @return 0 if invalid or integer color - */ - public static int getArgbFromString(String strColor) { - int len = 0; - if (strColor == null || (len = strColor.length()) == 0) - return 0; - strColor = strColor.toLowerCase(); - if (strColor.charAt(0) == '[' && strColor.charAt(len - 1) == ']') { - String check; - if (strColor.indexOf(",") >= 0) { - String[] tokens = PT.split(strColor.substring(1, strColor - .length() - 1), ","); - if (tokens.length != 3) - return 0; - float red = PT.parseFloat(tokens[0]); - float grn = PT.parseFloat(tokens[1]); - float blu = PT.parseFloat(tokens[2]); - return colorTriadToFFRGB(red, grn, blu); - } - switch (len) { - case 9: - check = "x"; - break; - case 10: - check = "0x"; - break; - default: - return 0; - } - if (strColor.indexOf(check) != 1) - return 0; - strColor = "#" + strColor.substring(len - 7, len - 1); - len = 7; - } - if (len == 7 && strColor.charAt(0) == '#') { - try { - return PT.parseIntRadix(strColor.substring(1, 7), 16) | 0xFF000000; - } catch (Exception e) { - return 0; - } - } - Integer boxedArgb = mapJavaScriptColors.get(strColor); - return (boxedArgb == null ? 0 : boxedArgb.intValue()); - } - - public static int colorTriadToFFRGB(float x, float y, float z) { - if (x <= 1 && y <= 1 && z <= 1) { - if (x > 0) - x = x * 256 - 1; - if (y > 0) - y = y * 256 - 1; - if (z > 0) - z = z * 256 - 1; - } - return rgb((int) x, (int) y, (int) z); - } - - public static int rgb(int red, int grn, int blu) { - return 0xFF000000 | (red << 16) | (grn << 8) | blu; - } - - public final static P3 colorPtFromString(String colorName) { - return colorPtFromInt(getArgbFromString(colorName), null); - } - - public final static P3 colorPtFromInt(int color, P3 pt) { - if (pt == null) - pt = new P3(); - pt.set((color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF); - return pt; - } - - public static int colorPtToFFRGB(T3 pt) { - return colorTriadToFFRGB(pt.x, pt.y, pt.z); - } - - public static void toRGB3f(int c, float[] f) { - f[0] = ((c >> 16) & 0xFF) / 255f; // red - f[1] = ((c >> 8) & 0xFF) / 255f; - f[2] = (c & 0xFF) / 255f; - } - - /** - * Return a greyscale rgb value 0-FF using NTSC color lightness algorithm - *

- * the alpha component is set to 0xFF. If you want a value in the - * range 0-255 then & the result with 0xFF; - * - * @param rgb the rgb value - * @return a grayscale value in the range 0 - 255 decimal - */ - public static int toFFGGGfromRGB(int rgb) { - int grey = (((2989 * ((rgb >> 16) & 0xFF)) + - (5870 * ((rgb >> 8) & 0xFF)) + - (1140 * (rgb & 0xFF)) + 5000) / 10000) & 0xFFFFFF; - return rgb(grey, grey, grey); - } - - - /** - * Convert RGB values to HSL (hue/saturation/lightness) - * - * @param rgb - * range 255 255 255 - * @param doRound - * set to false when just using this for - * for RGB -- HSL -- HSL' -- RGB' conversion - * - * @return the HSL as P3 range 360 100 100 - * @author hansonr - */ - - public static P3 rgbToHSL(P3 rgb, boolean doRound) { - // adapted from http://tips4java.wordpress.com/2009/07/05/hsl-color/ - // see http://en.wikipedia.org/wiki/HSL_color_space - float r = rgb.x / 255; - float g = rgb.y / 255; - float b = rgb.z / 255; - float min = Math.min(r, Math.min(g, b)); - float max = Math.max(r, Math.max(g, b)); - - // lightness is just p * 50 - - float p = (max + min); - float q = (max - min); - - float h = (60 * ((q == 0 ? 0 : max == r ? ((g - b) / q + 6) - : max == g ? (b - r) / q + 2 : (r - g) / q + 4))) % 360; - - float s = q / (q == 0 ? 1 : p <= 1 ? p : 2 - p); - - // we round to tenths for HSL so that we can return enough - // precision to get back 1-255 in RGB - return (doRound ? P3.new3(Math.round(h*10)/10f, Math.round(s * 1000)/10f, - Math.round(p * 500)/10f) : P3.new3(h, s * 100, p * 50)); - } - - /** - * Convert HSL (hue/saturation/luninance) values to RGB - * - * @param hsl in the range 360, 100, 100 - * @return the RGB as P3 range 0 to 255 - * @author hansonr - */ - public static P3 hslToRGB(P3 hsl) { - // adapted from http://tips4java.wordpress.com/2009/07/05/hsl-color/ - // see http://en.wikipedia.org/wiki/HSL_color_space - - // highly condensed - - float h = Math.max(0, Math.min(360, hsl.x)) / 60; - float s = Math.max(0, Math.min(100, hsl.y)) / 100; - float l = Math.max(0, Math.min(100, hsl.z)) / 100; - - float p = l - (l < 0.5 ? l : 1 - l) * s; - float q = 2 * (l - p); - - float r = toRGB(p, q, h + 2); - float g = toRGB(p, q, h); - float b = toRGB(p, q, h - 2); - return P3.new3(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)); - } - - private static float toRGB(float p, float q, float h) { - return ((h = (h + (h < 0 ? 6 : h > 6 ? -6 : 0))) < 1 ? p + q * h - : h < 3 ? p + q : h < 4 ? p + q * (4 - h) : p); - } - -}