JAL-3551 working proof of concept of Jalview driving PyMOL
[jalview.git] / src / jalview / structure / StructureCommandsI.java
index 359eac6..0934488 100644 (file)
@@ -17,47 +17,11 @@ import java.util.Map;
 public interface StructureCommandsI
 {
   /**
-   * Data bean class to simplify parameterisation in superposeStructures
-   */
-  public class SuperposeData
-  {
-    public String filename;
-
-    public String pdbId;
-
-    public String chain = "";
-
-    public boolean isRna;
-
-    /*
-     * The pdb residue number (if any) mapped to columns of the alignment
-     */
-    public int[] pdbResNo; // or use SparseIntArray?
-
-    public int modelNo;
-
-    /**
-     * Constructor
-     * 
-     * @param width
-     *          width of alignment (number of columns that may potentially
-     *          participate in superposition)
-     * @param model
-     *          structure viewer model number
-     */
-    public SuperposeData(int width, int model)
-    {
-      pdbResNo = new int[width];
-      modelNo = model;
-    }
-  }
-
-  /**
    * Returns the command to colour by chain
    * 
    * @return
    */
-  String colourByChain();
+  StructureCommandI colourByChain();
 
   /**
    * Returns the command to colour residues using a charge-based scheme:
@@ -70,7 +34,7 @@ public interface StructureCommandsI
    * 
    * @return
    */
-  String colourByCharge();
+  List<StructureCommandI> colourByCharge();
 
   /**
    * Returns the command to colour residues with the colours provided in the
@@ -79,7 +43,7 @@ public interface StructureCommandsI
    * @param colours
    * @return
    */
-  String colourByResidues(Map<String, Color> colours);
+  List<StructureCommandI> colourByResidues(Map<String, Color> colours);
 
   /**
    * Returns the command to set the background colour of the structure viewer
@@ -87,7 +51,7 @@ public interface StructureCommandsI
    * @param col
    * @return
    */
-  String setBackgroundColour(Color col);
+  StructureCommandI setBackgroundColour(Color col);
 
   /**
    * Returns commands to colour mapped residues of structures according to
@@ -98,23 +62,24 @@ public interface StructureCommandsI
    * @return
    */
 
-  String[] colourBySequence(Map<Object, AtomSpecModel> colourMap);
+  List<StructureCommandI> colourBySequence(
+          Map<Object, AtomSpecModel> colourMap);
 
   /**
    * Returns a command to centre the display in the structure viewer
    * 
    * @return
    */
-  String focusView();
+  StructureCommandI focusView();
 
   /**
    * Returns a command to show only the selected chains. The items in the input
-   * list should be formatted as "modelno:chainid".
+   * list should be formatted as "modelid:chainid".
    * 
    * @param toShow
    * @return
    */
-  String showChains(List<String> toShow);
+  List<StructureCommandI> showChains(List<String> toShow);
 
   /**
    * Returns zero, one or more commands to set attributes on mapped residues in
@@ -126,7 +91,8 @@ public interface StructureCommandsI
    * @param avp
    * @return
    */
-  String[] setAttributesForFeatures(StructureSelectionManager ssm,
+  List<StructureCommandI> setAttributesForFeatures(
+          StructureSelectionManager ssm,
           String[] files, SequenceI[][] sequence, AlignmentViewPanel avp);
 
   /**
@@ -139,7 +105,7 @@ public interface StructureCommandsI
    * @param atomSpec
    * @return
    */
-  String superposeStructures(AtomSpecModel refAtoms,
+  List<StructureCommandI> superposeStructures(AtomSpecModel refAtoms,
           AtomSpecModel atomSpec);
 
   /**
@@ -148,7 +114,7 @@ public interface StructureCommandsI
    * @param path
    * @return
    */
-  String openCommandFile(String path);
+  StructureCommandI openCommandFile(String path);
 
   /**
    * Returns a command to save the current viewer session state to the given
@@ -157,7 +123,7 @@ public interface StructureCommandsI
    * @param filepath
    * @return
    */
-  String saveSession(String filepath);
+  StructureCommandI saveSession(String filepath);
 
   /**
    * Returns a representation of the atom set represented by the model, in
@@ -181,9 +147,19 @@ public interface StructureCommandsI
   int getModelStartNo();
 
   /**
-   * Show only the backbone of the peptide (cartoons in Jmol, chain in Chimera)
+   * Returns command(s) to show only the backbone of the peptide (cartoons in
+   * Jmol, chain in Chimera)
+   * 
+   * @return
+   */
+  List<StructureCommandI> showBackbone();
+
+  /**
+   * Returns a command to open a file at the given path
    * 
+   * @param file
    * @return
    */
-  String showBackbone();
+  // refactor if needed to distinguish loading data or session files
+  StructureCommandI loadFile(String file);
 }