JAL-4307 View->Ligands submenu, implementation for Jmol and documentation
[jalview.git] / src / jalview / ext / jmol / JmolCommands.java
index 58b69ef..106d458 100644 (file)
@@ -40,7 +40,6 @@ import jalview.structure.StructureCommandI;
 import jalview.structure.StructureCommandsBase;
 import jalview.structure.StructureMapping;
 import jalview.structure.StructureSelectionManager;
-import jalview.structure.StructureCommandsI.AtomSpecType;
 import jalview.util.Comparison;
 import jalview.util.Platform;
 
@@ -207,7 +206,22 @@ public class JmolCommands extends StructureCommandsBase
             .append("|");
     sb.append(getAtomSpec(refAtoms, AtomSpecType.RESIDUE_ONLY))
             .append(getCommandSeparator()).append("cartoons");
+    return Arrays.asList(new StructureCommand(sb.toString()));
+  }
 
+  @Override
+  public List<StructureCommandI> centerViewOn(List<AtomSpecModel> residues)
+  {
+    StringBuilder sb = new StringBuilder(64);
+    sb.append("center ");
+    for (AtomSpecModel ranges : residues)
+    {
+      if (sb.length() > 9)
+      {
+        sb.append(" or ");
+      }
+      sb.append(getAtomSpec(ranges, AtomSpecType.RESIDUE_ONLY));
+    }
     return Arrays.asList(new StructureCommand(sb.toString()));
   }
 
@@ -302,7 +316,38 @@ public class JmolCommands extends StructureCommandsBase
     return new StructureCommand(
             "load FILES \"" + Platform.escapeBackslashes(file) + "\"");
   }
+  @Override
+  public StructureCommandI restoreSession(String filePath)
+  {
+    return new StructureCommand(
+            "restore STATE \"" + Platform.escapeBackslashes(filePath) + "\"");
+  }
 
+  @Override
+  public List<StructureCommandI> showHetatms(List<String> toShow)
+  {
+    // always clear the current hetero cpk display
+    
+    StringBuilder sb = new StringBuilder();
+    sb.append("select hetero; cpk off;");
+    
+    if (toShow != null && !toShow.isEmpty())
+    {
+      // select what was requested
+      sb.append("select ");
+      boolean or = false;
+      for (String k : toShow)
+      {
+        sb.append(or ? " or " : " ");
+        sb.append(k);
+        or = true;
+      }
+      // and show as
+      sb.append("; cpk;");
+    }
+    
+    return Arrays.asList(new StructureCommand(sb.toString()));
+  }
   /**
    * Obsolete method, only referenced from
    * jalview.javascript.MouseOverStructureListener