private void installKeyboardBindings() {

		KeyStroke ks = (KeyStroke) UIManager
				.get("DockingDesktop.closeActionAccelerator");
		if (ks != null) {
			getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ks,
					"close");
			getActionMap().put("close", closeAction);
		}
		ks = (KeyStroke) UIManager
				.get("DockingDesktop.maximizeActionAccelerator");
		if (ks != null) {
			getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ks,
					"maximize");
			getActionMap().put("maximize", maximizeAction);
		}
		ks = (KeyStroke) UIManager.get("DockingDesktop.dockActionAccelerator");
		if (ks != null) {
			getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ks,
					"dock");
			getActionMap().put("dock", dockAction);
		}
		ks = (KeyStroke) UIManager.get("DockingDesktop.floatActionAccelerator");
		if (ks != null) {
			getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ks,
					"float");
			getActionMap().put("float", floatAction);
		}

		ks = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); // general cancel
															// action 2005/10/07
		getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(ks, "cancel");
		getActionMap().put("cancel", cancelAction);

	}