JAL-3438 spotless for 2.11.2.0
[jalview.git] / src / jalview / ext / rbvi / chimera / ChimeraCommands.java
index ced22fa..d3dd625 100644 (file)
@@ -20,6 +20,8 @@
  */
 package jalview.ext.rbvi.chimera;
 
+import java.util.Locale;
+
 import java.awt.Color;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -30,6 +32,7 @@ import jalview.structure.AtomSpecModel;
 import jalview.structure.StructureCommand;
 import jalview.structure.StructureCommandI;
 import jalview.structure.StructureCommandsBase;
+import jalview.structure.StructureCommandsI.AtomSpecType;
 import jalview.util.ColorUtils;
 
 /**
@@ -41,21 +44,27 @@ 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");
+  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");
+  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");
+  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_SELECTION = new StructureCommand(
+          "listen stop selection");
 
-  private static final StructureCommand STOP_NOTIFY_MODELS = new StructureCommand("listen stop models");
+  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 GET_SELECTION = new StructureCommand(
+          "list selection level residue");
 
   private static final StructureCommand SHOW_BACKBONE = new StructureCommand(
           "~display all;~ribbon;chain @CA|P");
@@ -153,13 +162,12 @@ public class ChimeraCommands extends StructureCommandsBase
    * @return
    */
   protected StructureCommandI setAttribute(String attributeName,
-          String attributeValue,
-          AtomSpecModel atomSpecModel)
+          String attributeValue, AtomSpecModel atomSpecModel)
   {
     StringBuilder sb = new StringBuilder(128);
     sb.append("setattr res ").append(attributeName).append(" '")
             .append(attributeValue).append("' ");
-    sb.append(getAtomSpec(atomSpecModel, false));
+    sb.append(getAtomSpec(atomSpecModel, AtomSpecType.RESIDUE_ONLY));
     return new StructureCommand(sb.toString());
   }
 
@@ -181,7 +189,7 @@ public class ChimeraCommands extends StructureCommandsBase
      * Chimera treats an attribute name ending in 'color' as colour-valued;
      * Jalview doesn't, so prevent this by appending an underscore
      */
-    if (attName.toUpperCase().endsWith("COLOR"))
+    if (attName.toUpperCase(Locale.ROOT).endsWith("COLOR"))
     {
       attName += "_";
     }
@@ -257,7 +265,7 @@ public class ChimeraCommands extends StructureCommandsBase
 
   @Override
   public List<StructureCommandI> superposeStructures(AtomSpecModel ref,
-          AtomSpecModel spec)
+          AtomSpecModel spec, AtomSpecType backbone)
   {
     /*
      * Form Chimera match command to match spec to ref
@@ -268,15 +276,16 @@ public class ChimeraCommands extends StructureCommandsBase
      * @see https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/midas/match.html
      */
     StringBuilder cmd = new StringBuilder();
-    String atomSpecAlphaOnly = getAtomSpec(spec, true);
-    String refSpecAlphaOnly = getAtomSpec(ref, true);
-    cmd.append("match ").append(atomSpecAlphaOnly).append(" ").append(refSpecAlphaOnly);
+    String atomSpecAlphaOnly = getAtomSpec(spec, backbone);
+    String refSpecAlphaOnly = getAtomSpec(ref, backbone);
+    cmd.append("match ").append(atomSpecAlphaOnly).append(" ")
+            .append(refSpecAlphaOnly);
 
     /*
      * show superposed residues as ribbon
      */
-    String atomSpec = getAtomSpec(spec, false);
-    String refSpec = getAtomSpec(ref, false);
+    String atomSpec = getAtomSpec(spec, AtomSpecType.RESIDUE_ONLY);
+    String refSpec = getAtomSpec(ref, AtomSpecType.RESIDUE_ONLY);
     cmd.append("; ribbon ");
     cmd.append(atomSpec).append("|").append(refSpec).append("; focus");
 
@@ -317,12 +326,12 @@ public class ChimeraCommands extends StructureCommandsBase
    * <pre>
    * 
    * @param model
-   * @param alphaOnly
+   * @param specType
    * @return
    * @see https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/frameatom_spec.html
    */
   @Override
-  public String getAtomSpec(AtomSpecModel atomSpec, boolean alphaOnly)
+  public String getAtomSpec(AtomSpecModel atomSpec, AtomSpecType specType)
   {
     StringBuilder sb = new StringBuilder(128);
     boolean firstModel = true;
@@ -333,7 +342,7 @@ public class ChimeraCommands extends StructureCommandsBase
         sb.append("|");
       }
       firstModel = false;
-      appendModel(sb, model, atomSpec, alphaOnly);
+      appendModel(sb, model, atomSpec, specType);
     }
     return sb.toString();
   }
@@ -347,7 +356,7 @@ public class ChimeraCommands extends StructureCommandsBase
    * @param alphaOnly
    */
   protected void appendModel(StringBuilder sb, String model,
-          AtomSpecModel atomSpec, boolean alphaOnly)
+          AtomSpecModel atomSpec, AtomSpecType specType)
   {
     sb.append("#").append(model).append(":");
 
@@ -365,15 +374,18 @@ public class ChimeraCommands extends StructureCommandsBase
         firstPositionForModel = false;
       }
     }
-    if (alphaOnly)
+    if (specType == AtomSpecType.ALPHA)
     {
       /*
        * restrict to alpha carbon, no alternative locations
        * (needed to ensuring matching atom counts for superposition)
        */
-      // TODO @P instead if RNA - add nucleotide flag to AtomSpecModel?
       sb.append("@CA").append(NO_ALTLOCS);
     }
+    if (specType == AtomSpecType.PHOSPHATE)
+    {
+      sb.append("@P").append(NO_ALTLOCS);
+    }
   }
 
   @Override
@@ -408,7 +420,8 @@ public class ChimeraCommands extends StructureCommandsBase
     // https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/listen.html
     List<StructureCommandI> cmds = new ArrayList<>();
     cmds.add(new StructureCommand("listen start models url " + uri));
-    cmds.add(new StructureCommand("listen start select prefix SelectionChanged url " + uri));
+    cmds.add(new StructureCommand(
+            "listen start select prefix SelectionChanged url " + uri));
     return cmds;
   }