blob: e5302463d320894b8959604d8dbe694d0fa89583 [file] [log] [blame]
package org.eclipse.dltk.javascript.internal.launching;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
import org.eclipse.debug.core.model.ISourceLocator;
import org.eclipse.debug.core.model.IStackFrame;
import org.eclipse.dltk.debug.core.DLTKDebugPlugin;
import org.eclipse.dltk.debug.core.IDbgpService;
import org.eclipse.dltk.debug.core.model.IScriptDebugTarget;
import org.eclipse.dltk.debug.ui.ConsoleScriptDebugTargetStreamManager;
import org.eclipse.dltk.internal.debug.core.model.ScriptDebugTarget;
import org.eclipse.dltk.internal.launching.JavaScriptSourceLookupDirector;
import org.eclipse.jdt.launching.JavaLaunchDelegate;
import org.eclipse.ui.console.IOConsole;
public class JavaLocalApplicationLaunchConfigurationDelegate extends
JavaLaunchDelegate implements ILaunchConfigurationDelegate {
public String getVMArguments(ILaunchConfiguration configuration)
throws CoreException {
return super.getVMArguments(configuration)
+ " -javaagent:C:/rhino-agent.jar";
}
public void launch(ILaunchConfiguration configuration, String mode,
ILaunch launch, IProgressMonitor monitor) throws CoreException {
System.out.println("launching");
IDbgpService dbgpService = null;
try {
dbgpService = DLTKDebugPlugin.getDefault().getDbgpService();
IScriptDebugTarget target = new ScriptDebugTarget("org.eclipse.dltk.debug.javascriptModel", dbgpService,
"hello", launch,null);
IOConsole cs=new IOConsole("aa",null);
ConsoleScriptDebugTargetStreamManager manager = new ConsoleScriptDebugTargetStreamManager(
cs);
target.setStreamManager(manager);
launch.addDebugTarget(target);
final ISourceLocator sourceLocator = launch.getSourceLocator();
final JavaScriptSourceLookupDirector l=new JavaScriptSourceLookupDirector();
launch.setSourceLocator(new ISourceLocator(){
public Object getSourceElement(IStackFrame stackFrame) {
Object sourceElement = sourceLocator.getSourceElement(stackFrame);
if (sourceElement!=null) return sourceElement;
return l.getSourceElement(stackFrame);
}
});
} catch (Exception e) {
}
super.launch(configuration, mode, launch, monitor);
}
public static final String LOCAL_APPLICATION = "debug.localJavaApplication";
}