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) { } }