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