Bug 78666 [KeyBindings] errors: No warning if keybinding definitions collide
Using 3.1 M3, if I define a keybinding in the default "windows" context and with keybinding of "CTRL+B" or "CTRL+U", the keybindings are silently removed. In the very least, the conflict should be logged. Ideally, the user would also see the collision in the keybindings preference page. In this case, I think it's better to show some information than to just kill these mapping and not explain why. Eclipse is a dynamic platform. There are lots of scenarios where keybindings get added into a configuration and start conflicting with previously working keybindings.
bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java
import org.eclipse.core.commands.contexts.IContextManagerListener;
import org.eclipse.core.commands.util.Tracing;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.bindings.keys.IKeyLookup;
import org.eclipse.jface.bindings.keys.KeyLookupFactory;
import org.eclipse.jface.bindings.keys.KeyStroke;
import org.eclipse.jface.contexts.IContextIds;
import org.eclipse.jface.util.Policy;
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 extends HandleObjectManager implements