JAL-976 - storing service parameters on the view model
authorjprocter <jprocter@compbio.dundee.ac.uk>
Sun, 8 Jul 2012 14:08:35 +0000 (15:08 +0100)
committerjprocter <jprocter@compbio.dundee.ac.uk>
Sun, 8 Jul 2012 14:08:35 +0000 (15:08 +0100)
src/jalview/gui/AlignViewport.java
src/jalview/ws/jws2/SequenceAnnotationWSClient.java

index a731796..a1e184f 100644 (file)
@@ -58,6 +58,8 @@ import jalview.workers.AlignCalcManager;
 import jalview.workers.ConsensusThread;
 import jalview.workers.ConservationThread;
 import jalview.workers.StrucConsensusThread;
+import jalview.ws.jws2.dm.AAConsSettings;
+import jalview.ws.params.AutoCalcSetting;
 
 /**
  * DOCUMENT ME!
@@ -1290,15 +1292,17 @@ public class AlignViewport extends AlignmentViewport implements SelectionSource,
   {
     return validCharWidth;
   }
-  private jalview.ws.jws2.dm.AAConsSettings preferredAAConsSettings; 
-
-  public jalview.ws.jws2.dm.AAConsSettings getPreferredAAConsSettings()
+  private Hashtable<String, AutoCalcSetting> calcIdParams=new Hashtable<String, AutoCalcSetting>();
+  public AutoCalcSetting getCalcIdSettingsFor(String calcId)
   {
-    return preferredAAConsSettings;
+    return calcIdParams.get(calcId);
   }
-  public void setPreferredAAConsSettings(jalview.ws.jws2.dm.AAConsSettings aaConsSettings)
+
+  public void setCalcIdSettingsFor(String calcId, AutoCalcSetting settings, boolean needsUpdate)
   {
-    preferredAAConsSettings=aaConsSettings;
+    calcIdParams.put(calcId, settings);
+    // TODO: create a restart list to trigger any calculations that need to be restarted after load
+    // calculator.getRegisteredWorkersOfClass(settings.getWorkerClass())
   }
   
 }
index 77cf2ad..1fdf86f 100644 (file)
@@ -35,6 +35,8 @@ import jalview.ws.params.WsParamSetI;
 public class SequenceAnnotationWSClient extends Jws2Client
 {
 
+  public static final String AAConsCalcId = "jabaws2.AACons";
+
   /**
    * initialise a client so its attachWSMenuEntry method can be called.
    */
@@ -82,7 +84,6 @@ public class SequenceAnnotationWSClient extends Jws2Client
                 .registerWorker(
                         worker = new AAConsClient(sh, alignFrame, this.preset,
                                 paramset));
-        alignFrame.getViewport().setPreferredAAConsSettings(new AAConsSettings(true, sh, this.preset, paramset));
         alignFrame.getViewport().getCalcManager().startWorker(worker);
 
       }
@@ -323,7 +324,8 @@ public class SequenceAnnotationWSClient extends Jws2Client
      * Which AACons server to use
      * What parameters to use
      */
-    AAConsSettings fave= alignFrame.getViewport().getPreferredAAConsSettings();
+    // could actually do a class search for this too
+    AAConsSettings fave= (AAConsSettings) alignFrame.getViewport().getCalcIdSettingsFor(AAConsCalcId);
     if (fave==null)
     {
       fave = createDefaultAAConsSettings();
@@ -339,7 +341,7 @@ public class SequenceAnnotationWSClient extends Jws2Client
      * Which AACons server to use
      * What parameters to use
      */
-    AAConsSettings fave= alignFrame.getViewport().getPreferredAAConsSettings();
+    AAConsSettings fave= (AAConsSettings) alignFrame.getViewport().getCalcIdSettingsFor(AAConsCalcId);
     if (fave==null)
     {
       fave = createDefaultAAConsSettings();