createColourFromName
authoramwaterhouse <Andrew Waterhouse>
Fri, 9 Jun 2006 16:16:40 +0000 (16:16 +0000)
committeramwaterhouse <Andrew Waterhouse>
Fri, 9 Jun 2006 16:16:40 +0000 (16:16 +0000)
src/jalview/schemes/UserColourScheme.java

index 4b963fe..5f377b3 100755 (executable)
@@ -25,6 +25,9 @@ public class UserColourScheme
 {\r
   protected String schemeName;\r
 \r
+  public UserColourScheme()\r
+  {}\r
+\r
   public UserColourScheme(String colour)\r
   {\r
     Color col = null;\r
@@ -50,6 +53,7 @@ public class UserColourScheme
     if(col==null)\r
     {\r
       System.out.println("Unknown colour!! "+colour);\r
+      col = createColourFromName(colour);\r
     }\r
 \r
     colors = new Color[24];\r
@@ -75,4 +79,29 @@ public class UserColourScheme
   {\r
     return schemeName;\r
   }\r
+\r
+  public Color createColourFromName(String name)\r
+  {\r
+    int r, g, b;\r
+\r
+    int lsize = name.length();\r
+    int start = 0, end = lsize / 3;\r
+\r
+    int rgbOffset = Math.abs(name.hashCode() % 10) * 15;\r
+\r
+    r = Math.abs(name.substring(start, end).hashCode() + rgbOffset) % 210 + 20;\r
+    start = end;\r
+    end += lsize / 3;\r
+    if (end > lsize)\r
+      end = lsize;\r
+\r
+    g = Math.abs(name.substring(start, end).hashCode() + rgbOffset) % 210 + 20;\r
+\r
+    b = Math.abs(name.substring(end).hashCode() + rgbOffset) % 210 + 20;\r
+\r
+    Color color = new Color(r, g, b);\r
+\r
+    return color;\r
+  }\r
+\r
 }\r