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.