PageRenderTime 15543ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/rcdkjar/src/org/guha/rcdk/draw/Get2DStructureFromJCP.java

http://github.com/rajarshi/cdkr
Java | 112 lines | 60 code | 17 blank | 35 comment | 4 complexity | a17a3a8fc465670c3a8695b88f9600e2 MD5 | raw file
  1. package org.guha.rcdk.draw;
  2. import org.openscience.cdk.DefaultChemObjectBuilder;
  3. import org.openscience.cdk.interfaces.IAtomContainer;
  4. import org.openscience.cdk.interfaces.IAtomContainerSet;
  5. import org.openscience.cdk.interfaces.IChemModel;
  6. import org.openscience.cdk.layout.StructureDiagramGenerator;
  7. import javax.swing.*;
  8. import java.awt.event.WindowAdapter;
  9. import java.awt.event.WindowEvent;
  10. public class Get2DStructureFromJCP {
  11. private static IChemModel chemModel;
  12. public Get2DStructureFromJCP() {
  13. }
  14. public Get2DStructureFromJCP(IAtomContainer molecule) {
  15. IAtomContainer localMolecule = null;
  16. // we should make 2D coords
  17. try {
  18. StructureDiagramGenerator sdg = new StructureDiagramGenerator();
  19. sdg.setMolecule(molecule);
  20. sdg.generateCoordinates();
  21. localMolecule = sdg.getMolecule();
  22. } catch (Exception exc) {
  23. exc.printStackTrace();
  24. }
  25. IAtomContainerSet som = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainerSet.class);
  26. som.addAtomContainer(localMolecule);
  27. chemModel = DefaultChemObjectBuilder.getInstance().newInstance(IChemModel.class);
  28. chemModel.setMoleculeSet(som);
  29. }
  30. public void showWindow() {
  31. JFrame frame = new JFrame();
  32. JDialog dlg = new JDialog(frame, true);
  33. dlg.setTitle("Molecule Editor");
  34. dlg.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
  35. dlg.addWindowListener(new MyAppCloser());
  36. // JChemPaintEditorPanel editPanel = new JChemPaintEditorPanel();
  37. // JChemPaintModel model = new JChemPaintModel();
  38. // editPanel.registerModel(model);
  39. // editPanel.setJChemPaintModel(model);
  40. //
  41. // dlg.add(editPanel);
  42. // dlg.pack();
  43. // dlg.setVisible(true);
  44. }
  45. private final static class MyAppCloser extends WindowAdapter {
  46. /**
  47. * closing Event. Shows a warning if this window has unsaved data and
  48. * terminates jvm, if last window.
  49. *
  50. * @param e Description of the Parameter
  51. */
  52. public void windowClosing(WindowEvent e) {
  53. // JDialog dlg = (JDialog) e.getSource();
  54. // JChemPaintEditorPanel editPanel = (JChemPaintEditorPanel) dlg
  55. // .getContentPane().getComponent(0);
  56. //
  57. // chemModel = editPanel.getChemModel();
  58. // ((JDialog) e.getSource()).setVisible(false);
  59. // ((JDialog) e.getSource()).dispose();
  60. }
  61. }
  62. public IChemModel getChemModel() {
  63. return chemModel;
  64. }
  65. public IAtomContainer[] getMolecules() {
  66. IAtomContainerSet som = chemModel.getMoleculeSet();
  67. if (som == null) return null;
  68. else {
  69. IAtomContainer[] ret = new IAtomContainer[som.getAtomContainerCount()];
  70. int c = 0;
  71. for (IAtomContainer molecule : som.atomContainers()) {
  72. ret[c++] = molecule;
  73. }
  74. return ret;
  75. }
  76. }
  77. public static void main(String[] args) {
  78. Get2DStructureFromJCP e = new Get2DStructureFromJCP();
  79. e.showWindow();
  80. System.exit(0);
  81. }
  82. }
  83. // public class JCPReturn {
  84. //
  85. // public static void main(String[] args) {
  86. // Get2DStructureFromJCP jcp = new Get2DStructureFromJCP();
  87. // ChemModel model = jcp.showWindow();
  88. // System.out.println("From main: " + model);
  89. //
  90. // Molecule[] molecules = jcp.getMolecules();
  91. // System.out.println(molecules.length + " structures drawn");
  92. //
  93. // }
  94. //
  95. // }