package sk.stuba.fiit.perconik.core.resources; import org.eclipse.swt.widgets.Display; import sk.stuba.fiit.perconik.core.listeners.WindowListener; import sk.stuba.fiit.perconik.eclipse.ui.Workbenches; enum WindowHandler implements Handler<WindowListener> { INSTANCE; public final void register(final WindowListener listener) { final Runnable addListener = new Runnable() { public void run() { Workbenches.waitForWorkbench().addWindowListener(listener); } }; Display.getDefault().asyncExec(addListener); } public final void unregister(final WindowListener listener) { final Runnable removeListener = new Runnable() { public void run() { Workbenches.waitForWorkbench().removeWindowListener(listener); } }; Display.getDefault().asyncExec(removeListener); } }