X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FColorUtils.java;h=d4be3228152d22b78dbdcab4568ccba86b9598f6;hb=35f830ac7246ab8560f0da4bd4c3060774253ecf;hp=55db82466052a731c1265fdb41b895ec4bb1d4e0;hpb=b0cee3aaf7d8873910939f97b6acb217d518968d;p=jalview.git diff --git a/src/jalview/util/ColorUtils.java b/src/jalview/util/ColorUtils.java index 55db824..d4be322 100644 --- a/src/jalview/util/ColorUtils.java +++ b/src/jalview/util/ColorUtils.java @@ -134,12 +134,12 @@ public class ColorUtils * prop = proportion of the way value is from minValue to maxValue */ float prop = (value - minValue) / (maxValue - minValue); - float r = minColour.getRed() + prop - * (maxColour.getRed() - minColour.getRed()); - float g = minColour.getGreen() + prop - * (maxColour.getGreen() - minColour.getGreen()); - float b = minColour.getBlue() + prop - * (maxColour.getBlue() - minColour.getBlue()); + float r = minColour.getRed() + + prop * (maxColour.getRed() - minColour.getRed()); + float g = minColour.getGreen() + + prop * (maxColour.getGreen() - minColour.getGreen()); + float b = minColour.getBlue() + + prop * (maxColour.getBlue() - minColour.getBlue()); return new Color(r / 255, g / 255, b / 255); } @@ -210,7 +210,7 @@ public class ColorUtils return null; } colour = colour.trim(); - + Color col = null; try { @@ -219,12 +219,12 @@ public class ColorUtils } catch (NumberFormatException ex) { } - + if (col == null) { col = ColorUtils.getAWTColorFromName(colour); } - + if (col == null) { try @@ -242,7 +242,7 @@ public class ColorUtils // non-numeric token or out of 0-255 range } } - + return col; } @@ -256,35 +256,41 @@ public class ColorUtils */ public static Color createColourFromName(String name) { + if (name == null) + { + return Color.white; + } int lsize = name.length(); int start = 0; int end = lsize / 3; - - int rgbOffset = Math.abs(name.hashCode() % 10) * 15; - + + int rgbOffset = Math.abs(name.hashCode() % 10) * 15; // 0-135 + /* * red: first third */ - int r = Math.abs(name.substring(start, end).hashCode() + rgbOffset) % 210 + 20; + int r = Math.abs(name.substring(start, end).hashCode() + rgbOffset) + % 210 + 20; start = end; end += lsize / 3; if (end > lsize) { end = lsize; } - + /* * green: second third */ - int g = Math.abs(name.substring(start, end).hashCode() + rgbOffset) % 210 + 20; - + int g = Math.abs(name.substring(start, end).hashCode() + rgbOffset) + % 210 + 20; + /* * blue: third third */ int b = Math.abs(name.substring(end).hashCode() + rgbOffset) % 210 + 20; - + Color color = new Color(r, g, b); - + return color; } @@ -303,7 +309,7 @@ public class ColorUtils } Color col = null; name = name.toLowerCase(); - + // or make a static map; or use reflection on the field name switch (name) { @@ -347,7 +353,7 @@ public class ColorUtils col = Color.yellow; break; } - + return col; } }