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