package org.eclipse.iee.pad.image.ui.handler;
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.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
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 AddImageHandler implements IHandler {
private static final Logger logger = LoggerFactory
.getLogger(AddImageHandler.class);
@Override
public void addHandlerListener(IHandlerListener handlerListener) {
}
@Override
public void dispose() {
}
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
logger.debug("Insert Image");
Shell shell = HandlerUtil.getActiveWorkbenchWindow(event).getShell();
IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event)
.getActivePage();
IEditorPart targetEditor = page.getActiveEditor();
IPadEditor fPadEditor;
try {
fPadEditor = (IPadEditor) targetEditor;
} catch (ClassCastException e) {
fPadEditor = null;
}
if (fPadEditor == null) {
MessageDialog.openError(shell, "Invalid editor", "Invalid editor");
return null;
}
FileDialog fileDialog = new FileDialog(shell, SWT.OPEN);
fileDialog.setFilterNames(new String[] { "Jpeg (*.jpg)", "PNG (*.png)" });
fileDialog.setFilterExtensions(new String[] { "*.jpg", "*.png" });
String imagePath = fileDialog.open();
if (imagePath == null) {
return null;
}
fPadEditor.createImage(imagePath, fPadEditor.getCaretOffset());
return null;
}
@Override
public boolean isEnabled() {
return true;
}
@Override
public boolean isHandled() {
return true;
}
@Override
public void removeHandlerListener(IHandlerListener handlerListener) {
}
}