package sk.stuba.fiit.perconik.activity.debug.listeners; import org.eclipse.ui.IWorkbench; import sk.stuba.fiit.perconik.core.annotations.Version; import sk.stuba.fiit.perconik.core.debug.annotations.DebugImplementation; import sk.stuba.fiit.perconik.core.listeners.WorkbenchListener; import sk.stuba.fiit.perconik.utilities.concurrent.NamedRunnable; import static sk.stuba.fiit.perconik.activity.listeners.AbstractListener.RegistrationHook.POST_REGISTER; import static sk.stuba.fiit.perconik.activity.listeners.AbstractListener.RegistrationHook.POST_UNREGISTER; import static sk.stuba.fiit.perconik.activity.listeners.AbstractListener.RegistrationHook.PRE_REGISTER; import static sk.stuba.fiit.perconik.activity.listeners.AbstractListener.RegistrationHook.PRE_UNREGISTER; @DebugImplementation @Version("0.0.1.alpha") public final class SelfLifecycleListener extends AbstractLifecycleListener implements WorkbenchListener { // TODO bug: core does not correctly register listeners from preferences // which implement no core listener interfaces (hence this implements WorkbenchListener) public SelfLifecycleListener() { final Object subject = this; PRE_REGISTER.add(this, new NamedRunnable(this.getClass(), "PreRegisterMarker") { public void run() { mark(subject, "listener", "pre register"); } }); POST_REGISTER.add(this, new NamedRunnable(this.getClass(), "PostRegisterMarker") { public void run() { mark(subject, "listener", "post register"); } }); PRE_UNREGISTER.add(this, new NamedRunnable(this.getClass(), "PreUnregisterMarker") { public void run() { mark(subject, "listener", "pre unregister"); } }); POST_UNREGISTER.add(this, new NamedRunnable(this.getClass(), "PostUnregisterMarker") { public void run() { mark(subject, "listener", "post unregister"); } }); } public void postStartup(final IWorkbench workbench) { // ignore } public boolean preShutdown(final IWorkbench workbench, final boolean forced) { // ignore return true; } public void postShutdown(final IWorkbench workbench) { // ignore } }