public void actionPerformed(ActionEvent evt) {

		viewer.moveFocusToDesktop();

		if (evt.getSource() == disconnectButton) {
			viewer.disconnect();

		} else if (evt.getSource() == optionsButton) {
			viewer.options.setVisible(!viewer.options.isVisible());

		} else if (evt.getSource() == recordButton) {
			viewer.rec.setVisible(!viewer.rec.isVisible());

		} else if (evt.getSource() == clipboardButton) {
			viewer.clipboard.setVisible(!viewer.clipboard.isVisible());

		} else if (evt.getSource() == ctrlAltDelButton) {
			try {
				final int modifiers = InputEvent.CTRL_MASK
						| InputEvent.ALT_MASK;

				KeyEvent ctrlAltDelEvent = new KeyEvent(this,
						KeyEvent.KEY_PRESSED, 0, modifiers, 127);
				viewer.rfb.writeKeyEvent(ctrlAltDelEvent);

				ctrlAltDelEvent = new KeyEvent(this, KeyEvent.KEY_RELEASED, 0,
						modifiers, 127);
				viewer.rfb.writeKeyEvent(ctrlAltDelEvent);

			} catch (IOException e) {
				e.printStackTrace();
			}
		} else if (evt.getSource() == refreshButton) {
			try {
				RfbProto rfb = viewer.rfb;
				rfb.writeFramebufferUpdateRequest(0, 0, rfb.framebufferWidth,
						rfb.framebufferHeight, false);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}