parseAppletParameter
authoramwaterhouse <Andrew Waterhouse>
Wed, 14 Jun 2006 10:14:31 +0000 (10:14 +0000)
committeramwaterhouse <Andrew Waterhouse>
Wed, 14 Jun 2006 10:14:31 +0000 (10:14 +0000)
src/jalview/schemes/UserColourScheme.java

index 5f377b3..0e03797 100755 (executable)
@@ -19,6 +19,7 @@
 package jalview.schemes;\r
 \r
 import java.awt.*;\r
+import java.util.StringTokenizer;\r
 \r
 public class UserColourScheme\r
     extends ResidueColourScheme\r
@@ -26,29 +27,16 @@ public class UserColourScheme
   protected String schemeName;\r
 \r
   public UserColourScheme()\r
-  {}\r
+  {  }\r
 \r
-  public UserColourScheme(String colour)\r
+  public UserColourScheme(Color[] newColors)\r
   {\r
-    Color col = null;\r
-    try{\r
-      int value = Integer.parseInt(colour, 16);\r
-      col = new Color(value);\r
-    }\r
-    catch(NumberFormatException ex){}\r
-\r
-    if(col==null)\r
-      col = ColourSchemeProperty.getAWTColorFromName(colour);\r
+    colors = newColors;\r
+  }\r
 \r
-    if(col==null)\r
-    {try{\r
-      java.util.StringTokenizer st = new java.util.StringTokenizer(colour, ",");\r
-      int r = Integer.parseInt( st.nextToken() );\r
-      int g = Integer.parseInt( st.nextToken() );\r
-      int b = Integer.parseInt( st.nextToken() );\r
-      col = new Color(r,g,b);\r
-    }catch(Exception ex){}\r
-    }\r
+  public UserColourScheme(String colour)\r
+  {\r
+    Color col = getColourFromString(colour);\r
 \r
     if(col==null)\r
     {\r
@@ -61,11 +49,6 @@ public class UserColourScheme
       colors[i] = col;\r
   }\r
 \r
-  public UserColourScheme(Color[] newColors)\r
-  {\r
-    colors = newColors;\r
-  }\r
-\r
   public Color[] getColours()\r
   {\r
     return colors;\r
@@ -75,11 +58,47 @@ public class UserColourScheme
   {\r
     schemeName = name;\r
   }\r
+\r
   public String getName()\r
   {\r
     return schemeName;\r
   }\r
 \r
+  public Color getColourFromString(String colour)\r
+  {\r
+    colour = colour.trim();\r
+\r
+    Color col = null;\r
+    try\r
+    {\r
+      int value = Integer.parseInt(colour, 16);\r
+      col = new Color(value);\r
+    }\r
+    catch (NumberFormatException ex)\r
+    {}\r
+\r
+    if (col == null)\r
+      col = ColourSchemeProperty.getAWTColorFromName(colour);\r
+\r
+    if (col == null)\r
+    {\r
+      try\r
+      {\r
+        java.util.StringTokenizer st = new java.util.StringTokenizer(colour,\r
+            ",");\r
+        int r = Integer.parseInt(st.nextToken());\r
+        int g = Integer.parseInt(st.nextToken());\r
+        int b = Integer.parseInt(st.nextToken());\r
+        col = new Color(r, g, b);\r
+      }\r
+      catch (Exception ex)\r
+      {}\r
+    }\r
+\r
+    return col;\r
+\r
+  }\r
+\r
   public Color createColourFromName(String name)\r
   {\r
     int r, g, b;\r
@@ -104,4 +123,35 @@ public class UserColourScheme
     return color;\r
   }\r
 \r
+  public void parseAppletParameter(String paramValue)\r
+  {\r
+    StringTokenizer st = new StringTokenizer(paramValue, ";");\r
+    StringTokenizer st2;\r
+    String token=null, colour, residues;\r
+    try{\r
+      while (st.hasMoreElements())\r
+      {\r
+        token = st.nextToken().trim();\r
+        residues = token.substring(0, token.indexOf("="));\r
+        colour = token.substring(token.indexOf("=") + 1);\r
+\r
+        st2 = new StringTokenizer(residues, " ,");\r
+        while (st2.hasMoreTokens())\r
+        {\r
+          int colIndex =\r
+              ( (Integer) ResidueProperties.aaHash.\r
+               get(st2.nextToken())).intValue();\r
+\r
+          colors[colIndex] = getColourFromString(colour);\r
+        }\r
+      }\r
+    }\r
+    catch(Exception ex)\r
+  {\r
+    System.out.println("Error parsing userDefinedColours:\n"\r
+                       +token+"\n"+ex);\r
+  }\r
+\r
+  }\r
+\r
 }\r