/************************************************************************** * Copyright (c) 2001, 2002, 2003 by Punch Telematix. All rights reserved. * * * * Redistribution and use in source and binary forms, with or without * * modification, are permitted provided that the following conditions * * are met: * * 1. Redistributions of source code must retain the above copyright * * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * * notice, this list of conditions and the following disclaimer in the * * documentation and/or other materials provided with the distribution. * * 3. Neither the name of Punch Telematix nor the names of * * other contributors may be used to endorse or promote products * * derived from this software without specific prior written permission.* * * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED * * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * * IN NO EVENT SHALL PUNCH TELEMATIX OR OTHER CONTRIBUTORS BE LIABLE * * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * **************************************************************************/ package java.awt; import java.awt.peer.*; import java.awt.event.*; public class Button extends Component { String label; String command; public Button() { this.label = ""; this.command = null; } public Button(String label) { this.label = (label != null) ? label : ""; this.command = null; } /** * Assign the new listener or return an AWTEventMulticaster * listener that contains it */ public synchronized void addActionListener(java.awt.event.ActionListener newlistener) { actionListener = AWTEventMulticaster.add(actionListener, newlistener); } /** * Remove the old listener or return an AWTEventMulticaster * listener where it is removed */ public synchronized void removeActionListener(java.awt.event.ActionListener oldlistener) { actionListener = AWTEventMulticaster.remove(actionListener, oldlistener); } /** * We overwrite processEvent so that a super or subclass requesting * to throw an ActionEvent throws it through the multicaster to all * subscribed listeners */ protected void processEvent(AWTEvent event) { if (event instanceof ActionEvent) { processActionEvent(new ActionEvent(event.getSource(), event.getID(), (command == null) ? label : command)); } else { super.processEvent(event); } } protected void processActionEvent(ActionEvent event) { if (actionListener != null) { actionListener.actionPerformed(event); } } public void addNotify() { if(peer == null) { peer = getToolkit().createButton(this); } if (notified == false) { super.addNotify(); } } public String getActionCommand() { return (command == null) ? label : command; } public void setActionCommand(String command) { this.command = command; } public synchronized void setLabel(String label) { this.label = (label != null) ? label : ""; valid = false; ((ButtonPeer)peer).setLabel(label); } public String getLabel() { return label; } public String toString() { return getClass().getName() + " - label: " + label + ", bounds: x = " + x + ", y = " + y + ", w = " + width + ", h = " + height; } protected String paramString() { return getClass().getName() + " label: "+ label + " ActionCommand: " + command + ", bounds: (" + x + ", " + y + ", " + width + ", " + height + ")"; } }