/* * Copyright (c) 2011, grossmann * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the jo-widgets.org nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL jo-widgets.org BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ package org.jowidgets.common.types; import java.util.HashMap; import java.util.Map; public enum VirtualKey { F1(null, "F1"), F2(null, "F2"), F3(null, "F3"), F4(null, "F4"), F5(null, "F5"), F6(null, "F6"), F7(null, "F7"), F8(null, "F8"), F9(null, "F9"), F10(null, "F10"), F11(null, "F11"), F12(null, "F12"), ENTER(null, Messages.getString("VirtualKey.enter")), BACK_SPACE(null, Messages.getString("VirtualKey.back_space")), TAB(null, Messages.getString("VirtualKey.tab")), SHIFT(null, Messages.getString("VirtualKey.shift")), CONTROL(null, Messages.getString("VirtualKey.ctrl")), ALT(null, Messages.getString("VirtualKey.alt")), PAUSE(null, Messages.getString("VirtualKey.pause")), CAPS_LOCK(null, Messages.getString("VirtualKey.caps_lock")), ESC(null, Messages.getString("VirtualKey.esc")), SPACE(null, Messages.getString("VirtualKey.space")), PAGE_UP(null, Messages.getString("VirtualKey.page_up")), PAGE_DOWN(null, Messages.getString("VirtualKey.page_down")), END(null, Messages.getString("VirtualKey.end")), HOME(null, Messages.getString("VirtualKey.home")), DELETE(null, Messages.getString("VirtualKey.delete")), INSERT(null, Messages.getString("VirtualKey.insert")), ARROW_LEFT(null, Messages.getString("VirtualKey.arrow_left")), ARROW_UP(null, Messages.getString("VirtualKey.arrow_up")), ARROW_RIGHT(null, Messages.getString("VirtualKey.arrow_right")), ARROW_DOWN(null, Messages.getString("VirtualKey.arrow_down")), DIGIT_0(Character.valueOf('0'), "0"), DIGIT_1(Character.valueOf('1'), "1"), DIGIT_2(Character.valueOf('2'), "2"), DIGIT_3(Character.valueOf('3'), "3"), DIGIT_4(Character.valueOf('4'), "4"), DIGIT_5(Character.valueOf('5'), "5"), DIGIT_6(Character.valueOf('6'), "6"), DIGIT_7(Character.valueOf('7'), "7"), DIGIT_8(Character.valueOf('8'), "8"), DIGIT_9(Character.valueOf('9'), "9"), A(Character.valueOf('A'), "A"), B(Character.valueOf('B'), "B"), C(Character.valueOf('C'), "C"), D(Character.valueOf('D'), "D"), E(Character.valueOf('E'), "E"), F(Character.valueOf('F'), "F"), G(Character.valueOf('G'), "G"), H(Character.valueOf('H'), "H"), I(Character.valueOf('I'), "I"), J(Character.valueOf('J'), "J"), K(Character.valueOf('K'), "K"), L(Character.valueOf('L'), "L"), M(Character.valueOf('M'), "M"), N(Character.valueOf('N'), "N"), O(Character.valueOf('O'), "O"), P(Character.valueOf('P'), "P"), Q(Character.valueOf('Q'), "Q"), R(Character.valueOf('R'), "R"), S(Character.valueOf('S'), "S"), T(Character.valueOf('T'), "T"), U(Character.valueOf('U'), "U"), V(Character.valueOf('V'), "V"), W(Character.valueOf('W'), "W"), X(Character.valueOf('X'), "X"), Y(Character.valueOf('Y'), "Y"), Z(Character.valueOf('Z'), "Z"), /** * The key pressed or released is not defined as a virtual key. * This must not be used to define accelerators. */ UNDEFINED(null, Messages.getString("VirtualKey.undefined")); private static Map<Character, VirtualKey> characterToVirtualKey; private final Character character; private final String label; VirtualKey(final Character character, final String label) { this.character = character; this.label = label; } /** * Gets the label of the key. * * @return The label of the key */ public String getLabel() { return label; } /** * Gets a character representation of the virtual key, or null, if the virtual key is not * representable by a character. * * @return The character representation or null */ public Character getCharacter() { return character; } /** * @return true, if the virtual key is representable by a character, false otherwise. */ public boolean isCharacter() { return character != null; } /** * Gets the virtual key for a char. * * @param character The char to get the virtual key for * @return The virtual key for the char or null, if no virtual key exists for the char */ public static VirtualKey toVirtualKey(final char character) { return getCharacterToVirtualKey().get(Character.valueOf(character)); } private static Map<Character, VirtualKey> getCharacterToVirtualKey() { if (characterToVirtualKey == null) { characterToVirtualKey = new HashMap<Character, VirtualKey>(); characterToVirtualKey.put(Character.valueOf('0'), VirtualKey.DIGIT_0); characterToVirtualKey.put(Character.valueOf('1'), VirtualKey.DIGIT_1); characterToVirtualKey.put(Character.valueOf('2'), VirtualKey.DIGIT_2); characterToVirtualKey.put(Character.valueOf('3'), VirtualKey.DIGIT_3); characterToVirtualKey.put(Character.valueOf('4'), VirtualKey.DIGIT_4); characterToVirtualKey.put(Character.valueOf('5'), VirtualKey.DIGIT_5); characterToVirtualKey.put(Character.valueOf('6'), VirtualKey.DIGIT_6); characterToVirtualKey.put(Character.valueOf('7'), VirtualKey.DIGIT_7); characterToVirtualKey.put(Character.valueOf('8'), VirtualKey.DIGIT_8); characterToVirtualKey.put(Character.valueOf('9'), VirtualKey.DIGIT_9); characterToVirtualKey.put(Character.valueOf('a'), VirtualKey.A); characterToVirtualKey.put(Character.valueOf('b'), VirtualKey.B); characterToVirtualKey.put(Character.valueOf('c'), VirtualKey.C); characterToVirtualKey.put(Character.valueOf('d'), VirtualKey.D); characterToVirtualKey.put(Character.valueOf('e'), VirtualKey.E); characterToVirtualKey.put(Character.valueOf('f'), VirtualKey.F); characterToVirtualKey.put(Character.valueOf('g'), VirtualKey.G); characterToVirtualKey.put(Character.valueOf('h'), VirtualKey.H); characterToVirtualKey.put(Character.valueOf('i'), VirtualKey.I); characterToVirtualKey.put(Character.valueOf('j'), VirtualKey.J); characterToVirtualKey.put(Character.valueOf('k'), VirtualKey.K); characterToVirtualKey.put(Character.valueOf('l'), VirtualKey.L); characterToVirtualKey.put(Character.valueOf('m'), VirtualKey.M); characterToVirtualKey.put(Character.valueOf('n'), VirtualKey.N); characterToVirtualKey.put(Character.valueOf('o'), VirtualKey.O); characterToVirtualKey.put(Character.valueOf('p'), VirtualKey.P); characterToVirtualKey.put(Character.valueOf('q'), VirtualKey.Q); characterToVirtualKey.put(Character.valueOf('r'), VirtualKey.R); characterToVirtualKey.put(Character.valueOf('s'), VirtualKey.S); characterToVirtualKey.put(Character.valueOf('t'), VirtualKey.T); characterToVirtualKey.put(Character.valueOf('u'), VirtualKey.U); characterToVirtualKey.put(Character.valueOf('v'), VirtualKey.V); characterToVirtualKey.put(Character.valueOf('w'), VirtualKey.W); characterToVirtualKey.put(Character.valueOf('x'), VirtualKey.X); characterToVirtualKey.put(Character.valueOf('y'), VirtualKey.Y); characterToVirtualKey.put(Character.valueOf('z'), VirtualKey.Z); characterToVirtualKey.put(Character.valueOf('A'), VirtualKey.A); characterToVirtualKey.put(Character.valueOf('B'), VirtualKey.B); characterToVirtualKey.put(Character.valueOf('C'), VirtualKey.C); characterToVirtualKey.put(Character.valueOf('D'), VirtualKey.D); characterToVirtualKey.put(Character.valueOf('E'), VirtualKey.E); characterToVirtualKey.put(Character.valueOf('F'), VirtualKey.F); characterToVirtualKey.put(Character.valueOf('G'), VirtualKey.G); characterToVirtualKey.put(Character.valueOf('H'), VirtualKey.H); characterToVirtualKey.put(Character.valueOf('I'), VirtualKey.I); characterToVirtualKey.put(Character.valueOf('J'), VirtualKey.J); characterToVirtualKey.put(Character.valueOf('K'), VirtualKey.K); characterToVirtualKey.put(Character.valueOf('L'), VirtualKey.L); characterToVirtualKey.put(Character.valueOf('M'), VirtualKey.M); characterToVirtualKey.put(Character.valueOf('N'), VirtualKey.N); characterToVirtualKey.put(Character.valueOf('O'), VirtualKey.O); characterToVirtualKey.put(Character.valueOf('P'), VirtualKey.P); characterToVirtualKey.put(Character.valueOf('Q'), VirtualKey.Q); characterToVirtualKey.put(Character.valueOf('R'), VirtualKey.R); characterToVirtualKey.put(Character.valueOf('S'), VirtualKey.S); characterToVirtualKey.put(Character.valueOf('T'), VirtualKey.T); characterToVirtualKey.put(Character.valueOf('U'), VirtualKey.U); characterToVirtualKey.put(Character.valueOf('V'), VirtualKey.V); characterToVirtualKey.put(Character.valueOf('W'), VirtualKey.W); characterToVirtualKey.put(Character.valueOf('X'), VirtualKey.X); characterToVirtualKey.put(Character.valueOf('Y'), VirtualKey.Y); characterToVirtualKey.put(Character.valueOf('Z'), VirtualKey.Z); } return characterToVirtualKey; } }