package com.netifera.platform.net.daemon.sniffing.ui; import org.eclipse.jface.action.Action; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.plugin.AbstractUIPlugin; import com.netifera.platform.net.daemon.sniffing.ISniffingDaemon; public class StopSniffingAction extends Action { public final static String ID = "stop-sniffing-action"; private final SniffingActionManager manager; public StopSniffingAction(SniffingActionManager manager) { setId(ID); this.manager = manager; setToolTipText("Stop Sniffing Service"); setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/stop_16x16.png")); } public void run() { final ISniffingDaemon daemon = Activator.getDefault().getSniffingDaemon(); if(daemon == null) { manager.setFailed("No sniffing service found"); return; } new Thread(new Runnable() { public void run() { daemon.stop(); Display.getDefault().asyncExec(new Runnable() { public void run() { manager.setState(); } }); } }).start(); } }