< prev index next >

src/java.desktop/share/classes/java/awt/event/InputEvent.java

Print this page


   1 /*
   2  * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


  45  * default manner.  For example, consuming mousePressed events
  46  * on a Button component will prevent the Button from being
  47  * activated.
  48  *
  49  * @author Carl Quinn
  50  *
  51  * @see KeyEvent
  52  * @see KeyAdapter
  53  * @see MouseEvent
  54  * @see MouseAdapter
  55  * @see MouseMotionAdapter
  56  *
  57  * @since 1.1
  58  */
  59 public abstract class InputEvent extends ComponentEvent {
  60 
  61     private static final PlatformLogger logger = PlatformLogger.getLogger("java.awt.event.InputEvent");
  62 
  63     /**
  64      * The Shift key modifier constant.
  65      * It is recommended that SHIFT_DOWN_MASK be used instead.

  66      */

  67     public static final int SHIFT_MASK = Event.SHIFT_MASK;
  68 
  69     /**
  70      * The Control key modifier constant.
  71      * It is recommended that CTRL_DOWN_MASK be used instead.

  72      */

  73     public static final int CTRL_MASK = Event.CTRL_MASK;
  74 
  75     /**
  76      * The Meta key modifier constant.
  77      * It is recommended that META_DOWN_MASK be used instead.

  78      */

  79     public static final int META_MASK = Event.META_MASK;
  80 
  81     /**
  82      * The Alt key modifier constant.
  83      * It is recommended that ALT_DOWN_MASK be used instead.

  84      */

  85     public static final int ALT_MASK = Event.ALT_MASK;
  86 
  87     /**
  88      * The AltGraph key modifier constant.


  89      */

  90     public static final int ALT_GRAPH_MASK = 1 << 5;
  91 
  92     /**
  93      * The Mouse Button1 modifier constant.
  94      * It is recommended that BUTTON1_DOWN_MASK be used instead.

  95      */

  96     public static final int BUTTON1_MASK = 1 << 4;
  97 
  98     /**
  99      * The Mouse Button2 modifier constant.
 100      * It is recommended that BUTTON2_DOWN_MASK be used instead.

 101      * Note that BUTTON2_MASK has the same value as ALT_MASK.
 102      */

 103     public static final int BUTTON2_MASK = Event.ALT_MASK;
 104 
 105     /**
 106      * The Mouse Button3 modifier constant.
 107      * It is recommended that BUTTON3_DOWN_MASK be used instead.

 108      * Note that BUTTON3_MASK has the same value as META_MASK.
 109      */

 110     public static final int BUTTON3_MASK = Event.META_MASK;
 111 
 112     /**
 113      * The Shift key extended modifier constant.
 114      * @since 1.4
 115      */
 116     public static final int SHIFT_DOWN_MASK = 1 << 6;
 117 
 118     /**
 119      * The Control key extended modifier constant.
 120      * @since 1.4
 121      */
 122     public static final int CTRL_DOWN_MASK = 1 << 7;
 123 
 124     /**
 125      * The Meta key extended modifier constant.
 126      * @since 1.4
 127      */
 128     public static final int META_DOWN_MASK = 1 << 8;
 129 


 142     /**
 143      * The Mouse Button2 extended modifier constant.
 144      * @since 1.4
 145      */
 146     public static final int BUTTON2_DOWN_MASK = 1 << 11;
 147 
 148     /**
 149      * The Mouse Button3 extended modifier constant.
 150      * @since 1.4
 151      */
 152     public static final int BUTTON3_DOWN_MASK = 1 << 12;
 153 
 154     /**
 155      * The AltGraph key extended modifier constant.
 156      * @since 1.4
 157      */
 158     public static final int ALT_GRAPH_DOWN_MASK = 1 << 13;
 159 
 160     /**
 161      * An array of extended modifiers for additional buttons.
 162      * @see getButtonDownMasks
 163      * There are twenty buttons fit into 4byte space.
 164      * one more bit is reserved for FIRST_HIGH_BIT.
 165      * @since 1.7
 166      */
 167     private static final int [] BUTTON_DOWN_MASK = new int [] { BUTTON1_DOWN_MASK,
 168                                                                BUTTON2_DOWN_MASK,
 169                                                                BUTTON3_DOWN_MASK,
 170                                                                1<<14, //4th physical button (this is not a wheel!)
 171                                                                1<<15, //(this is not a wheel!)
 172                                                                1<<16,
 173                                                                1<<17,
 174                                                                1<<18,
 175                                                                1<<19,
 176                                                                1<<20,
 177                                                                1<<21,
 178                                                                1<<22,
 179                                                                1<<23,
 180                                                                1<<24,
 181                                                                1<<25,
 182                                                                1<<26,


 365                     sm.checkPermission(AWTPermissions.ACCESS_CLIPBOARD_PERMISSION);
 366                     b = true;
 367                 } catch (SecurityException se) {
 368                     if (logger.isLoggable(PlatformLogger.Level.FINE)) {
 369                         logger.fine("InputEvent.canAccessSystemClipboard() got SecurityException ", se);
 370                     }
 371                 }
 372             } else {
 373                 b = true;
 374             }
 375         }
 376 
 377         return b;
 378     }
 379 
 380     /**
 381      * Returns whether or not the Shift modifier is down on this event.
 382      * @return whether or not the Shift modifier is down on this event
 383      */
 384     public boolean isShiftDown() {
 385         return (modifiers & SHIFT_MASK) != 0;
 386     }
 387 
 388     /**
 389      * Returns whether or not the Control modifier is down on this event.
 390      * @return whether or not the Control modifier is down on this event
 391      */
 392     public boolean isControlDown() {
 393         return (modifiers & CTRL_MASK) != 0;
 394     }
 395 
 396     /**
 397      * Returns whether or not the Meta modifier is down on this event.
 398      * @return whether or not the Meta modifier is down on this event
 399      */
 400     public boolean isMetaDown() {
 401         return (modifiers & META_MASK) != 0;
 402     }
 403 
 404     /**
 405      * Returns whether or not the Alt modifier is down on this event.
 406      * @return whether or not the Alt modifier is down on this event
 407      */
 408     public boolean isAltDown() {
 409         return (modifiers & ALT_MASK) != 0;
 410     }
 411 
 412     /**
 413      * Returns whether or not the AltGraph modifier is down on this event.
 414      * @return whether or not the AltGraph modifier is down on this event
 415      */
 416     public boolean isAltGraphDown() {
 417         return (modifiers & ALT_GRAPH_MASK) != 0;
 418     }
 419 
 420     /**
 421      * Returns the difference in milliseconds between the timestamp of when this event occurred and
 422      * midnight, January 1, 1970 UTC.
 423      * @return the difference in milliseconds between the timestamp and midnight, January 1, 1970 UTC
 424      */
 425     public long getWhen() {
 426         return when;
 427     }
 428 
 429     /**
 430      * Returns the modifier mask for this event.

 431      * @return the modifier mask for this event


 432      */

 433     public int getModifiers() {
 434         return modifiers & (JDK_1_3_MODIFIERS | HIGH_MODIFIERS);
 435     }
 436 
 437     /**
 438      * Returns the extended modifier mask for this event.
 439      * <P>
 440      * Extended modifiers are the modifiers that ends with the _DOWN_MASK suffix,
 441      * such as ALT_DOWN_MASK, BUTTON1_DOWN_MASK, and others.
 442      * <P>
 443      * Extended modifiers represent the state of all modal keys,
 444      * such as ALT, CTRL, META, and the mouse buttons just after
 445      * the event occurred.
 446      * <P>
 447      * For example, if the user presses <b>button 1</b> followed by
 448      * <b>button 2</b>, and then releases them in the same order,
 449      * the following sequence of events is generated:
 450      * <PRE>
 451      *    {@code MOUSE_PRESSED}:  {@code BUTTON1_DOWN_MASK}
 452      *    {@code MOUSE_PRESSED}:  {@code BUTTON1_DOWN_MASK | BUTTON2_DOWN_MASK}


   1 /*
   2  * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


  45  * default manner.  For example, consuming mousePressed events
  46  * on a Button component will prevent the Button from being
  47  * activated.
  48  *
  49  * @author Carl Quinn
  50  *
  51  * @see KeyEvent
  52  * @see KeyAdapter
  53  * @see MouseEvent
  54  * @see MouseAdapter
  55  * @see MouseMotionAdapter
  56  *
  57  * @since 1.1
  58  */
  59 public abstract class InputEvent extends ComponentEvent {
  60 
  61     private static final PlatformLogger logger = PlatformLogger.getLogger("java.awt.event.InputEvent");
  62 
  63     /**
  64      * The Shift key modifier constant.
  65      *
  66      * @deprecated It is recommended that SHIFT_DOWN_MASK be used instead
  67      */
  68     @Deprecated(since = "9")
  69     public static final int SHIFT_MASK = Event.SHIFT_MASK;
  70 
  71     /**
  72      * The Control key modifier constant.
  73      *
  74      * @deprecated It is recommended that CTRL_DOWN_MASK be used instead
  75      */
  76     @Deprecated(since = "9")
  77     public static final int CTRL_MASK = Event.CTRL_MASK;
  78 
  79     /**
  80      * The Meta key modifier constant.
  81      *
  82      * @deprecated It is recommended that META_DOWN_MASK be used instead
  83      */
  84     @Deprecated(since = "9")
  85     public static final int META_MASK = Event.META_MASK;
  86 
  87     /**
  88      * The Alt key modifier constant.
  89      *
  90      * @deprecated It is recommended that ALT_DOWN_MASK be used instead
  91      */
  92     @Deprecated(since = "9")
  93     public static final int ALT_MASK = Event.ALT_MASK;
  94 
  95     /**
  96      * The AltGraph key modifier constant.
  97      *
  98      * @deprecated It is recommended that ALT_GRAPH_DOWN_MASK be used instead
  99      */
 100     @Deprecated(since = "9")
 101     public static final int ALT_GRAPH_MASK = 1 << 5;
 102 
 103     /**
 104      * The Mouse Button1 modifier constant.
 105      *
 106      * @deprecated It is recommended that BUTTON1_DOWN_MASK be used instead
 107      */
 108     @Deprecated(since = "9")
 109     public static final int BUTTON1_MASK = 1 << 4;
 110 
 111     /**
 112      * The Mouse Button2 modifier constant.
 113      *
 114      * @deprecated It is recommended that BUTTON2_DOWN_MASK be used instead.
 115      *             Note that BUTTON2_MASK has the same value as ALT_MASK.
 116      */
 117     @Deprecated(since = "9")
 118     public static final int BUTTON2_MASK = Event.ALT_MASK;
 119 
 120     /**
 121      * The Mouse Button3 modifier constant.
 122      *
 123      * @deprecated It is recommended that BUTTON3_DOWN_MASK be used instead.
 124      *             Note that BUTTON3_MASK has the same value as META_MASK.
 125      */
 126     @Deprecated(since = "9")
 127     public static final int BUTTON3_MASK = Event.META_MASK;
 128 
 129     /**
 130      * The Shift key extended modifier constant.
 131      * @since 1.4
 132      */
 133     public static final int SHIFT_DOWN_MASK = 1 << 6;
 134 
 135     /**
 136      * The Control key extended modifier constant.
 137      * @since 1.4
 138      */
 139     public static final int CTRL_DOWN_MASK = 1 << 7;
 140 
 141     /**
 142      * The Meta key extended modifier constant.
 143      * @since 1.4
 144      */
 145     public static final int META_DOWN_MASK = 1 << 8;
 146 


 159     /**
 160      * The Mouse Button2 extended modifier constant.
 161      * @since 1.4
 162      */
 163     public static final int BUTTON2_DOWN_MASK = 1 << 11;
 164 
 165     /**
 166      * The Mouse Button3 extended modifier constant.
 167      * @since 1.4
 168      */
 169     public static final int BUTTON3_DOWN_MASK = 1 << 12;
 170 
 171     /**
 172      * The AltGraph key extended modifier constant.
 173      * @since 1.4
 174      */
 175     public static final int ALT_GRAPH_DOWN_MASK = 1 << 13;
 176 
 177     /**
 178      * An array of extended modifiers for additional buttons.
 179      * @see #getButtonDownMasks()
 180      * There are twenty buttons fit into 4byte space.
 181      * one more bit is reserved for FIRST_HIGH_BIT.
 182      * @since 1.7
 183      */
 184     private static final int [] BUTTON_DOWN_MASK = new int [] { BUTTON1_DOWN_MASK,
 185                                                                BUTTON2_DOWN_MASK,
 186                                                                BUTTON3_DOWN_MASK,
 187                                                                1<<14, //4th physical button (this is not a wheel!)
 188                                                                1<<15, //(this is not a wheel!)
 189                                                                1<<16,
 190                                                                1<<17,
 191                                                                1<<18,
 192                                                                1<<19,
 193                                                                1<<20,
 194                                                                1<<21,
 195                                                                1<<22,
 196                                                                1<<23,
 197                                                                1<<24,
 198                                                                1<<25,
 199                                                                1<<26,


 382                     sm.checkPermission(AWTPermissions.ACCESS_CLIPBOARD_PERMISSION);
 383                     b = true;
 384                 } catch (SecurityException se) {
 385                     if (logger.isLoggable(PlatformLogger.Level.FINE)) {
 386                         logger.fine("InputEvent.canAccessSystemClipboard() got SecurityException ", se);
 387                     }
 388                 }
 389             } else {
 390                 b = true;
 391             }
 392         }
 393 
 394         return b;
 395     }
 396 
 397     /**
 398      * Returns whether or not the Shift modifier is down on this event.
 399      * @return whether or not the Shift modifier is down on this event
 400      */
 401     public boolean isShiftDown() {
 402         return (modifiers & SHIFT_DOWN_MASK) != 0;
 403     }
 404 
 405     /**
 406      * Returns whether or not the Control modifier is down on this event.
 407      * @return whether or not the Control modifier is down on this event
 408      */
 409     public boolean isControlDown() {
 410         return (modifiers & CTRL_DOWN_MASK) != 0;
 411     }
 412 
 413     /**
 414      * Returns whether or not the Meta modifier is down on this event.
 415      * @return whether or not the Meta modifier is down on this event
 416      */
 417     public boolean isMetaDown() {
 418         return (modifiers & META_DOWN_MASK) != 0;
 419     }
 420 
 421     /**
 422      * Returns whether or not the Alt modifier is down on this event.
 423      * @return whether or not the Alt modifier is down on this event
 424      */
 425     public boolean isAltDown() {
 426         return (modifiers & ALT_DOWN_MASK) != 0;
 427     }
 428 
 429     /**
 430      * Returns whether or not the AltGraph modifier is down on this event.
 431      * @return whether or not the AltGraph modifier is down on this event
 432      */
 433     public boolean isAltGraphDown() {
 434         return (modifiers & ALT_GRAPH_DOWN_MASK) != 0;
 435     }
 436 
 437     /**
 438      * Returns the difference in milliseconds between the timestamp of when this event occurred and
 439      * midnight, January 1, 1970 UTC.
 440      * @return the difference in milliseconds between the timestamp and midnight, January 1, 1970 UTC
 441      */
 442     public long getWhen() {
 443         return when;
 444     }
 445 
 446     /**
 447      * Returns the modifier mask for this event.
 448      *
 449      * @return the modifier mask for this event
 450      * @deprecated It is recommended that {@link #getModifiersEx()} be used
 451      *             instead
 452      */
 453     @Deprecated(since = "9")
 454     public int getModifiers() {
 455         return modifiers & (JDK_1_3_MODIFIERS | HIGH_MODIFIERS);
 456     }
 457 
 458     /**
 459      * Returns the extended modifier mask for this event.
 460      * <P>
 461      * Extended modifiers are the modifiers that ends with the _DOWN_MASK suffix,
 462      * such as ALT_DOWN_MASK, BUTTON1_DOWN_MASK, and others.
 463      * <P>
 464      * Extended modifiers represent the state of all modal keys,
 465      * such as ALT, CTRL, META, and the mouse buttons just after
 466      * the event occurred.
 467      * <P>
 468      * For example, if the user presses <b>button 1</b> followed by
 469      * <b>button 2</b>, and then releases them in the same order,
 470      * the following sequence of events is generated:
 471      * <PRE>
 472      *    {@code MOUSE_PRESSED}:  {@code BUTTON1_DOWN_MASK}
 473      *    {@code MOUSE_PRESSED}:  {@code BUTTON1_DOWN_MASK | BUTTON2_DOWN_MASK}


< prev index next >