public void open() {
		Display display = Display.getDefault();
		createContents();

		serialEvent(SerialState.Disconnected);
		
		shell.getDisplay().addFilter(SWT.KeyDown, new Listener() {
			
			@Override
			public void handleEvent(Event arg0) {
				if( ( (arg0.stateMask&SWT.CTRL) == SWT.CTRL) && arg0.keyCode == 'f'  )
				{
					if( tabFolder.getItemCount() == 3 && !txtFilter.isFocusControl() )
					{
						tabFolder.setSelection(1);
						txtFilter.setFocus();
					}
				}
				
			}
		});


		checkForUpdates();

		if( hiddenAtStart )
		{
			hideToTray();
		} else {
			shell.open();
			shell.layout();
		}

		clearSystray(true);
		
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}