Bug 331582 binding context processing should be done in binding Contexts addon
org.eclipse.e4.ui.model.application.commands.MBindings.getBindingContexts() is currently processed in E4Workbench but should be done by the binding contexts model processing add on, and should add the event broker to listen to additions. PW
bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/util/BindingProcessingAddon.java
cmd,
								"org.eclipse.ui.defaultAcceleratorConfiguration", bindingContext.getId()); 
			} catch (IllegalArgumentException e) {
				Activator.trace(Policy.DEBUG_MENUS,
						"failed to create: " + binding, e); 
				return null;
			}
		}
		return keyBinding;
	}
	private void updateBinding(MKeyBinding binding, boolean add) {
		Object parentObj = ((EObject) binding).eContainer();
		if (!(parentObj instanceof MBindingTable)) {
			return;
		}
		MBindingTable bt = (MBindingTable) parentObj;
		final Context bindingContext = contextManager.getContext(bt
				.getBindingContextId());
		BindingTable table = bindingTables.getTable(bindingContext.getId());
		if (table == null) {
			Activator.log(IStatus.ERROR, "Trying to create \'" + binding 
					+ "\' without binding table " + bindingContext.getId()); 
			return;
		}
		Binding keyBinding = createBinding(bindingContext,
				binding.getCommand(), binding.getParameters(),
				binding.getKeySequence(), binding);
		if (keyBinding != null) {
			if (add) {
				table.addBinding(keyBinding);