Package org.erlide.debug.ui.tracing

Source Code of org.erlide.debug.ui.tracing.DebugTraceLaunching

package org.erlide.debug.ui.tracing;

import java.util.HashSet;
import java.util.Set;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunchConfigurationType;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.core.ILaunchDelegate;
import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.debug.core.model.IDebugTarget;
import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
import org.erlide.debug.ui.views.DebuggerTraceView;
import org.erlide.util.ErlLogger;

public class DebugTraceLaunching {

    public static void launch(final IDebugTarget target,
            final DebuggerTraceView debuggerTraceView) {
        if (target == null) {
            return;
        }
        try {
            final ILaunchConfigurationType lcType = DebugPlugin
                    .getDefault()
                    .getLaunchManager()
                    .getLaunchConfigurationType(
                            "org.erlide.runtime.debug.launchDebugTrace");
            final String name = target.toString();
            final ILaunchConfigurationWorkingCopy wc = lcType.newInstance(null, name);
            final Set<String> modes = new HashSet<String>();
            modes.add(ILaunchManager.DEBUG_MODE);
            final ILaunchDelegate[] delegates = lcType.getDelegates(modes);
            final ILaunchConfigurationDelegate delegate = delegates[0].getDelegate();
            if (!(delegate instanceof DebugTraceLaunchConfigurationDelegate)) {
                return;
            }
            final DebugTraceLaunchConfigurationDelegate ldtlcd = (DebugTraceLaunchConfigurationDelegate) delegate;
            ldtlcd.setInfo(target.getLaunch(), target,
                    debuggerTraceView.getEventsForLaunch(target));
            wc.launch(ILaunchManager.DEBUG_MODE, null);
        } catch (final CoreException e) {
            ErlLogger.error(e);
        }
    }
}
TOP

Related Classes of org.erlide.debug.ui.tracing.DebugTraceLaunching

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.