CommandChoice.java
/*
* @(#)CommandChoice.java
*
* Project: JHotdraw - a GUI framework for technical drawings
* http://www.jhotdraw.org
* http://jhotdraw.sourceforge.net
* Copyright: © by the original author(s) and all contributors
* License: Lesser GNU Public License (LGPL)
* http://www.opensource.org/licenses/lgpl-license.html
*/
package CH.ifa.draw.util;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.*;
/**
* A Command enabled choice. Selecting a choice executes the
* corresponding command.
*
* @see Command
*
* @version <$CURRENT_VERSION$>
*/
public class CommandChoice extends JComboBox implements ItemListener {
private Vector fCommands;
public CommandChoice() {
super();
fCommands = new Vector(10);
addItemListener(this);
}
/**
* Adds a command to the menu.
*/
public synchronized void addItem(Command command) {
addItem(command.name());
fCommands.addElement(command);
}
/**
* Executes the command.
*/
public void itemStateChanged(ItemEvent e) {
if ((getSelectedIndex() >= 0) && (getSelectedIndex() < fCommands.size())) {
Command command = (Command)fCommands.elementAt(getSelectedIndex());
if (command.isExecutable()) {
command.execute();
}
}
}
}