public void keyPressed(KeyEvent e) { Text portsText = (Text) e.getSource(); if (e.keyCode == SWT.TAB) { portsText.getShell().traverse(SWT.TRAVERSE_TAB_NEXT); e.doit = false; return; } else if (e.keyCode == SWT.CR) { if ((e.stateMask & SWT.MOD1) > 0) { // allow ctrl+enter to insert newlines e.stateMask = 0; } else { // single-enter will traverse portsText.getShell().traverse(SWT.TRAVERSE_RETURN); e.doit = false; return; } } else if (Character.isISOControl(e.character)) { return; } e.doit = validateChar(e.character, portsText.getText(), portsText.getCaretPosition()); }