javauis/lcdui_qt/src/javax/microedition/lcdui/KeyTable.java
changeset 21 2a9601315dfc
child 23 98ccebc37403
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/lcdui_qt/src/javax/microedition/lcdui/KeyTable.java	Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,140 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+package javax.microedition.lcdui;
+
+import org.eclipse.swt.SWT;
+
+/**
+ * Key table.
+ */
+final class KeyTable {
+
+    static final int[][] KEY_TO_GAME_TABLE = {
+        {-1,  Canvas.UP},
+        {50,  Canvas.UP},
+        {SWT.ARROW_UP,  Canvas.UP},
+
+        {-2,  Canvas.DOWN},
+        {56,  Canvas.DOWN},
+        {SWT.ARROW_DOWN,  Canvas.DOWN},
+
+        {-3,  Canvas.LEFT},
+        {52,  Canvas.LEFT},
+        {SWT.ARROW_LEFT,  Canvas.LEFT},
+
+        {-4,  Canvas.RIGHT},
+        {54,  Canvas.RIGHT},
+        {SWT.ARROW_RIGHT,  Canvas.RIGHT},
+
+        {-5,  Canvas.FIRE},
+        {53,  Canvas.FIRE},
+        {-10, Canvas.FIRE},
+
+        {55,  Canvas.GAME_A},
+        {57,  Canvas.GAME_B},
+        {42,  Canvas.GAME_C},
+        {35,  Canvas.GAME_D},
+    };
+
+    /**
+     * Private constructor.
+     */
+    private KeyTable() {
+    }
+
+    static int getGameAction(int keyCode) {
+        for (int i = 0; i < KEY_TO_GAME_TABLE.length; i++) {
+            if (KEY_TO_GAME_TABLE[i][0] == keyCode) {
+                return KEY_TO_GAME_TABLE[i][1];
+            }
+        }
+        throw new IllegalArgumentException(
+                MsgRepository.CANVAS_EXCEPTION_INVALID_KEY_CODE);
+    }
+
+    static int getKeyCode(int gameAction) {
+        for (int i = 0; i < KEY_TO_GAME_TABLE.length; i++) {
+            if (KEY_TO_GAME_TABLE[i][1] == gameAction) {
+                return KEY_TO_GAME_TABLE[i][0];
+            }
+        }
+        throw new IllegalArgumentException(
+                MsgRepository.CANVAS_EXCEPTION_INVALID_GAME_ACTION);
+    }
+
+
+    static String getKeyName(int keyCode) {
+
+        switch(keyCode) {
+            /*case Canvas.KEY_NUM0:
+                return "0";
+
+            case Canvas.KEY_NUM1:
+                return "1";
+
+            case Canvas.KEY_NUM2:
+                return "2";
+
+            case Canvas.KEY_NUM3:
+                return "3";
+
+            case Canvas.KEY_NUM4:
+                return "4";
+
+            case Canvas.KEY_NUM5:
+                return "5";
+
+            case Canvas.KEY_NUM6:
+                return "6";
+
+            case Canvas.KEY_NUM7:
+                return "7";
+
+            case Canvas.KEY_NUM8:
+                return "8";
+
+            case Canvas.KEY_NUM9:
+                return "9";
+
+
+            case Canvas.KEY_STAR:
+                return "*";
+
+            case Canvas.KEY_POUND:
+                return "#";
+                */
+            case -1:
+                return OpenLcduiLocalization.getMessage("key_up");
+
+            case -2:
+                return OpenLcduiLocalization.getMessage("key_down");
+                
+            case -3:
+                return OpenLcduiLocalization.getMessage("key_left");
+
+            case -4:
+                return OpenLcduiLocalization.getMessage("key_right");
+
+            case -5:
+                return OpenLcduiLocalization.getMessage("key_select");
+
+            default:
+                return "";
+        }
+    }
+
+}