JAL-2422 pull-up refactoring of structure commands (continued)
[jalview.git] / src / jalview / structure / StructureCommandsI.java
diff --git a/src/jalview/structure/StructureCommandsI.java b/src/jalview/structure/StructureCommandsI.java
new file mode 100644 (file)
index 0000000..a5a419c
--- /dev/null
@@ -0,0 +1,90 @@
+package jalview.structure;
+
+import jalview.api.AlignmentViewPanel;
+import jalview.api.SequenceRenderer;
+import jalview.datamodel.SequenceI;
+
+import java.awt.Color;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Methods that generate commands that can be sent to a molecular structure
+ * viewer program (e.g. Jmol, Chimera, ChimeraX)
+ * 
+ * @author gmcarstairs
+ *
+ */
+public interface StructureCommandsI
+{
+
+  /**
+   * Returns the command to colour by chain
+   * 
+   * @return
+   */
+  String colourByChain();
+
+  /**
+   * Returns the command to colour residues using a charge-based scheme:
+   * <ul>
+   * <li>Aspartic acid and Glutamic acid (negative charge) red</li>
+   * <li>Lysine and Arginine (positive charge) blue</li>
+   * <li>Cysteine - yellow</li>
+   * <li>all others - white</li>
+   * </ul>
+   * 
+   * @return
+   */
+  String colourByCharge();
+
+  /**
+   * Returns the command to colour residues with the colours provided in the
+   * map, one per three letter residue code
+   * 
+   * @param colours
+   * @return
+   */
+  String colourByResidues(Map<String, Color> colours);
+
+  /**
+   * Returns the command to set the background colour of the structure viewer
+   * 
+   * @param col
+   * @return
+   */
+  String setBackgroundColour(Color col);
+
+  /**
+   * Returns commands to colour mapped residues of structures according to
+   * Jalview's colouring (including feature colouring if applied)
+   * 
+   * @param structureSelectionManager
+   * @param files
+   * @param seqs
+   * @param sr
+   * @param alignmentv
+   * @return
+   */
+  String[] colourBySequence(
+          StructureSelectionManager structureSelectionManager,
+          String[] files, SequenceI[][] seqs, SequenceRenderer sr,
+          AlignmentViewPanel alignmentv);
+
+  /**
+   * Returns a command to centre the display in the structure viewer
+   * 
+   * @return
+   */
+  String focusView();
+
+  /**
+   * Returns a command to show only the selected chains. The items in the input
+   * list should be formatted as "modelno:chainid".
+   * 
+   * @param toShow
+   * @return
+   */
+  String showChains(List<String> toShow);
+
+}