gcc/libjava/java/awt/Button.java
Tom Tromey bda1450543 ButtonPeer.java: Replace with Classpath version.
* java/awt/peer/ButtonPeer.java: Replace with Classpath version.
	* java/awt/peer/CanvasPeer.java: Replace with Classpath version.
	* java/awt/peer/CheckboxMenuItemPeer.java: Replace with Classpath
	version.
	* java/awt/peer/CheckboxPeer.java: Replace with Classpath version.
	* java/awt/peer/ChoicePeer.java: Replace with Classpath version.
	* java/awt/peer/ComponentPeer.java: Replace with Classpath version.
	* java/awt/peer/ContainerPeer.java: Replace with Classpath version.
	* java/awt/peer/DialogPeer.java: Replace with Classpath version.
	* java/awt/peer/FileDialogPeer.java: Replace with Classpath version.
	* java/awt/peer/FontPeer.java: Replace with Classpath version.
	* java/awt/peer/FramePeer.java: Replace with Classpath version.
	* java/awt/peer/LabelPeer.java: Replace with Classpath version.
	* java/awt/peer/LightweightPeer.java: Replace with Classpath version.
	* java/awt/peer/ListPeer.java: Replace with Classpath version.
	* java/awt/peer/MenuBarPeer.java: Replace with Classpath version.
	* java/awt/peer/MenuComponentPeer.java: Replace with Classpath version.
	* java/awt/peer/MenuItemPeer.java: Replace with Classpath version.
	* java/awt/peer/MenuPeer.java: Replace with Classpath version.
	* java/awt/peer/PanelPeer.java: Replace with Classpath version.
	* java/awt/peer/PopupMenuPeer.java: Replace with Classpath version.
	* java/awt/peer/ScrollPanePeer.java: Replace with Classpath version.
	* java/awt/peer/ScrollbarPeer.java: Replace with Classpath version.
	* java/awt/peer/TextAreaPeer.java: Replace with Classpath version.
	* java/awt/peer/TextComponentPeer.java: Replace with Classpath version.
	* java/awt/peer/TextFieldPeer.java: Replace with Classpath version.
	* java/awt/peer/WindowPeer.java: Replace with Classpath version.
	* gnu/awt/xlib/XPanelPeer.java (insets): New method.
	* gnu/awt/xlib/XCanvasPeer.java (show, hide): New methods.
	(minimumSize, preferredSize, reshape): Likewise.
	* gnu/awt/xlib/XFramePeer.java (insets, enable, disable,
	getColorModel): New methods.
	* java/awt/PopupMenu.java: Merged with Classpath.
	* java/awt/MenuBar.java: Merged with Classpath.
	* java/awt/SystemColor.java: Replace with Classpath version.
	* java/awt/Panel.java: Merged with Classpath.
	* java/awt/PaintContext.java: Updated copyright.
	* java/awt/MenuShortcut.java: Merged with Classpath.
	* java/awt/MenuContainer.java: Merged with Classpath.
	* java/awt/Menu.java: Merged with Classpath.
	* java/awt/MediaEntry.java: New file from Classpath.
	* java/awt/MediaTracker.java: New file from Classpath.
	* java/awt/List.java: Merged with Classpath version.
	* java/awt/Insets.java: Merged with Classpath version.
	* java/awt/ImageMediaEntry.java: New file from Classpath.
	* java/awt/Image.java: Replaced with Classpath version.
	* java/awt/FontMetrics.java: Merged with Classpath version.
	* java/awt/Cursor.java (getDefaultCursor): Use DEFAULT_CURSOR
	constant.
	* java/awt/Font.java: Merged with Classpath version.
	* java/awt/Dialog.java: Merged with Classpath version.
	* java/awt/Color.java: Merged with Classpath version.
	* java/awt/Choice.java: Merged with Classpath version.
	* java/awt/CheckboxMenuItem.java: Merged with Classpath version.
	* java/awt/Adjustable.java: Replace with Classpath version.
	* java/awt/MenuItem.java (paramString): Don't include class name
	or brackets.  Call superclass paramString.
	* java/awt/MenuComponent.java (toString): Call paramString.
	(paramString): Compute string; don't call toString.
	* java/awt/Label.java (paramString): Don't include class name
	or brackets.  Call superclass paramString.
	* java/awt/Checkbox.java (paramString): Don't include class name
	or brackets.  Call superclass paramString.
	* java/awt/Button.java (paramString): Don't include class name or
	brackets.  Call superclass paramString.
	* java/awt/MenuComponent.java (getTreeLock): Now protected.

From-SVN: r49099
2002-01-22 22:03:04 +00:00

278 lines
6.8 KiB
Java

/* Button.java -- AWT button widget
Copyright (C) 1999, 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.awt;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.peer.ButtonPeer;
import java.awt.peer.ComponentPeer;
import java.util.EventListener;
/**
* This class provides a button widget for the AWT.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
* @author Tom Tromey <tromey@cygnus.com>
*/
public class Button extends Component implements java.io.Serializable
{
/*
* Static Variables
*/
// FIXME: Need readObject/writeObject for serialization
// Serialization version constant
private static final long serialVersionUID = -8774683716313001058L;
/*************************************************************************/
/*
* Instance Variables
*/
/**
* @serial The action command name for this button.
*/
private String actionCommand;
/**
* @serial The label for this button.
*/
private String label;
// List of ActionListeners for this class.
private transient ActionListener action_listeners;
/*************************************************************************/
/*
* Constructors
*/
/**
* Initializes a new instance of <code>Button</code> with no label.
*/
public
Button()
{
this(null);
}
/*************************************************************************/
/**
* Initializes a new instance of <code>Button</code> with the specified
* label. The action command name is also initialized to this value.
*
* @param label The label to display on the button.
*/
public
Button(String label)
{
this.label = label;
actionCommand = label;
}
/*************************************************************************/
/*
* Instance Variables
*/
/**
* Returns the label for this button.
*
* @return The label for this button.
*/
public String
getLabel()
{
return(label);
}
/*************************************************************************/
/**
* Sets the label for this button to the specified value.
*
* @param label The new label for this button.
*/
public synchronized void
setLabel(String label)
{
this.label = label;
if (peer != null)
{
ButtonPeer bp = (ButtonPeer) peer;
bp.setLabel (label);
}
}
/*************************************************************************/
/**
* Returns the action command name for this button.
*
* @return The action command name for this button.
*/
public String
getActionCommand()
{
return(actionCommand);
}
/*************************************************************************/
/**
* Sets the action command name for this button to the specified value.
*
* @param actionCommand The new action command name.
*/
public void
setActionCommand(String actionCommand)
{
this.actionCommand = actionCommand == null ? label : actionCommand;
}
/*************************************************************************/
/**
* Adds a new entry to the list of listeners that will receive
* action events from this button.
*
* @param listener The listener to add.
*/
public synchronized void
addActionListener(ActionListener listener)
{
action_listeners = AWTEventMulticaster.add(action_listeners, listener);
}
/*************************************************************************/
/**
* Removes the specified listener from the list of listeners that will
* receive action events from this button.
*
* @param listener The listener to remove.
*/
public synchronized void
removeActionListener(ActionListener listener)
{
action_listeners = AWTEventMulticaster.remove(action_listeners, listener);
}
public EventListener[]
getListeners(Class listenerType)
{
if (listenerType == ActionListener.class)
return getListenersImpl(listenerType, action_listeners);
return super.getListeners(listenerType);
}
/*************************************************************************/
/**
* Notifies this button that it should create its native peer object.
*/
public void
addNotify()
{
if (peer == null)
peer = getToolkit ().createButton (this);
super.addNotify();
}
/*************************************************************************/
/**
* Processes an event for this button. If the specified event is an
* instance of <code>ActionEvent</code>, then the
* <code>processActionEvent()</code> method is called to dispatch it
* to any registered listeners. Otherwise, the superclass method
* will be invoked. Note that this method will not be called at all
* unless <code>ActionEvent</code>'s are enabled. This will be done
* implicitly if any listeners are added.
*
* @param event The event to process.
*/
protected void
processEvent(AWTEvent event)
{
if (event instanceof ActionEvent)
processActionEvent((ActionEvent)event);
else
super.processEvent(event);
}
/*************************************************************************/
/**
* This method dispatches an action event for this button to any
* registered listeners.
*
* @param event The event to process.
*/
protected void
processActionEvent(ActionEvent event)
{
if (action_listeners != null)
action_listeners.actionPerformed(event);
}
void
dispatchEventImpl(AWTEvent e)
{
super.dispatchEventImpl(e);
if (e.id <= ActionEvent.ACTION_LAST
&& e.id >= ActionEvent.ACTION_FIRST
&& (action_listeners != null
|| (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0))
processEvent(e);
}
/*************************************************************************/
/**
* Returns a debugging string for this button.
*
* @return A debugging string for this button.
*/
protected String
paramString()
{
return ("label=" + getLabel() + ",actionCommand=" + getActionCommand()
+ "," + super.paramString());
}
} // class Button