	protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
		boolean b = super.processKeyBinding(ks, e, condition, pressed);
		if (!b) {
			AbstractAction actionForKey = _controller.getActionForKeyStroke(ks);
			if (actionForKey != null) {
				Object eventSource = e.getSource();
				if (!(eventSource instanceof FlexoActionSource) && eventSource instanceof Component) {
					eventSource = SwingUtilities.getAncestorOfClass(FlexoActionSource.class, (Component) eventSource);
				}
				actionForKey.actionPerformed(new ActionEvent(eventSource != null ? eventSource : e.getSource(), e.getID(), KEY_PRESSED));
				b = true;
			}
		}
		return b;
	}

	protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
		boolean b = super.processKeyBinding(ks, e, condition, pressed);
		if (!b && ks!=null) {
			AbstractAction actionForKey = _controller.getActionForKeyStroke(ks);
			if (actionForKey != null) {
				Object eventSource = e.getSource();
				if (!(eventSource instanceof FlexoActionSource) && eventSource instanceof Component) {
					eventSource = SwingUtilities.getAncestorOfClass(FlexoActionSource.class, (Component) eventSource);
				}
				actionForKey.actionPerformed(new ActionEvent(eventSource != null ? eventSource : e.getSource(), e.getID(), KEY_PRESSED));
				b = true;
			}
		}
		return b;
	}
