]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/KeyEvent.java
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.scenegraph / src / org / simantics / scenegraph / g2d / events / KeyEvent.java
1 /*******************************************************************************
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management
3  * in Industry THTH ry.
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * which accompanies this distribution, and is available at
7  * http://www.eclipse.org/legal/epl-v10.html
8  *
9  * Contributors:
10  *     VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 /*
13  *
14  * @author Toni Kalajainen
15  */
16 package org.simantics.scenegraph.g2d.events;
17
18 /**
19  * Key event
20  * 
21  * @see Event
22  * @see java.awt.event.KeyEvent for Virtual Key (VK) codes
23  */
24 public abstract class KeyEvent extends org.simantics.scenegraph.g2d.events.Event {
25
26     private static final long serialVersionUID = 2802306097538088526L;
27
28     /** Key ascii character */
29     public final char         character;
30
31     /**
32      * AWT Key code
33      * 
34      * @see java.awt.event.KeyEvent
35      */
36     public final int          keyCode;
37
38     /** AWT state mask */
39     public final int          stateMask;
40
41     public KeyEvent(Object context, long time, char character, int keyCode, int stateMask) {
42         super(context, time);
43         this.character = character;
44         this.keyCode = keyCode;
45         this.stateMask = stateMask;
46     }
47
48     public boolean hasAnyModifier(int mask) {
49         return (stateMask & mask) != 0;
50     }
51
52     public boolean hasAllModifiers(int mask) {
53         return (stateMask & mask) == mask;
54     }
55
56     /**
57      * Returns whether or not the Shift modifier is down on this event.
58      */
59     public boolean isShiftDown() {
60         return (stateMask & MouseEvent.SHIFT_MASK) != 0;
61     }
62
63     /**
64      * Returns whether or not the Control modifier is down on this event.
65      */
66     public boolean isControlDown() {
67         return (stateMask & MouseEvent.CTRL_MASK) != 0;
68     }
69
70     /**
71      * Returns whether or not the Alt modifier is down on this event.
72      */
73     public boolean isAltDown() {
74         return (stateMask & MouseEvent.ALT_MASK) != 0;
75     }
76
77     /**
78      * Returns whether or not the Alt Graph modifier is down on this event.
79      */
80     public boolean isAltGraphDown() {
81         return (stateMask & MouseEvent.ALT_GRAPH_MASK) != 0;
82     }
83
84     public static class KeyPressedEvent extends KeyEvent {
85         private static final long serialVersionUID = -648528900110788474L;
86
87         public KeyPressedEvent(Object context, long time, char character, int keyCode, int stateMask) {
88             super(context, time, character, keyCode, stateMask);
89         }
90
91         @Override
92         public String toString() {
93             return "Key press: character='" + character + "', keyCode='" + keyCode + "', stateMask='" + stateMask + "'";
94         }
95     }
96
97     public static class KeyReleasedEvent extends KeyEvent {
98         private static final long serialVersionUID = -5434711507289906052L;
99
100         public KeyReleasedEvent(Object context, long time, char character, int keyCode, int stateMask) {
101             super(context, time, character, keyCode, stateMask);
102         }
103
104         @Override
105         public String toString() {
106             return "Key release: character='" + character + "', keyCode='" + keyCode + "', stateMask='" + stateMask + "'";
107         }
108     }
109
110 }