JAL-1333 JAL-1527 refactors to create core structure viewer binding architecture...
[jalview.git] / src / jalview / api / structures / JalviewStructureDisplayI.java
diff --git a/src/jalview/api/structures/JalviewStructureDisplayI.java b/src/jalview/api/structures/JalviewStructureDisplayI.java
new file mode 100644 (file)
index 0000000..e37f467
--- /dev/null
@@ -0,0 +1,39 @@
+package jalview.api.structures;
+
+import jalview.api.FeatureRenderer;
+import jalview.api.SequenceRenderer;
+import jalview.api.SequenceStructureBinding;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SequenceI;
+import jalview.ext.jmol.JalviewJmolBinding;
+import jalview.structure.StructureMappingcommandSet;
+import jalview.structure.StructureSelectionManager;
+
+public interface JalviewStructureDisplayI
+{
+
+  SequenceStructureBinding getBinding();
+
+  /**
+   * @return true if there is an active GUI handling a structure display 
+   */
+  boolean isVisible();
+
+  /**
+   * enable or disable the structure display - note this might just hide or show a GUI element, but not actually reset the display
+   * @param b
+   */
+  void setVisible(boolean b);
+
+  /**
+   * free up any external resources that were used by this display and collect garbage
+   */
+  void dispose();
+
+  /**
+   * shutdown any structure viewing processes started by this display
+   */
+  void closeViewer();
+
+
+}