JAL-2446 merged to spike branch
[jalview.git] / src / jalview / ws / jws2 / AADisorderClient.java
index dfb13a6..b877d20 100644 (file)
  */
 package jalview.ws.jws2;
 
-import jalview.api.AlignCalcWorkerI;
+import jalview.api.FeatureColourI;
 import jalview.bin.Cache;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.GraphLine;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
-import jalview.schemes.GraduatedColor;
-import jalview.schemes.UserColourScheme;
+import jalview.schemes.FeatureColour;
+import jalview.util.ColorUtils;
 import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.WsParamSetI;
 
@@ -46,8 +46,7 @@ import compbio.data.sequence.Score;
 import compbio.data.sequence.ScoreManager.ScoreHolder;
 import compbio.metadata.Argument;
 
-public class AADisorderClient extends JabawsCalcWorker implements
-        AlignCalcWorkerI
+public class AADisorderClient extends JabawsCalcWorker
 {
 
   private static final String THRESHOLD = "THRESHOLD";
@@ -104,34 +103,29 @@ public class AADisorderClient extends JabawsCalcWorker implements
     Map<String, String[]> fmap;
     featureMap.put(compbio.ws.client.Services.IUPredWS.toString(),
             fmap = new HashMap<String, String[]>());
-    fmap.put("Glob", new String[]
-    { "Globular Domain", "Predicted globular domain" });
+    fmap.put("Glob", new String[] { "Globular Domain",
+        "Predicted globular domain" });
     featureMap.put(compbio.ws.client.Services.JronnWS.toString(),
             fmap = new HashMap<String, String[]>());
     featureMap.put(compbio.ws.client.Services.DisemblWS.toString(),
             fmap = new HashMap<String, String[]>());
-    fmap.put("REM465", new String[]
-    { "REM465", "Missing density" });
-    fmap.put("HOTLOOPS", new String[]
-    { "HOTLOOPS", "Flexible loops" });
-    fmap.put("COILS", new String[]
-    { "COILS", "Random coil" });
+    fmap.put("REM465", new String[] { "REM465", "Missing density" });
+    fmap.put("HOTLOOPS", new String[] { "HOTLOOPS", "Flexible loops" });
+    fmap.put("COILS", new String[] { "COILS", "Random coil" });
     featureMap.put(compbio.ws.client.Services.GlobPlotWS.toString(),
             fmap = new HashMap<String, String[]>());
-    fmap.put("GlobDoms", new String[]
-    { "Globular Domain", "Predicted globular domain" });
-    fmap.put("Disorder", new String[]
-    { "Protein Disorder", "Probable unstructured peptide region" });
+    fmap.put("GlobDoms", new String[] { "Globular Domain",
+        "Predicted globular domain" });
+    fmap.put("Disorder", new String[] { "Protein Disorder",
+        "Probable unstructured peptide region" });
     Map<String, Map<String, Object>> amap;
     annotMap = new HashMap<String, Map<String, Map<String, Object>>>();
     annotMap.put(compbio.ws.client.Services.GlobPlotWS.toString(),
             amap = new HashMap<String, Map<String, Object>>());
     amap.put("Dydx", new HashMap<String, Object>());
     amap.get("Dydx").put(DONTCOMBINE, DONTCOMBINE);
-    amap.get("Dydx").put(THRESHOLD, new double[]
-    { 1, 0 });
-    amap.get("Dydx").put(RANGE, new float[]
-    { -1, +1 });
+    amap.get("Dydx").put(THRESHOLD, new double[] { 1, 0 });
+    amap.get("Dydx").put(RANGE, new float[] { -1, +1 });
 
     amap.put("SmoothedScore", new HashMap<String, Object>());
     amap.get("SmoothedScore").put(INVISIBLE, INVISIBLE);
@@ -142,39 +136,27 @@ public class AADisorderClient extends JabawsCalcWorker implements
     amap.put("COILS", new HashMap<String, Object>());
     amap.put("HOTLOOPS", new HashMap<String, Object>());
     amap.put("REM465", new HashMap<String, Object>());
-    amap.get("COILS").put(THRESHOLD, new double[]
-    { 1, 0.516 });
-    amap.get("COILS").put(RANGE, new float[]
-    { 0, 1 });
-
-    amap.get("HOTLOOPS").put(THRESHOLD, new double[]
-    { 1, 0.6 });
-    amap.get("HOTLOOPS").put(RANGE, new float[]
-    { 0, 1 });
-    amap.get("REM465").put(THRESHOLD, new double[]
-    { 1, 0.1204 });
-    amap.get("REM465").put(RANGE, new float[]
-    { 0, 1 });
+    amap.get("COILS").put(THRESHOLD, new double[] { 1, 0.516 });
+    amap.get("COILS").put(RANGE, new float[] { 0, 1 });
+
+    amap.get("HOTLOOPS").put(THRESHOLD, new double[] { 1, 0.6 });
+    amap.get("HOTLOOPS").put(RANGE, new float[] { 0, 1 });
+    amap.get("REM465").put(THRESHOLD, new double[] { 1, 0.1204 });
+    amap.get("REM465").put(RANGE, new float[] { 0, 1 });
 
     annotMap.put(compbio.ws.client.Services.IUPredWS.toString(),
             amap = new HashMap<String, Map<String, Object>>());
     amap.put("Long", new HashMap<String, Object>());
     amap.put("Short", new HashMap<String, Object>());
-    amap.get("Long").put(THRESHOLD, new double[]
-    { 1, 0.5 });
-    amap.get("Long").put(RANGE, new float[]
-    { 0, 1 });
-    amap.get("Short").put(THRESHOLD, new double[]
-    { 1, 0.5 });
-    amap.get("Short").put(RANGE, new float[]
-    { 0, 1 });
+    amap.get("Long").put(THRESHOLD, new double[] { 1, 0.5 });
+    amap.get("Long").put(RANGE, new float[] { 0, 1 });
+    amap.get("Short").put(THRESHOLD, new double[] { 1, 0.5 });
+    amap.get("Short").put(RANGE, new float[] { 0, 1 });
     annotMap.put(compbio.ws.client.Services.JronnWS.toString(),
             amap = new HashMap<String, Map<String, Object>>());
     amap.put("JRonn", new HashMap<String, Object>());
-    amap.get("JRonn").put(THRESHOLD, new double[]
-    { 1, 0.5 });
-    amap.get("JRonn").put(RANGE, new float[]
-    { 0, 1 });
+    amap.get("JRonn").put(THRESHOLD, new double[] { 1, 0.5 });
+    amap.get("JRonn").put(RANGE, new float[] { 0, 1 });
   }
 
   @Override
@@ -249,23 +231,23 @@ public class AADisorderClient extends JabawsCalcWorker implements
                 if (type == null)
                 {
                   // create a default type for this feature
-                  type = new String[]
-                  { typeName + " (" + scr.getMethod() + ")",
+                  type = new String[] {
+                      typeName + " (" + scr.getMethod() + ")",
                       service.getActionText() };
                 }
                 if (vals.hasNext())
                 {
+                  val = vals.next().floatValue();
                   sf = new SequenceFeature(type[0], type[1],
-                          base + rn.from, base + rn.to, val = vals.next()
-                                  .floatValue(), methodName);
+                          base + rn.from, base + rn.to, val, methodName);
                 }
                 else
                 {
-                  sf = new SequenceFeature(type[0], type[1], null, base
-                          + rn.from, base + rn.to, methodName);
+                  sf = new SequenceFeature(type[0], type[1],
+                          base + rn.from, base + rn.to, methodName);
                 }
                 dseq.addSequenceFeature(sf);
-                if (last != val && last != Float.NaN)
+                if (last != val && !Float.isNaN(last))
                 {
                   fc.put(sf.getType(), sf);
                 }
@@ -285,8 +267,7 @@ public class AADisorderClient extends JabawsCalcWorker implements
                       typename = service.serviceType + " ("
                               + scr.getMethod() + ")",
                       calcName = service.getServiceTypeURI() + "/"
-                              + scr.getMethod(),
-                      aseq, base + 1, scr);
+                              + scr.getMethod(), aseq, base + 1, scr);
               annot.graph = AlignmentAnnotation.LINE_GRAPH;
 
               Map<String, Object> styleMap = (annotTypeMap == null) ? null
@@ -326,8 +307,8 @@ public class AADisorderClient extends JabawsCalcWorker implements
                 annot.description += "<br/>" + threshNote;
               }
               annot.description += "</html>";
-              Color col = new UserColourScheme(typeName)
-                      .createColourFromName(typeName + scr.getMethod());
+              Color col = ColorUtils.createColourFromName(typeName
+                      + scr.getMethod());
               for (int p = 0, ps = annot.annotations.length; p < ps; p++)
               {
                 if (annot.annotations[p] != null)
@@ -355,13 +336,13 @@ public class AADisorderClient extends JabawsCalcWorker implements
                   .cloneFeatureRenderer();
           for (String ft : fc.keySet())
           {
-            Object gc = fr.getFeatureStyle(ft);
-            if (gc instanceof Color)
+            FeatureColourI gc = fr.getFeatureStyle(ft);
+            if (gc.isSimpleColour())
             {
               // set graduated color as fading to white for minimum, and
               // autoscaling to values on alignment
-              GraduatedColor ggc = new GraduatedColor(Color.white,
-                      (Color) gc, Float.MIN_VALUE, Float.MAX_VALUE);
+              FeatureColourI ggc = new FeatureColour(Color.white,
+                      gc.getColour(), Float.MIN_VALUE, Float.MAX_VALUE);
               ggc.setAutoScaled(true);
               fr.setColour(ft, ggc);
             }