diff options
Diffstat (limited to 'libjava/classpath/java/awt/MenuItem.java')
-rw-r--r-- | libjava/classpath/java/awt/MenuItem.java | 623 |
1 files changed, 0 insertions, 623 deletions
diff --git a/libjava/classpath/java/awt/MenuItem.java b/libjava/classpath/java/awt/MenuItem.java deleted file mode 100644 index 52d0b4d..0000000 --- a/libjava/classpath/java/awt/MenuItem.java +++ /dev/null @@ -1,623 +0,0 @@ -/* MenuItem.java -- An item in a menu - Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 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., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.awt; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.peer.MenuItemPeer; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.EventListener; - -import javax.accessibility.Accessible; -import javax.accessibility.AccessibleAction; -import javax.accessibility.AccessibleContext; -import javax.accessibility.AccessibleRole; -import javax.accessibility.AccessibleValue; - -/** - * This class represents an item in a menu. - * - * @author Aaron M. Renn (arenn@urbanophile.com) - */ -public class MenuItem extends MenuComponent - implements Serializable, Accessible -{ - -/* - * Static Variables - */ - - - /** - * The number used to generate the name returned by getName. - */ - private static transient long next_menuitem_number; - - // Serialization Constant - private static final long serialVersionUID = - 21757335363267194L; - -/*************************************************************************/ - -/* - * Instance Variables - */ - -/** - * @serial The name of the action command generated by this item. - * This is package-private to avoid an accessor method. - */ -String actionCommand; - -/** - * @serial Indicates whether or not this menu item is enabled. - * This is package-private to avoid an accessor method. - */ -boolean enabled = true; - -/** - * @serial The mask of events that are enabled for this menu item. - */ -long eventMask; - -/** - * @serial This menu item's label - * This is package-private to avoid an accessor method. - */ -String label = ""; - -/** - * @serial The shortcut for this menu item, if any - */ -private MenuShortcut shortcut; - -// The list of action listeners for this menu item. -private transient ActionListener action_listeners; - - protected class AccessibleAWTMenuItem - extends MenuComponent.AccessibleAWTMenuComponent - implements AccessibleAction, AccessibleValue - { - private static final long serialVersionUID = -217847831945965825L; - - /** Constructor */ - protected AccessibleAWTMenuItem() - { - super(); - } - - - - public String getAccessibleName() - { - return label; - } - - public AccessibleAction getAccessibleAction() - { - return this; - } - - public AccessibleRole getAccessibleRole() - { - return AccessibleRole.MENU_ITEM; - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleAction#getAccessibleActionCount() - */ - public int getAccessibleActionCount() - { - return 1; - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleAction#getAccessibleActionDescription(int) - */ - public String getAccessibleActionDescription(int i) - { - if (i == 0) - return label; - else - return null; - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleAction#doAccessibleAction(int) - */ - public boolean doAccessibleAction(int i) - { - if (i != 0) - return false; - processActionEvent(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, actionCommand)); - return true; - } - - public AccessibleValue getAccessibleValue() - { - return this; - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleValue#getCurrentAccessibleValue() - */ - public Number getCurrentAccessibleValue() - { - return (enabled) ? new Integer(1) : new Integer(0); - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleValue#setCurrentAccessibleValue(java.lang.Number) - */ - public boolean setCurrentAccessibleValue(Number number) - { - boolean result = (number.intValue() != 0); - // this. is required by javac 1.3, otherwise it is confused with - // MenuItem.this.setEnabled. - this.setEnabled(result); - return result; - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleValue#getMinimumAccessibleValue() - */ - public Number getMinimumAccessibleValue() - { - return new Integer(0); - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleValue#getMaximumAccessibleValue() - */ - public Number getMaximumAccessibleValue() - { - return new Integer(0); - } - - } - - -/*************************************************************************/ - -/* - * Constructors - */ - -/** - * Initializes a new instance of <code>MenuItem</code> with no label - * and no shortcut. - */ -public -MenuItem() -{ -} - -/*************************************************************************/ - -/** - * Initializes a new instance of <code>MenuItem</code> with the specified - * label and no shortcut. - * - * @param label The label for this menu item. - */ -public -MenuItem(String label) -{ - this.label = label; -} - -/*************************************************************************/ - -/** - * Initializes a new instance of <code>MenuItem</code> with the specified - * label and shortcut. - * - * @param label The label for this menu item. - * @param shortcut The shortcut for this menu item. - */ -public -MenuItem(String label, MenuShortcut shortcut) -{ - this.label = label; - this.shortcut = shortcut; -} - -/*************************************************************************/ - -/* - * Instance Methods - */ - -/** - * Returns the label for this menu item, which may be <code>null</code>. - * - * @return The label for this menu item. - */ -public String -getLabel() -{ - return(label); -} - -/*************************************************************************/ - -/** - * This method sets the label for this menu to the specified value. - * - * @param label The new label for this menu item. - */ -public synchronized void -setLabel(String label) -{ - this.label = label; - if (peer != null) - { - MenuItemPeer mp = (MenuItemPeer) peer; - mp.setLabel (label); - } -} - -/*************************************************************************/ - -/** - * Tests whether or not this menu item is enabled. - * - * @return <code>true</code> if this menu item is enabled, <code>false</code> - * otherwise. - */ -public boolean -isEnabled() -{ - return(enabled); -} - -/*************************************************************************/ - -/** - * Sets the enabled status of this menu item. - * - * @param enabled <code>true</code> to enable this menu item, - * <code>false</code> otherwise. - */ -public synchronized void -setEnabled(boolean enabled) -{ - enable (enabled); -} - -/*************************************************************************/ - -/** - * Sets the enabled status of this menu item. - * - * @param enabled <code>true</code> to enable this menu item, - * <code>false</code> otherwise. - * - * @deprecated This method is deprecated in favor of <code>setEnabled()</code>. - */ -public void -enable(boolean enabled) -{ - if (enabled) - enable (); - else - disable (); -} - -/*************************************************************************/ - -/** - * Enables this menu item. - * - * @deprecated This method is deprecated in favor of <code>setEnabled()</code>. - */ -public void -enable() -{ - if (enabled) - return; - - this.enabled = true; - if (peer != null) - ((MenuItemPeer) peer).setEnabled (true); -} - -/*************************************************************************/ - -/** - * Disables this menu item. - * - * @deprecated This method is deprecated in favor of <code>setEnabled()</code>. - */ -public void -disable() -{ - if (!enabled) - return; - - this.enabled = false; - if (peer != null) - ((MenuItemPeer) peer).setEnabled (false); -} - -/*************************************************************************/ - -/** - * Returns the shortcut for this menu item, which may be <code>null</code>. - * - * @return The shortcut for this menu item. - */ -public MenuShortcut -getShortcut() -{ - return(shortcut); -} - -/*************************************************************************/ - -/** - * Sets the shortcut for this menu item to the specified value. This - * must be done before the native peer is created. - * - * @param shortcut The new shortcut for this menu item. - */ -public void -setShortcut(MenuShortcut shortcut) -{ - this.shortcut = shortcut; -} - -/*************************************************************************/ - -/** - * Deletes the shortcut for this menu item if one exists. This must be - * done before the native peer is created. - */ -public void -deleteShortcut() -{ - shortcut = null; -} - -/*************************************************************************/ - -/** - * Returns the name of the action command in the action events - * generated by this menu item. - * - * @return The action command name - */ -public String -getActionCommand() -{ - if (actionCommand == null) - return label; - else - return actionCommand; -} - -/*************************************************************************/ - -/** - * Sets the name of the action command in the action events generated by - * this menu item. - * - * @param actionCommand The new action command name. - */ -public void -setActionCommand(String actionCommand) -{ - this.actionCommand = actionCommand; -} - -/*************************************************************************/ - -/** - * Enables the specified events. This is done automatically when a - * listener is added and does not normally need to be done by - * application code. - * - * @param events The events to enable, which should be the bit masks - * from <code>AWTEvent</code>. - */ -protected final void -enableEvents(long events) -{ - eventMask |= events; - // TODO: see comment in Component.enableEvents(). -} - -/*************************************************************************/ - -/** - * Disables the specified events. - * - * @param events The events to enable, which should be the bit masks - * from <code>AWTEvent</code>. - */ -protected final void -disableEvents(long events) -{ - eventMask &= ~events; -} - -/*************************************************************************/ - -/** - * Creates the native peer for this object. - */ -public void -addNotify() -{ - if (peer == null) - peer = getToolkit ().createMenuItem (this); -} - -/*************************************************************************/ - -/** - * Adds the specified listener to the list of registered action listeners - * for this component. - * - * @param listener The listener to add. - */ -public synchronized void -addActionListener(ActionListener listener) -{ - action_listeners = AWTEventMulticaster.add(action_listeners, listener); - - enableEvents(AWTEvent.ACTION_EVENT_MASK); -} - -public synchronized void -removeActionListener(ActionListener l) -{ - action_listeners = AWTEventMulticaster.remove(action_listeners, l); -} - - public synchronized ActionListener[] getActionListeners() - { - return (ActionListener[]) - AWTEventMulticaster.getListeners(action_listeners, - ActionListener.class); - } - -/** Returns all registered EventListers of the given listenerType. - * listenerType must be a subclass of EventListener, or a - * ClassClassException is thrown. - * @since 1.3 - */ - public <T extends EventListener> T[] getListeners(Class<T> listenerType) - { - if (listenerType == ActionListener.class) - return (T[]) getActionListeners(); - return (T[]) Array.newInstance(listenerType, 0); - } - -/*************************************************************************/ - -void -dispatchEventImpl(AWTEvent e) -{ - if (e.id <= ActionEvent.ACTION_LAST - && e.id >= ActionEvent.ACTION_FIRST - && (action_listeners != null - || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) - processEvent(e); - - // Send the event to the parent menu if it has not yet been - // consumed. - if (!e.isConsumed ()) - ((Menu) getParent ()).processEvent (e); -} - -/** - * Processes the specified event by calling <code>processActionEvent()</code> - * if it is an instance of <code>ActionEvent</code>. - * - * @param event The event to process. - */ -protected void -processEvent(AWTEvent event) -{ - if (event instanceof ActionEvent) - processActionEvent((ActionEvent)event); -} - -/*************************************************************************/ - -/** - * Processes the specified event by dispatching it to any registered listeners. - * - * @param event The event to process. - */ -protected void -processActionEvent(ActionEvent event) -{ - if (action_listeners != null) - { - event.setSource(this); - action_listeners.actionPerformed(event); - } -} - -/*************************************************************************/ - -/** - * Returns a debugging string for this object. - * - * @return A debugging string for this object. - */ -public String -paramString() -{ - return ("label=" + label + ",enabled=" + enabled + - ",actionCommand=" + actionCommand + "," + super.paramString()); -} - -/** - * Gets the AccessibleContext associated with this <code>MenuItem</code>. - * The context is created, if necessary. - * - * @return the associated context - */ -public AccessibleContext getAccessibleContext() -{ - /* Create the context if this is the first request */ - if (accessibleContext == null) - accessibleContext = new AccessibleAWTMenuItem(); - return accessibleContext; -} - -/** - * Generate a unique name for this <code>MenuItem</code>. - * - * @return A unique name for this <code>MenuItem</code>. - */ -String generateName() -{ - return "menuitem" + getUniqueLong(); -} - -private static synchronized long getUniqueLong() -{ - return next_menuitem_number++; -} - -} // class MenuItem |