// OBSOLETE
// Just to keep to old rife gui code running
/*
* Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com>
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: DynamicMenuBuilder.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.gui.old;
import javax.swing.*;
import java.awt.MenuContainer;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DynamicMenuBuilder implements ActionListener
{
public JMenu addMenu(MenuContainer parentMenu, String menuLabel)
{
return addMenu(parentMenu, menuLabel, (char)0);
}
public JMenu addMenu(MenuContainer parentMenu, String menuLabel, Character mnemonic)
{
return addMenu(parentMenu, menuLabel, mnemonic.charValue());
}
public JMenu addMenu(MenuContainer parentMenu, String menuLabel, char mnemonic)
{
JMenu menu = new JMenu(menuLabel);
if (0 != mnemonic)
{
menu.setMnemonic(mnemonic);
}
if (null != parentMenu)
{
((JComponent)parentMenu).add(menu);
}
return menu;
}
public JMenuItem addMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action)
{
return addMenuItem(parentMenu, menuLabel, action, (char)0, null);
}
public JMenuItem addMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, Character mnemonic)
{
return addMenuItem(parentMenu, menuLabel, action, mnemonic.charValue(), null);
}
public JMenuItem addMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, Character mnemonic, KeyStroke accelerator)
{
return addMenuItem(parentMenu, menuLabel, action, mnemonic.charValue(), accelerator);
}
public JMenuItem addMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, char mnemonic)
{
return addMenuItem(parentMenu, menuLabel, action, mnemonic, null);
}
public JMenuItem addMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, char mnemonic, KeyStroke accelerator)
{
return processMenuItem(new JMenuItem(menuLabel), parentMenu, action, mnemonic, accelerator);
}
public JCheckBoxMenuItem addCheckBoxMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action)
{
return addCheckBoxMenuItem(parentMenu, menuLabel, action, (char)0, null);
}
public JCheckBoxMenuItem addCheckBoxMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, Character mnemonic)
{
return addCheckBoxMenuItem(parentMenu, menuLabel, action, mnemonic.charValue(), null);
}
public JCheckBoxMenuItem addCheckBoxMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, Character mnemonic, KeyStroke accelerator)
{
return addCheckBoxMenuItem(parentMenu, menuLabel, action, mnemonic.charValue(), accelerator);
}
public JCheckBoxMenuItem addCheckBoxMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, char mnemonic)
{
return addCheckBoxMenuItem(parentMenu, menuLabel, action, mnemonic, null);
}
public JCheckBoxMenuItem addCheckBoxMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, char mnemonic, KeyStroke accelerator)
{
return (JCheckBoxMenuItem)processMenuItem(new JCheckBoxMenuItem(menuLabel), parentMenu, action, mnemonic, accelerator);
}
public JRadioButtonMenuItem addRadioButtonMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action)
{
return addRadioButtonMenuItem(parentMenu, menuLabel, action, (char)0, null);
}
public JRadioButtonMenuItem addRadioButtonMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, Character mnemonic)
{
return addRadioButtonMenuItem(parentMenu, menuLabel, action, mnemonic.charValue(), null);
}
public JRadioButtonMenuItem addRadioButtonMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, Character mnemonic, KeyStroke accelerator)
{
return addRadioButtonMenuItem(parentMenu, menuLabel, action, mnemonic.charValue(), accelerator);
}
public JRadioButtonMenuItem addRadioButtonMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, char mnemonic)
{
return addRadioButtonMenuItem(parentMenu, menuLabel, action, mnemonic, null);
}
public JRadioButtonMenuItem addRadioButtonMenuItem(MenuContainer parentMenu, String menuLabel, DynamicMenuAction action, char mnemonic, KeyStroke accelerator)
{
return (JRadioButtonMenuItem)processMenuItem(new JRadioButtonMenuItem(menuLabel), parentMenu, action, mnemonic, accelerator);
}
private JMenuItem processMenuItem(JMenuItem menuItem, MenuContainer parentMenu, DynamicMenuAction action, char mnemonic, KeyStroke accelerator)
{
menuItem.addActionListener(this);
menuItem.putClientProperty("DYNAMICMENUACTION", action);
if (0 != mnemonic)
{
menuItem.setMnemonic(mnemonic);
}
if (null != accelerator)
{
menuItem.setAccelerator(accelerator);
}
if (null != parentMenu)
{
((JComponent)parentMenu).add(menuItem);
}
return menuItem;
}
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
if (source instanceof JMenuItem)
{
DynamicMenuAction action = (DynamicMenuAction)((JMenuItem)source).getClientProperty("DYNAMICMENUACTION");
if (null != action)
{
action.execute((JMenuItem)source);
}
}
}
}