X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FJalviewChimeraXBindingModel.java;h=737e72a740b23e1b1179d1cbe06fe3859887cca3;hb=a5928e2c1b9e2cea8d9c43f3d03f9cce2604f3b2;hp=0779bef30925efad7740c3a4622d75ba88b96f90;hpb=6cb920bb7a7f285a165cd34b3429dabba71f7518;p=jalview.git diff --git a/src/jalview/gui/JalviewChimeraXBindingModel.java b/src/jalview/gui/JalviewChimeraXBindingModel.java index 0779bef..737e72a 100644 --- a/src/jalview/gui/JalviewChimeraXBindingModel.java +++ b/src/jalview/gui/JalviewChimeraXBindingModel.java @@ -1,24 +1,49 @@ +/* + * 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.gui; -import jalview.datamodel.PDBEntry; -import jalview.datamodel.SequenceI; -import jalview.io.DataSourceType; -import jalview.structure.StructureSelectionManager; - import java.util.List; import ext.edu.ucsf.rbvi.strucviz2.ChimeraModel; import ext.edu.ucsf.rbvi.strucviz2.StructureManager; import ext.edu.ucsf.rbvi.strucviz2.StructureManager.ModelType; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.SequenceI; +import jalview.ext.rbvi.chimera.ChimeraXCommands; +import jalview.gui.StructureViewer.ViewerType; +import jalview.io.DataSourceType; +import jalview.structure.AtomSpec; +import jalview.structure.StructureCommand; +import jalview.structure.StructureSelectionManager; public class JalviewChimeraXBindingModel extends JalviewChimeraBindingModel { + public static final String CHIMERAX_SESSION_EXTENSION = ".cxs"; public JalviewChimeraXBindingModel(ChimeraViewFrame chimeraViewFrame, StructureSelectionManager ssm, PDBEntry[] pdbentry, SequenceI[][] sequenceIs, DataSourceType protocol) { super(chimeraViewFrame, ssm, pdbentry, sequenceIs, protocol); + setStructureCommands(new ChimeraXCommands()); } @Override @@ -37,7 +62,7 @@ public class JalviewChimeraXBindingModel extends JalviewChimeraBindingModel int modelNumber = chimeraMaps.size() + 1; String command = "setattr #" + modelNumber + " models name " + pe.getId(); - executeCommand(command, false); + executeCommand(new StructureCommand(command), false); modelsToMap.add(new ChimeraModel(pe.getId(), ModelType.PDB_MODEL, modelNumber, 0)); } @@ -54,40 +79,46 @@ public class JalviewChimeraXBindingModel extends JalviewChimeraBindingModel } /** - * {@inheritDoc} + * Returns the file extension to use for a saved viewer session file (.cxs) * * @return + * @see https://www.cgl.ucsf.edu/chimerax/docs/user/commands/save.html#sesformat */ @Override - protected String getOpenCommandFileCommand(String path) + public String getSessionFileExtension() { - return "open " + path; + return CHIMERAX_SESSION_EXTENSION; } - /** - * {@inheritDoc} - */ @Override - protected String getSaveSessionCommand(String filepath) + public String getHelpURL() { - return "save session " + filepath; + return "http://www.rbvi.ucsf.edu/chimerax/docs/user/index.html"; } - /** - * Returns the file extension to use for a saved viewer session file - * - * @return - */ @Override - public String getSessionFileExtension() + protected ViewerType getViewerType() { - return ".cxs"; + return ViewerType.CHIMERAX; } @Override - public String getHelpURL() + protected String getModelId(int pdbfnum, String file) { - return "http://www.rbvi.ucsf.edu/chimerax/docs/user/index.html"; + return String.valueOf(pdbfnum + 1); + } + + /** + * Returns a model of the structure positions described by the ChimeraX format + * atomspec + * + * @param atomSpec + * @return + */ + @Override + protected AtomSpec parseAtomSpec(String atomSpec) + { + return AtomSpec.fromChimeraXAtomspec(atomSpec); } }