diff options
| author | graydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-27 06:17:44 +0000 |
|---|---|---|
| committer | graydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-27 06:17:44 +0000 |
| commit | 7be583b48b04633a592ab530473b7f995955b160 (patch) | |
| tree | 2ffcb4d3889f27364cadf6d34acb5b88d5881e8a /libjava/javax/swing/plaf/basic/BasicMenuItemUI.java | |
| parent | 765f486dfed484416d8afd28184f4cddb742a7d9 (diff) | |
| download | ppe42-gcc-7be583b48b04633a592ab530473b7f995955b160.tar.gz ppe42-gcc-7be583b48b04633a592ab530473b7f995955b160.zip | |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82314 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/javax/swing/plaf/basic/BasicMenuItemUI.java')
| -rw-r--r-- | libjava/javax/swing/plaf/basic/BasicMenuItemUI.java | 644 |
1 files changed, 466 insertions, 178 deletions
diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java b/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java index 886ca9dbce6..29da4ec3bf2 100644 --- a/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java +++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.swing.plaf.basic; import java.awt.Color; +import java.awt.Component; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; @@ -47,12 +48,17 @@ import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; - +import java.beans.PropertyChangeListener; +import java.util.Vector; import javax.swing.AbstractButton; import javax.swing.ButtonModel; import javax.swing.Icon; +import javax.swing.JCheckBoxMenuItem; import javax.swing.JComponent; +import javax.swing.JMenu; import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; +import javax.swing.JRadioButtonMenuItem; import javax.swing.KeyStroke; import javax.swing.MenuElement; import javax.swing.MenuSelectionManager; @@ -68,116 +74,219 @@ import javax.swing.plaf.ComponentUI; import javax.swing.plaf.MenuItemUI; +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision: 1.1.2.10 $ + */ public class BasicMenuItemUI extends MenuItemUI { - /** Font to be used when displaying menu item's accelerator. */ + /** + * Font to be used when displaying menu item's accelerator. + */ protected Font acceleratorFont; - /** Color to be used when displaying menu item's accelerator. */ + /** + * Color to be used when displaying menu item's accelerator. + */ protected Color acceleratorForeground; - /** Color to be used when displaying menu item's accelerator - * when menu item is selected. - */ + /** + * Color to be used when displaying menu item's accelerator when menu item is + * selected. + */ protected Color acceleratorSelectionForeground; - + /** - * Icon that is displayed after the text to indicated that this menu - * contains submenu. + * Icon that is displayed after the text to indicated that this menu contains + * submenu. */ protected Icon arrowIcon; - + /** * Icon that is displayed before the text. This icon is only used in * JCheckBoxMenuItem or JRadioBoxMenuItem. */ protected Icon checkIcon; - /** Number of spaces between icon and text. */ + /** + * Number of spaces between icon and text. + */ protected int defaultTextIconGap = 4; - - /** Color of the text when menu item is disabled*/ + + /** + * Color of the text when menu item is disabled + */ protected Color disabledForeground; - - /** The menu Drag mouse listener listening to the menu item. */ + + /** + * The menu Drag mouse listener listening to the menu item. + */ protected MenuDragMouseListener menuDragMouseListener; - - /** The menu item itself*/ + + /** + * The menu item itself + */ protected JMenuItem menuItem; - - /** Menu Key listener listening to the menu item. */ + + /** + * Menu Key listener listening to the menu item. + */ protected MenuKeyListener menuKeyListener; - - /** mouse input listener listening to menu item. */ + + /** + * mouse input listener listening to menu item. + */ protected MouseInputListener mouseInputListener; - - /** Indicates if border should be painted */ + + /** + * Indicates if border should be painted + */ protected boolean oldBorderPainted; - /** Color of text that is used when menu item is selected */ + /** + * Color of text that is used when menu item is selected + */ protected Color selectionBackground; - - /** Color of the background that is used when menu item is selected.*/ + + /** + * Color of the background that is used when menu item is selected. + */ protected Color selectionForeground; - /** String that separates description of the modifiers and the key*/ + /** + * String that separates description of the modifiers and the key + */ private String acceleratorDelimiter; - - /** Number of spaces between accelerator and menu item's label. */ + private PropertyChangeListener propertyChangeListener; + + /** + * Number of spaces between accelerator and menu item's label. + */ private int defaultAcceleratorLabelGap = 4; - // Constructor Summary - BasicMenuItemUI() + public BasicMenuItemUI() { mouseInputListener = createMouseInputListener(menuItem); menuDragMouseListener = createMenuDragMouseListener(menuItem); menuKeyListener = createMenuKeyListener(menuItem); + propertyChangeListener = new PropertyChangeHandler(); } - // Method Summary protected MenuDragMouseListener createMenuDragMouseListener(JComponent c) { return new MenuDragMouseHandler(); } + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ protected MenuKeyListener createMenuKeyListener(JComponent c) { return new MenuKeyHandler(); } + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ protected MouseInputListener createMouseInputListener(JComponent c) { return new MouseInputHandler(); } + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ public static ComponentUI createUI(JComponent c) { return new BasicMenuItemUI(); } + /** + * DOCUMENT ME! + * + * @param msm DOCUMENT ME! + */ protected void doClick(MenuSelectionManager msm) { - // TODO + menuItem.doClick(); + msm.clearSelectedPath(); } + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ public Dimension getMaximumSize(JComponent c) { - // TODO return null; } + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ public Dimension getMinimumSize(JComponent c) { - // TODO return null; } + /** + * DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ public MenuElement[] getPath() { - // TODO - return null; + Vector path = new Vector(); + Component c = menuItem; + while (c instanceof MenuElement) + { + path.add(c); + + if (c instanceof JPopupMenu) + c = ((JPopupMenu) c).getInvoker(); + else + c = c.getParent(); + } + + // convert from vector to array + MenuElement[] pathArray = new MenuElement[path.size()]; + for (int i = 0; i < path.size(); i++) + pathArray[i] = (MenuElement) path.get(path.size() - i - 1); + + return pathArray; } + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + * @param checkIcon DOCUMENT ME! + * @param arrowIcon DOCUMENT ME! + * @param defaultTextIconGap DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ protected Dimension getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap) @@ -186,51 +295,80 @@ public class BasicMenuItemUI extends MenuItemUI return null; } + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ public Dimension getPreferredSize(JComponent c) { AbstractButton b = (AbstractButton) c; Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, defaultTextIconGap); - + // if menu item has accelerator then take accelerator's size into account // when calculating preferred size. - KeyStroke accelerator = ((JMenuItem) c).getAccelerator(); Rectangle rect; + if (accelerator != null) { - rect = getAcceleratorRect(accelerator, - b.getToolkit().getFontMetrics(acceleratorFont)); - - // add width of accelerator's text - d.width = d.width + rect.width + defaultAcceleratorLabelGap; - - // adjust the heigth of the preferred size if necessary - if (d.height < rect.height) - d.height = rect.height; + rect = getAcceleratorRect(accelerator, + b.getToolkit().getFontMetrics(acceleratorFont)); + + // add width of accelerator's text + d.width = d.width + rect.width + defaultAcceleratorLabelGap; + + // adjust the heigth of the preferred size if necessary + if (d.height < rect.height) + d.height = rect.height; } if (checkIcon != null) { - d.width = d.width + checkIcon.getIconWidth() + defaultTextIconGap; - if (checkIcon.getIconHeight() > d.height) - d.height = checkIcon.getIconHeight(); + d.width = d.width + checkIcon.getIconWidth() + defaultTextIconGap; + + if (checkIcon.getIconHeight() > d.height) + d.height = checkIcon.getIconHeight(); } - + + if (arrowIcon != null && (c instanceof JMenu)) + { + d.width = d.width + arrowIcon.getIconWidth() + defaultTextIconGap; + + if (arrowIcon.getIconHeight() > d.height) + d.height = arrowIcon.getIconHeight(); + } + return d; } + /** + * DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ protected String getPropertyPrefix() { // TODO return null; } + /** + * DOCUMENT ME! + * + * @param menuItem DOCUMENT ME! + */ protected void installComponents(JMenuItem menuItem) { // TODO } + /** + * DOCUMENT ME! + */ protected void installDefaults() { UIDefaults defaults = UIManager.getLookAndFeelDefaults(); @@ -240,27 +378,40 @@ public class BasicMenuItemUI extends MenuItemUI menuItem.setFont(defaults.getFont("MenuItem.font")); menuItem.setForeground(defaults.getColor("MenuItem.foreground")); menuItem.setMargin(defaults.getInsets("MenuItem.margin")); + menuItem.setOpaque(true); + acceleratorFont = defaults.getFont("MenuItem.acceleratorFont"); acceleratorForeground = defaults.getColor("MenuItem.acceleratorForeground"); acceleratorSelectionForeground = defaults.getColor("MenuItem.acceleratorSelectionForeground"); - arrowIcon = defaults.getIcon("MenuItem.arrowIcon"); selectionBackground = defaults.getColor("MenuItem.selectionBackground"); selectionForeground = defaults.getColor("MenuItem.selectionForeground"); acceleratorDelimiter = defaults.getString("MenuItem.acceleratorDelimiter"); } + /** + * DOCUMENT ME! + */ protected void installKeyboardActions() { // TODO } + /** + * DOCUMENT ME! + */ protected void installListeners() { menuItem.addMouseListener(mouseInputListener); menuItem.addMenuDragMouseListener(menuDragMouseListener); menuItem.addMenuKeyListener(menuKeyListener); + menuItem.addPropertyChangeListener(propertyChangeListener); } + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + */ public void installUI(JComponent c) { super.installUI(c); @@ -269,12 +420,25 @@ public class BasicMenuItemUI extends MenuItemUI installListeners(); } + /** + * DOCUMENT ME! + * + * @param g DOCUMENT ME! + * @param c DOCUMENT ME! + */ public void paint(Graphics g, JComponent c) { - paintMenuItem(g, c, checkIcon, arrowIcon, c.getBackground(), + paintMenuItem(g, c, checkIcon, arrowIcon, c.getBackground(), c.getForeground(), defaultTextIconGap); } + /** + * DOCUMENT ME! + * + * @param g DOCUMENT ME! + * @param menuItem DOCUMENT ME! + * @param bgColor DOCUMENT ME! + */ protected void paintBackground(Graphics g, JMenuItem menuItem, Color bgColor) { Dimension size = getPreferredSize(menuItem); @@ -284,6 +448,17 @@ public class BasicMenuItemUI extends MenuItemUI g.setColor(foreground); } + /** + * DOCUMENT ME! + * + * @param g DOCUMENT ME! + * @param c DOCUMENT ME! + * @param checkIcon DOCUMENT ME! + * @param arrowIcon DOCUMENT ME! + * @param background DOCUMENT ME! + * @param foreground DOCUMENT ME! + * @param defaultTextIconGap DOCUMENT ME! + */ protected void paintMenuItem(Graphics g, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap) @@ -295,7 +470,7 @@ public class BasicMenuItemUI extends MenuItemUI Rectangle br = new Rectangle(); // border rectangle Rectangle ar = new Rectangle(); // accelerator rectangle Rectangle cr = new Rectangle(); // checkIcon rectangle - + int vertAlign = b.getVerticalAlignment(); int horAlign = b.getHorizontalAlignment(); int vertTextPos = b.getVerticalTextPosition(); @@ -303,64 +478,67 @@ public class BasicMenuItemUI extends MenuItemUI Font f = c.getFont(); g.setFont(f); - FontMetrics fm = g.getFontMetrics(f); + FontMetrics fm = g.getFontMetrics(f); SwingUtilities.calculateInnerArea(b, br); - SwingUtilities.calculateInsetArea(br, b.getMargin(), vr); + SwingUtilities.calculateInsetArea(br, b.getMargin(), vr); paintBackground(g, (JMenuItem) c, c.getBackground()); - + if ((b.getModel().isArmed() && b.getModel().isPressed())) { - if (((AbstractButton) b).isContentAreaFilled()) - { - g.setColor(b.getBackground().darker()); - g.fillRect(br.x, br.y, br.width, br.height); - } + if (((AbstractButton) b).isContentAreaFilled()) + { + g.setColor(b.getBackground().darker()); + g.fillRect(br.x, br.y, br.width, br.height); + } } else { - if (((AbstractButton) b).isContentAreaFilled()) - { - g.setColor(b.getBackground()); - g.fillRect(br.x, br.y, br.width, br.height); - } + if (((AbstractButton) b).isContentAreaFilled()) + { + g.setColor(b.getBackground()); + g.fillRect(br.x, br.y, br.width, br.height); + } } - - + if (checkIcon != null) { - SwingUtilities.layoutCompoundLabel(c, fm, null, checkIcon, vertAlign, - horAlign, vertTextPos, horTextPos, - vr, cr, tr, defaultTextIconGap); - checkIcon.paintIcon(c, g, cr.x, cr.y); + SwingUtilities.layoutCompoundLabel(c, fm, null, checkIcon, vertAlign, + horAlign, vertTextPos, horTextPos, + vr, cr, tr, defaultTextIconGap); + checkIcon.paintIcon(c, g, cr.x, cr.y); - // We need to calculate position of the menu text and position of - // user menu icon if there exists one relative to the check icon. + // We need to calculate position of the menu text and position of + // user menu icon if there exists one relative to the check icon. // So we need to adjust view rectangle s.t. its starting point is at // checkIcon.width + defaultTextIconGap. - - vr.x = cr.x + cr.width + defaultTextIconGap; + vr.x = cr.x + cr.width + defaultTextIconGap; } - if (arrowIcon != null) + if (arrowIcon != null && (c instanceof JMenu)) { - // FIXME: if this menu contains a submenu, we need to draw arrow icon - // here as well + if (! ((JMenu) c).isTopLevelMenu()) + { + int width = arrowIcon.getIconWidth(); + int height = arrowIcon.getIconHeight(); + + arrowIcon.paintIcon(c, g, vr.width - width + defaultTextIconGap, + vr.y + 2); + } } - // paint text and user menu icon if it exists SwingUtilities.layoutCompoundLabel(c, fm, b.getText(), b.getIcon(), vertAlign, horAlign, vertTextPos, horTextPos, vr, ir, tr, defaultTextIconGap); - paintText(g, (JMenuItem) c, tr, b.getText()); - + paintText(g, (JMenuItem) c, tr, b.getText()); + // paint icon // FIXME: should paint different icon at different button state's. // i.e disabled icon when button is disabled.. etc. - - /* + + /* Icon i = b.getIcon(); if (i != null) { @@ -369,28 +547,35 @@ public class BasicMenuItemUI extends MenuItemUI i.paintIcon(c, g, x, y); } */ - + // paint accelerator String acceleratorText = ""; + if (((JMenuItem) c).getAccelerator() != null) { - acceleratorText = getAcceleratorText(((JMenuItem) c).getAccelerator()); - fm = g.getFontMetrics(acceleratorFont); - ar.width = fm.stringWidth(acceleratorText); - ar.x = br.width - ar.width; - vr.x = br.width - ar.width; - - SwingUtilities.layoutCompoundLabel(c, fm, acceleratorText, null, - vertAlign, horAlign, vertTextPos, - horTextPos, vr, ir, ar, - defaultTextIconGap); - - paintAccelerator(g, (JMenuItem) c, ar, acceleratorText); - - } - + acceleratorText = getAcceleratorText(((JMenuItem) c).getAccelerator()); + fm = g.getFontMetrics(acceleratorFont); + ar.width = fm.stringWidth(acceleratorText); + ar.x = br.width - ar.width; + vr.x = br.width - ar.width; + + SwingUtilities.layoutCompoundLabel(c, fm, acceleratorText, null, + vertAlign, horAlign, vertTextPos, + horTextPos, vr, ir, ar, + defaultTextIconGap); + + paintAccelerator(g, (JMenuItem) c, ar, acceleratorText); + } } + /** + * DOCUMENT ME! + * + * @param g DOCUMENT ME! + * @param menuItem DOCUMENT ME! + * @param textRect DOCUMENT ME! + * @param text DOCUMENT ME! + */ protected void paintText(Graphics g, JMenuItem menuItem, Rectangle textRect, String text) { @@ -400,14 +585,22 @@ public class BasicMenuItemUI extends MenuItemUI g.setColor(menuItem.getForeground()); BasicGraphicsUtils.drawString(g, text, 0, textRect.x, - textRect.y + fm.getAscent()); + textRect.y + fm.getAscent()); } + /** + * DOCUMENT ME! + * + * @param menuItem DOCUMENT ME! + */ protected void uninstallComponents(JMenuItem menuItem) { // TODO } + /** + * DOCUMENT ME! + */ protected void uninstallDefaults() { menuItem.setForeground(null); @@ -428,18 +621,30 @@ public class BasicMenuItemUI extends MenuItemUI acceleratorDelimiter = null; } + /** + * DOCUMENT ME! + */ protected void uninstallKeyboardActions() { // TODO } + /** + * DOCUMENT ME! + */ protected void uninstallListeners() { menuItem.removeMouseListener(mouseInputListener); menuItem.removeMenuDragMouseListener(menuDragMouseListener); menuItem.removeMenuKeyListener(menuKeyListener); + menuItem.removePropertyChangeListener(propertyChangeListener); } + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + */ public void uninstallUI(JComponent c) { uninstallListeners(); @@ -447,24 +652,35 @@ public class BasicMenuItemUI extends MenuItemUI menuItem = null; } + /** + * DOCUMENT ME! + * + * @param g DOCUMENT ME! + * @param c DOCUMENT ME! + */ public void update(Graphics g, JComponent c) { - // TODO + paint(g, c); } + /** + * DOCUMENT ME! + * + * @param accelerator DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ private String getAcceleratorText(KeyStroke accelerator) { - // convert keystroke into string format - String modifiersText = ""; int modifiers = accelerator.getModifiers(); char keyChar = accelerator.getKeyChar(); int keyCode = accelerator.getKeyCode(); if (modifiers != 0) - modifiersText = KeyEvent.getKeyModifiersText(modifiers) + - acceleratorDelimiter; + modifiersText = KeyEvent.getKeyModifiersText(modifiers) + + acceleratorDelimiter; if (keyCode == KeyEvent.VK_UNDEFINED) return modifiersText + keyChar; @@ -472,161 +688,233 @@ public class BasicMenuItemUI extends MenuItemUI return modifiersText + KeyEvent.getKeyText(keyCode); } + /** + * DOCUMENT ME! + * + * @param accelerator DOCUMENT ME! + * @param fm DOCUMENT ME! + * + * @return $returnType$ DOCUMENT ME! + */ private Rectangle getAcceleratorRect(KeyStroke accelerator, FontMetrics fm) - { + { int width = fm.stringWidth(getAcceleratorText(accelerator)); int height = fm.getHeight(); return new Rectangle(0, 0, width, height); } - private void paintAccelerator(Graphics g, JMenuItem menuItem, Rectangle acceleratorRect, - String acceleratorText) + /** + * DOCUMENT ME! + * + * @param g DOCUMENT ME! + * @param menuItem DOCUMENT ME! + * @param acceleratorRect DOCUMENT ME! + * @param acceleratorText DOCUMENT ME! + */ + private void paintAccelerator(Graphics g, JMenuItem menuItem, + Rectangle acceleratorRect, + String acceleratorText) { g.setFont(acceleratorFont); FontMetrics fm = g.getFontMetrics(acceleratorFont); g.setColor(acceleratorForeground); BasicGraphicsUtils.drawString(g, acceleratorText, 0, acceleratorRect.x, - acceleratorRect.y + fm.getAscent()); + acceleratorRect.y + fm.getAscent()); } + /** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision: 1.1.2.10 $ + */ protected class MouseInputHandler implements MouseInputListener { + /** + * Creates a new MouseInputHandler object. + */ protected MouseInputHandler() { } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void mouseClicked(MouseEvent e) { + MenuSelectionManager manager = MenuSelectionManager.defaultManager(); + manager.processMouseEvent(e); } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void mouseDragged(MouseEvent e) { + MenuSelectionManager manager = MenuSelectionManager.defaultManager(); + manager.processMouseEvent(e); } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void mouseEntered(MouseEvent e) { - if (e.getSource() instanceof AbstractButton) - { - AbstractButton button = (AbstractButton) e.getSource(); - ButtonModel model = button.getModel(); - - if (button.isRolloverEnabled()) - { - model.setRollover(true); - } - - if (model.isPressed() && - ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0)) - { - model.setArmed(true); - } - else - { - model.setArmed(false); - } - } + MenuSelectionManager manager = MenuSelectionManager.defaultManager(); + manager.processMouseEvent(e); } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void mouseExited(MouseEvent e) { - if (e.getSource() instanceof AbstractButton) - { - AbstractButton button = (AbstractButton) e.getSource(); - ButtonModel model = button.getModel(); - - if (button.isRolloverEnabled()) - { - model.setRollover(false); - } - - model.setArmed(false); - } + MenuSelectionManager manager = MenuSelectionManager.defaultManager(); + manager.processMouseEvent(e); } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void mouseMoved(MouseEvent e) { + MenuSelectionManager manager = MenuSelectionManager.defaultManager(); + manager.processMouseEvent(e); } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void mousePressed(MouseEvent e) { - if (e.getSource() instanceof AbstractButton) - { - AbstractButton button = (AbstractButton) e.getSource(); - ButtonModel model = button.getModel(); - - if ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0) - { - // It is important that these transitions happen in this order. - model.setArmed(true); - model.setPressed(true); - } - } + MenuSelectionManager manager = MenuSelectionManager.defaultManager(); + manager.processMouseEvent(e); } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void mouseReleased(MouseEvent e) { - - if (e.getSource() instanceof AbstractButton) - { - AbstractButton button = (AbstractButton) e.getSource(); - ButtonModel model = button.getModel(); - - if ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0) - { - // It is important that these transitions happen in this order. - model.setPressed(false); - model.setArmed(false); - } - } + // FIXME: Should check if the mouse released while mouse cursor + // was indeed over the menu item. If this wasn't the case we probably + // should sent this event to MenuSelectionManager. + MenuSelectionManager manager = MenuSelectionManager.defaultManager(); + manager.clearSelectedPath(); + menuItem.doClick(0); } } + /** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision: 1.1.2.10 $ + */ protected class MenuDragMouseHandler implements MenuDragMouseListener { + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void menuDragMouseDragged(MenuDragMouseEvent e) { - // TODO } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void menuDragMouseEntered(MenuDragMouseEvent e) { - // TODO } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void menuDragMouseExited(MenuDragMouseEvent e) { - // TODO } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void menuDragMouseReleased(MenuDragMouseEvent e) { - // TODO } } + /** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision: 1.1.2.10 $ + */ protected class MenuKeyHandler implements MenuKeyListener { + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void menuKeyPressed(MenuKeyEvent e) { - // TODO } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void menuKeyReleased(MenuKeyEvent e) { - // TODO } + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + */ public void menuKeyTyped(MenuKeyEvent e) { - // TODO } } - protected class PropertyChangeHandler + /** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision: 1.1.2.10 $ + */ + protected class PropertyChangeHandler implements PropertyChangeListener { + /** + * DOCUMENT ME! + * + * @param evt DOCUMENT ME! + */ public void propertyChange(PropertyChangeEvent evt) { - // TODO } } } |

