Bug 87222 [KeyBindings] preference page: Duplicate bindings masked by the preference page
Version: 3.1.0 Build id: I20050301-1230 After installing Web Tools I noticed that a few of the java editing keybindings disappeared: - Select Enclosing Element - Restore Selection - Select Next element - Select Previous element - probably some others WTP defines its own versions of these commands (same name, different ID) but assigns the key bindings to a "structued text editor scope". The Java key bindings are in a "Java editing scope". WTP should probably use the existing commands (they would have to be pushed down first), but I don't think it was right for the Java key bindings to be removed/hidden.
bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java
* 
	 * @param bindings
	 *            The bindings which all match the same trigger sequence; must
	 *            not be <code>null</code>, and should contain at least two
	 *            items. This collection should only contain instances of
	 *            <code>Binding</code> (i.e., no <code>null</code> values).
	 * @return The collection of bindings which match the current scheme.
	 */
	private final Collection resolveConflicts(final Collection bindings) {
		final Collection matches = new ArrayList();
		final Iterator bindingItr = bindings.iterator();
		Binding bestMatch = (Binding) bindingItr.next();
		/*
		 * Iterate over each binding and compares it with the best match. If a
		 * better match is found, then replace the best match and clear the
		 * collection. If the current binding is equivalent, then simply add it
		 * to the collection of matches. If the current binding is worse, then
		 * do nothing.
		 */
		while (bindingItr.hasNext()) {
			final Binding current = (Binding) bindingItr.next();
			/*
			 * SCHEME: Test whether the current is in a child scheme. Bindings
			 * defined in a child scheme will take priority over bindings
			 * defined in a parent scheme -- assuming that consulting their
			 * contexts led to a conflict.
			 */
			final String currentScheme = current.getSchemeId();
			final String bestScheme = bestMatch.getSchemeId();
			if (!currentScheme.equals(bestScheme)) {