JAL-3379 JalviewJS-API specs - preliminary
[jalview.git] / src / jalview / api / JalviewJSApp.java
index 693ea63..879beff 100644 (file)
@@ -60,8 +60,6 @@ public class JalviewJSApp implements JalviewJSApi
 {
   private ArgsParser aparser;
 
-  private String j2sAppletID;
-
   private boolean debug;
 
   private String[] ret = new String[1];
@@ -70,11 +68,10 @@ public class JalviewJSApp implements JalviewJSApi
                                        // be '|', but many sequence IDS include
                                        // pipes.
 
+
   public JalviewJSApp(ArgsParser aparser)
   {
     this.aparser = aparser;
-    this.j2sAppletID = (String) aparser.getAppletValue("j2sAppletID",
-            "Jalview", true);
     Platform.setAppClass(this);
   }
 
@@ -103,11 +100,6 @@ public class JalviewJSApp implements JalviewJSApi
     loadPdbFiles(af);
   }
 
-  public String getAppID(String frameType)
-  {
-    return j2sAppletID + (frameType == null ? "" : "-" + frameType);
-  }
-
   // TODO BH 2019
   //
   // These are methods that are in JalviewLite that various classes call
@@ -121,10 +113,7 @@ public class JalviewJSApp implements JalviewJSApi
 
   // private boolean alignPDBStructures; // From JalviewLite; not implemented
   //
-  private Hashtable<String, Hashtable<String, String[]>> jsmessages;
-
-  private Hashtable<String, int[]> jshashes;
-
+  
   @Override
   public String getParameter(String name)
   {
@@ -178,25 +167,6 @@ public class JalviewJSApp implements JalviewJSApi
   }
 
   @Override
-  public Hashtable<String, int[]> getJSHashes()
-  {
-    return (jshashes == null ? (jshashes = new Hashtable<>()) : jshashes);
-  }
-
-  @Override
-  public Hashtable<String, Hashtable<String, String[]>> getJSMessages()
-  {
-    return (jsmessages == null ? (jsmessages = new Hashtable<>())
-            : jsmessages);
-  }
-
-  @Override
-  public Object getJSObject()
-  {
-    return Jalview.getInstance();
-  }
-
-  @Override
   public FeatureRenderer getNewFeatureRenderer(AlignViewportI vp)
   {
     return new jalview.gui.FeatureRenderer((AlignmentPanel) vp);
@@ -279,20 +249,19 @@ public class JalviewJSApp implements JalviewJSApi
     return parseFeaturesFile(null, filename, protocol);
   }
   
+  /**
+   * @j2sAlias parseFeatureFile
+   * 
+   * @param af
+   * @param filename
+   * @param protocol
+   * @return
+   */
   public boolean parseFeaturesFile(AlignFrame af, String filename, DataSourceType protocol)
   {
-    return af.parseFeaturesFile(filename, protocol);
+    return (af == null ? Jalview.getCurrentAlignFrame() : af).parseFeaturesFile(filename, protocol);
   }
 
-  @Override
-  public void setFeatureGroupState(String[] groups, boolean state)
-  {
-    setFeatureGroupState(null, groups, state);
-  }
-
-  public void setFeatureGroupState(AlignFrame af, String[] groups, boolean state) {
-    (af == null ? Jalview.getCurrentAlignFrame() : af).setFeatureGroupState(groups, state);
-  }
   /**
    * annotations, jpredfile, jnetfile
    * 
@@ -418,6 +387,11 @@ public class JalviewJSApp implements JalviewJSApi
     return getAlignmentFrom(null, format, null);
   }
 
+  /**
+   * suffix string "true"/"false" (default true)
+   *          passed to AlnFile class controls whether /START-END is added to
+   *          sequence names
+   */
   @Override
   public String getAlignment(String format, String suffix)
   {
@@ -583,14 +557,7 @@ public class JalviewJSApp implements JalviewJSApi
     return features;
 
   }
-
-  @Override
-  public String getJsMessage(String messageclass, String viewId)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
+  
   /**
    * read sequence1...sequenceN as a raw alignment
    * 
@@ -620,7 +587,7 @@ public class JalviewJSApp implements JalviewJSApi
    * @see jalview.appletgui.js.JalviewLiteJsApi#getSelectedSequences()
    */
   @Override
-  public String getSelectedSequences()
+  public SequenceI[] getSelectedSequences()
   {
     return getSelectedSequencesFrom(Jalview.getCurrentAlignFrame());
   }
@@ -630,7 +597,7 @@ public class JalviewJSApp implements JalviewJSApi
    * @see jalview.appletgui.js.JalviewLiteJsApi#getSelectedSequences(java.lang.String)
    */
   @Override
-  public String getSelectedSequences(String sep)
+  public SequenceI[] getSelectedSequences(String sep)
   {
     return getSelectedSequencesFrom(Jalview.getCurrentAlignFrame(), sep);
   }
@@ -681,37 +648,26 @@ public class JalviewJSApp implements JalviewJSApi
    *      .AlignFrame)
    */
   @Override
-  public String getSelectedSequencesFrom(AlignFrame alf)
+  public SequenceI[] getSelectedSequencesFrom(AlignFrame alf)
   {
     return getSelectedSequencesFrom(alf, null);
   }
 
   @Override
-  public String getSelectedSequencesFrom(AlignFrame alf, String sep)
+  public SequenceI[] getSelectedSequencesFrom(AlignFrame alf, String sep)
   {
     if (alf == null)
     {
       alf = Jalview.getCurrentAlignFrame();
     }
-    StringBuffer result = new StringBuffer("");
-    if (sep == null || sep.length() == 0)
-    {
-      sep = separator; // "+0x00AC;
-    }
     AlignViewport v = alf.getViewport();
     if (v.getSelectionGroup() != null)
     {
-      SequenceI[] seqs = v.getSelectionGroup()
+      return v.getSelectionGroup()
               .getSequencesInOrder(v.getAlignment());
-
-      for (int i = 0; i < seqs.length; i++)
-      {
-        result.append(seqs[i].getName());
-        result.append(sep);
-      }
     }
 
-    return result.toString();
+    return null;
   }
 
   public Object[] getSelectionForListener(AlignFrame alf,
@@ -1825,6 +1781,12 @@ public class JalviewJSApp implements JalviewJSApi
   }
 
   @Override
+  public void setFeatureGroupState(String[] groups, boolean state)
+  {
+    setFeatureGroupState(null, groups, state);
+  }
+
+  @Override
   public void setFeatureGroupState(String groups, boolean state)
   { // JalviewLite API
     setFeatureGroupStateOn(null, groups, state);
@@ -1834,19 +1796,24 @@ public class JalviewJSApp implements JalviewJSApi
   public void setFeatureGroupStateOn(final AlignFrame alf,
           final String groups, boolean state)
   {
+    setFeatureGroupState(alf, separatorListToArray(groups, separator), state);
+//    java.awt.EventQueue.invokeLater(new Runnable()
+//    {
+//      @Override
+//      public void run()
+//      {
+//        (alf == null ? Jalview.getCurrentAlignFrame() : alf)
+//                .setFeatureGroupState(
+//                        separatorListToArray(groups, separator), state);
+//      }
+//    });
+  }
 
-    java.awt.EventQueue.invokeLater(new Runnable()
-    {
-      @Override
-      public void run()
-      {
-        (alf == null ? Jalview.getCurrentAlignFrame() : alf)
-                .setFeatureGroupState(
-                        separatorListToArray(groups, separator), state);
-      }
-    });
+  public void setFeatureGroupState(AlignFrame af, String[] groups, boolean state) {
+    (af == null ? Jalview.getCurrentAlignFrame() : af).setFeatureGroupState(groups, state);
   }
 
+
   @Override
   public void setSelectionListener(AlignFrame af, String listener)
   {
@@ -2193,11 +2160,10 @@ public class JalviewJSApp implements JalviewJSApi
 
       }
 
-      Jalview jalview = Jalview.getInstance();
-      jalview.doSendCallback(_listener,
+      doSendCallback(_listener,
               new Object[]
-              { src, setid, jalview.arrayToSeparatorList(seqs),
-                  jalview.arrayToSeparatorList(cols) });
+              { src, setid, arrayToSeparatorList(seqs),
+                  arrayToSeparatorList(cols) });
     }
 
     public boolean isFor(AlignFrame af, String listener)