package jas.util;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Observable;
import java.util.Observer;
import javax.swing.JMenuItem;
public class JASMenuItem
extends JMenuItem
implements Observer,ActionListener,JASState, CommandSource
{
public JASMenuItem()
{
super();
setEnabled(false);
Application.getApplication().getCommandManager().add(this); // register with CommandTargetManager
addActionListener(this);
}
public JASMenuItem(String s, char mnemonic)
{
super(s, mnemonic);
setEnabled(false);
Application.getApplication().getCommandManager().add(this); // register with CommandTargetManager
addActionListener(this);
}
public boolean setTarget(CommandTarget t)
{
if (t instanceof SimpleCommandTarget)
{
m_target = (SimpleCommandTarget) t;
m_target.enable(this);
return true;
}
else return false;
}
public void clearTarget()
{
m_target = null;
setEnabled(false);
}
public CommandTarget getTarget()
{
return m_target;
}
public String getCommand()
{
return getActionCommand();
}
public void update(Observable o, Object arg)
{
m_target.enable(this);
}
public void actionPerformed(ActionEvent evt)
{
m_target.invoke();
}
public void setEnabled(boolean state)
{
super.setEnabled(state);
}
private SimpleCommandTarget m_target = null;
}