package sk.stuba.fiit.perconik.core.resources;
import org.eclipse.core.commands.Command;
import org.eclipse.swt.widgets.Display;
import sk.stuba.fiit.perconik.core.listeners.CommandListener;
import sk.stuba.fiit.perconik.eclipse.core.commands.Commands;
enum CommandHandler implements Handler<CommandListener> {
INSTANCE;
public void register(final CommandListener listener) {
final Runnable addListener = new Runnable() {
public void run() {
for (Command command: Commands.waitForCommandService().getDefinedCommands()) {
command.addCommandListener(listener);
}
}
};
Display.getDefault().asyncExec(addListener);
}
public void unregister(final CommandListener listener) {
final Runnable removeListener = new Runnable() {
public void run() {
for (Command command: Commands.waitForCommandService().getDefinedCommands()) {
command.removeCommandListener(listener);
}
}
};
Display.getDefault().asyncExec(removeListener);
}
}