package org.erlide.debug.ui.actions;
import org.eclipse.debug.core.model.IDebugTarget;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IViewActionDelegate;
import org.eclipse.ui.IViewPart;
import org.erlide.debug.ui.tracing.DebugTraceLaunching;
import org.erlide.debug.ui.views.DebuggerTraceView;
public class DebugTraceAsLaunchAction extends Action implements IViewActionDelegate {
private IDebugTarget fTarget;
private DebuggerTraceView fView;
@Override
public void init(final IViewPart view) {
fView = (DebuggerTraceView) view;
}
@Override
public void run(final IAction action) {
DebugTraceLaunching.launch(fTarget, fView);
}
@Override
public void selectionChanged(final IAction action, final ISelection selection) {
fTarget = null;
if (selection instanceof IStructuredSelection) {
final IStructuredSelection ss = (IStructuredSelection) selection;
for (final Object o : ss.toArray()) {
if (o instanceof IDebugTarget) {
final IDebugTarget target = (IDebugTarget) o;
fTarget = target;
break;
}
}
}
}
}