/* ****************************************************************************** * Copyright (c) 2006-2012 XMind Ltd. and others. * * This file is a part of XMind 3. XMind releases 3 and * above are dual-licensed under the Eclipse Public License (EPL), * which is available at http://www.eclipse.org/legal/epl-v10.html * and the GNU Lesser General Public License (LGPL), * which is available at http://www.gnu.org/licenses/lgpl.html * See http://www.xmind.net/license.html for details. * * Contributors: * XMind Ltd. - initial API and implementation *******************************************************************************/ package org.xmind.gef.event; import org.eclipse.swt.events.TraverseEvent; /** * @author Brian Sun * @version 2005 */ public class KeyEvent { public int keyCode; public char character; public int traverse; public boolean isImeOpened; private int state; private boolean consumed = false; /** * @param keyCode * @param character */ public KeyEvent(int state, int keyCode, char character) { super(); this.state = state; this.keyCode = keyCode; this.character = character; } /** * @param keyCode * @param character * @param traverse */ public KeyEvent(int state, int keyCode, char character, int traverse) { this.state = state; this.keyCode = keyCode; this.character = character; this.traverse = traverse; } /** * @return the state */ public int getState() { return state; } public boolean isConsumed() { return consumed; } public void consume() { consumed = true; } // public static KeyEvent createEvent( org.eclipse.draw2d.KeyEvent ke ) { // return new KeyEvent(ke.getState(), ke.keycode, ke.character); // } public static KeyEvent createEvent(org.eclipse.swt.events.KeyEvent ke, boolean isImeOpened) { KeyEvent ret = new KeyEvent(ke.stateMask, ke.keyCode, ke.character); if (ke instanceof TraverseEvent) ret.traverse = ((TraverseEvent) ke).detail; ret.isImeOpened = isImeOpened; return ret; } }