JAL-3518 basic refactoring / pull up of superposeStructures; to tidy!
[jalview.git] / src / jalview / gui / JalviewChimeraXBindingModel.java
1 package jalview.gui;
2
3 import jalview.datamodel.PDBEntry;
4 import jalview.datamodel.SequenceI;
5 import jalview.ext.rbvi.chimera.ChimeraXCommands;
6 import jalview.gui.StructureViewer.ViewerType;
7 import jalview.io.DataSourceType;
8 import jalview.structure.StructureSelectionManager;
9
10 import java.util.List;
11
12 import ext.edu.ucsf.rbvi.strucviz2.ChimeraModel;
13 import ext.edu.ucsf.rbvi.strucviz2.StructureManager;
14 import ext.edu.ucsf.rbvi.strucviz2.StructureManager.ModelType;
15
16 public class JalviewChimeraXBindingModel extends JalviewChimeraBindingModel
17 {
18
19   public JalviewChimeraXBindingModel(ChimeraViewFrame chimeraViewFrame,
20           StructureSelectionManager ssm, PDBEntry[] pdbentry,
21           SequenceI[][] sequenceIs, DataSourceType protocol)
22   {
23     super(chimeraViewFrame, ssm, pdbentry, sequenceIs, protocol);
24     setStructureCommands(new ChimeraXCommands());
25   }
26
27   @Override
28   protected List<String> getChimeraPaths()
29   {
30     return StructureManager.getChimeraPaths(true);
31   }
32
33   @Override
34   protected void addChimeraModel(PDBEntry pe,
35           List<ChimeraModel> modelsToMap)
36   {
37     /*
38      * ChimeraX hack: force chimera model name to pdbId here
39      */
40     int modelNumber = chimeraMaps.size() + 1;
41     String command = "setattr #" + modelNumber + " models name "
42             + pe.getId();
43     executeCommand(command, false);
44     modelsToMap.add(new ChimeraModel(pe.getId(), ModelType.PDB_MODEL,
45             modelNumber, 0));
46   }
47
48   /**
49    * {@inheritDoc}
50    * 
51    * @return
52    */
53   @Override
54   protected String getCommandFileExtension()
55   {
56     return ".cxc";
57   }
58
59   /**
60    * Returns the file extension to use for a saved viewer session file
61    * 
62    * @return
63    */
64   @Override
65   public String getSessionFileExtension()
66   {
67     return ".cxs";
68   }
69
70   @Override
71   public String getHelpURL()
72   {
73     return "http://www.rbvi.ucsf.edu/chimerax/docs/user/index.html";
74   }
75
76   @Override
77   protected ViewerType getViewerType()
78   {
79     return ViewerType.CHIMERAX;
80   }
81
82 }