JAL-3753 Resources seen in tests and appropriate filters now being used as file opt...
[jalview.git] / src / jalview / structure / StructureCommandsI.java
index 0934488..91e0494 100644 (file)
@@ -1,8 +1,5 @@
 package jalview.structure;
 
-import jalview.api.AlignmentViewPanel;
-import jalview.datamodel.SequenceI;
-
 import java.awt.Color;
 import java.util.List;
 import java.util.Map;
@@ -82,24 +79,10 @@ public interface StructureCommandsI
   List<StructureCommandI> showChains(List<String> toShow);
 
   /**
-   * Returns zero, one or more commands to set attributes on mapped residues in
-   * the structure viewer for any features present and displayed in Jalview
-   * 
-   * @param ssm
-   * @param files
-   * @param sequence
-   * @param avp
-   * @return
-   */
-  List<StructureCommandI> setAttributesForFeatures(
-          StructureSelectionManager ssm,
-          String[] files, SequenceI[][] sequence, AlignmentViewPanel avp);
-
-  /**
    * Returns a command to superpose structures by closest positioning of
-   * residues in {@code atomSpec} to the corresponding residues in {@ refAtoms}.
-   * If wanted, this may include commands to visually highlight the residues
-   * that were used for the superposition.
+   * residues in {@code atomSpec} to the corresponding residues in
+   * {@code refAtoms}. If wanted, this may include commands to visually
+   * highlight the residues that were used for the superposition.
    * 
    * @param refAtoms
    * @param atomSpec
@@ -162,4 +145,75 @@ public interface StructureCommandsI
    */
   // refactor if needed to distinguish loading data or session files
   StructureCommandI loadFile(String file);
+
+  /**
+   * Returns commands to set atom attributes or properties, given a map of
+   * Jalview features as {featureType, {featureValue, AtomSpecModel}}. The
+   * assumption is that one command can be constructed for each feature type and
+   * value combination, to apply it to one or more residues.
+   * 
+   * @param featureValues
+   * @return
+   */
+  List<StructureCommandI> setAttributes(
+          Map<String, Map<Object, AtomSpecModel>> featureValues);
+
+  /**
+   * Returns command to open a saved structure viewer session file, or null if
+   * not supported
+   * 
+   * @param filepath
+   * @return
+   */
+  StructureCommandI openSession(String filepath);
+
+  /**
+   * Returns a command to ask the viewer to close down
+   * 
+   * @return
+   */
+  StructureCommandI closeViewer();
+
+  /**
+   * Returns one or more commands to ask the viewer to notify model or selection
+   * changes to the given uri. Returns null if this is not supported by the
+   * structure viewer.
+   * 
+   * @param uri
+   * @return
+   */
+  List<StructureCommandI> startNotifications(String uri);
+
+  /**
+   * Returns one or more commands to ask the viewer to stop notifying model or
+   * selection changes. Returns null if this is not supported by the structure
+   * viewer.
+   * 
+   * @return
+   */
+  List<StructureCommandI> stopNotifications();
+
+  /**
+   * Returns a command to ask the viewer for its current residue selection, or
+   * null if no such command is supported
+   * 
+   * @return
+   */
+  StructureCommandI getSelectedResidues();
+
+  /**
+   * Returns a command to list the unique names of residue attributes, or null
+   * if no such command is supported
+   * 
+   * @return
+   */
+  StructureCommandI listResidueAttributes();
+
+  /**
+   * Returns a command to list residues with an attribute of the given name,
+   * with attribute value, or null if no such command is supported
+   * 
+   * @return
+   */
+  StructureCommandI getResidueAttributes(String attName);
 }