@@ -9,6 +9,7 @@ var bomlayout = "default";
99var currentHighlightedRowId ;
1010var highlightHandlers = [ ] ;
1111var highlightedRefs = [ ] ;
12+ var checkboxes = [ ] ;
1213var bomCheckboxes = "" ;
1314var storage ;
1415
@@ -475,6 +476,31 @@ function changeBomLayout(layout) {
475476 changeCanvasLayout ( canvaslayout ) ;
476477}
477478
479+ function focusInputField ( input ) {
480+ input . scrollIntoView ( false ) ;
481+ input . focus ( ) ;
482+ input . select ( ) ;
483+ }
484+
485+ function focusFilterField ( ) {
486+ focusInputField ( document . getElementById ( "filter" ) ) ;
487+ }
488+
489+ function focusRefLookupField ( ) {
490+ focusInputField ( document . getElementById ( "reflookup" ) ) ;
491+ }
492+
493+ function toggleBomCheckbox ( bomrowid , checkboxnum ) {
494+ if ( ! bomrowid || checkboxnum > checkboxes . length ) {
495+ return ;
496+ }
497+ var bomrow = document . getElementById ( bomrowid ) ;
498+ var checkbox = bomrow . childNodes [ checkboxnum ] . childNodes [ 0 ] ;
499+ checkbox . checked = ! checkbox . checked ;
500+ checkbox . indeterminate = false ;
501+ checkbox . onchange ( ) ;
502+ }
503+
478504function removeGutterNode ( node ) {
479505 for ( var i = 0 ; i < node . childNodes . length ; i ++ ) {
480506 if ( node . childNodes [ i ] . classList &&
@@ -509,6 +535,47 @@ document.onkeydown = function(e) {
509535 default :
510536 break ;
511537 }
538+ if ( e . altKey ) {
539+ switch ( e . key ) {
540+ case "f" :
541+ focusFilterField ( ) ;
542+ e . preventDefault ( ) ;
543+ break ;
544+ case "r" :
545+ focusRefLookupField ( ) ;
546+ e . preventDefault ( ) ;
547+ break ;
548+ case "z" :
549+ changeBomLayout ( "BOM" ) ;
550+ e . preventDefault ( ) ;
551+ break ;
552+ case "x" :
553+ changeBomLayout ( "LR" ) ;
554+ e . preventDefault ( ) ;
555+ break ;
556+ case "c" :
557+ changeBomLayout ( "TB" ) ;
558+ e . preventDefault ( ) ;
559+ break ;
560+ case "v" :
561+ changeCanvasLayout ( "F" ) ;
562+ e . preventDefault ( ) ;
563+ break ;
564+ case "b" :
565+ changeCanvasLayout ( "FB" ) ;
566+ e . preventDefault ( ) ;
567+ break ;
568+ case "n" :
569+ changeCanvasLayout ( "B" ) ;
570+ e . preventDefault ( ) ;
571+ break ;
572+ default :
573+ break ;
574+ }
575+ if ( e . key >= '1' && e . key <= '9' ) {
576+ toggleBomCheckbox ( currentHighlightedRowId , parseInt ( e . key ) ) ;
577+ }
578+ }
512579}
513580
514581window . onload = function ( e ) {
0 commit comments