package com.netifera.platform.host.processes.ui.actions; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.swt.widgets.Display; import com.netifera.platform.host.internal.processes.ui.Activator; import com.netifera.platform.host.processes.Process; public class KillAction extends AbstractProcessAction { public KillAction(ISelectionProvider selectionProvider) { super(selectionProvider); setText("&Kill"); setToolTipText("Kill Process"); ImageDescriptor icon = Activator.getInstance().getImageCache().getDescriptor("icons/stop.png"); setImageDescriptor(icon); } @Override public void run() { for (Object o: getSelection().toArray()) { if (o instanceof Process) if (MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "Are you sure?", "Kill "+o+"?")) { final Process process = (Process)o; new Thread(new Runnable() { public void run() { try { if (!process.kill()) Activator.getInstance().getBalloonManager().warning("Cannot kill "+process); } catch (Exception e) { Activator.getInstance().getBalloonManager().error(e.toString()); e.printStackTrace(); } } }).start(); } } } }