javadoc for webservice client tutorial
[jalview.git] / src / jalview / ws / MsaWSThread.java
index c40c23b..8d373ac 100644 (file)
@@ -312,14 +312,10 @@ class MsaWSThread
               AlignmentView alview,
               String wsname, boolean subgaps, boolean presorder)
   {
+    super(alFrame, wsinfo, alview, wsname, wsUrl);
     this.server = server;
-    this.WsUrl = wsUrl;
-    this.wsInfo = wsinfo;
-    this.WebServiceName = wsname;
-    this.input = alview;
     this.submitGaps = subgaps;
     this.preserveOrder = presorder;
-    this.alignFrame = alFrame;
   }
 
   /**
@@ -526,6 +522,7 @@ class MsaWSThread
   private jalview.datamodel.Sequence[] getVamsasAlignment(
       vamsas.objects.simple.Alignment valign)
   {
+    // TODO: refactor to helper class for vamsas.objects.simple objects
     vamsas.objects.simple.Sequence[] seqs = valign.getSeqs().getSeqs();
     jalview.datamodel.Sequence[] msa = new jalview.datamodel.Sequence[seqs.
         length];
@@ -610,7 +607,6 @@ class MsaWSThread
     Vector alorders = new Vector();
     SequenceI[][] results = new SequenceI[jobs.length][];
     AlignmentOrder[] orders = new AlignmentOrder[jobs.length];
-
     for (int j = 0; j < jobs.length; j++)
     {
       if (jobs[j].hasResults())
@@ -619,6 +615,7 @@ class MsaWSThread
         alorders.add(res[1]);
         results[j] = (SequenceI[]) res[0];
         orders[j] = (AlignmentOrder) res[1];
+         
 //    SequenceI[] alignment = input.getUpdated
       }
       else
@@ -626,7 +623,7 @@ class MsaWSThread
         results[j] = null;
       }
     }
-    Object[] newview = input.getUpdatedView(results, orders, '-');
+    Object[] newview = input.getUpdatedView(results, orders, getGapChar());
     // trash references to original result data
     for (int j = 0; j < jobs.length; j++)
     {
@@ -636,11 +633,13 @@ class MsaWSThread
     SequenceI[] alignment = (SequenceI[]) newview[0];
     ColumnSelection columnselection = (ColumnSelection) newview[1];
     Alignment al = new Alignment(alignment);
+    // TODO: add 'provenance' property to alignment from the method notes accompanying each subjob
     if (dataset != null)
     {
       al.setDataset(dataset);
     }
 
+    propagateDatasetMappings(al);
     // JBNote- TODO: warn user if a block is input rather than aligned data ?
 
     if (newFrame)
@@ -649,10 +648,9 @@ class MsaWSThread
                                      AlignFrame.DEFAULT_WIDTH,
                                      AlignFrame.DEFAULT_HEIGHT);
 
-      // >>>This is a fix for the moment, until a better solution is
-      // found!!<<<
+      // initialise with same renderer settings as in parent alignframe.
       af.getFeatureRenderer().transferSettings(
-          alignFrame.getFeatureRenderer());
+          this.featureSettings);
       // update orders
       if (alorders.size() > 0)
       {
@@ -712,7 +710,7 @@ class MsaWSThread
     else
     {
       System.out.println("MERGE WITH OLD FRAME");
-
+      // TODO: modify alignment in original frame, replacing old for new alignment using the commands.EditCommand model to ensure the update can be undone
     }
   }