javax.swing

Class MenuSelectionManager


public class MenuSelectionManager
extends Object

This class manages current menu selectection. It provides methods to clear and set current selected menu path. It also fires StateChange event to its registered listeners whenever selected path of the current menu hierarchy changes.

Field Summary

protected ChangeEvent
changeEvent
ChangeEvent fired when selected path changes
protected EventListenerList
listenerList
List of listeners for this MenuSelectionManager

Method Summary

void
addChangeListener(ChangeListener listener)
Adds ChangeListener to this MenuSelectionManager
void
clearSelectedPath()
Unselects all the menu elements on the selection path
Component
componentForPoint(Component source, Point sourcePoint)
This method returns menu element on the selected path that contains given source point.
static MenuSelectionManager
defaultManager()
Returns shared instance of MenuSelection Manager
protected void
fireStateChanged()
Fires StateChange event to registered listeners
ChangeListener[]
getChangeListeners()
Returns list of registered listeners with MenuSelectionManager
MenuElement[]
getSelectedPath()
Returns path representing current menu selection
boolean
isComponentPartOfCurrentMenu(Component c)
Returns true if specified component is part of current menu heirarchy and false otherwise
void
processKeyEvent(KeyEvent e)
Processes key events on behalf of the MenuElements.
void
processMouseEvent(MouseEvent event)
Forwards given mouse event to all of the source subcomponents.
void
removeChangeListener(ChangeListener listener)
Removes ChangeListener from the list of registered listeners for this MenuSelectionManager.
void
setSelectedPath(MenuElement[] path)
Sets menu selection to the specified path

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

changeEvent

protected ChangeEvent changeEvent
ChangeEvent fired when selected path changes

listenerList

protected EventListenerList listenerList
List of listeners for this MenuSelectionManager

Method Details

addChangeListener

public void addChangeListener(ChangeListener listener)
Adds ChangeListener to this MenuSelectionManager
Parameters:
listener - ChangeListener to add

clearSelectedPath

public void clearSelectedPath()
Unselects all the menu elements on the selection path

componentForPoint

public Component componentForPoint(Component source,
                                   Point sourcePoint)
This method returns menu element on the selected path that contains given source point. If no menu element on the selected path contains this point, then null is returned.
Parameters:
source - Component relative to which sourcePoint is given
sourcePoint - point for which we want to find menu element that contains it
Returns:
Returns menu element that contains given source point and belongs to the currently selected path. Null is return if no such menu element found.

defaultManager

public static MenuSelectionManager defaultManager()
Returns shared instance of MenuSelection Manager
Returns:
default Manager

fireStateChanged

protected void fireStateChanged()
Fires StateChange event to registered listeners

getChangeListeners

public ChangeListener[] getChangeListeners()
Returns list of registered listeners with MenuSelectionManager
Since:
1.4

getSelectedPath

public MenuElement[] getSelectedPath()
Returns path representing current menu selection
Returns:
Current selection path

isComponentPartOfCurrentMenu

public boolean isComponentPartOfCurrentMenu(Component c)
Returns true if specified component is part of current menu heirarchy and false otherwise
Parameters:
c - Component for which to check
Returns:
True if specified component is part of current menu

processKeyEvent

public void processKeyEvent(KeyEvent e)
Processes key events on behalf of the MenuElements. MenuElement instances should always forward their key events to this method and get their MenuElement.processKeyEvent(KeyEvent,MenuElement[],MenuSelectionManager) eventually called back.
Parameters:
e - the key event

processMouseEvent

public void processMouseEvent(MouseEvent event)
Forwards given mouse event to all of the source subcomponents.
Parameters:
event - Mouse event

removeChangeListener

public void removeChangeListener(ChangeListener listener)
Removes ChangeListener from the list of registered listeners for this MenuSelectionManager.
Parameters:
listener - ChangeListner to remove

setSelectedPath

public void setSelectedPath(MenuElement[] path)
Sets menu selection to the specified path
Parameters:
path - new selection path

MenuSelectionManager.java -- Copyright (C) 2002, 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.