diff options
author | Mikhail Khodjaiants | 2005-06-22 20:01:15 +0000 |
---|---|---|
committer | Mikhail Khodjaiants | 2005-06-22 20:01:15 +0000 |
commit | 0ca3d542105b1dbec832102d49ca222d6b8ee685 (patch) | |
tree | c97d376e913ce9cf775b968975d4502339e4d8fb | |
parent | a857f476415405a2b7dcdff53867416683d7ec6d (diff) | |
download | org.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/ChangeLog | 4 | ||||
-rw-r--r-- | debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java | 27 |
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 ); } |