details:   /erp/devel/pi/rev/9c0116f3fd36
changeset: 10219:9c0116f3fd36
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Fri Jan 28 18:11:01 2011 +0100
summary:   [toolbar][ks] Added keboard shortcuts capabilities to text buttons

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/application-menu.js.ftl
 |    2 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/user-info.js.ftl
        |    2 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/layout.js.ftl
                                   |   32 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-action-button.js
                                    |    7 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-keyboard-manager.js
                                 |   78 +++-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-quickrun-widget.js
                                  |    2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-toolbar.js
                                          |  144 +++++++++-
 7 files changed, 206 insertions(+), 61 deletions(-)

diffs (truncated from 473 to 300 lines):

diff -r 64c89fdf2080 -r 9c0116f3fd36 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/application-menu.js.ftl
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/application-menu.js.ftl
   Fri Jan 28 17:59:26 2011 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/application-menu.js.ftl
   Fri Jan 28 18:11:01 2011 +0100
@@ -44,7 +44,7 @@
           }
         }
       };
-      OB.KeyboardManager.KS.add(this.keyboardShortcutId, ksAction);
+      OB.KeyboardManager.KS.set(this.keyboardShortcutId, ksAction);
       this.Super('draw', arguments);
     },
 
diff -r 64c89fdf2080 -r 9c0116f3fd36 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/user-info.js.ftl
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/user-info.js.ftl
  Fri Jan 28 17:59:26 2011 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/user-info.js.ftl
  Fri Jan 28 18:11:01 2011 +0100
@@ -29,7 +29,7 @@
         var ksAction = function() {
           OB.Utilities.logout();
         };
-        OB.KeyboardManager.KS.add(this.keyboardShortcutId, ksAction);
+        OB.KeyboardManager.KS.set(this.keyboardShortcutId, ksAction);
         this.Super("draw", arguments);
         
OB.TestRegistry.register('org.openbravo.client.application.navigationbarcomponents.QuitButton',
 this);
       },
diff -r 64c89fdf2080 -r 9c0116f3fd36 
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
     Fri Jan 28 17:59:26 2011 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/layout.js.ftl
     Fri Jan 28 18:11:01 2011 +0100
@@ -41,9 +41,9 @@
 
 isc.Canvas.addClassProperties({neverUsePNGWorkaround:true});
 
-OB.KeyboardManager.KS.readRegisteredKSList('OBUIAPP_KeyboardShortcuts');
-OB.KeyboardManager.KS.readRegisteredKSList('UINAVBA_KeyboardShortcuts');
-OB.KeyboardManager.KS.readRegisteredKSList('UITOOLB_KeyboardShortcuts');
+OB.KeyboardManager.KS.setPredefinedKSList('OBUIAPP_KeyboardShortcuts');
+OB.KeyboardManager.KS.setPredefinedKSList('UINAVBA_KeyboardShortcuts');
+OB.KeyboardManager.KS.setPredefinedKSList('UITOOLB_KeyboardShortcuts');
 
 // should be moved to client.kernel component
 // placed here to prevent dependencies of client.kernel on Preferences
@@ -200,15 +200,15 @@
         me.getSelectedTab().pane.focusTab();
       }
     };
-    OB.KeyboardManager.KS.add('TabSet_ActivateTab1', ksAction_ActivateTab, 1);
-    OB.KeyboardManager.KS.add('TabSet_ActivateTab2', ksAction_ActivateTab, 2);
-    OB.KeyboardManager.KS.add('TabSet_ActivateTab3', ksAction_ActivateTab, 3);
-    OB.KeyboardManager.KS.add('TabSet_ActivateTab4', ksAction_ActivateTab, 4);
-    OB.KeyboardManager.KS.add('TabSet_ActivateTab5', ksAction_ActivateTab, 5);
-    OB.KeyboardManager.KS.add('TabSet_ActivateTab6', ksAction_ActivateTab, 6);
-    OB.KeyboardManager.KS.add('TabSet_ActivateTab7', ksAction_ActivateTab, 7);
-    OB.KeyboardManager.KS.add('TabSet_ActivateTab8', ksAction_ActivateTab, 8);
-    OB.KeyboardManager.KS.add('TabSet_ActivateTab9', ksAction_ActivateTab, 9);
+    OB.KeyboardManager.KS.set('TabSet_ActivateTab1', ksAction_ActivateTab, 1);
+    OB.KeyboardManager.KS.set('TabSet_ActivateTab2', ksAction_ActivateTab, 2);
+    OB.KeyboardManager.KS.set('TabSet_ActivateTab3', ksAction_ActivateTab, 3);
+    OB.KeyboardManager.KS.set('TabSet_ActivateTab4', ksAction_ActivateTab, 4);
+    OB.KeyboardManager.KS.set('TabSet_ActivateTab5', ksAction_ActivateTab, 5);
+    OB.KeyboardManager.KS.set('TabSet_ActivateTab6', ksAction_ActivateTab, 6);
+    OB.KeyboardManager.KS.set('TabSet_ActivateTab7', ksAction_ActivateTab, 7);
+    OB.KeyboardManager.KS.set('TabSet_ActivateTab8', ksAction_ActivateTab, 8);
+    OB.KeyboardManager.KS.set('TabSet_ActivateTab9', ksAction_ActivateTab, 9);
     var ksAction_closeAllTabs = function() {
       var tabCount, tabArray = [], i;
       for (i = 1; i > 0; i++) {
@@ -223,21 +223,21 @@
       }
       me.removeTabs(tabArray);
     };
-    OB.KeyboardManager.KS.add('TabSet_closeAllTabs', ksAction_closeAllTabs);
+    OB.KeyboardManager.KS.set('TabSet_closeAllTabs', ksAction_closeAllTabs);
     var ksAction_ActivateRightTab = function() {
       me.selectTab((me.getTabNumber(me.getSelectedTab()))+1);
       if(typeof me.getSelectedTab().pane.focusTab === 'function') {
         me.getSelectedTab().pane.focusTab();
       }
     };
-    OB.KeyboardManager.KS.add('TabSet_ActivateRightTab', 
ksAction_ActivateRightTab);
+    OB.KeyboardManager.KS.set('TabSet_ActivateRightTab', 
ksAction_ActivateRightTab);
     var ksAction_ActivateLeftTab = function() {
       me.selectTab((me.getTabNumber(me.getSelectedTab()))-1);
       if(typeof me.getSelectedTab().pane.focusTab === 'function') {
         me.getSelectedTab().pane.focusTab();
       }
     };
-    OB.KeyboardManager.KS.add('TabSet_ActivateLeftTab', 
ksAction_ActivateLeftTab);
+    OB.KeyboardManager.KS.set('TabSet_ActivateLeftTab', 
ksAction_ActivateLeftTab);
     var ksAction_ReloadActive = function() {
       if(typeof me.getSelectedTab().pane.refreshTab === 'function') {
         me.getSelectedTab().pane.refreshTab();
@@ -248,7 +248,7 @@
         me.getSelectedTab().pane.focusTab();
       }
     };
-    OB.KeyboardManager.KS.add('TabSet_ReloadActive', ksAction_ReloadActive);
+    OB.KeyboardManager.KS.set('TabSet_ReloadActive', ksAction_ReloadActive);
     this.Super('draw', arguments);
   },
 
diff -r 64c89fdf2080 -r 9c0116f3fd36 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-action-button.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-action-button.js
      Fri Jan 28 17:59:26 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-action-button.js
      Fri Jan 28 18:11:01 2011 +0100
@@ -150,8 +150,13 @@
     
     var label = this.labelValue[buttonValue];
     if (!label){
-      label = this.title;
+      if (this.realTitle) {
+        label = this.realTitle;
+      } else {
+        label = this.title;
+      }
     }
+    this.realTitle = label;
     this.setTitle(label);
   }
   
diff -r 64c89fdf2080 -r 9c0116f3fd36 
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
   Fri Jan 28 17:59:26 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-keyboard-manager.js
   Fri Jan 28 18:11:01 2011 +0100
@@ -74,46 +74,68 @@
     
     KS: {
     
-      readRegisteredKSList: function(RefList){
+      setPredefinedKSList: function(RefList){
         var i;
         var list = [];
         
         list = OB.PropertyStore.get(RefList);
         if (list) {
           for (i = 0; i < list.length; i++) {
-            if (typeof list[i].keyComb.ctrl === 'undefined') {
-              list[i].keyComb.ctrl = false;
-            }
-            if (typeof list[i].keyComb.alt === 'undefined') {
-              list[i].keyComb.alt = false;
-            }
-            if (typeof list[i].keyComb.shift === 'undefined') {
-              list[i].keyComb.shift = false;
-            }
-            if (typeof list[i].keyComb.key === 'undefined') {
-              list[i].keyComb.key = null;
-            }
+            this.set(list[i].id, null, null, list[i].keyComb);
           }
-          this.list = this.list.concat(list);
+        }
+      },
+
+      set: function(id, action, funcParam, keyComb) {
+        if (typeof id === 'undefined' || id === null) {
+          return false;
+        }
+
+        var position = this.getPosition(id, 'id');
+        if (position === null) {
+          position = this.list.length;
+          this.list[position] = {};
+          this.list[position].keyComb = {};
+        }
+        if (typeof id !== 'undefined' && id !== null) {
+          this.list[position].id = id;
+        }
+        if (typeof action !== 'undefined' && action !== null) {
+          this.list[position].action = action;
+        }
+        if (typeof funcParam !== 'undefined' && funcParam !== null) {
+          this.list[position].funcParam = funcParam;
+        }
+        if (typeof keyComb !== 'undefined' && keyComb !== null) {
+          if (typeof keyComb.ctrl === 'undefined') {
+            this.list[position].keyComb.ctrl = false;
+          } else {
+            this.list[position].keyComb.ctrl = keyComb.ctrl;
+          }
+          if (typeof keyComb.alt === 'undefined') {
+            this.list[position].keyComb.alt = false;
+          } else {
+            this.list[position].keyComb.alt = keyComb.alt;
+          }
+          if (typeof keyComb.shift === 'undefined') {
+            this.list[position].keyComb.shift = false;
+          } else {
+            this.list[position].keyComb.shift = keyComb.shift;
+          }
+          if (typeof keyComb.key === 'undefined') {
+            this.list[position].keyComb.key = null;
+          } else {
+            this.list[position].keyComb.key = keyComb.key;
+          }
         }
       },
       
-      add: function(id, action, funcParam){
+      remove: function(id){
         var position = this.getPosition(id, 'id');
         if (position === null) {
           return false;
         }
-        this.list[position].action = action;
-        this.list[position].funcParam = funcParam;
-      },
-      
-      remove: function(id, action, funcParam){
-        var position = this.getPosition(id, 'id');
-        if (position === null) {
-          return false;
-        }
-        this.list[position].action = null;
-        this.list[position].funcParam = null;
+        delete this.list[position];
       },
       
       getPosition: function(element, searchPattern){
@@ -135,7 +157,9 @@
       },
       
       execute: function(position){
-        this.list[position].action(this.list[position].funcParam);
+        if (this.list[position].action !== null) {
+          this.list[position].action(this.list[position].funcParam);
+        }
       },
       
       list: []
diff -r 64c89fdf2080 -r 9c0116f3fd36 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-quickrun-widget.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-quickrun-widget.js
    Fri Jan 28 17:59:26 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-quickrun-widget.js
    Fri Jan 28 18:11:01 2011 +0100
@@ -90,7 +90,7 @@
         }
       }
     };
-    OB.KeyboardManager.KS.add(this.keyboardShortcutId, ksAction);
+    OB.KeyboardManager.KS.set(this.keyboardShortcutId, ksAction);
     this.Super('draw', arguments);
   },
   
diff -r 64c89fdf2080 -r 9c0116f3fd36 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-toolbar.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-toolbar.js
    Fri Jan 28 17:59:26 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-toolbar.js
    Fri Jan 28 18:11:01 2011 +0100
@@ -130,8 +130,21 @@
 // The OBToolbar is the toolbar to perform common actions within a form.
 //
 isc.OBToolbar.addProperties({
+  randomId: null,
   initWidget: function(){
     this.Super('initWidget', arguments);
+    function getRandomId() {
+      var chars = 
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz',
+          stringLength = 8,
+          randomString = '',
+          i, rnum;
+      for (i = 0; i < stringLength; i++) {
+        rnum = Math.floor(Math.random() * chars.length);
+        randomString += chars.substring(rnum,rnum+1);
+      }
+      return randomString;
+    }
+    this.randomId = getRandomId();
     this.members = null;
     
     var newMembers = [], i = 0, j = 0;
@@ -639,26 +652,26 @@
   // Refreshes all the custom buttons in the toolbar based on current record 
selection
   //
   refreshCustomButtons: function(){
-    function doRefresh(buttons, currentValues, hideAllButtons){
+    function doRefresh(buttons, currentValues, hideAllButtons, me){
       for (var i = 0; i < buttons.length; i++) {
         if (buttons[i].updateState) {
+          me.defineRightMembersShortcuts();
           buttons[i].updateState(currentValues, hideAllButtons);
+          me.rightMembers[i].enableShortcut();
         }
       }
     }
     
-    var buttons = this.getRightMembers();
-    var numOfSelRecords = 0; 
-    
+    var buttons = this.getRightMembers(),
+        numOfSelRecords = 0,
+        isNew = this.view.viewForm.isNew,
+        hideAllButtons = !isNew && (!this.view.viewGrid.getSelectedRecords() 
|| this.view.viewGrid.getSelectedRecords().length !== 1),
+        currentValues = this.view.getCurrentValues();
     
     if (this.view.viewGrid.getSelectedRecords()) {
       numOfSelRecords = this.view.viewGrid.getSelectedRecords().length;
     }
-    var isNew = this.view.viewForm.isNew;
-    var hideAllButtons = !isNew && (!this.view.viewGrid.getSelectedRecords() 
|| this.view.viewGrid.getSelectedRecords().length !== 1);
-    
-    
-    var currentValues = this.view.getCurrentValues();
+
     if (this.buttonsHaveSessionLogic && !this.view.isShowingForm && 
!hideAllButtons && !isNew) {
       var formView = this.view.viewForm;
       // Call FIC to obtain possible session attributes and set them in form
@@ -685,11 +698,11 @@

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to