JAL-3551 copy Jalview features to Pymol 'p' (with pull refactoring)
[jalview.git] / src / jalview / structure / StructureCommandsI.java
index 8725b3d..871d84b 100644 (file)
@@ -1,12 +1,12 @@
 package jalview.structure;
 
-import jalview.api.AlignmentViewPanel;
-import jalview.datamodel.SequenceI;
-
 import java.awt.Color;
 import java.util.List;
 import java.util.Map;
 
+import jalview.api.AlignmentViewPanel;
+import jalview.datamodel.SequenceI;
+
 /**
  * Methods that generate commands that can be sent to a molecular structure
  * viewer program (e.g. Jmol, Chimera, ChimeraX)
@@ -82,20 +82,6 @@ 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
    * {@code refAtoms}. If wanted, this may include commands to visually
@@ -162,4 +148,16 @@ 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);
 }