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.parts.AbstractEditorPart; public abstract class WiredEditorPart<INPUT extends IEditorInput> extends AbstractEditorPart<INPUT> { private WirePuller wire; @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { setSite(site); setInput(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; } } }