package org.eclipse.iee.pad.formula.ui.handlers;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.IHandlerListener;
import org.eclipse.iee.editor.IPadEditor;
import org.eclipse.iee.pad.formula.SymbolicPart;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.handlers.HandlerUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class AddSymbolicHandler implements IHandler {
private static final Logger logger = LoggerFactory
.getLogger(AddSymbolicHandler.class);
@Override
public void addHandlerListener(IHandlerListener handlerListener) {
}
@Override
public void dispose() {
}
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
logger.debug("Insert Formula");
Shell shell = HandlerUtil.getActiveWorkbenchWindow(event).getShell();
IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event)
.getActivePage();
IEditorPart targetEditor = page.getActiveEditor();
final IPadEditor fPadEditor;
try {
fPadEditor = (IPadEditor) targetEditor;
} catch (ClassCastException e) {
MessageDialog.openError(shell, "Invalid editor", "Invalid editor");
return null;
}
fPadEditor.createPad(new SymbolicPart(), fPadEditor.getCaretOffset());
return null;
}
@Override
public boolean isEnabled() {
return true;
}
@Override
public boolean isHandled() {
return true;
}
@Override
public void removeHandlerListener(IHandlerListener handlerListener) {
}
}