fixes launchApp bug where user defined colourscheme defined in applet parameter does...
[jalview.git] / src / jalview / schemes / ColourSchemeProperty.java
index 162ba46..dd4eb53 100755 (executable)
@@ -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!
    */