JAL-3518 pull up [get|list]ResidueAttributes to StructureCommandsI
[jalview.git] / src / jalview / ext / rbvi / chimera / ChimeraCommands.java
index 857dbcc..43cdeb1 100644 (file)
@@ -40,12 +40,21 @@ import jalview.util.ColorUtils;
  */
 public class ChimeraCommands extends StructureCommandsBase
 {
+  // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/focus.html
+  private static final StructureCommand FOCUS_VIEW = new StructureCommand("focus");
+
+  // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/listen.html#listresattr
+  private static final StructureCommand LIST_RESIDUE_ATTRIBUTES = new StructureCommand("list resattr");
+
+  // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/stop.html
   private static final StructureCommand CLOSE_CHIMERA = new StructureCommand("stop really");
 
+  // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/listen.html
   private static final StructureCommand STOP_NOTIFY_SELECTION = new StructureCommand("listen stop selection");
 
   private static final StructureCommand STOP_NOTIFY_MODELS = new StructureCommand("listen stop models");
 
+  // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/listen.html#listselection
   private static final StructureCommand GET_SELECTION = new StructureCommand("list selection level residue");
 
   private static final StructureCommand SHOW_BACKBONE = new StructureCommand(
@@ -54,6 +63,7 @@ public class ChimeraCommands extends StructureCommandsBase
   private static final StructureCommandI COLOUR_BY_CHARGE = new StructureCommand(
           "color white;color red ::ASP,GLU;color blue ::LYS,ARG;color yellow ::CYS");
 
+  // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/rainbow.html
   private static final StructureCommandI COLOUR_BY_CHAIN = new StructureCommand(
           "rainbow chain");
 
@@ -207,8 +217,7 @@ public class ChimeraCommands extends StructureCommandsBase
   @Override
   public StructureCommandI focusView()
   {
-    // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/focus.html
-    return new StructureCommand("focus");
+    return FOCUS_VIEW;
   }
 
   @Override
@@ -417,7 +426,6 @@ public class ChimeraCommands extends StructureCommandsBase
   @Override
   public StructureCommandI closeViewer()
   {
-    // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/stop.html
     return CLOSE_CHIMERA;
   }
 
@@ -434,7 +442,6 @@ public class ChimeraCommands extends StructureCommandsBase
   @Override
   public List<StructureCommandI> stopNotifications()
   {
-    // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/listen.html
     List<StructureCommandI> cmds = new ArrayList<>();
     cmds.add(STOP_NOTIFY_MODELS);
     cmds.add(STOP_NOTIFY_SELECTION);
@@ -447,4 +454,20 @@ public class ChimeraCommands extends StructureCommandsBase
     return GET_SELECTION;
   }
 
+  @Override
+  public StructureCommandI listResidueAttributes()
+  {
+    return LIST_RESIDUE_ATTRIBUTES;
+  }
+
+  @Override
+  public StructureCommandI getResidueAttributes(String attName)
+  {
+    // this alternative command
+    // list residues spec ':*/attName' attr attName
+    // doesn't report 'None' values (which is good), but
+    // fails for 'average.bfactor' (which is bad):
+    return new StructureCommand("list residues attr '" + attName + "'");
+  }
+
 }