package jas2.swingstudio;
import javax.swing.*;
import java.util.*;
import jas2.util.*;
import java.awt.event.*;
import jas2.bean.*;
/**
* A simple button that can be embedded in a web page and fire a menu command
*/
public class CommandButton extends JButton implements Observer,JASState,CommandSource,PageContextHook
{
public CommandButton()
{
setEnabled(false);
}
public void setCommand(String command)
{
m_command = command;
}
public String getCommand()
{
return m_command;
}
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 void update(Observable o, Object arg)
{
m_target.enable(this);
}
protected void fireActionPerformed(ActionEvent evt)
{
super.fireActionPerformed(evt);
m_target.invoke();
}
public void setEnabled(boolean state)
{
super.setEnabled(state);
}
public void init(PageContext context)
{
final JavaAnalysisStudio app = JavaAnalysisStudio.getApp();
final CommandTargetManager target = app.getCommandManager();
target.add(this);
}
public void destroy()
{
final JavaAnalysisStudio app = JavaAnalysisStudio.getApp();
final CommandTargetManager target = app.getCommandManager();
target.remove(this);
}
private SimpleCommandTarget m_target;
private String m_command;
}
Ads help maintain this website.