package jalview.ext.rbvi.chimera;
import java.awt.Color;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
*/
public class ChimeraXCommands extends ChimeraCommands
{
+ private static final StructureCommand CLOSE_CHIMERAX = new StructureCommand("exit");
+
+ private static final StructureCommand STOP_NOTIFY_SELECTION = new StructureCommand("info notify stop selection jalview");
+
+ private static final StructureCommand STOP_NOTIFY_MODELS = new StructureCommand("info notify stop models jalview");
+
+ private static final StructureCommand GET_SELECTION = new StructureCommand("info selection level residue");
+
private static final StructureCommand SHOW_BACKBONE = new StructureCommand(
"~display all;~ribbon;show @CA|P atoms");
}
@Override
- public StructureCommandI setBackgroundColour(Color col)
- {
- // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/set.html
- return new StructureCommand("set bgColor " + ColorUtils.toTkCode(col));
- }
-
- @Override
public StructureCommandI colourResidues(String atomSpec, Color colour)
{
// https://www.cgl.ucsf.edu/chimerax/docs/user/commands/color.html
public StructureCommandI openSession(String filepath)
{
// https://www.cgl.ucsf.edu/chimerax/docs/user/commands/open.html#composite
+ // this version of the command has no dependency on file extension
return new StructureCommand("open " + filepath + " format session");
}
+
+ @Override
+ public StructureCommandI closeViewer()
+ {
+ // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/exit.html
+ return CLOSE_CHIMERAX;
+ }
+
+ @Override
+ public List<StructureCommandI> startNotifications(String uri)
+ {
+ // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/info.html#notify
+ List<StructureCommandI> cmds = new ArrayList<>();
+ cmds.add(new StructureCommand("info notify start models prefix ModelChanged jalview url " + uri));
+ cmds.add(new StructureCommand("info notify start selection jalview prefix SelectionChanged url " + uri));
+ return cmds;
+ }
+
+ @Override
+ public List<StructureCommandI> stopNotifications()
+ {
+ // https://www.cgl.ucsf.edu/chimerax/docs/user/commands/info.html#notify
+ List<StructureCommandI> cmds = new ArrayList<>();
+ cmds.add(STOP_NOTIFY_MODELS);
+ cmds.add(STOP_NOTIFY_SELECTION);
+ return cmds;
+ }
+
+ @Override
+ public StructureCommandI getSelectedResidues()
+ {
+ return GET_SELECTION;
+ }
}