new ajax api methods for linking existing jmol viewers with sequences in an alignframe
[jalview.git] / src / jalview / bin / JalviewLite.java
index 153d4df..338b319 100755 (executable)
@@ -25,6 +25,7 @@ import java.io.BufferedReader;
 import java.io.InputStreamReader;
 import java.util.*;
 
+import jalview.api.SequenceStructureBinding;
 import jalview.appletgui.*;
 import jalview.datamodel.*;
 import jalview.io.*;
@@ -1310,30 +1311,34 @@ public class JalviewLite extends Applet
    * @param alFrame
    * @param pdbFile - pdbFile URI as given via applet's parameters or by addPdb 
    * @param viewer
-   * @return true if instance was bound corectly. 
+   * @return binding for viewer 
    * TODO: consider making an exception structure for indicating when binding fails
    */
-  public boolean addJmolInstance(AlignFrame alFrame, String pdbFile, org.jmol.api.JmolViewer viewer) 
+  public SequenceStructureBinding addJmolInstance(AlignFrame alFrame, String pdbFile, org.jmol.api.JmolViewer viewer) 
   {
     System.err.println("addJmolInstance not yet implemented.");
     /**
      */
+    return null;
+  }
+  /**
+   * bind structures in a viewer to any matching sequences in an alignFrame (use seuqenceIds to limit scope of search to specific sequences)
+   * @param alFrame
+   * @param viewer
+   * @param sequenceIds
+   * @return
+   */
+  public SequenceStructureBinding addJmolInstance(AlignFrame alFrame, org.jmol.api.JmolViewer viewer, String sequenceIds) 
+  {
     if (viewer!=null)
     {
-/*      viewer.getFrameCount
-    }
-      String alreadyMapped = StructureSelectionManager
-      .getStructureSelectionManager().alreadyMappedToFile(
-              pdbentry.getId());
-MCview.PDBfile reader = null;
-if (alreadyMapped != null)
-{
-reader = StructureSelectionManager.getStructureSelectionManager()
-        .setMapping(seq, chains, pdbentry.getFile(), protocol);
-
-    } */
+      if (sequenceIds!=null && sequenceIds.length()>0)
+      {
+        return alFrame.addJmolInstance(viewer, separatorListToArray(sequenceIds));
+      } else {
+        return alFrame.addJmolInstance(viewer, null);
+      }
     }
-    return false;
+    return null;
   }
-
 }