package org.freehep.application.studio; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Iterator; import javax.swing.JMenu; import javax.swing.JRadioButtonMenuItem; import org.freehep.application.Application; import org.freehep.application.mdi.PageManager; import org.openide.util.Lookup.Item; import org.openide.util.Lookup.Result; import org.openide.util.Lookup.Template; /** * A menu that includes a list of all available page managers. * @author Tony Johnson */ public class PageManagerMenu extends JMenu implements ActionListener { public void fireMenuSelected() { removeAll(); Studio app = (Studio) Application.getApplication(); PageManager pm = app.getPageManager(); Template template = new Template(PageManager.class); Result result = app.getLookup().lookup(template); for (Iterator i = result.allItems().iterator(); i.hasNext(); ) { Item item = (Item) i.next(); JRadioButtonMenuItem button = new JRadioButtonMenuItem(item.getId()); button.setSelected(item.getInstance() == pm); button.addActionListener(this); add(button); } super.fireMenuSelected(); } public void actionPerformed(ActionEvent e) { Studio app = (Studio) Application.getApplication(); String command = e.getActionCommand(); Template template = new Template(PageManager.class,command,null); Result result = app.getLookup().lookup(template); PageManager manager = (PageManager) result.allInstances().iterator().next(); app.setPageManager(manager); app.getUserProperties().setProperty("pageManagerName",command); } }