translates keypress events into commands for the controller
if(e.altKey){ return; } var treeNode = dijit.getEnclosingWidget(e.target); if(!treeNode){ return; } // Note: On IE e.keyCode is not 0 for printables so check e.charCode. // In dojo charCode is universally 0 for non-printables. if(e.charCode){ // handle printables (letter navigation) // Check for key navigation. var navKey = e.charCode; if(!e.altKey && !e.ctrlKey && !e.shiftKey && !e.metaKey){ navKey = (String.fromCharCode(navKey)).toLowerCase(); this._onLetterKeyNav( { node: treeNode, key: navKey } ); dojo.stopEvent(e); } }else{ // handle non-printables (arrow keys) var map = this._keyHandlerMap; if(!map){ // setup table mapping keys to events map = {}; map[dojo.keys.ENTER]="_onEnterKey"; map[dojo.keys.LEFT_ARROW]="_onLeftArrow"; map[dojo.keys.RIGHT_ARROW]="_onRightArrow"; map[dojo.keys.UP_ARROW]="_onUpArrow"; map[dojo.keys.DOWN_ARROW]="_onDownArrow"; map[dojo.keys.HOME]="_onHomeKey"; map[dojo.keys.END]="_onEndKey"; this._keyHandlerMap = map; } if(this._keyHandlerMap[e.keyCode]){ this[this._keyHandlerMap[e.keyCode]]( { node: treeNode, item: treeNode.item } ); dojo.stopEvent(e); } }