JAL-3379 JalviewJS-API specs - preliminary
authorBobHanson <hansonr@stolaf.edu>
Sat, 6 Jun 2020 13:13:33 +0000 (08:13 -0500)
committerBobHanson <hansonr@stolaf.edu>
Sat, 6 Jun 2020 13:13:33 +0000 (08:13 -0500)
doc/JalviewJS-API.md [new file with mode: 0644]
src/jalview/api/JalviewJSApp.java
src/jalview/bin/JalviewJSApi.java

diff --git a/doc/JalviewJS-API.md b/doc/JalviewJS-API.md
new file mode 100644 (file)
index 0000000..0f198d8
--- /dev/null
@@ -0,0 +1,122 @@
+## public interface JalviewJSApi
+
+# full list of available methods:
+
+  public boolean addPdbFile(AlignFrame alFrame, String sequenceId, String pdbEntryString, String pdbFile);
+  public String arrayToSeparatorList(String[] array);
+  public String getAlignment(String format);
+  public String getAlignment(String format, String suffix);
+  public String getAlignmentFrom(AlignFrame alf, String format);
+  public String getAlignmentFrom(AlignFrame alf, String format, String suffix);
+  public String getAlignmentOrder();
+  public String getAlignmentOrderFrom(AlignFrame alf);
+  public String getAlignmentOrderFrom(AlignFrame alf, String sep);
+  public String getAnnotation();
+  public String getAnnotationFrom(AlignFrame alf);
+  public Object getAppletParameter(String name, boolean asString);
+  public URL getCodeBase();
+  public URL getDocumentBase();
+  public String getFeatureGroups();
+  public String getFeatureGroupsOfState(boolean visible);
+  public String getFeatureGroupsOfStateOn(AlignFrame alf, boolean visible);
+  public String getFeatureGroupsOn(AlignFrame alf);
+  public String getFeatures(String format);
+  public String getFeaturesFrom(AlignFrame alf, String format);
+  public Object getFrameForSource(VamsasSource source);
+  public jalview.renderer.seqfeatures.FeatureRenderer getNewFeatureRenderer(AlignViewportI vp);
+  public String getParameter(String name);
+  public String getSelectedSequences();
+  public String getSelectedSequences(String sep);
+  public String getSelectedSequencesAsAlignment(String format, String suffix);
+  public String getSelectedSequencesAsAlignmentFrom(AlignFrame alf, String format, String suffix);
+  public String getSelectedSequencesFrom(AlignFrame alf);
+  public String getSelectedSequencesFrom(AlignFrame alf, String sep);
+  public Object[] getSelectionForListener(SequenceGroup seqsel, ColumnSelection colsel, HiddenColumns hidden, SelectionSource source, Object alignFrame);
+  public String getSeparator();
+  public AlignViewportI getViewport();
+  public void highlight(String sequenceId, String position, String alignedPosition);
+  public void highlightIn(AlignFrame alf, String sequenceId, String position, String alignedPosition);
+  public AlignFrame loadAlignment(String text, String title);
+  public void loadAnnotation(String annotation);
+  public void loadAnnotationFrom(AlignFrame alf, String annotation);
+  public void loadFeatures(String features, boolean autoenabledisplay);
+  public boolean loadFeaturesFrom(AlignFrame alf, String features, boolean autoenabledisplay);
+  public boolean loadScoreFile(String sScoreFile) throws IOException;
+  public void newFeatureSettings();
+  public void newStructureView(PDBEntry pdb, SequenceI[] seqs, String[] chains, DataSourceType protocol);
+  public Object openPcaPanel(AlignFrame af, String modelName);
+  public Object openTreePanel(AlignFrame af, String treeType, String modelName);
+  public String orderAlignmentBy(AlignFrame alf, String order, String undoName, String sep);
+  public String orderBy(String order, String undoName);
+  public String orderBy(String order, String undoName, String sep);
+  public Object parseArguments(String[] args);
+  public boolean parseFeaturesFile(String param, DataSourceType protocol);
+  public void removeSelectionListener(AlignFrame af, String listener);
+  public void scrollViewToColumnIn(AlignFrame alf, String leftHandColumn);
+  public void scrollViewToIn(AlignFrame alf, String topRow, String leftHandColumn);
+  public void scrollViewToRowIn(AlignFrame alf, String topRow);
+  public void select(String sequenceIds, String columns);
+  public void select(String sequenceIds, String columns, String sep);
+  public void selectIn(AlignFrame alf, String sequenceIds, String columns);
+  public void selectIn(AlignFrame alf, String sequenceIds, String columns, String sep);
+  public String[] separatorListToArray(String list);
+  public void setFeatureGroupState(String groups, boolean state);
+  public void setFeatureGroupState(String[] groups, boolean state);
+  public void setFeatureGroupStateOn(AlignFrame alf, String groups, boolean state);
+  public void setSelectionListener(AlignFrame af, String listener);
+  public void setSelectionListener(String listener);
+  public void setSeparator(String separator);
+  public void showOverview();
+  public void updateForAnnotations();
+
+# proposed alias list:
+- remove overloaded methods
+- indicate null options
+- use standard arrays; no need for special separators
+- possibly return more actual objects, not just strings
+  public boolean addPdbFile(AlignFrame alFrame, String sequenceId, String pdbEntryString, String pdbFile);
+  public String getAlignment(AlignFrame alf, String format, boolean includeStartEnd);
+  public String[] getAlignmentOrder(AlignFrame alf);
+  public String getAnnotation(AlignFrame alf);
+  public Object getAppletParameter(String name, boolean asString);
+  public URL getCodeBase();
+  public URL getDocumentBase();
+  public String[] getFeatureGroups();
+  public String[] getFeatureGroupsOfState(boolean visible);
+  public String getFeatures(AlignFrame alf, String format);
+  public jalview.renderer.seqfeatures.FeatureRenderer getNewFeatureRenderer(AlignViewportI vp);
+  public String getParameter(String name);
+  public String[] getSelectedSequences(AlignFrame alf);
+  public String[] getSelectedSequencesAsAlignment(AlignFrame alf, String format, boolean includeStartEnd);
+  public Object[] getSelectionForListener(SequenceGroup seqsel, ColumnSelection colsel, HiddenColumns hidden, SelectionSource source, Object alignFrame);
+  public AlignViewportI getViewport();
+  public void highlight(AlignFrame alf, String sequenceId, String position, String alignedPosition);
+  public AlignFrame loadAlignment(String text, String title);
+  public void loadAnnotation(AlignFrame alf, String annotation);
+  public boolean loadFeatures(AlignFrame alf, String features, boolean autoenabledisplay);
+  public boolean loadScoreFile(String sScoreFile) throws IOException;
+  public void newFeatureSettings();
+  public void newStructureView(PDBEntry pdb, SequenceI[] seqs, String[] chains, DataSourceType protocol);
+  public Object openPcaPanel(AlignFrame af, String modelName);
+  public Object openTreePanel(AlignFrame af, String treeType, String modelName);
+  public String[] orderBy(AlignFrame alf, String order, String undoName);
+  public Object parseArguments(String[] args);
+  public boolean parseFeaturesFile(String param, DataSourceType protocol);
+  public void removeSelectionListener(AlignFrame af, String listener);
+  public void scrollViewTo(AlignFrame alf, String topRow, String leftHandColumn);
+  public void select(AlignFrame alf, String[] sequenceIds, String[] columns);
+  public void setFeatureGroupState(AlignFrame alf, String groups, boolean state);
+  public void setSelectionListener(AlignFrame af, String listener);
+  public void showOverview();
+  public void updateForAnnotations();
+
+# unknown methods/shouldn't be in interface?
+
+  public String arrayToSeparatorList(String[] array);
+  public Object getFrameForSource(VamsasSource source);
+  public String getSeparator();
+  public String[] separatorListToArray(String list);
+  public void setSeparator(String separator);
+  
\ No newline at end of file
index 2975317..879beff 100644 (file)
@@ -113,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)
   {
@@ -170,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);
@@ -271,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);
-  }
-
-  @Override
-  public void setFeatureGroupState(String[] groups, boolean state)
-  {
-    setFeatureGroupState(null, groups, state);
+    return (af == null ? Jalview.getCurrentAlignFrame() : af).parseFeaturesFile(filename, protocol);
   }
 
-  public void setFeatureGroupState(AlignFrame af, String[] groups, boolean state) {
-    (af == null ? Jalview.getCurrentAlignFrame() : af).setFeatureGroupState(groups, state);
-  }
   /**
    * annotations, jpredfile, jnetfile
    * 
@@ -410,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)
   {
@@ -575,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
    * 
@@ -612,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());
   }
@@ -622,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);
   }
@@ -673,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,
@@ -1817,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);
@@ -1826,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)
   {
index 7c9dee8..3f5dba0 100644 (file)
@@ -12,7 +12,6 @@ import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
 import jalview.io.DataSourceType;
-import jalview.io.NewickFile;
 import jalview.structure.SelectionSource;
 import jalview.structure.VamsasSource;
 
@@ -44,8 +43,7 @@ public interface JalviewJSApi
    *         structure for indicating when PDB parsing or sequenceId location
    *         fails.
    */
-  public abstract boolean addPdbFile(AlignFrame alFrame, String sequenceId,
-          String pdbEntryString, String pdbFile);
+  public boolean addPdbFile(AlignFrame alFrame, String sequenceId, String pdbEntryString, String pdbFile);
 
   public String arrayToSeparatorList(String[] array);
 
@@ -54,7 +52,7 @@ public interface JalviewJSApi
    * an HTML page.
    * 
    * <br>
-   * <em>TODO: introduce abstract interface for
+   * <em>TODO: introduce interface for
    * jalview.appletgui.AlignFrame</em><br>
    * 
    * Most function arguments are strings, which contain serialised versions of
@@ -80,7 +78,7 @@ public interface JalviewJSApi
    * @return
    */
 
-  public abstract String getAlignment(String format);
+  public String getAlignment(String format);
 
   /**
    * get alignment as format with jalview start-end sequence suffix appended
@@ -90,7 +88,7 @@ public interface JalviewJSApi
    * @return
    */
 
-  public abstract String getAlignment(String format, String suffix);
+  public String getAlignment(String format, String suffix);
 
   /**
    * get alignment displayed in alf as format
@@ -99,7 +97,7 @@ public interface JalviewJSApi
    * @param format
    * @return
    */
-  public abstract String getAlignmentFrom(AlignFrame alf, String format);
+  public String getAlignmentFrom(AlignFrame alf, String format);
 
   /**
    * get alignment displayed in alf as format with or without the jalview
@@ -110,8 +108,7 @@ public interface JalviewJSApi
    * @param suffix
    * @return
    */
-  public abstract String getAlignmentFrom(AlignFrame alf, String format,
-          String suffix);
+  public String getAlignmentFrom(AlignFrame alf, String format, String suffix);
 
   /**
    * get a separator separated list of sequence IDs reflecting the order of the
@@ -120,7 +117,7 @@ public interface JalviewJSApi
    * @return
    */
 
-  public abstract String getAlignmentOrder();
+  public String getAlignmentOrder();
 
   /**
    * get a separator separated list of sequence IDs reflecting the order of the
@@ -129,7 +126,7 @@ public interface JalviewJSApi
    * @param alf
    * @return
    */
-  public abstract String getAlignmentOrderFrom(AlignFrame alf);
+  public String getAlignmentOrderFrom(AlignFrame alf);
 
   /**
    * get a sep separated list of sequence IDs reflecting the order of the
@@ -140,7 +137,7 @@ public interface JalviewJSApi
    *          - separator to use
    * @return
    */
-  public abstract String getAlignmentOrderFrom(AlignFrame alf, String sep);
+  public String getAlignmentOrderFrom(AlignFrame alf, String sep);
 
   /**
    * get current alignment's annotation as an annotation file
@@ -148,7 +145,7 @@ public interface JalviewJSApi
    * @return
    */
 
-  public abstract String getAnnotation();
+  public String getAnnotation();
 
   /**
    * get alignment view alf's annotation as an annotation file
@@ -156,7 +153,7 @@ public interface JalviewJSApi
    * @param alf
    * @return
    */
-  public abstract String getAnnotationFrom(AlignFrame alf);
+  public String getAnnotationFrom(AlignFrame alf);
 
   public Object getAppletParameter(String name, boolean asString);
 
@@ -170,7 +167,7 @@ public interface JalviewJSApi
    * @see jalview.appletgui.AlignFrame#getFeatureGroups();
    */
 
-  public abstract String getFeatureGroups();
+  public String getFeatureGroups();
 
   /**
    * @param visible
@@ -178,7 +175,7 @@ public interface JalviewJSApi
    * @see jalview.appletgui.AlignFrame#getFeatureGroupsOfState(boolean);
    */
 
-  public abstract String getFeatureGroupsOfState(boolean visible);
+  public String getFeatureGroupsOfState(boolean visible);
 
   /**
    * @param alf
@@ -187,8 +184,7 @@ public interface JalviewJSApi
    * @return
    * @see jalview.appletgui.AlignFrame#getFeatureGroupsOfState(boolean);
    */
-  public abstract String getFeatureGroupsOfStateOn(AlignFrame alf,
-          boolean visible);
+  public String getFeatureGroupsOfStateOn(AlignFrame alf, boolean visible);
 
   /**
    * @param alf
@@ -196,7 +192,7 @@ public interface JalviewJSApi
    * @return
    * @see jalview.appletgui.AlignFrame#getFeatureGroups();
    */
-  public abstract String getFeatureGroupsOn(AlignFrame alf);
+  public String getFeatureGroupsOn(AlignFrame alf);
 
   /**
    * get the sequence features in the given format (Jalview or GFF);
@@ -205,7 +201,7 @@ public interface JalviewJSApi
    * @return
    */
 
-  public abstract String getFeatures(String format);
+  public String getFeatures(String format);
 
   /**
    * get the sequence features in alf in the given format (Jalview or GFF);
@@ -214,28 +210,11 @@ public interface JalviewJSApi
    * @param format
    * @return
    */
-  public abstract String getFeaturesFrom(AlignFrame alf, String format);
+  public String getFeaturesFrom(AlignFrame alf, String format);
 
   public Object getFrameForSource(VamsasSource source);
 
-  public Hashtable<String, int[]> getJSHashes();
-
-  /**
-   * Retrieve fragments of a large packet of data made available by JalviewLite.
-   * 
-   * @param messageclass
-   * @param viewId
-   * @return next chunk of message
-   */
-
-  public abstract String getJsMessage(String messageclass, String viewId);
-
-  Hashtable<String, Hashtable<String, String[]>> getJSMessages();
-
-  public Object getJSObject();
-
-  public jalview.renderer.seqfeatures.FeatureRenderer getNewFeatureRenderer(
-          AlignViewportI vp);
+  public jalview.renderer.seqfeatures.FeatureRenderer getNewFeatureRenderer(AlignViewportI vp);
 
   public String getParameter(String name);
 
@@ -244,7 +223,7 @@ public interface JalviewJSApi
    *         'boolean not' character (""+0x00AC); or (&#172;);
    */
 
-  public abstract String getSelectedSequences();
+  public SequenceI[] getSelectedSequences();
 
   /**
    * @param sep
@@ -253,7 +232,7 @@ public interface JalviewJSApi
    *         separator string
    */
 
-  public abstract String getSelectedSequences(String sep);
+  public SequenceI[] getSelectedSequences(String sep);
 
   /**
    * get sequences selected in current AlignFrame and return their alignment in
@@ -269,8 +248,7 @@ public interface JalviewJSApi
    *         current selection
    */
 
-  public abstract String getSelectedSequencesAsAlignment(String format,
-          String suffix);
+  public String getSelectedSequencesAsAlignment(String format, String suffix);
 
   /**
    * get sequences selected in alf and return their alignment in format 'format'
@@ -285,8 +263,7 @@ public interface JalviewJSApi
    * @return selected sequences as flat file or empty string if there was no
    *         current selection
    */
-  public abstract String getSelectedSequencesAsAlignmentFrom(AlignFrame alf,
-          String format, String suffix);
+  public String getSelectedSequencesAsAlignmentFrom(AlignFrame alf, String format, String suffix);
 
   /**
    * @param alf
@@ -295,7 +272,7 @@ public interface JalviewJSApi
    *         default separator sequence
    * 
    */
-  public abstract String getSelectedSequencesFrom(AlignFrame alf);
+  public SequenceI[] getSelectedSequencesFrom(AlignFrame alf);
 
   // BH incompatibility here -- JalviewLite created an AlignFrame; Jalview
   // creates an AlignmentPanel
@@ -305,7 +282,7 @@ public interface JalviewJSApi
   // * @return
   // */
   //
-  // public abstract AlignFrame newView();
+  // public AlignFrame newView();
   //
   // /**
   // * create a new view named name and return the AlignFrame instance
@@ -314,7 +291,7 @@ public interface JalviewJSApi
   // * @return
   // */
   //
-  // public abstract AlignFrame newView(String name);
+  // public AlignFrame newView(String name);
   //
   // /**
   // * create a new view on alf and return the AlignFrame instance
@@ -322,7 +299,7 @@ public interface JalviewJSApi
   // * @param alf
   // * @return
   // */
-  // public abstract AlignFrame newViewFrom(AlignFrame alf);
+  // public AlignFrame newViewFrom(AlignFrame alf);
   //
   // /**
   // * create a new view named name on alf
@@ -331,7 +308,7 @@ public interface JalviewJSApi
   // * @param name
   // * @return
   // */
-  // public abstract AlignFrame newViewFrom(AlignFrame alf, String name);
+  // public AlignFrame newViewFrom(AlignFrame alf, String name);
 
   /**
    * get list of selected sequence IDs separated by given separator
@@ -343,12 +320,9 @@ public interface JalviewJSApi
    * @return String list of selected sequence IDs, each terminated by the given
    *         separator
    */
-  public abstract String getSelectedSequencesFrom(AlignFrame alf,
-          String sep);
+  public SequenceI[] getSelectedSequencesFrom(AlignFrame alf, String sep);
 
-  public Object[] getSelectionForListener(SequenceGroup seqsel,
-          ColumnSelection colsel, HiddenColumns hidden,
-          SelectionSource source, Object alignFrame);
+  public Object[] getSelectionForListener(SequenceGroup seqsel, ColumnSelection colsel, HiddenColumns hidden, SelectionSource source, Object alignFrame);
 
   /**
    * List separator string
@@ -356,7 +330,7 @@ public interface JalviewJSApi
    * @return the separator
    */
 
-  public abstract String getSeparator();
+  public String getSeparator();
 
   public AlignViewportI getViewport();
 
@@ -371,8 +345,7 @@ public interface JalviewJSApi
    *          column or unaligned sequence position
    */
 
-  public abstract void highlight(String sequenceId, String position,
-          String alignedPosition);
+  public void highlight(String sequenceId, String position, String alignedPosition);
 
   /**
    * 
@@ -384,8 +357,7 @@ public interface JalviewJSApi
    *          false, blank or something else - indicate if position is an
    *          alignment column or unaligned sequence position
    */
-  public abstract void highlightIn(AlignFrame alf, String sequenceId,
-          String position, String alignedPosition);
+  public void highlightIn(AlignFrame alf, String sequenceId, String position, String alignedPosition);
 
   /**
    * 
@@ -396,7 +368,7 @@ public interface JalviewJSApi
    * @return null or new alignment frame
    */
 
-  public abstract AlignFrame loadAlignment(String text, String title);
+  public AlignFrame loadAlignment(String text, String title);
 
   /**
    * add the given features or annotation to the current alignment
@@ -404,7 +376,7 @@ public interface JalviewJSApi
    * @param annotation
    */
 
-  public abstract void loadAnnotation(String annotation);
+  public void loadAnnotation(String annotation);
 
   /**
    * add the given features or annotation to the given alignment view
@@ -412,8 +384,7 @@ public interface JalviewJSApi
    * @param alf
    * @param annotation
    */
-  public abstract void loadAnnotationFrom(AlignFrame alf,
-          String annotation);
+  public void loadAnnotationFrom(AlignFrame alf, String annotation);
 
   /**
    * parse the given string as a jalview feature or GFF annotation file and
@@ -426,8 +397,7 @@ public interface JalviewJSApi
    *          be parsed from the string.
    */
 
-  public abstract void loadFeatures(String features,
-          boolean autoenabledisplay);
+  public void loadFeatures(String features, boolean autoenabledisplay);
 
   /**
    * parse the given string as a jalview feature or GFF annotation file and
@@ -441,15 +411,13 @@ public interface JalviewJSApi
    *          be parsed from the string.
    * @return true if data parsed as features
    */
-  public abstract boolean loadFeaturesFrom(AlignFrame alf, String features,
-          boolean autoenabledisplay);
+  public boolean loadFeaturesFrom(AlignFrame alf, String features, boolean autoenabledisplay);
 
   public boolean loadScoreFile(String sScoreFile) throws IOException;
 
   public void newFeatureSettings();
 
-  public void newStructureView(PDBEntry pdb, SequenceI[] seqs,
-          String[] chains, DataSourceType protocol);
+  public void newStructureView(PDBEntry pdb, SequenceI[] seqs, String[] chains, DataSourceType protocol);
 
   /**
    * public static method for JalviewJS API to open a PCAPanel without
@@ -474,8 +442,7 @@ public interface JalviewJSApi
    * @return null, or the string "label.you_need_at_least_n_sequences" if number
    *         of sequences selected is inappropriate
    */
-  public Object openTreePanel(AlignFrame af, String treeType,
-          String modelName);
+  public Object openTreePanel(AlignFrame af, String treeType, String modelName);
 
   /// in http://www.jalview.org/examples/jalviewLiteJs.html but missing here
 
@@ -495,8 +462,7 @@ public interface JalviewJSApi
    * @return 'true' if alignment was actually reordered. empty string if
    *         alignment did not contain sequences.
    */
-  public abstract String orderAlignmentBy(AlignFrame alf, String order,
-          String undoName, String sep);
+  public String orderAlignmentBy(AlignFrame alf, String order, String undoName, String sep);
 
   // get a string array from a list
 
@@ -511,7 +477,7 @@ public interface JalviewJSApi
    *         alignment did not contain sequences.
    */
 
-  public abstract String orderBy(String order, String undoName);
+  public String orderBy(String order, String undoName);
 
   /**
    * re-order the current alignment using the given list of sequence IDs
@@ -526,7 +492,7 @@ public interface JalviewJSApi
    *         alignment did not contain sequences.
    */
 
-  public abstract String orderBy(String order, String undoName, String sep);
+  public String orderBy(String order, String undoName, String sep);
 
   /**
    * process commandline arguments after the JavaScript application has started
@@ -534,7 +500,7 @@ public interface JalviewJSApi
    * @param args
    * @return
    */
-  Object parseArguments(String[] args);
+  public Object parseArguments(String[] args);
 
   // public boolean getDefaultParameter(String name, boolean def);
 
@@ -549,8 +515,7 @@ public interface JalviewJSApi
    * @param listener
    *          (may be null);
    */
-  public abstract void removeSelectionListener(AlignFrame af,
-          String listener);
+  public void removeSelectionListener(AlignFrame af, String listener);
 
   // public void setAlignPdbStructures(boolean defaultParameter);
 
@@ -561,8 +526,7 @@ public interface JalviewJSApi
    * @param alf
    * @param leftHandColumn
    */
-  public abstract void scrollViewToColumnIn(AlignFrame alf,
-          String leftHandColumn);
+  public void scrollViewToColumnIn(AlignFrame alf, String leftHandColumn);
 
   /**
    * adjust horizontal/vertical scroll to make the given location the top left
@@ -572,8 +536,7 @@ public interface JalviewJSApi
    * @param topRow
    * @param leftHandColumn
    */
-  public abstract void scrollViewToIn(AlignFrame alf, String topRow,
-          String leftHandColumn);
+  public void scrollViewToIn(AlignFrame alf, String topRow, String leftHandColumn);
 
   /**
    * adjust vertical scroll to make the given row the top one for given view
@@ -581,7 +544,7 @@ public interface JalviewJSApi
    * @param alf
    * @param topRow
    */
-  public abstract void scrollViewToRowIn(AlignFrame alf, String topRow);
+  public void scrollViewToRowIn(AlignFrame alf, String topRow);
 
   /**
    * select regions of the currrent alignment frame
@@ -593,7 +556,7 @@ public interface JalviewJSApi
    *          string
    */
 
-  public abstract void select(String sequenceIds, String columns);
+  public void select(String sequenceIds, String columns);
 
   /**
    * select regions of the currrent alignment frame
@@ -604,8 +567,7 @@ public interface JalviewJSApi
    *          separator between toselect fields
    */
 
-  public abstract void select(String sequenceIds, String columns,
-          String sep);
+  public void select(String sequenceIds, String columns, String sep);
 
   /**
    * select regions of the given alignment frame
@@ -616,8 +578,7 @@ public interface JalviewJSApi
    * @param sep
    *          separator between toselect fields
    */
-  public abstract void selectIn(AlignFrame alf, String sequenceIds,
-          String columns);
+  public void selectIn(AlignFrame alf, String sequenceIds, String columns);
 
   /**
    * select regions of the given alignment frame
@@ -628,12 +589,11 @@ public interface JalviewJSApi
    * @param sep
    *          separator between toselect fields
    */
-  public abstract void selectIn(AlignFrame alf, String sequenceIds,
-          String columns, String sep);
+  public void selectIn(AlignFrame alf, String sequenceIds, String columns, String sep);
 
   public String[] separatorListToArray(String list);
 
-  public abstract void setFeatureGroupState(String groups, boolean state);
+  public void setFeatureGroupState(String groups, boolean state);
 
   public void setFeatureGroupState(String[] groups, boolean state);
 
@@ -648,10 +608,9 @@ public interface JalviewJSApi
    * @see jalview.appletgui.AlignFrame#setFeatureGroupState(java.lang.String[],
    *      boolean);
    */
-  public abstract void setFeatureGroupStateOn(AlignFrame alf, String groups,
-          boolean state);
+  public void setFeatureGroupStateOn(AlignFrame alf, String groups, boolean state);
 
-  public abstract void setSelectionListener(AlignFrame af, String listener);
+  public void setSelectionListener(AlignFrame af, String listener);
 
   /**
    * register a javascript function to handle any alignment selection events.
@@ -666,7 +625,7 @@ public interface JalviewJSApi
    *          single number or hyphenated range); that were selected);]
    */
 
-  public abstract void setSelectionListener(String listener);
+  public void setSelectionListener(String listener);
 
   /**
    * List separator string
@@ -675,9 +634,9 @@ public interface JalviewJSApi
    *          the separator to set. empty string will reset separator to default
    */
 
-  public abstract void setSeparator(String separator);
+  public void setSeparator(String separator);
 
-  void showOverview();
+  public void showOverview();
 
   public void updateForAnnotations();