package org.erlide.tracing.core.ui.menu;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ITreeSelection;
import org.eclipse.ui.PlatformUI;
import org.erlide.engine.ErlangEngine;
import org.erlide.engine.model.erlang.IErlFunction;
import org.erlide.tracing.core.TraceBackend;
import org.erlide.tracing.core.mvc.model.TracePattern;
public class RemoveTracePatternWithNoArityHandler extends AbstractHandler {
@Override
public Object execute(final ExecutionEvent event) throws ExecutionException {
final ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().getSelection();
if (selection instanceof ITreeSelection) {
final Object firstElement = ((ITreeSelection) selection).getFirstElement();
if (firstElement instanceof IErlFunction) {
final IErlFunction function = (IErlFunction) firstElement;
final TracePattern tracePattern = new TracePattern(true);
tracePattern.setFunctionName(function.getFunctionName());
tracePattern.setModuleName(ErlangEngine.getInstance()
.getModelUtilService().getModule(function).getModuleName());
TraceBackend.getInstance().removeTracePattern(tracePattern);
}
}
return null;
}
}