in src/studies/apg/menu/menubar/js/MenubarItemLinks.js [52:123]
MenubarItem.prototype.handleKeydown = function (event) {
var tgt = event.currentTarget,
char = event.key,
flag = false,
clickEvent;
function isPrintableCharacter (str) {
return str.length === 1 && str.match(/\S/);
}
switch (event.keyCode) {
case this.keyCode.SPACE:
case this.keyCode.RETURN:
case this.keyCode.DOWN:
if (this.popupMenu) {
this.popupMenu.open();
this.popupMenu.setFocusToFirstItem();
flag = true;
}
break;
case this.keyCode.LEFT:
this.menu.setFocusToPreviousItem(this);
flag = true;
break;
case this.keyCode.RIGHT:
this.menu.setFocusToNextItem(this);
flag = true;
break;
case this.keyCode.UP:
if (this.popupMenu) {
this.popupMenu.open();
this.popupMenu.setFocusToLastItem();
flag = true;
}
break;
case this.keyCode.HOME:
case this.keyCode.PAGEUP:
this.menu.setFocusToFirstItem();
flag = true;
break;
case this.keyCode.END:
case this.keyCode.PAGEDOWN:
this.menu.setFocusToLastItem();
flag = true;
break;
case this.keyCode.TAB:
this.popupMenu.close(true);
break;
case this.keyCode.ESC:
this.popupMenu.close(true);
break;
default:
if (isPrintableCharacter(char)) {
this.menu.setFocusByFirstCharacter(this, char);
flag = true;
}
break;
}
if (flag) {
event.stopPropagation();
event.preventDefault();
}
};