X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fstructure%2FStructureCommandsI.java;h=b1e1486f4e6d3b9af9842454041f68b91f34cc66;hb=e281f3fc527a483dc69787f9a04bf84e50527e9d;hp=5a0db0a98446cd1c55568a4ffc15e8958194417f;hpb=7720585dc8cc56cdad2486b330ed37ddd0133531;p=jalview.git diff --git a/src/jalview/structure/StructureCommandsI.java b/src/jalview/structure/StructureCommandsI.java index 5a0db0a..b1e1486 100644 --- a/src/jalview/structure/StructureCommandsI.java +++ b/src/jalview/structure/StructureCommandsI.java @@ -1,3 +1,23 @@ +/* + * 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.structure; import java.awt.Color; @@ -86,10 +106,12 @@ public interface StructureCommandsI * * @param refAtoms * @param atomSpec + * @param backbone + * - superpose based on which kind of atomType * @return */ List superposeStructures(AtomSpecModel refAtoms, - AtomSpecModel atomSpec); + AtomSpecModel atomSpec, AtomSpecType backbone); /** * Returns a command to open a file of commands at the given path @@ -108,16 +130,21 @@ public interface StructureCommandsI */ StructureCommandI saveSession(String filepath); + enum AtomSpecType + { + RESIDUE_ONLY, ALPHA, PHOSPHATE + }; + /** * Returns a representation of the atom set represented by the model, in * viewer syntax format. If {@code alphaOnly} is true, this is restricted to * Alpha Carbon (peptide) or Phosphorous (rna) only * * @param model - * @param alphaOnly + * @param specType * @return */ - String getAtomSpec(AtomSpecModel model, boolean alphaOnly); + String getAtomSpec(AtomSpecModel model, AtomSpecType specType); /** * Returns the lowest model number used by the structure viewer (likely 0 or @@ -166,4 +193,65 @@ public interface StructureCommandsI * @return */ StructureCommandI openSession(String filepath); + + /** + * Returns command to restore a previously saved version of an existing structure viewer session file. + * Default implementation calls 'openSession' + * @param filePath + * @return + */ + StructureCommandI restoreSession(String filePath); + + + /** + * Returns a command to ask the viewer to close down + * + * @return + */ + StructureCommandI closeViewer(); + + /** + * Returns one or more commands to ask the viewer to notify model or selection + * changes to the given uri. Returns null if this is not supported by the + * structure viewer. + * + * @param uri + * @return + */ + List startNotifications(String uri); + + /** + * Returns one or more commands to ask the viewer to stop notifying model or + * selection changes. Returns null if this is not supported by the structure + * viewer. + * + * @return + */ + List stopNotifications(); + + /** + * Returns a command to ask the viewer for its current residue selection, or + * null if no such command is supported + * + * @return + */ + StructureCommandI getSelectedResidues(); + + /** + * Returns a command to list the unique names of residue attributes, or null + * if no such command is supported + * + * @return + */ + StructureCommandI listResidueAttributes(); + + /** + * Returns a command to list residues with an attribute of the given name, + * with attribute value, or null if no such command is supported + * + * @return + */ + StructureCommandI getResidueAttributes(String attName); + + List centerViewOn(List residues); }