コード例 #1
0
ファイル: SymmetryListener.java プロジェクト: pwrose/biojava
  @Override
  public void actionPerformed(ActionEvent ae) {
    String cmd = ae.getActionCommand();
    if (cmd.equals("New Symmetry Analysis")) SymmetryGui.getInstance();

    if (symm == null) logger.error("Currently not displaying a symmetry!");

    try {
      if (cmd.equals("Repeats Superposition")) {
        MultipleAlignmentJmol j = SymmetryDisplay.displayRepeats(symm);
        String s = SymmetryDisplay.printSymmetryAxes(symm);
        j.evalString(s);

      } else if (cmd.equals("Multiple Structure Alignment")) {
        MultipleAlignmentJmol j = SymmetryDisplay.displayFull(symm);
        String s = SymmetryDisplay.printSymmetryAxes(symm);
        j.evalString(s);

      } else if (cmd.equals("Optimal Self Alignment")) {
        Atom[] cloned = StructureTools.cloneAtomArray(symm.getAtoms());
        AbstractAlignmentJmol jmol =
            StructureAlignmentDisplay.display(symm.getSelfAlignment(), symm.getAtoms(), cloned);
        RotationAxis axis = new RotationAxis(symm.getSelfAlignment());
        jmol.evalString(axis.getJmolScript(symm.getAtoms()));
        jmol.setTitle(SymmetryDisplay.getSymmTitle(symm));

      } else if (cmd.equals("Show Symmetry Group")) {
        String script = SymmetryDisplay.printSymmetryGroup(symm);
        jmol.evalString(script);

      } else if (cmd.equals("Show Symmetry Axes")) {
        String s = SymmetryDisplay.printSymmetryAxes(symm);
        jmol.evalString(s);
      }

    } catch (Exception e) {
      logger.error("Could not complete display option", e);
    }
  }