public void run() { boolean allow = true; if( traverseKey != SWT.TRAVERSE_NONE ) { TraverseEvent traverseEvent = new TraverseEvent( control ); initializeKeyEvent( traverseEvent, keyCode, charCode, stateMask ); traverseEvent.detail = traverseKey; traverseEvent.processEvent(); if( !traverseEvent.doit ) { allow = false; } } KeyEvent pressedEvent = new KeyEvent( control, KeyEvent.KEY_PRESSED ); initializeKeyEvent( pressedEvent, keyCode, charCode, stateMask ); pressedEvent.processEvent(); if( pressedEvent.doit ) { KeyEvent releasedEvent = new KeyEvent( control, KeyEvent.KEY_RELEASED ); initializeKeyEvent( releasedEvent, keyCode, charCode, stateMask ); releasedEvent.processEvent(); } else { allow = false; } if( allow ) { allowKeyEvent( control ); } else { cancelKeyEvent( control ); } } } );