X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fapi%2Fstructures%2FJalviewStructureDisplayI.java;h=a27cec6ea3502e7c2afc3a20eab800f102e6e5e8;hb=e06ef51ba3dd8cdae7632d71db162ff416b88256;hp=e37f46710329352d7dd0b94c2462ecb73f6b5339;hpb=ecfc49bc5a7e416c0f967677651923993f105dd8;p=jalview.git diff --git a/src/jalview/api/structures/JalviewStructureDisplayI.java b/src/jalview/api/structures/JalviewStructureDisplayI.java index e37f467..a27cec6 100644 --- a/src/jalview/api/structures/JalviewStructureDisplayI.java +++ b/src/jalview/api/structures/JalviewStructureDisplayI.java @@ -1,39 +1,92 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.api.structures; -import jalview.api.FeatureRenderer; -import jalview.api.SequenceRenderer; -import jalview.api.SequenceStructureBinding; -import jalview.datamodel.AlignmentI; +import jalview.api.AlignmentViewPanel; +import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; -import jalview.ext.jmol.JalviewJmolBinding; -import jalview.structure.StructureMappingcommandSet; -import jalview.structure.StructureSelectionManager; +import jalview.schemes.ColourSchemeI; +import jalview.structures.models.AAStructureBindingModel; public interface JalviewStructureDisplayI { - SequenceStructureBinding getBinding(); + AAStructureBindingModel getBinding(); /** - * @return true if there is an active GUI handling a structure display + * @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 + * 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 + * 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 + * Shutdown any Jalview structure viewing processes started by this display + * + * @param closeExternalViewer + * if true, force close any linked external viewer process */ - void closeViewer(); + void closeViewer(boolean closeExternalViewer); + /** + * apply a colourscheme to the structures in the viewer + * + * @param colourScheme + */ + void setJalviewColourScheme(ColourSchemeI colourScheme); + + /** + * + * @return true if all background sequence/structure binding threads have + * completed for this viewer instance + */ + boolean hasMapping(); + + // construction method - move to another interface ? + boolean addAlreadyLoadedFile(SequenceI[] seq, String[] chains, + AlignmentViewPanel apanel, String pdbId); + + // construction method - move to another interface ? + boolean addToExistingViewer(PDBEntry pdbentry, SequenceI[] seq, + String[] chains, AlignmentViewPanel apanel, String pdbId); + + /** + * refresh GUI after reconfiguring structure(s) and alignment panels + */ + void updateTitleAndMenus(); + + boolean isAlignAddedStructures(); + + void setAlignAddedStructures(boolean alignAdded); }