PageRenderTime 32ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/rcdkjar/src/org/guha/rcdk/view/MoleculeImageToClipboard.java

http://github.com/rajarshi/cdkr
Java | 67 lines | 45 code | 15 blank | 7 comment | 2 complexity | a13243c7b2384de91faac1d2956b8928 MD5 | raw file
  1. package org.guha.rcdk.view;
  2. import org.guha.rcdk.util.Misc;
  3. import org.openscience.cdk.DefaultChemObjectBuilder;
  4. import org.openscience.cdk.interfaces.IAtomContainer;
  5. import org.openscience.cdk.smiles.SmilesParser;
  6. import java.awt.*;
  7. import java.awt.datatransfer.DataFlavor;
  8. import java.awt.datatransfer.Transferable;
  9. import java.awt.datatransfer.UnsupportedFlavorException;
  10. /**
  11. * A one line summary.
  12. *
  13. * @author Rajarshi Guha
  14. */
  15. public class MoleculeImageToClipboard {
  16. public static void copyImageToClipboard(IAtomContainer molecule, RcdkDepictor depictor) throws Exception {
  17. Image image = depictor.getImage(molecule);
  18. // now copy to clipboard
  19. ImageSelection.copyImageToClipboard(image);
  20. }
  21. public static void main(String[] args) throws Exception {
  22. SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance());
  23. IAtomContainer mol = sp.parseSmiles("c1ccccc1CC(=O)C1COCNC1");
  24. MoleculeImageToClipboard.copyImageToClipboard(mol, Misc.getDefaultDepictor());
  25. }
  26. }
  27. // http://elliotth.blogspot.com/2005/09/copying-images-to-clipboard-with-java.html
  28. class ImageSelection implements Transferable {
  29. private Image image;
  30. public static void copyImageToClipboard(Image image) {
  31. ImageSelection imageSelection = new ImageSelection(image);
  32. Toolkit toolkit = Toolkit.getDefaultToolkit();
  33. toolkit.getSystemClipboard().setContents(imageSelection, null);
  34. }
  35. public ImageSelection(Image image) {
  36. this.image = image;
  37. }
  38. public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
  39. if (flavor.equals(DataFlavor.imageFlavor) == false) {
  40. throw new UnsupportedFlavorException(flavor);
  41. }
  42. return image;
  43. }
  44. public boolean isDataFlavorSupported(DataFlavor flavor) {
  45. return flavor.equals(DataFlavor.imageFlavor);
  46. }
  47. public DataFlavor[] getTransferDataFlavors() {
  48. return new DataFlavor[]{
  49. DataFlavor.imageFlavor
  50. };
  51. }
  52. }