Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikhail Khodjaiants2005-06-22 20:01:15 +0000
committerMikhail Khodjaiants2005-06-22 20:01:15 +0000
commit0ca3d542105b1dbec832102d49ca222d6b8ee685 (patch)
treec97d376e913ce9cf775b968975d4502339e4d8fb
parenta857f476415405a2b7dcdff53867416683d7ec6d (diff)
downloadorg.eclipse.cdt-0ca3d542105b1dbec832102d49ca222d6b8ee685.tar.gz
org.eclipse.cdt-0ca3d542105b1dbec832102d49ca222d6b8ee685.tar.xz
org.eclipse.cdt-0ca3d542105b1dbec832102d49ca222d6b8ee685.zip
Bug 96563: "Go to file" is ghosted on breakpoints (outside projects?).
-rw-r--r--debug/org.eclipse.cdt.debug.ui/ChangeLog4
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java27
2 files changed, 29 insertions, 2 deletions
diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog
index c0ffc618573..dca78bdbc8d 100644
--- a/debug/org.eclipse.cdt.debug.ui/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog
@@ -1,3 +1,7 @@
+2005-06-22 Mikhail Khodjaiants
+ Bug 96563: "Go to file" is ghosted on breakpoints (outside projects?).
+ * CDebugModelPresentation.java
+
2005-06-20 Mikhail Khodjaiants
Bug 93855: Changing values in detailed pane doesn't work the first time after the view is loaded.
+ DetailsViewerConfiguration.java
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java
index 50ff8dd064c..ede2ebc9498 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java
@@ -10,6 +10,7 @@
***********************************************************************/
package org.eclipse.cdt.debug.internal.ui;
+import java.io.File;
import java.text.MessageFormat;
import java.util.HashMap;
import org.eclipse.cdt.core.resources.FileStorage;
@@ -48,6 +49,7 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IStorage;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IPath;
@@ -131,8 +133,29 @@ public class CDebugModelPresentation extends LabelProvider implements IDebugMode
if ( element instanceof IFile ) {
return new FileEditorInput( (IFile)element );
}
- if ( element instanceof ICLineBreakpoint ) {
- IFile file = (IFile)((ICLineBreakpoint)element).getMarker().getResource().getAdapter( IFile.class );
+ if ( element instanceof ICBreakpoint ) {
+ ICBreakpoint b = (ICBreakpoint)element;
+ IFile file = null;
+ try {
+ String handle = b.getSourceHandle();
+ IPath path = new Path( handle );
+ if ( path.isValidPath( handle ) ) {
+ IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation( path );
+ if ( files.length > 0 ) {
+ file = files[0];
+ }
+ else {
+ File fsfile = new File( handle );
+ if ( fsfile.isFile() && fsfile.exists() ) {
+ return new ExternalEditorInput( new LocalFileStorage( fsfile ) );
+ }
+ }
+ }
+ }
+ catch( CoreException e ) {
+ }
+ if ( file == null )
+ file = (IFile)b.getMarker().getResource().getAdapter( IFile.class );
if ( file != null )
return new FileEditorInput( file );
}

Back to the top