1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 06:32:10 +02:00

fix source locator

This commit is contained in:
David Inglis 2003-02-20 22:03:23 +00:00
parent d06efcf027
commit c0bb4d9b23
4 changed files with 52 additions and 47 deletions

View file

@ -1,3 +1,8 @@
2003-02-20 Mikhail Khodjaiants
The generation of launch configuration shouldn't fail if project is not set or project name is empty.
* DefaultSourceLocator.java
* CSourceLookupTab.java
2003-02-18 Mikhail Khodjaiants
New 'Source Lookup' tab.
* plugin.xml

View file

@ -178,7 +178,7 @@ public class DefaultSourceLocator implements IPersistableSourceLocator, IAdaptab
private IProject getProject( ILaunchConfiguration configuration ) throws CoreException
{
String projectName = configuration.getAttribute( ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, (String)null );
if ( projectName != null )
if ( !isEmpty( projectName ) )
{
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject( projectName );
if ( project.exists() )

View file

@ -106,10 +106,9 @@ public class CDebuggerTab extends AbstractCDebuggerTab {
String configPlatform = getPlatform(config);
String programCPU = "native";
ICElement ce = getContext(config, configPlatform);
try {
if (ce instanceof IBinary) {
IBinary bin = (IBinary) ce;
programCPU = bin.getCPU();
} catch (Exception e) {
}
fDCombo.removeAll();
debugConfigs = CDebugCorePlugin.getDefault().getDebugConfigurations();
@ -246,10 +245,9 @@ public class CDebuggerTab extends AbstractCDebuggerTab {
String projectPlatform = getPlatform(config);
String projectCPU = "native";
if (ce != null) {
try {
if (ce instanceof IBinary) {
IBinary bin = (IBinary) ce;
projectCPU = bin.getCPU();
} catch (Exception e) {
}
}
ICDebugConfiguration debugConfig = getDebugConfig();

View file

@ -7,7 +7,6 @@ package org.eclipse.cdt.launch.ui;
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocator;
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
import org.eclipse.cdt.debug.ui.sourcelookup.SourceLookupBlock;
import org.eclipse.cdt.launch.sourcelookup.DefaultSourceLocator;
import org.eclipse.core.resources.IProject;
@ -15,6 +14,8 @@ import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
/**
@ -31,10 +32,12 @@ public class CSourceLookupTab extends CLaunchConfigurationTab
*/
public void createControl( Composite parent )
{
Composite control = new Composite( parent, SWT.NONE );
control.setLayout( new GridLayout() );
fBlock = new SourceLookupBlock();
fBlock.createControl( parent );
fBlock.createControl( control );
fBlock.setLaunchConfigurationDialog( getLaunchConfigurationDialog() );
setControl( fBlock.getControl() );
setControl( control );
}
/* (non-Javadoc)
@ -43,16 +46,6 @@ public class CSourceLookupTab extends CLaunchConfigurationTab
public void setDefaults( ILaunchConfigurationWorkingCopy configuration )
{
configuration.setAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_ID, DefaultSourceLocator.ID_DEFAULT_SOURCE_LOCATOR );
DefaultSourceLocator locator = new DefaultSourceLocator();
try
{
locator.initializeDefaults( configuration );
configuration.setAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_MEMENTO, locator.getMemento() );
}
catch( CoreException e )
{
CDebugUIPlugin.log( e.getStatus() );
}
}
/* (non-Javadoc)
@ -60,28 +53,33 @@ public class CSourceLookupTab extends CLaunchConfigurationTab
*/
public void initializeFrom( ILaunchConfiguration configuration )
{
try
IProject project = getProject( configuration );
fBlock.setProject( getProject( configuration ) );
if ( project != null )
{
String id = configuration.getAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_ID, "" );
if ( isEmpty( id )|| DefaultSourceLocator.ID_DEFAULT_SOURCE_LOCATOR.equals( id ) )
try
{
DefaultSourceLocator locator = new DefaultSourceLocator();
String memento = configuration.getAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_MEMENTO, "" );
if ( !isEmpty( memento ) )
String id = configuration.getAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_ID, "" );
if ( isEmpty( id )|| DefaultSourceLocator.ID_DEFAULT_SOURCE_LOCATOR.equals( id ) )
{
locator.initializeFromMemento( memento );
DefaultSourceLocator locator = new DefaultSourceLocator();
String memento = configuration.getAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_MEMENTO, "" );
if ( !isEmpty( memento ) )
{
locator.initializeFromMemento( memento );
}
else
{
locator.initializeDefaults( configuration );
}
ICSourceLocator clocator = (ICSourceLocator)locator.getAdapter( ICSourceLocator.class );
if ( clocator != null )
fBlock.initialize( clocator );
}
else
{
locator.initializeDefaults( configuration );
}
ICSourceLocator clocator = (ICSourceLocator)locator.getAdapter( ICSourceLocator.class );
if ( clocator != null )
fBlock.initialize( clocator.getSourceLocations() );
}
}
catch( CoreException e )
{
catch( CoreException e )
{
}
}
}
@ -90,18 +88,22 @@ public class CSourceLookupTab extends CLaunchConfigurationTab
*/
public void performApply( ILaunchConfigurationWorkingCopy configuration )
{
DefaultSourceLocator locator = new DefaultSourceLocator();
try
{
locator.initializeDefaults( configuration );
ICSourceLocator clocator = (ICSourceLocator)locator.getAdapter( ICSourceLocator.class );
if ( clocator != null )
clocator.setSourceLocations( fBlock.getSourceLocations() );
configuration.setAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_ID, DefaultSourceLocator.ID_DEFAULT_SOURCE_LOCATOR );
configuration.setAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_MEMENTO, locator.getMemento() );
}
catch( CoreException e )
configuration.setAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_ID, DefaultSourceLocator.ID_DEFAULT_SOURCE_LOCATOR );
IProject project = getProject( configuration );
if ( project != null )
{
DefaultSourceLocator locator = new DefaultSourceLocator();
try
{
locator.initializeDefaults( configuration );
ICSourceLocator clocator = (ICSourceLocator)locator.getAdapter( ICSourceLocator.class );
if ( clocator != null )
clocator.setSourceLocations( fBlock.getSourceLocations() );
configuration.setAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_MEMENTO, locator.getMemento() );
}
catch( CoreException e )
{
}
}
}
@ -110,7 +112,7 @@ public class CSourceLookupTab extends CLaunchConfigurationTab
*/
public String getName()
{
return "Source Lookup";
return "Source";
}
private IProject getProject( ILaunchConfiguration configuration )