details:   https://code.openbravo.com/erp/devel/pi/rev/e71aac88d050
changeset: 13306:e71aac88d050
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Wed Jul 27 16:39:32 2011 +0200
summary:   Fixed issue 17474: [KS] Refactor of KS to allow define a KS target

diffstat:

 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_PREFERENCE.xml
                                 |   17 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/layout.js.ftl
                 |    4 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/alert-management/ob-alert-manager.js
 |    2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/classic/ob-classic-compatibility.js
  |  137 +++---
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-statusbar.js
                 |    4 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
                 |   26 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js
                      |  104 ++--
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
                 |  191 +++++----
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-tab.js
                       |   12 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-application-menu.js
        |    2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-logout-widget.js
           |    2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/navbar/ob-quickrun-widget.js
         |    2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js
                |    8 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-keyboard-manager.js
     |  116 +++--
 
modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
          |   46 +-
 15 files changed, 372 insertions(+), 301 deletions(-)

diffs (truncated from 1028 to 300 lines):

diff -r 50d4546d8a8b -r e71aac88d050 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_PREFERENCE.xml
--- 
a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_PREFERENCE.xml
     Wed Jul 27 11:34:53 2011 +0200
+++ 
b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_PREFERENCE.xml
     Wed Jul 27 16:39:32 2011 +0200
@@ -41,10 +41,19 @@
   {"id": "StatusBar_Next", "keyComb": {"alt": true, "shift": true, "key": 
"Page_Down"}},
   {"id": "StatusBar_Maximize-Restore", "keyComb": {"alt": true, "shift": true, 
"key": "Enter"}},
   {"id": "StatusBar_Close", "keyComb": {"key": "Escape"}},
-  {"id": "Grid_EditInForm", "keyComb": {"ctrl": true, "alt": false, "key": 
"f2"}},
-  {"id": "Grid_EditInGrid", "keyComb": {"ctrl": false, "alt": false, "key": 
"f2"}},
-  {"id": "Grid_EditInGrid", "keyComb": {"ctrl": false, "alt": false, "key": 
"f2"}},
-  {"id": "Grid_CancelChanges", "keyComb": {"ctrl": false, "alt": false, "key": 
"Escape"}}
+  {"id": "Grid_FocusFilter", "keyComb": {"ctrl": true, "shift": true, "key": 
"F"}},
+  {"id": "Grid_FocusGrid", "keyComb": {"key": "Escape"}},
+  {"id": "Grid_ClearFilter", "keyComb": {"alt": true, "key": "Delete"}},
+  {"id": "Grid_SelectAll", "keyComb": {"alt": true, "shift": true, "key": 
"A"}},
+  {"id": "Grid_UnselectAll", "keyComb": {"alt": true, "shift": true, "key": 
"N"}},
+  {"id": "ViewGrid_EditInForm", "keyComb": {"ctrl": true, "key": "f2"}},
+  {"id": "ViewGrid_EditInGrid", "keyComb": {"key": "f2"}},
+  {"id": "ViewGrid_CancelEditing", "keyComb": {"key": "Escape"}},
+  {"id": "ViewGrid_DeleteSelectedRecords", "keyComb": {"key": "Delete"}},
+  {"id": "ViewGrid_CancelChanges", "keyComb": {"key": "Escape"}},
+  {"id": "ViewForm_OpenLinkOut", "keyComb": {"ctrl": true, "alt": true, "key": 
"Enter"}},
+  {"id": "Selector_ShowPopup", "keyComb": {"ctrl": true, "key": "Enter"}},
+  {"id": "SelectorLink_ShowPopup", "keyComb": {"ctrl": true, "key": "Enter"}}
 ]]]></VALUE>
 <!--5EE6D055A7FE4C4DA7EB557F6C61D0EA-->  
<PROPERTY><![CDATA[OBUIAPP_KeyboardShortcuts]]></PROPERTY>
 <!--5EE6D055A7FE4C4DA7EB557F6C61D0EA-->  
<ISPROPERTYLIST><![CDATA[Y]]></ISPROPERTYLIST>
diff -r 50d4546d8a8b -r e71aac88d050 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/layout.js.ftl
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/layout.js.ftl
     Wed Jul 27 11:34:53 2011 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/layout.js.ftl
     Wed Jul 27 16:39:32 2011 +0200
@@ -41,8 +41,8 @@
 
 isc.Canvas.addClassProperties({neverUsePNGWorkaround:true});
 
-OB.KeyboardManager.KS.setPredefinedKSList('OBUIAPP_KeyboardShortcuts');
-OB.KeyboardManager.KS.setPredefinedKSList('UINAVBA_KeyboardShortcuts');
+OB.KeyboardManager.Shortcuts.setPredefinedList('OBUIAPP_KeyboardShortcuts');
+OB.KeyboardManager.Shortcuts.setPredefinedList('UINAVBA_KeyboardShortcuts');
 
 // should be moved to client.kernel component
 // placed here to prevent dependencies of client.kernel on Preferences
diff -r 50d4546d8a8b -r e71aac88d050 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/alert-management/ob-alert-manager.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/alert-management/ob-alert-manager.js
     Wed Jul 27 11:34:53 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/alert-management/ob-alert-manager.js
     Wed Jul 27 16:39:32 2011 +0200
@@ -147,7 +147,7 @@
         me.click();
         return false; //To avoid keyboard shortcut propagation
       };
-      OB.KeyboardManager.KS.set(this.keyboardShortcutId, ksAction);
+      OB.KeyboardManager.Shortcuts.set(this.keyboardShortcutId, 'Canvas', 
ksAction);
     }
     this.Super('draw', arguments);
   },
diff -r 50d4546d8a8b -r e71aac88d050 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/classic/ob-classic-compatibility.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/classic/ob-classic-compatibility.js
      Wed Jul 27 11:34:53 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/classic/ob-classic-compatibility.js
      Wed Jul 27 16:39:32 2011 +0200
@@ -233,79 +233,80 @@
       getMDIKS: function(){
         var key, auxKey, action, funcParam, keyMap,
             ClassicKeyJSON = [],
-            LKS = O.KeyboardManager.KS, i;
+            LKS = O.KeyboardManager.Shortcuts, i;
 
         for (i = 0; i < LKS.list.length; i++) {
           auxKey = '';
+          if (LKS.list[i].isGlobal) {
+            if (LKS.list[i].keyComb.ctrl === true) {
+              if (auxKey.length > 0) {
+                auxKey += '+';
+              }
+              auxKey += 'ctrlKey';
+            }
+            if (LKS.list[i].keyComb.alt === true) {
+              if (auxKey.length > 0) {
+                auxKey += '+';
+              }
+              auxKey += 'altKey';
+            }
+            if (LKS.list[i].keyComb.shift === true) {
+              if (auxKey.length > 0) {
+                auxKey += '+';
+              }
+              auxKey += 'shiftKey';
+            }
+            if (LKS.list[i].keyComb.key !== null) {
+              key = LKS.list[i].keyComb.key;
+            }
 
-          if (LKS.list[i].keyComb.ctrl === true) {
-            if (auxKey.length > 0) {
-              auxKey += '+';
-            }
-            auxKey += 'ctrlKey';
+            action = LKS.list[i].action;
+            funcParam = LKS.list[i].funcParam;
+
+            // Special keys nomenclature adaptation from Smartclient way to
+            // classic utils.js way
+
+            keyMap = {
+              'Backspace': 'BACKSPACE',
+              'Tab': 'TAB',
+              'Enter': 'ENTER',
+              'Space': 'SPACE',
+              'Insert': 'INSERT',
+              'End': 'END',
+              'Home': 'HOME',
+              'Page_Up': 'REPAGE',
+              'Page_Down': 'AVPAGE',
+              'Arrow_Left': 'LEFTARROW',
+              'Arrow_Right': 'RIGHTARROW',
+              'Arrow_Up': 'UPARROW',
+              'Arrow_Down': 'DOWNARROW',
+              '+': 'NUMBERPOSITIVE',
+              '-': 'NUMBERNEGATIVE',
+              '.': 'NUMBERDECIMAL',
+              'Escape': 'ESCAPE',
+              'f1': 'F1',
+              'f2': 'F2',
+              'f3': 'F3',
+              'f4': 'F4',
+              'f5': 'F5',
+              'f6': 'F6',
+              'f7': 'F7',
+              'f8': 'F8',
+              'f9': 'F9',
+              'f10': 'F10',
+              'f11': 'F11',
+              'f12': 'F12'
+            };
+
+            key = keyMap[key] || key;
+
+            ClassicKeyJSON.push({
+              'key': key,
+              'auxKey': auxKey,
+              'action': action,
+              'funcParam': funcParam
+            });
           }
-          if (LKS.list[i].keyComb.alt === true) {
-            if (auxKey.length > 0) {
-              auxKey += '+';
-            }
-            auxKey += 'altKey';
-          }
-          if (LKS.list[i].keyComb.shift === true) {
-            if (auxKey.length > 0) {
-              auxKey += '+';
-            }
-            auxKey += 'shiftKey';
-          }
-          if (LKS.list[i].keyComb.key !== null) {
-            key = LKS.list[i].keyComb.key;
-          }
-
-          action = LKS.list[i].action;
-          funcParam = LKS.list[i].funcParam;
-
-          // Special keys nomenclature adaptation from Smartclient way to
-          // classic utils.js way
-
-          keyMap = {
-            'Backspace': 'BACKSPACE',
-            'Tab': 'TAB',
-            'Enter': 'ENTER',
-            'Space': 'SPACE',
-            'Insert': 'INSERT',
-            'End': 'END',
-            'Home': 'HOME',
-            'Page_Up': 'REPAGE',
-            'Page_Down': 'AVPAGE',
-            'Arrow_Left': 'LEFTARROW',
-            'Arrow_Right': 'RIGHTARROW',
-            'Arrow_Up': 'UPARROW',
-            'Arrow_Down': 'DOWNARROW',
-            '+': 'NUMBERPOSITIVE',
-            '-': 'NUMBERNEGATIVE',
-            '.': 'NUMBERDECIMAL',
-            'Escape': 'ESCAPE',
-            'f1': 'F1',
-            'f2': 'F2',
-            'f3': 'F3',
-            'f4': 'F4',
-            'f5': 'F5',
-            'f6': 'F6',
-            'f7': 'F7',
-            'f8': 'F8',
-            'f9': 'F9',
-            'f10': 'F10',
-            'f11': 'F11',
-            'f12': 'F12'
-          };
-
-          key = keyMap[key] || key;
-
-          ClassicKeyJSON.push({
-            'key': key,
-            'auxKey': auxKey,
-            'action': action,
-            'funcParam': funcParam
-          });
         }
 
         return ClassicKeyJSON;
diff -r 50d4546d8a8b -r e71aac88d050 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-statusbar.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-statusbar.js
     Wed Jul 27 11:34:53 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-statusbar.js
     Wed Jul 27 16:39:32 2011 +0200
@@ -120,13 +120,13 @@
         }
         return false; //To avoid keyboard shortcut propagation
       };
-      OB.KeyboardManager.KS.set(this.keyboardShortcutId, ksAction);
+      OB.KeyboardManager.Shortcuts.set(this.keyboardShortcutId, 'OBViewForm', 
ksAction);
     }
   },
 
   disableShortcut: function() {
     if (this.keyboardShortcutId) {
-      OB.KeyboardManager.KS.set(this.keyboardShortcutId, function(){
+      OB.KeyboardManager.Shortcuts.set(this.keyboardShortcutId, null, 
function(){
         return true;
       });
     }
diff -r 50d4546d8a8b -r e71aac88d050 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
     Wed Jul 27 11:34:53 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
     Wed Jul 27 16:39:32 2011 +0200
@@ -1414,14 +1414,28 @@
     return this.Super('updateFocusItemValue', arguments);
   },
 
+  enableShortcuts: function() {
+    var me = this;
+    var ksAction = function() {
+      if (me.getFocusItem && me.getFocusItem().titleClick) {
+        me.getFocusItem().titleClick(me, me.getFocusItem());
+      }
+      return false; //To avoid keyboard shortcut propagation
+    };
+    OB.KeyboardManager.Shortcuts.set('ViewForm_OpenLinkOut', 'OBViewForm', 
ksAction);
+  },
+
+  draw : function() {
+    this.enableShortcuts();
+    this.Super('draw', arguments);
+  },
+
   keyDown: function() {
-    if (isc.EventHandler.getKey() === 'Enter' &&
-      (isc.EventHandler.ctrlKeyDown() && isc.EventHandler.altKeyDown() && 
!isc.EventHandler.shiftKeyDown()) &&
-      this.getFocusItem && this.getFocusItem().titleClick) {
-      this.getFocusItem().titleClick(this, this.getFocusItem());
-      return false;
+    var response = OB.KeyboardManager.Shortcuts.monitor('OBViewForm');
+    if (response !== false) {
+      response = this.Super('keyDown', arguments);
     }
-    return this.Super('keyDown', arguments);
+    return response;
   },
   
   storeFocusItem: function() {
diff -r 50d4546d8a8b -r e71aac88d050 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js
  Wed Jul 27 11:34:53 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js
  Wed Jul 27 16:39:32 2011 +0200
@@ -33,33 +33,64 @@
   escapeHTML: true,
   bodyProperties: {canSelectText:true},
 
+  enableShortcuts: function() {
+    var me = this;
+
+    var ksAction_FocusFilter = function() {
+      me.focusInFirstFilterEditor();
+      return false; //To avoid keyboard shortcut propagation
+    };
+    OB.KeyboardManager.Shortcuts.set('Grid_FocusFilter', 'OBGrid.body', 
ksAction_FocusFilter);
+
+    var ksAction_FocusGrid = function() {
+      me.focus();
+      return false; //To avoid keyboard shortcut propagation
+    };
+    OB.KeyboardManager.Shortcuts.set('Grid_FocusGrid', 'OBGrid.filter', 
ksAction_FocusGrid);
+
+    var ksAction_ClearFilter = function() {
+      me.clearFilter(true);
+      return false; //To avoid keyboard shortcut propagation
+    };
+    OB.KeyboardManager.Shortcuts.set('Grid_ClearFilter', ['OBGrid.body', 
'OBGrid.filter'], ksAction_ClearFilter);
+
+    var ksAction_SelectAll = function() {
+      me.selectAllRecords();
+      return false; //To avoid keyboard shortcut propagation
+    };
+    OB.KeyboardManager.Shortcuts.set('Grid_SelectAll', 'OBGrid.body', 
ksAction_SelectAll);
+
+    var ksAction_UnselectAll = function() {
+      if (me.getSelectedRecords().length > 1) {
+        me.deselectAllRecords();
+      }

------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to