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
import org.eclipse.core.commands.contexts.ContextManager;
import org.eclipse.core.commands.contexts.ContextManagerEvent;
import org.eclipse.core.commands.contexts.IContextManagerListener;
import org.eclipse.jface.contexts.IContextIds;
import org.eclipse.jface.util.Util;
import org.eclipse.swt.SWT;
/**
 * <p>
 * A central repository for bindings -- both in the defined and undefined
 * states. Schemes and bindings can be created and retrieved using this manager.
 * It is possible to listen to changes in the collection of schemes and bindings
 * by adding a listener to the manager.
 * </p>
 * <p>
 * The binding manager is very sensitive to performance. Misusing the manager
 * can render an application unenjoyable to use. As such, each of the public
 * methods states the current run-time performance. In future releases, it is
 * guaranteed that the method will run in at least the stated time constraint --
 * though it might get faster. Where possible, we have also tried to be memory
 * efficient.
 * </p>
 * 
 * @since 3.1
 */
public final class BindingManager implements IContextManagerListener,
		ISchemeListener {
	/**
	 * This flag can be set to <code>true</code> if the binding manager should
	 * print information to <code>System.out</code> when certain boundary
	 * conditions occur.