Bug 147530 [DataBinding] Provide event objects for change listeners
Before data binding goes 1.0 it would be wise to provide EventObjects for the following listeners to ensure that the API doesn't preclude future expansion of the values supplied to listeners. Interfaces that would be affected: * IValueChangeListener * IValueChangingListener * IListChangeListener * ISetChangeListener * IMappingChangeListener
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/MenuUpdater.java
* the block of code will be re-executed whenever anything changes in the model
 * that might affect its behavior.
 * 
 * <p>
 * MenuUpdaters only execute once their menus are shown. If something changes in
 * the model, the updater is flagged as dirty and it stops listening to the
 * model until the next time the menu is shown. If the menu is visible while the
 * model changes, it will be updated right away.
 * </p>
 * 
 * <p>
 * Clients should subclass this when copying information from the model to a
 * menu. Typical usage:
 * </p>
 * 
 * <ul>
 * <li>Override updateMenu. It should do whatever is necessary to display the
 * contents of the model in the menu.</li>
 * <li>In the constructor, attach listeners to the model. The listeners should
 * call markDirty whenever anything changes in the model that affects
 * updateMenu. Note: this step can be omitted when calling any method tagged
 * with "@TrackedGetter" since MenuUpdater will automatically attach a listener
 * to any object if a "@TrackedGetter" method is called in updateMenu.</li>
 * <li>(optional)Extend dispose() to remove any listeners attached in the
 * constructor</li>
 * </ul>
 * 
 * @since 1.1
 */
public abstract class MenuUpdater {