package de.ralfebert.rcputils.wired;
import org.eclipse.riena.core.wire.Wire;
import org.eclipse.riena.core.wire.WirePuller;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkUtil;
import de.ralfebert.rcputils.databinding.ModelDataBindingEditorPart;
public abstract class WiredModelDataBindingEditorPart<INPUT extends IEditorInput, MODEL> extends ModelDataBindingEditorPart<INPUT, MODEL> {
private WirePuller wire;
@Override
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
super.init(site, input);
Bundle bundle = FrameworkUtil.getBundle(this.getClass());
if (bundle != null) {
wire = Wire.instance(this).andStart(bundle.getBundleContext());
}
}
@Override
public void dispose() {
super.dispose();
if (wire != null) {
wire.stop();
wire = null;
}
}
}