/* * Created by Nick on Dec 19, 2004 * */ package jmsltutorial; import java.awt.BorderLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import com.didkovsky.portview.PVFrame; import com.didkovsky.portview.PVLabel; import com.didkovsky.portview.PVMenu; import com.didkovsky.portview.PVMenuBar; import com.softsynth.jmsl.JMSL; import com.softsynth.jmsl.view.HierarchicalMenuBuilder; import com.softsynth.jmsl.view.HierarchicalMenuListener; import com.softsynth.jmsl.view.PVFrameAdapter; import com.softsynth.jmsl.view.PVLabelAdapter; /** * Build hierarchical menus from fully qualified classnames * * @author Nick Didkovsky, (c) 2004 All rights reserved, Email: * nick@didkovsky.com * */ public class HierarchicalMenuExample implements HierarchicalMenuListener { PVFrame frame; PVMenuBar menuBar; PVMenu pluginsMenu; PVLabel selectedPluginLabel; public void start() { 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); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } 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); } public static void main(String[] args) { new HierarchicalMenuExample().start(); } }