From 50779cf7013a8db695c53637578ab135da3ce5b1 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Wed, 7 Jun 2006 12:57:38 +0000 Subject: [PATCH] Create random colour only if Colour is not specified --- src/jalview/gui/FeatureRenderer.java | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index fdbd7eb..591fa79 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -332,7 +332,7 @@ public class FeatureRenderer } } - void findAllFeatures() + synchronized void findAllFeatures() { av.featuresDisplayed = new Hashtable(); Vector allfeatures = new Vector(); @@ -349,9 +349,19 @@ public class FeatureRenderer { if (!av.featuresDisplayed.containsKey(features[index].getType())) { - av.featuresDisplayed.put(features[index].getType(), - new Integer( getColour(features[index].getType()).getRGB()) ); - allfeatures.addElement(features[index].getType()); + if(!(features[index].begin == 0 && features[index].end ==0)) + { + // If beginning and end are 0, the feature is for the whole sequence + // and we don't want to render the feature in the normal way + + if (getColour(features[index].getType()) == null) + createRandomColour(features[index].getType()); + + av.featuresDisplayed.put(features[index].getType(), + new Integer(getColour(features[index]. + getType()).getRGB())); + allfeatures.addElement(features[index].getType()); + } } index++; } @@ -369,9 +379,11 @@ public class FeatureRenderer public Color getColour(String featureType) { - return (Color)featureColours.get(featureType); + Color colour = (Color)featureColours.get(featureType); + return colour; } + public void addNewFeature(String name, Color col, String group) { @@ -470,4 +482,16 @@ public class FeatureRenderer featureColours.put("zinc finger region", new Color(0, 65, 255)); } + public Color createRandomColour(String name) + { + Random rg = new Random(System.currentTimeMillis()); + Color color = new Color( (int) (Math.random() * 255), + (int) (Math.random() * 255), + (int) (Math.random() * 255)); + featureColours.put(name, color); // java 1.2 here ? + + return color; + } + + } -- 1.7.10.2