aboutsummaryrefslogtreecommitdiff
path: root/libjava/javax/swing/JMenu.java
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@gcc.gnu.org>2004-05-27 06:17:44 +0000
committerGraydon Hoare <graydon@gcc.gnu.org>2004-05-27 06:17:44 +0000
commitc5d2de6b4c976dc152c8618ab3e8e1319018dc30 (patch)
tree2ffcb4d3889f27364cadf6d34acb5b88d5881e8a /libjava/javax/swing/JMenu.java
parente314a036a8942fe4ce5d9fd586f0a8bac90f6df3 (diff)
downloadgcc-c5d2de6b4c976dc152c8618ab3e8e1319018dc30.zip
gcc-c5d2de6b4c976dc152c8618ab3e8e1319018dc30.tar.gz
gcc-c5d2de6b4c976dc152c8618ab3e8e1319018dc30.tar.bz2
[multiple changes]
2004-05-25 David Jee <djee@redhat.com> * java/awt/Container.java (remove): Set component's parent to null only after we removed the component from its parent's layout manager. 2004-05-25 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer): Set bounds regardless of whether awtComponent is valid. * gnu/java/awt/peer/gtk/GtkListPeer.java (getSize): Change native method declaration. (minimumSize): Pass visible row count into getSize(). (preferredSize): Likewise. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c (Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize): Use scroll window's natural size. Use visible row count to determine the final height value to return. 2004-05-21 Graydon Hoare <graydon@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics2D.java (setClip): Minor correction to order of operations. * javax/swing/JScrollPane.java: Extend sketchy implementation. * javax/swing/ScrollPaneLayout.java: Likewise. * javax/swing/JViewPort.java: Likewise. * javax/swing/ViewportLayout.java: Likewise. * javax/swing/JComponent.java: Rewrite. * javax/swing/RepaintManager.java: Likewise. * javax/swing/JLayeredPane.java: Change validate() to revalidate(). * javax/swing/JList.java (setSelectedIndices): (getSelectedIndices): (getSelectedValues): New functions. (getPreferredScrollableViewportSize): Return preferred size. (getScrollableUnitIncrement): (getScrollableBlockIncrement): Initial implementations. * javax/swing/JRootPane.java: Clean up slightly. (getUI): (setUI): (updateUI): (getUIClassID): (isValidateRoot): Add overrides from JComponent. * javax/swing/JScrollBar.java: Set default orientation to VERTICAL. * javax/swing/UIManager.java (getDimension): Return the dimension. * javax/swing/plaf/basic/BasicButtonUI.java: Set component opaque. * javax/swing/plaf/basic/BasicLabelUI.java: Likewise. * javax/swing/plaf/basic/BasicMenuItemUI.java: Likewise. * javax/swing/plaf/basic/BasicProgressBarUI.java: Likewise. * javax/swing/plaf/basic/BasicSeparatorUI.java: Likewise. * javax/swing/plaf/basic/BasicSliderUI.java: Likewise. * javax/swing/plaf/basic/BasicTabbedPaneUI.java: Likewise. * javax/swing/plaf/basic/BasicRootPaneUI.java: Likewise, and set background. * javax/swing/plaf/basic/BasicListUI.java: Likewise, and improve a bit. * javax/swing/plaf/basic/BasicScrollBarUI.java: Likewise, and adjust calculations. * javax/swing/plaf/basic/BasicViewportUI.java: Likewise, and improve a bit. * javax/swing/plaf/basic/BasicLookAndFeel.java (Button.margin): Shrink. * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c: Hack to set horizontal always, workaround pango. * jni/gtk-peer/gtkcairopeer.h: Change to match pattern API. * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: Synchronize more often, check cairo status after ops, handle changes to cairo pattern API, check for disposal. 2004-05-21 Olga Rodimina <rodimina@redhat.com> * javax/swing/plaf/basic/BasicMenuItemUI.java: (BasicMenuItemUI): Create propertyChangeListener. (getPath):Implemented. (installListeners): Add propertyChangeListener to menuItem. (uninstallListeners): Remove propertyChangeListener from menuItem. (update): Implemented. * javax/swing/plaf/basic/BasicMenuUI.MouseInputHandler: (mouseEntered): Take insets of popup menu into account when calculating position of popup menu. 2004-05-18 Olga Rodimina <rodimina@redhat.com> * Makefile.am: Added new file. * Makefile.in: Regenerate. * javax/swing/JMenuBar.java: Started implementation. * javax/swing/JPopupMenu.java: (setVisible): Fixed location of lightweight/mediumweight popup menu. (show): Fixed location of PopupMenu. * javax/swing/plaf/basic/BasicMenuBarUI.java: New file. UI Delegate for JMenuBar. * javax/swing/plaf/basic/BasicMenuUI.MouseInputHandler: (mouseEntered): Corrected position of the submenu. 2004-05-18 Thomas Fitzsimmons <fitzsim@redhat.com> * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c: Remove calls to _gtk_accel_group_attach. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c: Likewise. * gnu/java/awt/peer/gtk/GtkButtonPeer.java: Give gtkSetFont package access. Don't override setFont. * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java: Likewise. * gnu/java/awt/peer/gtk/GtkComponentPeer.java: Give gtkWidgetRequestFocus package access. * gnu/java/awt/peer/gtk/GtkLabelPeer.java: Don't override setFont. * gnu/java/awt/peer/gtk/GtkListPeer.java: Override gtkSetFont. Give gtkWidgetRequestFocus package access. * gnu/java/awt/peer/gtk/GtkTextAreaPeer.java: Give gtkWidgetRequestFocus package access. Don't override setFont. * gnu/java/awt/peer/gtk/GtkTextFieldPeer.java: Don't override setFont. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c (gtkSetLabel): Move call to gtk_bin_get_child into GDK critical region. (gtkSetFont): Likewise. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c (gtkSetFont): Implement. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c (gtkSetFont): Whitespace fix. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c (gtkWidgetSetUsize): Remove method. 2004-05-18 David Jee <djee@redhat.com> * java/awt/image/MemoryImageSource.java (newPixels(int,int,int,int,boolean)): Set only the specified rectangle of pixels. (newPixels(byte[],ColorModel,int,int)): Implement. (newPixels(int[],ColorModel,int,int)): Implement. 2004-05-18 Olga Rodimina <rodimina@redhat.com> * Makefile.am: Added new file. * Makefile.in: Regenerate. * javax/swing/JMenu.java: Started implementation. * javax/swing/JPopupMenu.java: (insert): If specified index is -1, then add component at the end. (isPopupTrigger): Reimplemented. (JPopupMenu.LightWeightPopup): setBounds of the lightWeightPopup before adding it to the layeredPane. (javax/swing/plaf/basic/BasicIconFactory.java): (getMenuArrowIcon): Implemented. * javax/swing/plaf/basic/BasicMenuItemUI.java: (getPreferredSize): Add size of the arrow icon if this menu item is instance of JMenu. (paintMenuItem): Paint arrow icon if this menu item is a submenu. * javax/swing/plaf/basic/BasicMenuUI.java: New File. UI Delegate for JMenu. 2004-05-17 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/java/awt/peer/gtk/GtkComponentPeer.java (postKeyEvent): Post KEY_TYPED events. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (generates_key_typed_event): Remove function. 2004-05-17 Olga Rodimina <rodimina@redhat.com> * javax/swing/JRootPane.java (JRootPane.RootLayout): Reimplemented to set bounds of contentPane and menuBar. (setJMenuBar): Add menu bar to the layered pane. (createLayeredPane): Set layout of layeredPane to null. * javax/swing/JLayeredPane.java: (addImpl): Calculate index of the component in the layeredPane according to the specified position within the layer. 2004-05-17 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GtkImagePainter.java (setPixels): Change color model to the default model after converting pixels. * java/awt/image/MemoryImageSource.java (newPixels): Set only the specified rectangle of pixels. 2004-05-13 Thomas Fitzsimmons <fitzsim@redhat.com> * libgcj.spec.in (lib): Add -l-java-awt -l-java-applet -l-java-beans -l-javax-accessibility -l-javax-swing. * java/awt/AWTEvent.java (toString): Print source's name rather than the source itself. 2004-05-12 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/java/awt/peer/gtk/GtkToolkit.java (loadSystemColors): Make native. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c (gdk_color_to_java_color): New function. * jni/gtk-peer/gtkpeer.h: Add SystemColor defines. 2004-05-12 David Jee <djee@redhat.com> * java/awt/image/RGBImageFilter.java: Initialize origmodel as null. (makeColor): Fix pixel component order. (filterRGBPixels): Fix pixel iteration. (setPixels): Add extra checks for index color model. Convert pixels to default color model if necessary. (convertColorModelToDefault): New override method for byte pixels. (convertColorModelToDefault): For int pixels, fix pixel iteration. (makeColorbyDefaultCM): New override method for byte pixels. (makeColorbyDefaultCM): For int pixel, add color model as argument. (makeColor): Fix pixel component order. 2004-05-11 Kim Ho <kho@redhat.com> * javax/swing/Box.java: Comment out more parts of Box.Filler. 2004-05-11 Kim Ho <kho@redhat.com> * javax/swing/Box.java: Remove reference to AccessibleAWTComponent so it compiles again. 2004-05-10 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/java/awt/peer/gtk/GtkListPeer.java, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c: Update implementation of list peer to use GtkTreeView instead of deprecated GtkCList. 2004-05-07 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/java/awt/peer/gtk/GtkComponentPeer.java (gtkWidgetDispatchKeyEvent): Remove keyChar parameter. (handleEvent): Remove keyChar argument to gtkWidgetDispatchKeyEvent calls. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Fix compiler warnings. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c: Likewise. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c: Likewise. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c: Likewise. 2004-05-06 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/java/awt/peer/gtk/GtkComponentPeer.java (gtkWidgetRequestFocus): Mark protected. (GtkComponentPeer): Only set the peer's bounds if its component is valid. * java/awt/Component.java (static): Set the default keyboard focus manager. (requestFocus(), requestFocus(boolean), requestFocusInWindow(), requestFocusInWindow(temporary)): Don't request focus if the component is not showing. Get tree lock before traversing component hierarchy. * java/awt/DefaultKeyboardFocusManager.java (dispatchEvent): Only set the global focus owner if it is not a Window. (processKeyEvent): Consume keystrokes associated with the focus traversal keystroke. (focusPreviousComponent, focusNextComponent, upFocusCycle, downFocusCycle): Call requestFocusInWindow instead of requestFocus. * java/awt/EventDispatchThread.java (run): Move setting of default keyboard focus manager to Component.java. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c (awt_keycode_to_keysym): New function. (gtkWidgetDispatchKeyEvent): Finish implementation. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (pre_event_handler): Add FIXME comment. * gnu/java/awt/peer/gtk/GtkTextAreaPeer.java, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c (gtkWidgetRequestFocus): New method. * java/awt/TextArea.java (TextArea): Set focus traversal keys to disable Tab and Shift-Tab keystrokes. (addNotify, appendText, insertText, replaceText): Simplify peer retrieval code. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c (connectSignals): Remove connections to "commit" signals. Remove C++-style comments. * gnu/java/awt/peer/gtk/GtkButtonPeer.java, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c (handleEvent): Activate GTK button when the space bar key is pressed. (gtkActivate): New method. 2004-05-06 David Jee <djee@redhat.com> * java/awt/image/CropImageFilter.java (setPixels): Implement for byte array pixels. * java/awt/image/ReplicateScaleFilter.java (setPixels): Implement for byte array pixels. (replicatePixels): Overload for byte array pixels. 2004-05-06 Kim Ho <kho@redhat.com> * javax/swing/Box.java: (getAccessibleContext): Return an instance of the correct class. 2004-05-05 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics.java (drawImage): When component is null, use SystemColor.window as the default bgcolor. * gnu/java/awt/peer/gtk/GtkImage.java (setPixels): We can avoid iterating through the pixel rows only when height is 1. * java/awt/Image.java (getScaledInstance): Partially implement. * java/awt/image/CropImageFilter.java (setProperties): Fix "filter" property. (setPixels): Implement. * java/awt/image/ReplicateScaleFilter.java (setDimensions): Use scaled dimensions. (setPixels): Implement. (replicatePixels): New method. 2004-05-05 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GtkImagePainter.java (convertPixels): If either pixels or model is null, return null. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c (Java_gnu_java_awt_peer_gtk_GtkImagePainter_drawPixels): If jpixels is null, do nothing and return. 2004-05-03 Kim Ho <kho@redhat.com> * gnu/java/awt/peer/gtk/GtkDialogPeer.java: (getGraphics): Like GtkFramePeer, the Graphics object needs to be translate to account for window decorations. (postMouseEvent): New method. Account for translation. (postExposeEvent): ditto. * javax/swing/Box.java: Stubbed. * javax/swing/JDialog.java: Ran through jalopy to fix indentation. (JDialog): Call SwingUtilities' getOwnerFrame for null owners. (setLayout): Check isRootPaneCheckingEnabled * javax/swing/JOptionPane.java: Re-implemented. * javax/swing/SwingUtilities.java: (getOwnerFrame): Static method to grab a default owner frame for Dialogs that don't specify owners. * javax/swing/event/SwingPropertyChangeSupport.java: (firePropertyChange): Fix early exit condition. * javax/swing/plaf/basic/BasicLabelUI.java: (paint): Avoid painting text if it is null or empty. * javax/swing/plaf/basic/BasicOptionPaneUI.java: Implement. 2004-05-03 Olga Rodimina <rodimina@redhat.com> * Makefile.am: Added new file. * Makefile.in: Regenerate. * javax/swing/JPopupMenu.java: Started implementation. * javax/swing/JWindow.java (JWindow): call super() if parent for window is not specified. * javax/swing/plaf/basic/BasicPopupMenuUI.java: New File. UI Delegate for JPopupMenu. 2004-04-30 Olga Rodimina <rodimina@redhat.com> * javax/swing/JApplet.java: Indicated that JApplet implements RootPaneContainer and made method of this interface public. * javax/swing/JFrame.java: Ditto. * javax/swing/JWindow.java: Ditto. 2004-04-29 Thomas Fitzsimmons <fitzsim@redhat.com> * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (nativeSetBounds): Call gdk_window_move in addition to gtk_window_move. * java/applet/Applet.java (preferredSize): Call parent's preferredSize if the applet stub is null. (minimumSize): Likewise for parent's minimumSize. 2004-04-27 Olga Rodimina <rodimina@redhat.com> * javax/swing/JMenuItem.java (createActionPropertyChangeListener): Implemented. (processMouseEvent): Ditto. (fireMenuDragMouseEntered): Ditto. (fireMenuDragMouseExited): Ditto. (fireMenuDragMouseDragged): Ditto. (fireMenuDragMouseReleased): Ditto. (menuSelectionChanged): Ditto. (getSubElements): Ditto. (getComponent): Ditto. (addMenuDragMouseListener): Ditto. (removeMenuDragMouseListener):Ditto. (addMenuKeyListener): Ditto. (removeMenuKeyListener): Ditto. * javax/swing/plaf/basic/BasicMenuItemUI.java (doClick): Imlemented. * javax/swing/plaf/basic/BasicMenuItemUI.MouseInputHandler: Don't handle mouse events here. Pass them to MenuSelectionManager. 2004-04-26 Olga Rodimina <rodimina@redhat.com> Used correct version of jalopy configuration file to fix style in the files below. 2004-04-26 Olga Rodimina <rodimina@redhat.com> * javax/swing/JCheckBoxMenuItem.java: Fixed style and removed unnecessary comments. * javax/swing/JMenuItem.java: Ditto. * javax/swing/JRadioButtonMenuItem.java: Ditto. * javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java: Ditto. * javax/swing/plaf/basic/BasicMenuItemUI.java: Ditto. * javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java: Ditto. 2004-04-23 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu_java_awt_peer_gtk_GtkWindowPeer.c: Change FIXME comment to C-style. * gnu_java_awt_peer_gtk_GtkWindowPeer.c: Add FIXME comment. * java/awt/ContainerOrderFocusTraversalPolicy.java (getComponentAfter): Start from current component and work up the component hierarchy until an acceptable component is found. Synchronize on tree lock. (getComponentBefore): Likewise. 2004-04-22 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/java/awt/peer/gtk/GtkComponentPeer.java: Remove focus-related debugging messages. * java/awt/DefaultKeyboardFocusManager.java: Likewise. * java/awt/EventDispatchThread.java: Likewise. * java/awt/KeyboardFocusManager.java: Likewise. * java/awt/Window.java: Likewise. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Likewise. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c: Likewise. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Change new C++-style comments to C-style comments. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c: Likewise. * gnu/java/awt/peer/gtk/GtkComponentPeer.java, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c (handleEvent): Dispatch key press and key release events to backing widget. (requestFocus): Post a FOCUS_GAINED event to the event queue. (gtkWidgetRequestFocus): New method. (gtkWidgetDispatchKeyEvent): Likewise. * java/awt/Component.java (requestFocus, requestFocus(boolean), requestFocusInWindow, requestFocusInWindow(boolean), getFocusCycleRootAncestor, nextFocus, transferFocus, transferFocusBackward, transferFocusUpCycle, hasFocus, isFocusOwner): Implement and document focus-handling methods. (setFocusTraversalKeys): Inherit focus traversal keys when keystrokes argument is null. Fix focus-handling documentation throughout class. * java/awt/Container.java (setFocusTraversalKeys, getFocusTraversalKeys, areFocusTraversalKeysSet, isFocusCycleRoot, setFocusTraversalPolicy, getFocusTraversalPolicy, isFocusTraversalPolicySet, setFocusCycleRoot, isFocusCycleRoot, transferFocusDownCycle): Implement and document focus-handling methods. (transferFocusBackward): Remove method. (readObject, writeObject): Implement and document serialization methods. * java/awt/ContainerOrderFocusTraversalPolicy.java: Implement and document. * java/awt/DefaultFocusTraversalPolicy.java: Implement and document. * java/awt/DefaultKeyboardFocusManager.java: Implement and partially document. * java/awt/EventDispatchThread.java (run): Set default keyboard focus manager. Attempt to dispatch each event to the keyboard focus manager before normal dispatch. * java/awt/KeyboardFocusManager.java: Implement and partially document. * java/awt/Window.java (Window): Set focusCycleRoot to true. (show): Focus initial component when window is shown for the first time. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (pre_event_handler): Replace complex key press and key release logic with simple callbacks into GtkComponentPeer. * jni/gtk-peer/gtkpeer.h: Fix FOCUS_GAINED/FOCUS_LOST reversal. 2004-04-21 Olga Rodimina <rodimina@redhat.com> * javax/swing/MenuSelectionManager.java (componentForPoint): Added new method. (defaultManager): New Method. Implemented. (getSelectedPath): Ditto. (isComponentPartOfCurrentMenu): Ditto. (processKeyEvent): Added new method. (processMouseEvent): New Method. Implemented. (setSelectedPath): Ditto. (getPath): Ditto. 2004-04-19 Kim Ho <kho@redhat.com> * java/awt/Container.java: (remove): Set the component's parent to null. (getComponentAt): Implement. * javax/swing/JComponent.java: (JComponent): Initialize defaultLocale (getDefaultLocale): Implement. (setDefaultLocale): ditto. * javax/swing/JSlider.java: (JSlider): Fix calculation of value. * javax/swing/JSplitPane.java: Implement. * javax/swing/plaf/basic/BasicLookAndFeel.java: Change SplitPane's default divider size. * javax/swing/plaf/basic/BasicScrollBarUI.java: (paint): Remove unused code. * javax/swing/plaf/basic/BasicSplitPaneDivider.java: Added comments and ran through jalopy. (setBasicSplitPaneUI): Get reference to hidden divider and set up one touch buttons if necessary. (setBorder): Fire propertyChangeEvent only if borders are different. (getPreferredSize): Defer to layout manager. (propertyChange): Implement. (oneTouchExpandableChanged): ditto. (createLeftOneTouchButton): Use BasicArrowButton. (createRightOneTouchButton): ditto. (moveDividerTo): New method. Moves the divider to a set location based on the last divider location. (BasicSplitPaneDivider::MouseHandler): Implement. (BasicSplitPaneDivider::OneTouchButton): Removed. (BasicSplitPaneDivider::DragController): Implement. (BasicSplitPaneDivider::VerticalDragController): ditto. (BasicSplitPaneDivider::DividerLayout): ditto. * javax/swing/plaf/basic/BasicSplitPaneUI.java: Reimplement. * javax/swing/plaf/basic/BasicTabbedPaneUI.java: (calculateLayoutInfo): Don't show component if it's null. (paintTab): Fix title paint logic. From-SVN: r82314
Diffstat (limited to 'libjava/javax/swing/JMenu.java')
-rw-r--r--libjava/javax/swing/JMenu.java1490
1 files changed, 781 insertions, 709 deletions
diff --git a/libjava/javax/swing/JMenu.java b/libjava/javax/swing/JMenu.java
index 8a6004b..b7d1b82 100644
--- a/libjava/javax/swing/JMenu.java
+++ b/libjava/javax/swing/JMenu.java
@@ -46,724 +46,796 @@ import java.beans.PropertyChangeListener;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
+import java.util.EventListener;
import java.util.Hashtable;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleSelection;
+import javax.swing.event.ChangeListener;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
-import javax.swing.event.ChangeListener;
+import javax.swing.plaf.MenuItemUI;
+
/**
- * JMenu
- * @author Andrew Selkirk
- * @version 1.0
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision: 1.3.8.1 $
*/
-public class JMenu
- extends JMenuItem
- implements Accessible, MenuElement
+public class JMenu extends JMenuItem implements Accessible, MenuElement
{
static final long serialVersionUID = 4227225638931828014L;
-
- //-------------------------------------------------------------
- // Classes ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * AccessibleJMenu
- */
- protected class AccessibleJMenu extends AccessibleJMenuItem
- implements AccessibleSelection {
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor AccessibleJMenu
- * @param component TODO
- */
- protected AccessibleJMenu(JMenu component) {
- super(component);
- // TODO
- } // AccessibleJMenu()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * getAccessibleChildrenCount
- * @returns int
- */
- public int getAccessibleChildrenCount() {
- return 0; // TODO
- } // getAccessibleChildrenCount()
-
- /**
- * getAccessibleChild
- * @param value0 TODO
- * @returns Accessible
- */
- public Accessible getAccessibleChild(int value0) {
- return null; // TODO
- } // getAccessibleChild()
-
- /**
- * getAccessibleSelection
- * @returns AccessibleSelection
- */
- public AccessibleSelection getAccessibleSelection() {
- return null; // TODO
- } // getAccessibleSelection()
-
- /**
- * getAccessibleSelection
- * @param value0 TODO
- * @returns Accessible
- */
- public Accessible getAccessibleSelection(int value0) {
- return null; // TODO
- } // getAccessibleSelection()
-
- /**
- * isAccessibleChildSelected
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isAccessibleChildSelected(int value0) {
- return false; // TODO
- } // isAccessibleChildSelected()
-
- /**
- * getAccessibleRole
- * @returns AccessibleRole
- */
- public AccessibleRole getAccessibleRole() {
- return AccessibleRole.MENU;
- } // getAccessibleRole()
-
- /**
- * getAccessibleSelectionCount
- * @returns int
- */
- public int getAccessibleSelectionCount() {
- return 0; // TODO
- } // getAccessibleSelectionCount()
-
- /**
- * addAccessibleSelection
- * @param value0 TODO
- */
- public void addAccessibleSelection(int value0) {
- // TODO
- } // addAccessibleSelection()
-
- /**
- * removeAccessibleSelection
- * @param value0 TODO
- */
- public void removeAccessibleSelection(int value0) {
- // TODO
- } // removeAccessibleSelection()
-
- /**
- * clearAccessibleSelection
- */
- public void clearAccessibleSelection() {
- // TODO
- } // clearAccessibleSelection()
-
- /**
- * selectAllAccessibleSelection
- */
- public void selectAllAccessibleSelection() {
- // TODO
- } // selectAllAccessibleSelection()
-
-
- } // AccessibleJMenu
-
- /**
- * WinListener
- */
- protected class WinListener extends WindowAdapter implements Serializable {
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * popupMenu
- */
- JPopupMenu popupMenu;
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor WinListener
- * @param value0 TODO
- * @param value1 TODO
- */
- public WinListener(JMenu value0, JPopupMenu value1) {
- // TODO
- } // WinListener()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * windowClosing
- * @param value0 TODO
- */
- public void windowClosing(WindowEvent value0) {
- // TODO
- } // windowClosing()
-
-
- } // WinListener
-
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * uiClassID
- */
- private static final String uiClassID = "MenuUI";
-
- /**
- * popupMenu
- */
- private JPopupMenu popupMenu;
-
- /**
- * menuChangeListener
- */
- private ChangeListener menuChangeListener;
-
- /**
- * menuEvent
- */
- private MenuEvent menuEvent;
-
- /**
- * listenerRegistry
- */
- private static Hashtable listenerRegistry = null; // TODO
-
- /**
- * delay
- */
- private int delay;
-
- /**
- * TRACE
- */
- private static final boolean TRACE = false; // TODO
-
- /**
- * VERBOSE
- */
- private static final boolean VERBOSE = false; // TODO
-
- /**
- * DEBUG
- */
- private static final boolean DEBUG = false; // TODO
-
- /**
- * popupListener
- */
- protected JMenu.WinListener popupListener;
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor JMenu
- */
- public JMenu() {
- // TODO
- } // JMenu()
-
- /**
- * Constructor JMenu
- * @param text TODO
- */
- public JMenu(String text) {
- // TODO
- } // JMenu()
-
- /**
- * Constructor JMenu
- * @param action TODO
- */
- public JMenu(Action action) {
- // TODO
- } // JMenu()
-
- /**
- * Constructor JMenu
- * @param text TODO
- * @param tearoff TODO
- */
- public JMenu(String text, boolean tearoff) {
- // TODO
- } // JMenu()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * writeObject
- * @param stream TODO
- * @exception IOException TODO
- */
- private void writeObject(ObjectOutputStream stream) throws IOException {
- // TODO
- } // writeObject()
-
- /**
- * add
- * @param value0 TODO
- * @returns JMenuItem
- */
- public JMenuItem add(JMenuItem item) {
- return null; // TODO
- } // add()
-
- /**
- * add
- * @param component TODO
- * @returns Component
- */
- public Component add(Component component) {
- return null; // TODO
- } // add()
-
- /**
- * add
- * @param component TODO
- * @param index TODO
- * @returns Component
- */
- public Component add(Component component, int index) {
- return null; // TODO
- } // add()
-
- /**
- * add
- * @param text TODO
- * @returns JMenuItem
- */
- public JMenuItem add(String text) {
- return null; // TODO
- } // add()
-
- /**
- * add
- * @param action TODO
- * @returns JMenuItem
- */
- public JMenuItem add(Action action) {
- return null; // TODO
- } // add()
-
- /**
- * remove
- * @param item TODO
- */
- public void remove(JMenuItem item) {
- // TODO
- } // remove()
-
- /**
- * remove
- * @param index TODO
- */
- public void remove(int index) {
- // TODO
- } // remove()
-
- /**
- * remove
- * @param component TODO
- */
- public void remove(Component component) {
- // TODO
- } // remove()
-
- /**
- * removeAll
- */
- public void removeAll() {
- // TODO
- } // removeAll()
-
- /**
- * insert
- * @param text TODO
- * @param index TODO
- */
- public void insert(String text, int index) {
- // TODO
- } // insert()
-
- /**
- * insert
- * @param item TODO
- * @param index TODO
- * @returns JMenuItem
- */
- public JMenuItem insert(JMenuItem item, int index) {
- return null; // TODO
- } // insert()
-
- /**
- * insert
- * @param action TODO
- * @param index TODO
- * @returns JMenuItem
- */
- public JMenuItem insert(Action action, int index) {
- return null; // TODO
- } // insert()
-
- /**
- * updateUI
- */
- public void updateUI() {
- //setUI((MenuUI) UIManager.get(this));
- invalidate();
- } // updateUI()
-
- /**
- * getUIClassID
- * @returns String
- */
- public String getUIClassID() {
- return uiClassID;
- } // getUIClassID()
-
- /**
- * setModel
- * @param model TODO
- */
- public void setModel(ButtonModel model) {
- // TODO
- } // setModel()
-
- /**
- * isSelected
- * @returns boolean
- */
- public boolean isSelected() {
- return false; // TODO
- } // isSelected()
-
- /**
- * setSelected
- * @param selected TODO
- */
- public void setSelected(boolean selected) {
- // TODO
- } // setSelected()
-
- /**
- * isPopupMenuVisible
- * @returns boolean
- */
- public boolean isPopupMenuVisible() {
- return false; // TODO
- } // isPopupMenuVisible()
-
- /**
- * setPopupMenuVisible
- * @param popup TODO
- */
- public void setPopupMenuVisible(boolean popup) {
- // TODO
- } // setPopupMenuVisible()
-
- /**
- * getPopupMenuOrigin
- * @returns Point
- */
- protected Point getPopupMenuOrigin() {
- return null; // TODO
- } // getPopupMenuOrigin()
-
- /**
- * getDelay
- * @returns int
- */
- public int getDelay() {
- return 0; // TODO
- } // getDelay()
-
- /**
- * setDelay
- * @param value0 TODO
- */
- public void setDelay(int delay) {
- // TODO
- } // setDelay()
-
- /**
- * setMenuLocation
- * @param x TODO
- * @param y TODO
- */
- public void setMenuLocation(int x, int y) {
- // TODO
- } // setMenuLocation()
-
- /**
- * createActionComponent
- * @param action TODO
- * @returns JMenuItem
- */
- protected JMenuItem createActionComponent(Action action) {
- return null; // TODO
- } // createActionComponent()
-
- /**
- * createActionChangeListener
- * @param item TODO
- * @returns PropertyChangeListener
- */
- protected PropertyChangeListener createActionChangeListener(JMenuItem item) {
- return null; // TODO
- } // createActionChangeListener()
-
- /**
- * addSeparator
- */
- public void addSeparator() {
- // TODO
- } // addSeparator()
-
- /**
- * insertSeparator
- * @param index TODO
- */
- public void insertSeparator(int index) {
- // TODO
- } // insertSeparator()
-
- /**
- * getItem
- * @param index TODO
- * @returns JMenuItem
- */
- public JMenuItem getItem(int index) {
- return null; // TODO
- } // getItem()
-
- /**
- * getItemCount
- * @returns int
- */
- public int getItemCount() {
- return 0; // TODO
- } // getItemCount()
-
- /**
- * isTearOff
- * @returns boolean
- */
- public boolean isTearOff() {
- return false; // TODO
- } // isTearOff()
-
- /**
- * getMenuComponentCount
- * @returns int
- */
- public int getMenuComponentCount() {
- return 0; // TODO
- } // getMenuComponentCount()
-
- /**
- * getMenuComponent
- * @param index TODO
- * @returns Component
- */
- public Component getMenuComponent(int index) {
- return null; // TODO
- } // getMenuComponent()
-
- /**
- * getMenuComponents
- * @returns Component[]
- */
- public Component[] getMenuComponents() {
- return null; // TODO
- } // getMenuComponents()
-
- /**
- * isTopLevelMenu
- * @returns boolean
- */
- public boolean isTopLevelMenu() {
- return false; // TODO
- } // isTopLevelMenu()
-
- /**
- * isMenuComponent
- * @param component TODO
- * @returns boolean
- */
- public boolean isMenuComponent(Component component) {
- return false; // TODO
- } // isMenuComponent()
-
- /**
- * getPopupMenu
- * @returns JPopupMenu
- */
- public JPopupMenu getPopupMenu() {
- return null; // TODO
- } // getPopupMenu()
-
- /**
- * addMenuListener
- * @param listener TODO
- */
- public void addMenuListener(MenuListener listener) {
- // TODO
- } // addMenuListener()
-
- /**
- * removeMenuListener
- * @param listener TODO
- */
- public void removeMenuListener(MenuListener listener) {
- // TODO
- } // removeMenuListener()
-
- /**
- * fireMenuSelected
- */
- protected void fireMenuSelected() {
- // TODO
- } // fireMenuSelected()
-
- /**
- * fireMenuDeselected
- */
- protected void fireMenuDeselected() {
- // TODO
- } // fireMenuDeselected()
-
- /**
- * fireMenuCanceled
- */
- protected void fireMenuCanceled() {
- // TODO
- } // fireMenuCanceled()
-
- /**
- * createMenuChangeListener
- * @returns ChangeListener
- */
- private ChangeListener createMenuChangeListener() {
- return null; // TODO
- } // createMenuChangeListener()
-
- /**
- * createWinListener
- * @param popup TODO
- * @returns JMenu.WinListener
- */
- protected JMenu.WinListener createWinListener(JPopupMenu popup) {
- return null; // TODO
- } // createWinListener()
-
- /**
- * menuSelectionChanged
- * @param value0 TODO
- */
- public void menuSelectionChanged(boolean changed) {
- // TODO
- } // menuSelectionChanged()
-
- /**
- * getSubElements
- * @returns MenuElement[]
- */
- public MenuElement[] getSubElements() {
- return null; // TODO
- } // getSubElements()
-
- /**
- * getComponent
- * @returns Component
- */
- public Component getComponent() {
- return null; // TODO
- } // getComponent()
-
- /**
- * setAccelerator
- * @param keystroke TODO
- */
- public void setAccelerator(KeyStroke keystroke) {
- // TODO
- } // setAccelerator()
-
- /**
- * processKeyEvent
- * @param event TODO
- */
- protected void processKeyEvent(KeyEvent event) {
- // TODO
- } // processKeyEvent()
-
- /**
- * doClick
- * @param time TODO
- */
- public void doClick(int time) {
- // TODO
- } // doClick()
-
- /**
- * paramString
- * @returns String
- */
- protected String paramString() {
- return null; // TODO
- } // paramString()
-
- /**
- * getAccessibleContext
- * @returns AccessibleContext
- */
- public AccessibleContext getAccessibleContext() {
- if (accessibleContext == null) {
- accessibleContext = new AccessibleJMenu(this);
- } // if
- return accessibleContext;
- } // getAccessibleContext()
-
-
-} // JMenu
+ private static final String uiClassID = "MenuUI";
+ private static Hashtable listenerRegistry = null;
+ private JPopupMenu popupMenu = new JPopupMenu();
+ private ChangeListener menuChangeListener;
+ private MenuEvent menuEvent;
+ private int delay;
+ protected JMenu.WinListener popupListener;
+
+ /**
+ * Creates a new JMenu object.
+ */
+ public JMenu()
+ {
+ super();
+ }
+
+ /**
+ * Creates a new JMenu object.
+ *
+ * @param text DOCUMENT ME!
+ */
+ public JMenu(String text)
+ {
+ super(text);
+ }
+
+ /**
+ * Creates a new JMenu object.
+ *
+ * @param action DOCUMENT ME!
+ */
+ public JMenu(Action action)
+ {
+ super(action);
+ }
+
+ /**
+ * Creates a new JMenu object.
+ *
+ * @param text DOCUMENT ME!
+ * @param tearoff DOCUMENT ME!
+ */
+ public JMenu(String text, boolean tearoff)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param stream DOCUMENT ME!
+ *
+ * @throws IOException DOCUMENT ME!
+ */
+ private void writeObject(ObjectOutputStream stream) throws IOException
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param item DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem add(JMenuItem item)
+ {
+ return popupMenu.add(item);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param component DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component add(Component component)
+ {
+ return popupMenu.add(component);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param component DOCUMENT ME!
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component add(Component component, int index)
+ {
+ return popupMenu.add(component, index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param text DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem add(String text)
+ {
+ return popupMenu.add(text);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param action DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem add(Action action)
+ {
+ return popupMenu.add(action);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param item DOCUMENT ME!
+ */
+ public void remove(JMenuItem item)
+ {
+ popupMenu.remove(item);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param index DOCUMENT ME!
+ */
+ public void remove(int index)
+ {
+ popupMenu.remove(index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param component DOCUMENT ME!
+ */
+ public void remove(Component component)
+ {
+ int index = popupMenu.getComponentIndex(component);
+ popupMenu.remove(index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void removeAll()
+ {
+ popupMenu.removeAll();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param text DOCUMENT ME!
+ * @param index DOCUMENT ME!
+ */
+ public void insert(String text, int index)
+ {
+ popupMenu.insert(new JMenuItem(text), index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param item DOCUMENT ME!
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem insert(JMenuItem item, int index)
+ {
+ popupMenu.insert(item, index);
+
+ return item;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param action DOCUMENT ME!
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem insert(Action action, int index)
+ {
+ JMenuItem item = new JMenuItem(action);
+ popupMenu.insert(item, index);
+
+ return item;
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void updateUI()
+ {
+ super.setUI((MenuItemUI) UIManager.getUI(this));
+ invalidate();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getUIClassID()
+ {
+ return uiClassID;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param model DOCUMENT ME!
+ */
+ public void setModel(ButtonModel model)
+ {
+ super.setModel(model);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isSelected()
+ {
+ return super.isSelected();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param selected DOCUMENT ME!
+ */
+ public void setSelected(boolean selected)
+ {
+ super.setSelected(selected);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isPopupMenuVisible()
+ {
+ return popupMenu.isVisible();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param popup DOCUMENT ME!
+ */
+ public void setPopupMenuVisible(boolean popup)
+ {
+ if (isEnabled())
+ popupMenu.setVisible(popup);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected Point getPopupMenuOrigin()
+ {
+ // if menu in the menu bar
+ if (isTopLevelMenu())
+ return new Point(0, this.getHeight());
+
+ // if submenu
+ return new Point(this.getWidth(), 0);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getDelay()
+ {
+ return delay;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param delay DOCUMENT ME!
+ */
+ public void setDelay(int delay)
+ {
+ this.delay = delay;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param x DOCUMENT ME!
+ * @param y DOCUMENT ME!
+ */
+ public void setMenuLocation(int x, int y)
+ {
+ popupMenu.setLocation(x, y);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param action DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected JMenuItem createActionComponent(Action action)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param item DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected PropertyChangeListener createActionChangeListener(JMenuItem item)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void addSeparator()
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param index DOCUMENT ME!
+ */
+ public void insertSeparator(int index)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem getItem(int index)
+ {
+ Component c = popupMenu.getComponentAtIndex(index);
+
+ if (c instanceof JMenuItem)
+ return (JMenuItem) c;
+ else
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getItemCount()
+ {
+ return 0;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isTearOff()
+ {
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getMenuComponentCount()
+ {
+ return popupMenu.getComponentCount();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component getMenuComponent(int index)
+ {
+ return (Component) popupMenu.getComponentAtIndex(index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component[] getMenuComponents()
+ {
+ return popupMenu.getComponents();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isTopLevelMenu()
+ {
+ if (getParent() instanceof JMenuBar)
+ return true;
+ else
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param component DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isMenuComponent(Component component)
+ {
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JPopupMenu getPopupMenu()
+ {
+ return popupMenu;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param listener DOCUMENT ME!
+ */
+ public void addMenuListener(MenuListener listener)
+ {
+ listenerList.add(MenuListener.class, listener);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param listener DOCUMENT ME!
+ */
+ public void removeMenuListener(MenuListener listener)
+ {
+ listenerList.remove(MenuListener.class, listener);
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void fireMenuSelected()
+ {
+ EventListener[] ll = listenerList.getListeners(MenuListener.class);
+
+ for (int i = 0; i < ll.length; i++)
+ ((MenuListener) ll[i]).menuSelected(new MenuEvent(this));
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void fireMenuDeselected()
+ {
+ EventListener[] ll = listenerList.getListeners(MenuListener.class);
+
+ for (int i = 0; i < ll.length; i++)
+ ((MenuListener) ll[i]).menuDeselected(new MenuEvent(this));
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void fireMenuCanceled()
+ {
+ EventListener[] ll = listenerList.getListeners(MenuListener.class);
+
+ for (int i = 0; i < ll.length; i++)
+ ((MenuListener) ll[i]).menuCanceled(new MenuEvent(this));
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ private ChangeListener createMenuChangeListener()
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param popup DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected JMenu.WinListener createWinListener(JPopupMenu popup)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param changed DOCUMENT ME!
+ */
+ public void menuSelectionChanged(boolean changed)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public MenuElement[] getSubElements()
+ {
+ return new MenuElement[] { popupMenu };
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component getComponent()
+ {
+ return this;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param keystroke DOCUMENT ME!
+ */
+ public void setAccelerator(KeyStroke keystroke)
+ {
+ super.setAccelerator(keystroke);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param event DOCUMENT ME!
+ */
+ protected void processKeyEvent(KeyEvent event)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param time DOCUMENT ME!
+ */
+ public void doClick(int time)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected String paramString()
+ {
+ return "JMenu";
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleJMenu(this);
+
+ return accessibleContext;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision: 1.3.8.1 $
+ */
+ protected class AccessibleJMenu extends AccessibleJMenuItem
+ implements AccessibleSelection
+ {
+ /**
+ * Creates a new AccessibleJMenu object.
+ *
+ * @param component DOCUMENT ME!
+ */
+ protected AccessibleJMenu(JMenu component)
+ {
+ super(component);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getAccessibleChildrenCount()
+ {
+ return 0;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Accessible getAccessibleChild(int value0)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public AccessibleSelection getAccessibleSelection()
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Accessible getAccessibleSelection(int value0)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isAccessibleChildSelected(int value0)
+ {
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.MENU;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getAccessibleSelectionCount()
+ {
+ return 0;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ */
+ public void addAccessibleSelection(int value0)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ */
+ public void removeAccessibleSelection(int value0)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void clearAccessibleSelection()
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void selectAllAccessibleSelection()
+ {
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision: 1.3.8.1 $
+ */
+ protected class WinListener extends WindowAdapter implements Serializable
+ {
+ JPopupMenu popupMenu;
+
+ /**
+ * Creates a new WinListener object.
+ *
+ * @param value0 DOCUMENT ME!
+ * @param value1 DOCUMENT ME!
+ */
+ public WinListener(JMenu value0, JPopupMenu value1)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ */
+ public void windowClosing(WindowEvent value0)
+ {
+ }
+ }
+}