details:   /erp/devel/pi/rev/65676b546c2e
changeset: 12358:65676b546c2e
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Tue May 24 02:00:43 2011 +0200
summary:   [KS] Improved a bit StatusBar keyboard shortcuts login

details:   /erp/devel/pi/rev/a62eea43d881
changeset: 12359:a62eea43d881
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Tue May 24 02:06:00 2011 +0200
summary:   [KS] switched from keyPress logic at Page level to keyDown logic at 
Canvas level
to allow override some default Chrome browser shortcuts

diffstat:

 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-keyboard-manager.js
 |  12 +++++-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-statusbar.js
        |  20 +++++----
 2 files changed, 21 insertions(+), 11 deletions(-)

diffs (80 lines):

diff -r a707bb7eade4 -r a62eea43d881 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-keyboard-manager.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-keyboard-manager.js
   Mon May 23 17:08:51 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-keyboard-manager.js
   Tue May 24 02:06:00 2011 +0200
@@ -160,7 +160,7 @@
       },
 
       execute: function(position){
-        if (this.list[position].action !== null) {
+        if (this.list[position].action !== null && typeof 
this.list[position].action === 'function') {
           return this.list[position].action(this.list[position].funcParam);
         } else {
           return true;
@@ -175,6 +175,14 @@
   // Initialize KeyboardManager object
   keyboardMgr = O.KeyboardManager = new KeyboardManager();
 
-  isc.Page.setEvent('keyPress', 'OB.KeyboardManager.action.keyDown()');
+  /* isc.Page.setEvent('keyPress', 'OB.KeyboardManager.action.keyDown()'); // 
Discart due to Chrome event propagation problems 
http://forums.smartclient.com/showthread.php?p=65578 */
+  isc.Canvas.getPrototype()._originalKeyDown = 
isc.Canvas.getPrototype().keyDown;
+  isc.Canvas.getPrototype().keyDown = function() {
+    var response = OB.KeyboardManager.action.keyDown();
+    if (response) { // To ensure that if a previous keyDown was set in the 
Canvas it is executed if the action KeyboardManager.action should be propagated
+      response = this._originalKeyDown();
+    }
+    return response;
+  };
 
 }(OB, isc));
diff -r a707bb7eade4 -r a62eea43d881 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-statusbar.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-statusbar.js
  Mon May 23 17:08:51 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-statusbar.js
  Tue May 24 02:06:00 2011 +0200
@@ -68,7 +68,7 @@
   },
 
   doAction : function() {
-    var rowNum, newRowNum, newRecord, theButtonVar, i;
+    var rowNum, newRowNum, newRecord, theButtonBar, i;
     if (this.buttonType === 'previous') {
       this.view.editNextPreviousRecord(false);
     } else if (this.buttonType === 'maximize') {
@@ -81,14 +81,14 @@
       this.view.switchFormGridVisibility();
       this.view.messageBar.hide();
     } else if (this.buttonType === 'maximizeRestore') {
-      theButtonVar = this.view.statusBar.buttonBar;
-      if (theButtonVar.members) {
-        for (i = 0; i < theButtonVar.members.length; i++) {
-          if (theButtonVar.members[i].buttonType === 'maximize' && 
!theButtonVar.members[i].isDisabled() && theButtonVar.members[i].isVisible()) {
-            theButtonVar.members[i].action();
+      theButtonBar = this.view.statusBar.buttonBar;
+      if (theButtonBar.members) {
+        for (i = 0; i < theButtonBar.members.length; i++) {
+          if (theButtonBar.members[i].buttonType === 'maximize' && 
!theButtonBar.members[i].isDisabled() && theButtonBar.members[i].isVisible()) {
+            theButtonBar.members[i].action();
             break;
-          } else if (theButtonVar.members[i].buttonType === 'restore' && 
!theButtonVar.members[i].isDisabled() && theButtonVar.members[i].isVisible()) {
-            theButtonVar.members[i].action();
+          } else if (theButtonBar.members[i].buttonType === 'restore' && 
!theButtonBar.members[i].isDisabled() && theButtonBar.members[i].isVisible()) {
+            theButtonBar.members[i].action();
             break;
           }
         }
@@ -100,7 +100,8 @@
     if (this.keyboardShortcutId) {
       var me = this;
       var ksAction = function(){
-        if ((!me.isDisabled() && me.isVisible()) || me.buttonType === 
'maximizeRestore') {
+        if ((!me.isDisabled() && me.isVisible()) || me.forceKeyboardShortcut) {
+          me.focus();
           me.action();
         }
         return false; //To avoid keyboard shortcut propagation
@@ -182,6 +183,7 @@
       visibility : 'hidden',
       view : this.view,
       buttonType : 'maximizeRestore',
+      forceKeyboardShortcut : true,
       keyboardShortcutId : 'StatusBar_Maximize-Restore'
     });
     this.buttonBar = isc.OBStatusBarIconButtonBar.create( {});

------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to