/* * Copyright (c) 1998-2012 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.view.ViewParameterConstants; import chemaxon.marvin.common.UserSettings; import chemaxon.formats.MolImporter; import chemaxon.struc.Molecule; import javax.swing.*; import java.awt.event.*; import java.io.*; /** * Example for customize MarvinView menu. * * @author Tamas Vertse * @author Peter Csizmadia * @version 5.2.5, 08/28/2009 * @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(ViewParameterConstants.ROWS+"=3\n"+ ViewParameterConstants.COLS+"=2\n"+ ViewParameterConstants.BORDER+"=1\n"+ ViewParameterConstants.VISIBLE_ROWS+"=2\n"+ ViewParameterConstants.LAYOUT+"=:2:1:M:1:0:1:1:c:b:1:1:L:0:0:1:1:c:n:0:1\n"+ ViewParameterConstants.PARAMETERS +"=: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, readMol("CN1C=NC2=C1C(=O)N(C)C(=O)N2C")); viewpanel.setL(0, "Caffeine"); viewpanel.setM(1, readMol("CCN(CC)C(=O)C1CN(C)C2CC3=CNC4=C3C(=CC=C4)C2=C1")); viewpanel.setL(1, "Lysergide"); viewpanel.setM(2, readMol("OCC(O)C1OC(=O)C(O)=C1O")); viewpanel.setL(2, "Vitamin C"); viewpanel.setM(3, readMol("CC(=O)Oc1ccccc1C(O)=O")); viewpanel.setL(3, "Aspirin"); viewpanel.setM(4, readMol("[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, readMol("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