package org.xmind.ui.internal.handlers;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.SafeRunner;
import org.eclipse.jface.util.SafeRunnable;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;
import org.xmind.ui.internal.spelling.SpellingCheckDialog;
public class CheckSpellingForAllHandler extends AbstractHandler {
private boolean dialogOpened = false;
public Object execute(ExecutionEvent event) throws ExecutionException {
final IWorkbenchWindow window = HandlerUtil
.getActiveWorkbenchWindow(event);
if (window != null && window.getActivePage() != null) {
SafeRunner.run(new SafeRunnable() {
public void run() throws Exception {
SpellingCheckDialog dialog = new SpellingCheckDialog(
window.getShell()) {
public int open() {
dialogOpened = true;
return super.open();
}
public boolean close() {
dialogOpened = false;
return super.close();
}
};
if (!dialogOpened)
dialog.open();
}
});
}
return null;
}
}