package at.medevit.elexis.ehc.ui.docbox.handler;
import org.eclipse.core.commands.Command;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.NotEnabledException;
import org.eclipse.core.commands.NotHandledException;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.ICommandService;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.ui.services.IServiceLocator;
public class SendPrescriptionAction extends Action {
@Override
public void runWithEvent(Event event){
IServiceLocator serviceLocator = PlatformUI.getWorkbench();
ICommandService commandService =
(ICommandService) serviceLocator.getService(ICommandService.class);
// Lookup commmand with its ID
Command command =
commandService.getCommand("at.medevit.elexis.ehc.ui.docbox.sendPrescription");
// Optionally pass a ExecutionEvent instance, default no-param arg creates blank event
try {
command.executeWithChecks(new ExecutionEvent());
} catch (ExecutionException e) {
error(e);
} catch (NotDefinedException e) {
error(e);
} catch (NotEnabledException e) {
error(e);
} catch (NotHandledException e) {
error(e);
}
}
private void error(Exception e){
MessageDialog.openError(Display.getDefault().getActiveShell(), "Fehler",
"Das Rezept konnte nicht gesendet werden. \n\n" + e.getMessage());
}
@Override
public ImageDescriptor getImageDescriptor(){
return AbstractUIPlugin.imageDescriptorFromPlugin("at.medevit.elexis.ehc.ui.docbox",
"/icons/docbox16.png");
}
}