/* 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 * @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; }