JAL-3518 more extraction of ChimeraX commands as overrides
[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.io.DataSourceType;
6 import jalview.structure.StructureSelectionManager;
7
8 import java.util.List;
9
10 import ext.edu.ucsf.rbvi.strucviz2.ChimeraModel;
11 import ext.edu.ucsf.rbvi.strucviz2.StructureManager;
12 import ext.edu.ucsf.rbvi.strucviz2.StructureManager.ModelType;
13
14 public class JalviewChimeraXBindingModel extends JalviewChimeraBindingModel
15 {
16
17   public JalviewChimeraXBindingModel(ChimeraViewFrame chimeraViewFrame,
18           StructureSelectionManager ssm, PDBEntry[] pdbentry,
19           SequenceI[][] sequenceIs, DataSourceType protocol)
20   {
21     super(chimeraViewFrame, ssm, pdbentry, sequenceIs, protocol);
22   }
23
24   @Override
25   protected List<String> getChimeraPaths()
26   {
27     return StructureManager.getChimeraPaths(true);
28   }
29
30   @Override
31   protected void addChimeraModel(PDBEntry pe,
32           List<ChimeraModel> modelsToMap)
33   {
34     /*
35      * ChimeraX hack: force chimera model name to pdbId here
36      */
37     int modelNumber = chimeraMaps.size() + 1;
38     String command = "setattr #" + modelNumber + " models name "
39             + pe.getId();
40     executeCommand(command, false);
41     modelsToMap.add(new ChimeraModel(pe.getId(), ModelType.PDB_MODEL,
42             modelNumber, 0));
43   }
44
45   /**
46    * {@inheritDoc}
47    * 
48    * @return
49    */
50   @Override
51   protected String getCommandFileExtension()
52   {
53     return ".cxc";
54   }
55
56   /**
57    * {@inheritDoc}
58    * 
59    * @return
60    */
61   @Override
62   protected String getOpenCommandFileCommand(String path)
63   {
64     return "open " + path;
65   }
66
67   /**
68    * {@inheritDoc}
69    */
70   @Override
71   protected String getSaveSessionCommand(String filepath)
72   {
73     return "save session " + filepath;
74   }
75
76   /**
77    * Returns the file extension to use for a saved viewer session file
78    * 
79    * @return
80    */
81   @Override
82   public String getSessionFileExtension()
83   {
84     return ".cxs";
85   }
86
87   @Override
88   public String getHelpURL()
89   {
90     return "http://www.rbvi.ucsf.edu/chimerax/docs/user/index.html";
91   }
92
93 }