+ /*
+ * https://pymolwiki.org/index.php/Label#examples
+ */
+ StringBuilder sb = new StringBuilder();
+ for (AtomSpec atom : atoms)
+ {
+ // todo promote to StructureCommandsI.showLabel()
+ // todo handle CA|P correctly
+ String modelId = getModelIdForFile(atom.getPdbFile());
+ sb.append(String.format(" %s//%s/%d/CA", modelId,
+ atom.getChain(),
+ atom.getPdbResNum()));
+ }
+ String labelSpec = sb.toString();
+ if (labelSpec.equals(lastLabelSpec))
+ {
+ return;
+ }
+ StructureCommandI command = new StructureCommand("label", labelSpec, LABEL_FORMAT);
+ executeCommand(command, false);
+
+ /*
+ * and remove the label(s) previously shown
+ */
+ if (lastLabelSpec != null)
+ {
+ command = new StructureCommand("label", lastLabelSpec, "");
+ executeCommand(command, false);
+ }
+
+ lastLabelSpec = labelSpec;