blob: 2544e9e4bea643c37307d24fae557535f04a08d0 [file] [log] [blame]
/* Copyright (C) 2000 Free Software Foundation
This file is part of libjava.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
details. */
package java.awt;
import java.awt.peer.ButtonPeer;
import java.awt.peer.ComponentPeer;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.EventListener;
/**
* @author Tom Tromey <tromey@cygnus.com>
* @date July 30, 2000
*/
public class Button extends Component
{
public Button ()
{
this (null);
}
public Button (String label)
{
this.label = label;
}
public void addActionListener (ActionListener l)
{
actionListener = AWTEventMulticaster.add (actionListener, l);
}
public void addNotify ()
{
if (peer == null)
peer = getToolkit ().createButton (this);
super.addNotify();
}
public String getActionCommand ()
{
return actionCommand;
}
public String getLabel ()
{
return label;
}
protected String paramString ()
{
return "Button[" + label + "]";
}
void dispatchEventImpl(AWTEvent e)
{
super.dispatchEventImpl(e);
if (e.id <= ActionEvent.ACTION_LAST
&& e.id >= ActionEvent.ACTION_FIRST
&& (actionListener != null
|| (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0))
processEvent(e);
}
protected void processActionEvent (ActionEvent e)
{
if (actionListener != null)
actionListener.actionPerformed (e);
}
protected void processEvent (AWTEvent e)
{
if (e instanceof ActionEvent)
processActionEvent ((ActionEvent) e);
else
super.processEvent (e);
}
public void removeActionListener (ActionListener l)
{
actionListener = AWTEventMulticaster.remove (actionListener, l);
}
public EventListener[] getListeners(Class listenerType)
{
if (listenerType == ActionListener.class)
return getListenersImpl(listenerType, actionListener);
return super.getListeners(listenerType);
}
public void setActionCommand (String command)
{
this.actionCommand = (command == null) ? label : command;
}
public void setLabel (String label)
{
this.label = label;
if (peer != null)
{
ButtonPeer bp = (ButtonPeer) peer;
bp.setLabel (label);
}
}
String label;
String actionCommand;
transient ActionListener actionListener;
}