aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/javax/swing/JMenuItem.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/swing/JMenuItem.java')
-rw-r--r--libjava/classpath/javax/swing/JMenuItem.java63
1 files changed, 53 insertions, 10 deletions
diff --git a/libjava/classpath/javax/swing/JMenuItem.java b/libjava/classpath/javax/swing/JMenuItem.java
index b2cfbd1..272c1cf 100644
--- a/libjava/classpath/javax/swing/JMenuItem.java
+++ b/libjava/classpath/javax/swing/JMenuItem.java
@@ -1,5 +1,5 @@
/* JMenuItem.java --
- Copyright (C) 2002, 2004, 2005,2006 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.classpath.NotImplementedException;
+
import java.awt.Component;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
@@ -204,9 +206,7 @@ public class JMenuItem extends AbstractButton implements Accessible,
*/
public void updateUI()
{
- MenuItemUI mi = ((MenuItemUI) UIManager.getUI(this));
- setUI(mi);
- invalidate();
+ setUI((MenuItemUI) UIManager.getUI(this));
}
/**
@@ -398,7 +398,15 @@ public class JMenuItem extends AbstractButton implements Accessible,
public void processKeyEvent(KeyEvent event, MenuElement[] path,
MenuSelectionManager manager)
{
- // Need to implement.
+ MenuKeyEvent e = new MenuKeyEvent(event.getComponent(), event.getID(),
+ event.getWhen(), event.getModifiers(),
+ event.getKeyCode(), event.getKeyChar(),
+ path, manager);
+ processMenuKeyEvent(e);
+
+ // Consume original key event, if the menu key event has been consumed.
+ if (e.isConsumed())
+ event.consume();
}
/**
@@ -436,7 +444,20 @@ public class JMenuItem extends AbstractButton implements Accessible,
*/
public void processMenuKeyEvent(MenuKeyEvent event)
{
- // Need to implement.
+ switch (event.getID())
+ {
+ case KeyEvent.KEY_PRESSED:
+ fireMenuKeyPressed(event);
+ break;
+ case KeyEvent.KEY_RELEASED:
+ fireMenuKeyReleased(event);
+ break;
+ case KeyEvent.KEY_TYPED:
+ fireMenuKeyTyped(event);
+ break;
+ default:
+ break;
+ }
}
/**
@@ -652,16 +673,26 @@ public class JMenuItem extends AbstractButton implements Accessible,
}
/**
- * A string that describes this JMenuItem. Normally only used
- * for debugging.
+ * Returns a string describing the attributes for the <code>JToolTip</code>
+ * component, for use in debugging. The return value is guaranteed to be
+ * non-<code>null</code>, but the format of the string may vary between
+ * implementations.
*
- * @return A string describing this JMenuItem
+ * @return A string describing the attributes of the <code>JMenuItem</code>.
*/
protected String paramString()
{
+ // calling super seems to be sufficient here...
return super.paramString();
}
+ /**
+ * Returns the object that provides accessibility features for this
+ * <code>JMenuItem</code> component.
+ *
+ * @return The accessible context (an instance of
+ * {@link AccessibleJMenuItem}).
+ */
public AccessibleContext getAccessibleContext()
{
if (accessibleContext == null)
@@ -670,13 +701,19 @@ public class JMenuItem extends AbstractButton implements Accessible,
return accessibleContext;
}
+ /**
+ * Provides the accessibility features for the <code>JMenuItem</code>
+ * component.
+ *
+ * @see JMenuItem#getAccessibleContext()
+ */
protected class AccessibleJMenuItem extends AccessibleAbstractButton
implements ChangeListener
{
private static final long serialVersionUID = 6748924232082076534L;
/**
- * Creates a new AccessibleJMenuItem object.
+ * Creates a new <code>AccessibleJMenuItem</code> instance.
*/
AccessibleJMenuItem()
{
@@ -684,10 +721,16 @@ public class JMenuItem extends AbstractButton implements Accessible,
}
public void stateChanged(ChangeEvent event)
+ throws NotImplementedException
{
// TODO: What should be done here, if anything?
}
+ /**
+ * Returns the accessible role for the <code>JMenuItem</code> component.
+ *
+ * @return {@link AccessibleRole#MENU_ITEM}.
+ */
public AccessibleRole getAccessibleRole()
{
return AccessibleRole.MENU_ITEM;