/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
- * 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.
*
*/
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
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();
}