/* * Copyright (c) 1998-2008 ChemAxon Ltd. All Rights Reserved. * * This software is the confidential and proprietary information of * ChemAxon. You shall not disclose such Confidential Information * and shall use it only in accordance with the terms of the agreements * you entered into with ChemAxon. * */ import chemaxon.marvin.beans.MViewPane; import chemaxon.marvin.common.UserSettings; import chemaxon.struc.Molecule; import javax.swing.*; import java.awt.Container; import java.awt.event.*; import java.io.*; /** * Example for customize MarvinView menu. * * @author Tamas Vertse * @version Marvin 5.0 11/28/2006 * @since Marvin 4.1 05/29/2006 */ public class CustomMenuExample extends JFrame implements ActionListener, MouseListener { private MViewPane viewpanel; private JPopupMenu custompopup; /** Creates a new instance of CustomMenuExample */ public CustomMenuExample() { viewpanel = new MViewPane(); getContentPane().add(viewpanel); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // set layout viewpanel.setParams("rows=3\n"+ "cols=2\n"+ "border=1\n"+ "visibleRows=2\n"+ "layout=:2:1:M:1:0:1:1:c:b:1:1:L:0:0:1:1:c:n:0:1\n"+ "param=:M:100:100:L:10b\n"); UserSettings settings = viewpanel.getUserSettings(); settings.setViewNavmode2d("rotZ"); // create main menu JMenuBar menubar = new JMenuBar(); setJMenuBar(menubar); JMenu menu = new JMenu("File"); menubar.add(menu); JMenuItem mi; mi = createMenuItem("Save All as Image", "saveAllImage", this); menu.add(mi); mi = createMenuItem("Exit","exit",this); menu.add(mi); menu = new JMenu("View"); viewpanel.makeViewMenu(menu); menubar.add(menu); viewpanel.addHelpMenu(menubar); // fill cells viewpanel.setM(0, "CN1C=NC2=C1C(=O)N(C)C(=O)N2C"); viewpanel.setL(0, "Caffeine"); viewpanel.setM(1, "CCN(CC)C(=O)C1CN(C)C2CC3=CNC4=C3C(=CC=C4)C2=C1"); viewpanel.setL(1, "Lysergide"); viewpanel.setM(2, "OCC(O)C1OC(=O)C(O)=C1O"); viewpanel.setL(2, "Vitamin C"); viewpanel.setM(3, "CC(=O)Oc1ccccc1C(O)=O"); viewpanel.setL(3, "Aspirin"); viewpanel.setM(4, "[H][C@@]12C=C[C@H](O)[C@@H]3OC4=C(O)C=CC5=C4[C@]13CCN(C)[C@@H]2C5"); viewpanel.setL(4, "Morphine"); viewpanel.setM(5, "CC(=O)C1=CCCC2CCC1N2"); viewpanel.setL(5, "Anatoxin"); //create new custom popup menu custompopup = createPopupMenu(); viewpanel.setPopupMenusEnabled(false); // set Marvin menu to disabled for(int i=0;i