/* * Created by Nick on Dec 19, 2004 * */ package jmsltutorial; import java.applet.Applet; import java.awt.BorderLayout; import com.didkovsky.portview.*; import com.softsynth.jmsl.JMSL; import com.softsynth.jmsl.view.*; /** * Build hierarchical menus from fully qualified classnames * * @author Nick Didkovsky, (c) 2004 All rights reserved, Email: * didkovn@mail.rockefeller.edu * */ public class HierarchicalMenuExample extends Applet implements HierarchicalMenuListener { PVFrame frame; PVMenuBar menuBar; PVMenu pluginsMenu; PVLabel selectedPluginLabel; public void start() { add(new java.awt.Label("Select a hierarchical menu item in the Frame that opens")); buildFrame(); buildHierarchicalMenu(); frame.setSize(400, 200); frame.setVisible(true); } private void buildFrame() { frame = new PVFrameAdapter("Hierarchical Menu example, (c) 2004 Nick Didkovsky"); menuBar = JMSL.getViewFactory().createMenuBar(); frame.setFrameLayout(new BorderLayout()); frame.add((selectedPluginLabel = new PVLabelAdapter("Select an item from the HierarchicalMenu")).getComponent()); frame.setPVMenuBar(menuBar); } public void stop() { if (frame != null) { frame.setVisible(false); frame.dispose(); frame = null; } } public void buildHierarchicalMenu() { HierarchicalMenuBuilder menuBuilder = new HierarchicalMenuBuilder("Hierarchical Menu"); menuBuilder.addHierarchicalMenuItem("com.acme.RoadRunnerTrap"); menuBuilder.addHierarchicalMenuItem("com.acme.RoadRunnerFood"); menuBuilder.addHierarchicalMenuItem("edu.nyu.didkovsky.JavaMusicSystems"); pluginsMenu = menuBuilder.getMenu(); menuBar.add(pluginsMenu); menuBuilder.addHierarchicalMenuListener(this); } public void hierarchicalMenuItemSelected(PVMenu topMenu, String hierarchicalName) { System.out.println("Menu selected: " + topMenu.getLabel()); System.out.println("Plug-in class selected: " + hierarchicalName); selectedPluginLabel.setText("You chose: " + hierarchicalName); } }