package org.eclipse.ufacekit.ui.swing.databinding.internal.swing;
import java.awt.Container;
import org.eclipse.core.databinding.observable.value.DecoratingObservableValue;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.ufacekit.ui.swing.databinding.swing.ISwingObservableValue;
/**
* @since 3.3
*
*/
public class SwingObservableValueDecorator extends DecoratingObservableValue
implements ISwingObservableValue {
private Container widget;
/**
* @param decorated
* @param widget
*/
public SwingObservableValueDecorator(IObservableValue decorated, Container widget) {
super(decorated, true);
this.widget = widget;
// FIXME Can we findout if widget is disposed in Swing
// WidgetListenerUtil.asyncAddListener(widget, SWT.Dispose, this);
}
// public void handleEvent(Event event) {
// if (event.type == SWT.Dispose)
// dispose();
// }
public synchronized void dispose() {
// if (widget != null) {
// WidgetListenerUtil.asyncRemoveListener(widget, SWT.Dispose, this);
// widget = null;
// }
super.dispose();
}
public Container getContainer() {
return widget;
}
}