JAL-3904 failing test
[jalview.git] / src / jalview / api / structures / JalviewStructureDisplayI.java
index 159ceeb..d0351a8 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1)
- * Copyright (C) 2015 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -20,7 +20,9 @@
  */
 package jalview.api.structures;
 
-import jalview.schemes.ColourSchemeI;
+import jalview.api.AlignmentViewPanel;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
 import jalview.structures.models.AAStructureBindingModel;
 
 public interface JalviewStructureDisplayI
@@ -56,10 +58,113 @@ public interface JalviewStructureDisplayI
   void closeViewer(boolean closeExternalViewer);
 
   /**
-   * apply a colourscheme to the structures in the viewer
    * 
-   * @param colourScheme
+   * @return true if all background sequence/structure binding threads have
+   *         completed for this viewer instance
    */
-  void setJalviewColourScheme(ColourSchemeI colourScheme);
+  boolean hasMapping();
+
+  /**
+   * Checks if the PDB file is already loaded in this viewer, if so just adds
+   * mappings as necessary and answers true, else answers false. This supports
+   * the use case of adding additional chains of the same structure to a viewer.
+   * 
+   * @param seq
+   * @param chains
+   * @param apanel
+   * @param pdbId
+   * @return
+   */
+  boolean addAlreadyLoadedFile(SequenceI[] seq, String[] chains,
+          AlignmentViewPanel apanel, String pdbId);
+
+  /**
+   * Adds one or more chains (sequences) of a PDB structure to this structure
+   * viewer
+   * 
+   * @param pdbentry
+   * @param seq
+   * @param chains
+   * @param apanel
+   * @param pdbId
+   * @return
+   */
+  void addToExistingViewer(PDBEntry pdbentry, SequenceI[] seq,
+          String[] chains, AlignmentViewPanel apanel, String pdbId);
+
+  /**
+   * refresh GUI after reconfiguring structure(s) and alignment panels
+   */
+  void updateTitleAndMenus();
+
+  /**
+   * Answers true if the viewer should attempt to align any added structures,
+   * else false
+   * 
+   * @return
+   */
+  boolean isAlignAddedStructures();
+
+  /**
+   * Sets the flag for whether added structures should be aligned
+   * 
+   * @param alignAdded
+   */
+  void setAlignAddedStructures(boolean alignAdded);
+
+  /**
+   * Raise the panel to the top of the stack...
+   */
+  void raiseViewer();
+
+  AlignmentViewPanel getAlignmentPanel();
+
+  /**
+   * Answers true if the given alignment view is used to colour structures by
+   * sequence, false if not
+   * 
+   * @param ap
+   * @return
+   */
+  boolean isUsedForColourBy(AlignmentViewPanel ap);
+
+  /**
+   * If implemented, shows a command line console in the structure viewer
+   * 
+   * @param show
+   *          true to show, false to hide
+   */
+  void showConsole(boolean show);
+
+  /**
+   * Remove references to the given alignment view for this structure viewer
+   * 
+   * @param avp
+   */
+  void removeAlignmentPanel(AlignmentViewPanel avp);
+
+  /**
+   * Updates the progress bar if there is one. Call stopProgressBar with the
+   * returned handle to remove the message.
+   * 
+   * @param msg
+   * @return handle
+   */
+  long startProgressBar(String msg);
+
+  /**
+   * Ends the progress bar with the specified handle, leaving a message (if not
+   * null) on the status bar
+   * 
+   * @param msg
+   * @param handle
+   */
+  void stopProgressBar(String msg, long handle);
+
+  /**
+   * 
+   * @return true if the actions menu is shown for this viewer
+   */
+  boolean hasViewerActionsMenu();
 
 }