8183518: Premature deprecation of Event/InputEvent/KeyEvent in Java 9

Reviewed-by: prr, psadhukhan
This commit is contained in:
Sergey Bylokhov 2017-12-01 17:44:07 -08:00
parent 6a21c771ec
commit d8efdbc4a2
10 changed files with 99 additions and 46 deletions

View file

@ -377,7 +377,6 @@ public class MenuBar extends MenuComponent implements MenuContainer, Accessible
* keydown). Returns true if there is an associated
* keyboard event.
*/
@SuppressWarnings("deprecation")
boolean handleShortcut(KeyEvent e) {
// Is it a key event?
int id = e.getID();
@ -386,8 +385,8 @@ public class MenuBar extends MenuComponent implements MenuContainer, Accessible
}
// Is the accelerator modifier key pressed?
int accelKey = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
if ((e.getModifiers() & accelKey) == 0) {
int accelKey = Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx();
if ((e.getModifiersEx() & accelKey) == 0) {
return false;
}

View file

@ -24,6 +24,7 @@
*/
package java.awt;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
/**
@ -51,7 +52,7 @@ import java.awt.event.KeyEvent;
* only work if the current keyboard layout produces a corresponding letter.
* <p>
* The accelerator key is platform-dependent and may be obtained
* via {@link Toolkit#getMenuShortcutKeyMask}.
* via {@link Toolkit#getMenuShortcutKeyMaskEx()}.
*
* @author Thomas Ball
* @since 1.1
@ -180,16 +181,15 @@ public class MenuShortcut implements java.io.Serializable
* @return a string representation of this MenuShortcut.
* @since 1.1
*/
@SuppressWarnings("deprecation")
public String toString() {
int modifiers = 0;
if (!GraphicsEnvironment.isHeadless()) {
modifiers = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
modifiers = Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx();
}
if (usesShiftModifier()) {
modifiers |= Event.SHIFT_MASK;
modifiers |= InputEvent.SHIFT_DOWN_MASK;
}
return KeyEvent.getKeyModifiersText(modifiers) + "+" +
return InputEvent.getModifiersExText(modifiers) + "+" +
KeyEvent.getKeyText(key);
}

View file

@ -29,7 +29,23 @@ import java.awt.datatransfer.Clipboard;
import java.awt.dnd.DragGestureListener;
import java.awt.dnd.DragGestureRecognizer;
import java.awt.dnd.DragSource;
import java.awt.event.*;
import java.awt.event.AWTEventListener;
import java.awt.event.AWTEventListenerProxy;
import java.awt.event.ActionEvent;
import java.awt.event.AdjustmentEvent;
import java.awt.event.ComponentEvent;
import java.awt.event.ContainerEvent;
import java.awt.event.FocusEvent;
import java.awt.event.HierarchyEvent;
import java.awt.event.InputEvent;
import java.awt.event.InputMethodEvent;
import java.awt.event.InvocationEvent;
import java.awt.event.ItemEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.PaintEvent;
import java.awt.event.TextEvent;
import java.awt.event.WindowEvent;
import java.awt.im.InputMethodHighlight;
import java.awt.image.ColorModel;
import java.awt.image.ImageObserver;
@ -40,15 +56,22 @@ import java.beans.PropertyChangeSupport;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.EventListener;
import java.util.HashMap;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.StringTokenizer;
import java.util.ServiceLoader;
import java.util.Set;
import java.util.WeakHashMap;
import java.util.stream.Collectors;
import javax.accessibility.AccessibilityProvider;
import sun.awt.AWTAccessor;
import sun.awt.AWTPermissions;
@ -57,14 +80,6 @@ import sun.awt.HeadlessToolkit;
import sun.awt.PeerEvent;
import sun.awt.SunToolkit;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Arrays;
import java.util.ServiceLoader;
import java.util.Set;
import java.util.stream.Collectors;
import javax.accessibility.AccessibilityProvider;
/**
* This class is the abstract superclass of all actual
* implementations of the Abstract Window Toolkit. Subclasses of
@ -1065,15 +1080,43 @@ public abstract class Toolkit {
* @see java.awt.GraphicsEnvironment#isHeadless
* @see java.awt.MenuBar
* @see java.awt.MenuShortcut
* @deprecated It is recommended that extended modifier keys and
* {@link #getMenuShortcutKeyMaskEx()} be used instead
* @since 1.1
*/
@SuppressWarnings("deprecation")
@Deprecated(since = "10")
public int getMenuShortcutKeyMask() throws HeadlessException {
GraphicsEnvironment.checkHeadless();
return Event.CTRL_MASK;
}
/**
* Determines which extended modifier key is the appropriate accelerator
* key for menu shortcuts.
* <p>
* Menu shortcuts, which are embodied in the {@code MenuShortcut} class, are
* handled by the {@code MenuBar} class.
* <p>
* By default, this method returns {@code InputEvent.CTRL_DOWN_MASK}.
* Toolkit implementations should override this method if the
* <b>Control</b> key isn't the correct key for accelerators.
*
* @return the modifier mask on the {@code InputEvent} class that is used
* for menu shortcuts on this toolkit
* @throws HeadlessException if GraphicsEnvironment.isHeadless() returns
* true
* @see java.awt.GraphicsEnvironment#isHeadless
* @see java.awt.MenuBar
* @see java.awt.MenuShortcut
* @since 10
*/
public int getMenuShortcutKeyMaskEx() throws HeadlessException {
GraphicsEnvironment.checkHeadless();
return InputEvent.CTRL_DOWN_MASK;
}
/**
* Returns whether the given locking key on the keyboard is currently in
* its "on" state.