Author: tveronezi
Date: Tue Oct 16 00:50:03 2012
New Revision: 1398588

URL: http://svn.apache.org/viewvc?rev=1398588&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-469

Modified:
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js?rev=1398588&r1=1398587&r2=1398588&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js 
(original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js 
Tue Oct 16 00:50:03 2012
@@ -19,6 +19,33 @@
 
 TOMEE.utils = (function () {
 
+    // http://www.quirksmode.org/js/keys.html
+    function keyCodeToString(keyCode) {
+        if(keyCode === 16) {
+            return 'shift';
+        }
+
+        if(keyCode === 17) {
+            return 'control';
+        }
+
+        if(keyCode === 18) {
+            return 'alt';
+        }
+
+        // Numbers or Letters
+        if (keyCode >= 48 && keyCode <= 57 || //Numbers
+            keyCode >= 65 && keyCode <= 90) { //Letters
+            return String.fromCharCode(keyCode);
+        }
+
+        if (keyCode >= 112 && keyCode <= 123) { //F1 -> F12
+            return 'F' + (keyCode - 111);
+        }
+
+        return null;
+    }
+
     function isPrimitive(value) {
         if ('number' === (typeof value)) {
             return true;
@@ -104,6 +131,7 @@ TOMEE.utils = (function () {
     }
 
     return {
+        keyCodeToString: keyCodeToString,
         isPrimitive:isPrimitive,
         getSafe:getSafe,
         toArray:toArray,

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js?rev=1398588&r1=1398587&r2=1398588&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js
 Tue Oct 16 00:50:03 2012
@@ -59,7 +59,9 @@ TOMEE.ApplicationView = function () {
     });
 
     myWindow.on('keydown', function (ev) {
-        var key = [];
+        var key = [],
+            keyStr = null;
+
         if (ev.altKey) {
             key.push('alt');
         } else if (ev.ctrlKey) {
@@ -68,18 +70,16 @@ TOMEE.ApplicationView = function () {
             key.push('shift');
         }
 
-        if (key.length === 0) {
+        if (key.length === 0 &&
+            !(ev.keyCode >= 112 && ev.keyCode <= 123)) { //F1 -> F12
             return; //nothing to do
         }
 
-        if (ev.keyCode !== 16 && ev.keyCode !== 17 && ev.keyCode !== 18) { 
//not SHIFT, CONTROL or ALT
-            if (ev.keyCode >= 48 && ev.keyCode <= 57 || //Numbers
-                ev.keyCode >= 65 && ev.keyCode <= 90) { //Letters
-                key.push(String.fromCharCode(ev.keyCode));
-            } else {
-                key.push(ev.keyCode);
-            }
+        keyStr = TOMEE.utils.keyCodeToString(ev.keyCode);
+        if(!keyStr) {
+            keyStr = ev.keyCode;
         }
+        key.push(keyStr);
 
         channel.send('ui-actions', 'window-' + key.join('-') + '-pressed', {});
         ev.preventDefault();


Reply via email to