X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FColorUtils.java;h=9ed98bd129a9499ea7f02ee2dd6b943225866273;hb=eb3e681d6e82ccdd5d312d1981dfb306e7f479f0;hp=16ff25927b4e0dafa19e35be927cd774e6393d4a;hpb=37651a9d177de05ff938276071c16ba95ac44c73;p=jalview.git diff --git a/src/jalview/util/ColorUtils.java b/src/jalview/util/ColorUtils.java index 16ff259..9ed98bd 100644 --- a/src/jalview/util/ColorUtils.java +++ b/src/jalview/util/ColorUtils.java @@ -24,6 +24,8 @@ package jalview.util; +import java.util.Locale; + import java.awt.Color; import java.util.HashMap; import java.util.Map; @@ -31,10 +33,8 @@ import java.util.Random; public class ColorUtils { - // constant borrowed from java.awt.Color - private static final float FACTOR = 0.7f; - private static final int MAX_CACHE_SIZE = 1729; + /* * a cache for colours generated from text strings */ @@ -70,6 +70,18 @@ public class ColorUtils } /** + * + * @return random color + */ + public static final Color getARandomColor() + { + + Color col = new Color((int) (Math.random() * 255), + (int) (Math.random() * 255), (int) (Math.random() * 255)); + return col; + } + + /** * Convert to Tk colour code format * * @param colour @@ -327,7 +339,7 @@ public class ColorUtils return null; } Color col = null; - name = name.toLowerCase(); + name = name.toLowerCase(Locale.ROOT); // or make a static map; or use reflection on the field name switch (name) @@ -375,63 +387,4 @@ public class ColorUtils return col; } - - /** - * Generates a colour that is interpolated between - * colour.darker() and colour.brighter() in - * proportion as value is between min and - * max. Note that the 'neutral point' (unchanged colour) is - * closer to 'brighter' than to 'darker'as this is a geometric range. - * - * @param value - * @param min - * @param max - * @param colour - * @return - */ - public static Color getGraduatedColour(float value, float min, float max, - Color colour) - { - /* - * this computes the equivalent of - * getGraduatedColour(value, min, colour.darker(), max, colour.brighter()) - * but avoiding object creation except for the return value - */ - if (value < min) - { - value = min; - } - if (value > max) - { - value = max; - } - - int r = colour.getRed(); - int g = colour.getGreen(); - int b = colour.getBlue(); - - /* - * rgb for colour.darker(): - */ - float minR = r * FACTOR; - float minG = g * FACTOR; - float minB = b * FACTOR; - - /* - * rgb for colour.brighter(): - */ - float maxR = Math.min(255f, r / FACTOR); - float maxG = Math.min(255f, g / FACTOR); - float maxB = Math.min(255f, b / FACTOR); - - /* - * interpolation - */ - float p = (value - min) / (max - min); - int newR = (int) (minR + p * (maxR - minR)); - int newG = (int) (minG + p * (maxG - minG)); - int newB = (int) (minB + p * (maxB - minB)); - - return new Color(newR, newG, newB, colour.getAlpha()); - } }