/** * */ package org.keplerproject.ldt.debug.core.source; import java.io.File; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.sourcelookup.ISourceContainer; import org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate; import org.eclipse.debug.core.sourcelookup.containers.DirectorySourceContainer; import org.eclipse.debug.core.sourcelookup.containers.FolderSourceContainer; import org.eclipse.debug.core.sourcelookup.containers.ProjectSourceContainer; import org.eclipse.debug.core.sourcelookup.containers.WorkspaceSourceContainer; import org.keplerproject.ldt.debug.core.LuaDebuggerPlugin; /** * @author jasonsantos */ public class SourcePathComputerDelegate implements ISourcePathComputerDelegate { /* * (non-Javadoc) * * @see org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate#computeSourceContainers(org.eclipse.debug.core.ILaunchConfiguration, * org.eclipse.core.runtime.IProgressMonitor) */ public ISourceContainer[] computeSourceContainers( ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException { List<ISourceContainer> containers = new ArrayList<ISourceContainer>(); String project = configuration.getAttribute( LuaDebuggerPlugin.LUA_PROJECT_ATTRIBUTE, (String) null); if (project != null) { ISourceContainer sourceContainer = null; IProject projectObj = ResourcesPlugin.getWorkspace().getRoot().getProject(project); if (projectObj.exists()) sourceContainer = new ProjectSourceContainer(projectObj, false); else sourceContainer = new FolderSourceContainer(projectObj, false); containers.add(sourceContainer); } containers.add(new WorkspaceSourceContainer()); containers.add(new DirectorySourceContainer(File.listRoots()[0], true)); return containers.toArray(new ISourceContainer[]{}); } }