blob: 06ad8b73e3959b7ef9892b40e7ebcf9045898bf1 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others. *
* All rights reserved. This program and the accompanying materials *
* are made available under the terms of the Eclipse Public License v1.0 *
* which accompanies this distribution, and is available at *
* http://www.eclipse.org/legal/epl-v10.html *
* *
* Contributors: *
* Soyatec - initial API and implementation *
*******************************************************************************/
package org.eclipse.xwt.internal.databinding.menuitem;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.widgets.MenuItem;
/**
*
* @author yyang (yves.yang@soyatec.com)
*/
public abstract class AbstractMenuItemObservableValue extends AbstractObservableValue {
private final MenuItem menuItem;
/**
* Standard constructor for a MenuItem ObservableValue. Makes sure that the observable gets disposed when the MenuItem is disposed.
*
* @param widget
*/
protected AbstractMenuItemObservableValue(MenuItem menuItem) {
this(SWTObservables.getRealm(menuItem.getDisplay()), menuItem);
}
/**
* Constructor that allows for the setting of the realm. Makes sure that the observable gets disposed when the MenuItem is disposed.
*
* @param realm
* @param widget
* @since 1.2
*/
protected AbstractMenuItemObservableValue(Realm realm, MenuItem menuItem) {
super(realm);
this.menuItem = menuItem;
menuItem.addDisposeListener(disposeListener);
}
private DisposeListener disposeListener = new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
AbstractMenuItemObservableValue.this.dispose();
}
};
/**
* @return Returns the MenuItem.
*/
public MenuItem getMenuItem() {
return menuItem;
}
}