1 /*******************************************************************************
2 * Copyright (c) 2007, 2010 Association for Decentralized Information Management
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
10 * VTT Technical Research Centre of Finland - initial API and implementation
11 *******************************************************************************/
14 * @author Toni Kalajainen
16 package org.simantics.scenegraph.g2d.events;
22 * @see java.awt.event.KeyEvent for Virtual Key (VK) codes
24 public abstract class KeyEvent extends org.simantics.scenegraph.g2d.events.Event {
26 private static final long serialVersionUID = 2802306097538088526L;
28 /** Key ascii character */
29 public final char character;
34 * @see java.awt.event.KeyEvent
36 public final int keyCode;
39 public final int stateMask;
41 public KeyEvent(Object context, long time, char character, int keyCode, int stateMask) {
43 this.character = character;
44 this.keyCode = keyCode;
45 this.stateMask = stateMask;
48 public boolean hasAnyModifier(int mask) {
49 return (stateMask & mask) != 0;
52 public boolean hasAllModifiers(int mask) {
53 return (stateMask & mask) == mask;
57 * Returns whether or not the Shift modifier is down on this event.
59 public boolean isShiftDown() {
60 return (stateMask & MouseEvent.SHIFT_MASK) != 0;
64 * Returns whether or not the Control modifier is down on this event.
66 public boolean isControlDown() {
67 return (stateMask & MouseEvent.CTRL_MASK) != 0;
71 * Returns whether or not the Alt modifier is down on this event.
73 public boolean isAltDown() {
74 return (stateMask & MouseEvent.ALT_MASK) != 0;
78 * Returns whether or not the Alt Graph modifier is down on this event.
80 public boolean isAltGraphDown() {
81 return (stateMask & MouseEvent.ALT_GRAPH_MASK) != 0;
84 public static class KeyPressedEvent extends KeyEvent {
85 private static final long serialVersionUID = -648528900110788474L;
87 public KeyPressedEvent(Object context, long time, char character, int keyCode, int stateMask) {
88 super(context, time, character, keyCode, stateMask);
92 public String toString() {
93 return "Key press: character='" + character + "', keyCode='" + keyCode + "', stateMask='" + stateMask + "'";
97 public static class KeyReleasedEvent extends KeyEvent {
98 private static final long serialVersionUID = -5434711507289906052L;
100 public KeyReleasedEvent(Object context, long time, char character, int keyCode, int stateMask) {
101 super(context, time, character, keyCode, stateMask);
105 public String toString() {
106 return "Key release: character='" + character + "', keyCode='" + keyCode + "', stateMask='" + stateMask + "'";