}\r
}\r
\r
- void findAllFeatures()\r
+ synchronized void findAllFeatures()\r
{\r
av.featuresDisplayed = new Hashtable();\r
Vector allfeatures = new Vector();\r
{\r
if (!av.featuresDisplayed.containsKey(features[index].getType()))\r
{\r
- av.featuresDisplayed.put(features[index].getType(),\r
- new Integer( getColour(features[index].getType()).getRGB()) );\r
- allfeatures.addElement(features[index].getType());\r
+ if(!(features[index].begin == 0 && features[index].end ==0))\r
+ {\r
+ // If beginning and end are 0, the feature is for the whole sequence\r
+ // and we don't want to render the feature in the normal way\r
+\r
+ if (getColour(features[index].getType()) == null)\r
+ createRandomColour(features[index].getType());\r
+\r
+ av.featuresDisplayed.put(features[index].getType(),\r
+ new Integer(getColour(features[index].\r
+ getType()).getRGB()));\r
+ allfeatures.addElement(features[index].getType());\r
+ }\r
}\r
index++;\r
}\r
\r
public Color getColour(String featureType)\r
{\r
- return (Color)featureColours.get(featureType);\r
+ Color colour = (Color)featureColours.get(featureType);\r
+ return colour;\r
}\r
\r
+\r
public void addNewFeature(String name, Color col, String group)\r
{\r
\r
featureColours.put("zinc finger region", new Color(0, 65, 255));\r
}\r
\r
+ public Color createRandomColour(String name)\r
+ {\r
+ Random rg = new Random(System.currentTimeMillis());\r
+ Color color = new Color( (int) (Math.random() * 255),\r
+ (int) (Math.random() * 255),\r
+ (int) (Math.random() * 255));\r
+ featureColours.put(name, color); // java 1.2 here ?\r
+\r
+ return color;\r
+ }\r
+\r
+\r
}\r