apply gpl development license
[jalview.git] / src / jalview / schemes / ColourSchemeProperty.java
index 162ba46..3333a82 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
+ * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -77,7 +77,7 @@ public class ColourSchemeProperty
    * DOCUMENT ME!
    * 
    * @param name
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * 
    * @return DOCUMENT ME!
    */
@@ -145,7 +145,7 @@ public class ColourSchemeProperty
    * DOCUMENT ME!
    * 
    * @param cs
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * 
    * @return DOCUMENT ME!
    */
@@ -216,7 +216,7 @@ public class ColourSchemeProperty
    * DOCUMENT ME!
    * 
    * @param index
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * 
    * @return DOCUMENT ME!
    */
@@ -298,9 +298,9 @@ public class ColourSchemeProperty
    * DOCUMENT ME!
    * 
    * @param al
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * @param name
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * 
    * @return DOCUMENT ME!
    */
@@ -311,29 +311,48 @@ public class ColourSchemeProperty
   }
 
   /**
-   * DOCUMENT ME!
+   * retrieve or create colourscheme associated with name
    * 
    * @param seqs
-   *                DOCUMENT ME!
+   *          sequences to colour
    * @param width
-   *                DOCUMENT ME!
+   *          range of sequences to colour
    * @param name
-   *                DOCUMENT ME!
-   * 
-   * @return DOCUMENT ME!
+   *          colourscheme name, applet colour parameter specification, or
+   *          string to parse as colour for new coloursheme
+   * @return Valid Colourscheme
    */
   public static ColourSchemeI getColour(java.util.Vector seqs, int width,
           String name)
   {
     int colindex = getColourIndexFromName(name);
-    if (colindex == UNDEFINED) // USER_DEFINED)
+    if (colindex == UNDEFINED)
     {
-      try
+      if (name.indexOf('=') == -1)
       {
-        return new UserColourScheme(name);
-      } catch (Exception e)
+        // try to build a colour from the string directly
+        try
+        {
+          return new UserColourScheme(name);
+        } catch (Exception e)
+        {
+          // System.err.println("Ignoring unknown colourscheme name");
+        }
+      }
+      else
       {
-        // System.err.println("Ignoring unknown colourscheme name");
+        // try to parse the string as a residue colourscheme
+        try
+        {
+          // fix the launchApp user defined coloursheme transfer bug
+          jalview.schemes.UserColourScheme ucs = new jalview.schemes.UserColourScheme(
+                  "white");
+          ucs.parseAppletParameter(name);
+
+        } catch (Exception e)
+        {
+          // System.err.println("Ignoring exception when parsing colourscheme as applet-parameter");
+        }
       }
     }
     return getColour(seqs, width, getColourIndexFromName(name));
@@ -343,11 +362,11 @@ public class ColourSchemeProperty
    * DOCUMENT ME!
    * 
    * @param seqs
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * @param width
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * @param index
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    * 
    * @return DOCUMENT ME!
    */