Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Implementing the 'Attach Source' editor

Index: .classpath
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/.classpath,v
retrieving revision 1.3
diff -u -r1.3 .classpath
--- .classpath 5 Nov 2002 20:26:57 -0000 1.3
+++ .classpath 21 Feb 2003 23:41:25 -0000
@@ -8,6 +8,7 @@
     <classpathentry kind="src" path="/org.eclipse.cdt.debug.core"/>
     <classpathentry kind="src" path="/org.eclipse.cdt.ui"/>
     <classpathentry kind="src" path="/org.eclipse.cdt.core"/>
+    <classpathentry exported="true" kind="src" path="/org.eclipse.cdt.core.win32"/>
     <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
     <classpathentry kind="src" path="/org.eclipse.core.boot"/>
     <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
Index: .project
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/.project,v
retrieving revision 1.3
diff -u -r1.3 .project
--- .project 5 Nov 2002 20:26:57 -0000 1.3
+++ .project 21 Feb 2003 23:41:26 -0000
@@ -4,6 +4,7 @@
  <comment></comment>
  <projects>
   <project>org.eclipse.cdt.core</project>
+  <project>org.eclipse.cdt.core.win32</project>
   <project>org.eclipse.cdt.debug.core</project>
   <project>org.eclipse.cdt.ui</project>
   <project>org.eclipse.core.boot</project>
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v
retrieving revision 1.104
diff -u -r1.104 ChangeLog
--- ChangeLog 20 Feb 2003 21:16:42 -0000 1.104
+++ ChangeLog 21 Feb 2003 23:41:26 -0000
@@ -1,3 +1,14 @@
+2003-02-21 Mikhail Khodjaiants
+ Implementing the 'Attach Source' editor.
+ * plugin.properties
+ * plugin.xml
+ * icons/full/obj16/filenotfound_obj.gif: new
+ * CDTDebugModelPresentation.java
+ * AttachSourceEditor.java: new
+ * AttachSourceEditorInput.java: new
+ * FileNotFoundElement.java: new
+ * CUISourceLocator.java
+
 2003-02-20 Mikhail Khodjaiants
  Added the 'Association' column and the 'Restore Defaults' button to the SourceLookupBlock.
  * SourceLookupBlock.java
Index: plugin.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/plugin.properties,v
retrieving revision 1.35
diff -u -r1.35 plugin.properties
--- plugin.properties 14 Feb 2003 18:50:51 -0000 1.35
+++ plugin.properties 21 Feb 2003 23:41:26 -0000
@@ -55,6 +55,7 @@
 SourcePropertyPage.name=Source Lookup
 
 DisassemblyEditor.name=Disassembly Editor
+AttachSourceEditor.name= Attach Source Editor
 
 LoadSymbolsAction.label=Load Symbols
 SignalAction.label=Resume With Signal
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/plugin.xml,v
retrieving revision 1.54
diff -u -r1.54 plugin.xml
--- plugin.xml 13 Feb 2003 00:00:06 -0000 1.54
+++ plugin.xml 21 Feb 2003 23:41:27 -0000
@@ -1090,6 +1090,12 @@
             class="org.eclipse.cdt.debug.internal.ui.editors.DisassemblyEditor"
             id="org.eclipse.cdt.debug.ui.DisassemblyEditor">
       </editor>
+      <editor
+            name="%AttachSourceEditor.name"
+            icon="icons/full/obj16/filenotfound_obj.gif"
+            class="org.eclipse.cdt.debug.internal.ui.editors.AttachSourceEditor"
+            id="org.eclipse.cdt.debug.ui.editor.AttachSourceEditor">
+      </editor>
    </extension>
 
 </plugin>
Index: icons/full/obj16/filenotfound_obj.gif
===================================================================
RCS file: icons/full/obj16/filenotfound_obj.gif
diff -N icons/full/obj16/filenotfound_obj.gif
Binary files /dev/null and filenotfound_obj.gif differ
Index: src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java,v
retrieving revision 1.41
diff -u -r1.41 CDTDebugModelPresentation.java
--- src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java 7 Feb 2003 22:03:51 -0000 1.41
+++ src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java 21 Feb 2003 23:41:28 -0000
@@ -34,7 +34,10 @@
 import org.eclipse.cdt.debug.core.sourcelookup.IDisassemblyStorage;
 import org.eclipse.cdt.debug.internal.core.CDebugUtils;
 import org.eclipse.cdt.debug.internal.core.sourcelookup.DisassemblyManager;
+import org.eclipse.cdt.debug.internal.ui.editors.AttachSourceEditor;
+import org.eclipse.cdt.debug.internal.ui.editors.AttachSourceEditorInput;
 import org.eclipse.cdt.debug.internal.ui.editors.DisassemblyEditorInput;
+import org.eclipse.cdt.debug.internal.ui.editors.FileNotFoundElement;
 import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
 import org.eclipse.cdt.internal.ui.util.ExternalEditorInput;
 import org.eclipse.cdt.ui.CUIPlugin;
@@ -159,6 +162,10 @@
   {
    return new DisassemblyEditorInput( (IStorage)element );
   }
+  if ( element instanceof FileNotFoundElement )
+  {
+   return new AttachSourceEditorInput( (FileNotFoundElement)element );
+  }
   return null;
  }
 
@@ -169,6 +176,10 @@
  {
   if ( input != null )
   {
+   if ( input instanceof AttachSourceEditorInput )
+   {
+    return AttachSourceEditor.EDITOR_ID;
+   }
    IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry();
    IEditorDescriptor descriptor = registry.getDefaultEditor( input.getName() );
    if ( descriptor != null )
Index: src/org/eclipse/cdt/debug/internal/ui/editors/AttachSourceEditor.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/internal/ui/editors/AttachSourceEditor.java
diff -N src/org/eclipse/cdt/debug/internal/ui/editors/AttachSourceEditor.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/internal/ui/editors/AttachSourceEditor.java 21 Feb 2003 23:41:29 -0000
@@ -0,0 +1,382 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.internal.ui.editors;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocation;
+import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocator;
+import org.eclipse.cdt.debug.internal.ui.wizards.AddDirectorySourceLocationWizard;
+import org.eclipse.cdt.debug.internal.ui.wizards.AddSourceLocationWizard;
+import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
+import org.eclipse.cdt.debug.ui.sourcelookup.INewSourceLocationWizard;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.model.IPersistableSourceLocator;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.ControlListener;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.ScrollBar;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+
+/**
+ * Enter type comment.
+ *
+ * @since: Feb 21, 2003
+ */
+public class AttachSourceEditor extends EditorPart
+        implements IPropertyChangeListener
+{
+ public static final String EDITOR_ID = CDebugUIPlugin.getUniqueIdentifier() + ".editor.AttachSourceEditor";
+
+ /** The horizontal scroll increment. */
+ private static final int HORIZONTAL_SCROLL_INCREMENT = 10;
+ /** The vertical scroll increment. */
+ private static final int VERTICAL_SCROLL_INCREMENT = 10;
+
+ private ScrolledComposite fScrolledComposite;
+ private Color fBackgroundColor;
+ private Color fForegroundColor;
+ private Color fSeparatorColor;
+ private List fBannerLabels= new ArrayList();
+ private List fHeaderLabels= new ArrayList();
+ private Font fFont;
+ private Button fAttachButton;
+ private Label fInputLabel;
+
+ /**
+  * Constructor for AttachSourceEditor.
+  */
+ public AttachSourceEditor()
+ {
+  super();
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+  */
+ public void doSave( IProgressMonitor monitor )
+ {
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorPart#doSaveAs()
+  */
+ public void doSaveAs()
+ {
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorPart#gotoMarker(org.eclipse.core.resources.IMarker)
+  */
+ public void gotoMarker( IMarker marker )
+ {
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+  */
+ public void init( IEditorSite site, IEditorInput input ) throws PartInitException
+ {
+  setInput( input );
+  setSite( site );
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorPart#isDirty()
+  */
+ public boolean isDirty()
+ {
+  return false;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorPart#isSaveAsAllowed()
+  */
+ public boolean isSaveAsAllowed()
+ {
+  return false;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+  */
+ public void createPartControl( Composite parent )
+ {
+  Display display = parent.getDisplay();
+  fBackgroundColor = display.getSystemColor( SWT.COLOR_LIST_BACKGROUND );
+  fForegroundColor = display.getSystemColor( SWT.COLOR_LIST_FOREGROUND );
+  fSeparatorColor = new Color( display, 152, 170, 203 );
+
+  JFaceResources.getFontRegistry().addListener( this );
+
+  fScrolledComposite = new ScrolledComposite( parent, SWT.H_SCROLL | SWT.V_SCROLL );
+  fScrolledComposite.setAlwaysShowScrollBars( false );
+  fScrolledComposite.setExpandHorizontal( true );
+  fScrolledComposite.setExpandVertical( true );
+  fScrolledComposite.addDisposeListener(
+      new DisposeListener()
+       {
+        public void widgetDisposed( DisposeEvent e )
+        {
+         JFaceResources.getFontRegistry().removeListener( AttachSourceEditor.this );
+         fScrolledComposite = null;
+         fSeparatorColor.dispose();
+         fSeparatorColor = null;
+         fBannerLabels.clear();
+         fHeaderLabels.clear();
+         if ( fFont != null )
+         {
+          fFont.dispose();
+          fFont = null;
+         }
+        }
+       } );
+
+  fScrolledComposite.addControlListener(
+      new ControlListener()
+       {
+        public void controlMoved( ControlEvent e )
+        {
+        }
+     
+        public void controlResized( ControlEvent e )
+        {
+         Rectangle clientArea = fScrolledComposite.getClientArea();
+     
+         ScrollBar verticalBar = fScrolledComposite.getVerticalBar();
+         verticalBar.setIncrement( VERTICAL_SCROLL_INCREMENT );
+         verticalBar.setPageIncrement( clientArea.height - verticalBar.getIncrement() );
+     
+         ScrollBar horizontalBar = fScrolledComposite.getHorizontalBar();
+         horizontalBar.setIncrement( HORIZONTAL_SCROLL_INCREMENT );
+         horizontalBar.setPageIncrement( clientArea.width - horizontalBar.getIncrement() );
+        }
+       });
+
+  Composite composite = createComposite( fScrolledComposite );
+  composite.setLayout( new GridLayout() );
+
+  createTitleLabel( composite, "C/C++ File Editor" );
+  createLabel( composite, null );
+  createLabel( composite, null );
+
+  createHeadingLabel( composite, "Source not found" );
+
+  Composite separator = createCompositeSeparator( composite );
+  GridData data = "" GridData( GridData.FILL_HORIZONTAL );
+  data.heightHint = 2;
+  separator.setLayoutData( data );
+
+  fInputLabel = createLabel( composite, "" );
+  createLabel( composite, "You can attach the source location by pressing the button below:" );
+  createLabel( composite, null );
+
+  fAttachButton = createButton( composite, "&Attach Source..." );
+  fAttachButton.addSelectionListener(
+     new SelectionListener()
+      {
+       public void widgetSelected( SelectionEvent event )
+       {
+        AttachSourceEditor.this.attachSourceLocation();
+       }
+
+       public void widgetDefaultSelected( SelectionEvent e )
+       {
+       }
+      } );
+
+  separator = createCompositeSeparator( composite );
+  data = "" GridData( GridData.FILL_HORIZONTAL );
+  data.heightHint = 2;
+  separator.setLayoutData( data );
+
+  fScrolledComposite.setContent( composite );
+  fScrolledComposite.setMinSize( composite.computeSize( SWT.DEFAULT, SWT.DEFAULT ) );
+
+  if ( getEditorInput() != null )
+  {
+   setInputLabelText( getEditorInput().getName() );
+  }
+ }
+
+ private Composite createComposite( Composite parent )
+ {
+  Composite composite = new Composite( parent, SWT.NONE );
+  composite.setBackground( fBackgroundColor );
+  return composite;
+ }
+
+ private Label createLabel( Composite parent, String text )
+ {
+  Label label = new Label( parent, SWT.NONE );
+  if ( text != null )
+   label.setText( text );
+  label.setBackground( fBackgroundColor );
+  label.setForeground( fForegroundColor );
+  return label;
+ }
+
+ private Label createTitleLabel( Composite parent, String text )
+ {
+  Label label = new Label( parent, SWT.NONE );
+  if ( text != null )
+   label.setText( text );
+  label.setBackground( fBackgroundColor );
+  label.setForeground( fForegroundColor );
+  label.setFont( JFaceResources.getHeaderFont() );
+  fHeaderLabels.add( label );
+  return label;
+ }
+
+ private Label createHeadingLabel( Composite parent, String text )
+ {
+  Label label = new Label( parent, SWT.NONE );
+  if ( text != null )
+   label.setText( text );
+  label.setBackground( fBackgroundColor );
+  label.setForeground( fForegroundColor );
+  label.setFont( JFaceResources.getBannerFont() );
+  fBannerLabels.add( label );
+  return label;
+ }
+
+ private Composite createCompositeSeparator( Composite parent )
+ {
+  Composite composite = new Composite( parent, SWT.NONE );
+  composite.setBackground( fSeparatorColor );
+  return composite;
+ }
+
+ private Button createButton( Composite parent, String text )
+ {
+  Button button = new Button( parent, SWT.FLAT );
+  button.setBackground( fBackgroundColor );
+  button.setForeground( fForegroundColor );
+  if ( text != null )
+   button.setText( text );
+  return button;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IWorkbenchPart#setFocus()
+  */
+ public void setFocus()
+ {
+  if ( fAttachButton != null )
+   fAttachButton.setFocus();
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+  */
+ public void propertyChange( PropertyChangeEvent event )
+ {
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.part.EditorPart#setInput(org.eclipse.ui.IEditorInput)
+  */
+ protected void setInput( IEditorInput input )
+ {
+  super.setInput( input );
+  if ( input != null && fInputLabel != null )
+   setInputLabelText( getEditorInput().getName() );
+ }

+ private void setInputLabelText( String inputName )
+ {
+  fInputLabel.setText( MessageFormat.format( "There is no source for the file {0}", new String[] { inputName } ) );
+ }
+
+ protected void attachSourceLocation()
+ {
+  if ( getEditorInput() != null && getEditorInput().getAdapter( FileNotFoundElement.class ) != null )
+  {
+   FileNotFoundElement element = (FileNotFoundElement)getEditorInput().getAdapter( FileNotFoundElement.class );
+   if ( element.getLaunch() != null && element.getLaunch().getSourceLocator() instanceof IAdaptable )
+   {
+    ILaunch launch = element.getLaunch();
+    ICSourceLocator locator = (ICSourceLocator)((IAdaptable)element.getLaunch().getSourceLocator()).getAdapter( ICSourceLocator.class );
+    if ( locator != null )
+    {
+     IPath path = new Path( element.getName() );
+     INewSourceLocationWizard wizard = null;
+     if ( path.isAbsolute() )
+     {
+      path = path.removeLastSegments( 1 );
+      wizard = new AddDirectorySourceLocationWizard( path );
+     }
+     else
+     {
+      wizard = new AddSourceLocationWizard( locator.getSourceLocations() );
+     }
+     WizardDialog dialog = new WizardDialog( CDebugUIPlugin.getActiveWorkbenchShell(), wizard );
+     if ( dialog.open() == Window.OK )
+     {
+      ICSourceLocation[] locations = locator.getSourceLocations();
+      ArrayList list = new ArrayList( Arrays.asList( locations ) );
+      list.add( wizard.getSourceLocation() );
+      locator.setSourceLocations( (ICSourceLocation[])list.toArray( new ICSourceLocation[list.size()] ) );
+
+      if ( locator instanceof IPersistableSourceLocator )
+      {
+       ILaunchConfiguration configuration = launch.getLaunchConfiguration();
+       saveChanges( configuration, (IPersistableSourceLocator)launch.getSourceLocator() );
+      }
+     }
+    }
+   }
+  }
+ }
+
+ protected void saveChanges( ILaunchConfiguration configuration, IPersistableSourceLocator locator )
+ {
+  try
+  {
+   ILaunchConfigurationWorkingCopy copy = configuration.copy( configuration.getName() );
+   copy.setAttribute( ILaunchConfiguration.ATTR_SOURCE_LOCATOR_MEMENTO, locator.getMemento() );
+   copy.doSave();
+  }
+  catch( CoreException e )
+  {
+   CDebugUIPlugin.errorDialog( e.getMessage(), (IStatus)null );
+  }
+ }
+}
Index: src/org/eclipse/cdt/debug/internal/ui/editors/AttachSourceEditorInput.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/internal/ui/editors/AttachSourceEditorInput.java
diff -N src/org/eclipse/cdt/debug/internal/ui/editors/AttachSourceEditorInput.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/internal/ui/editors/AttachSourceEditorInput.java 21 Feb 2003 23:41:28 -0000
@@ -0,0 +1,78 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.internal.ui.editors;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+
+/**
+ * Enter type comment.
+ *
+ * @since: Feb 21, 2003
+ */
+public class AttachSourceEditorInput implements IEditorInput
+{
+ private FileNotFoundElement fElement = null;
+
+ /**
+  * Constructor for AttachSourceEditorInput.
+  */
+ public AttachSourceEditorInput( FileNotFoundElement element )
+ {
+  fElement = element;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorInput#exists()
+  */
+ public boolean exists()
+ {
+  return true;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+  */
+ public ImageDescriptor getImageDescriptor()
+ {
+  return null;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorInput#getName()
+  */
+ public String getName()
+ {
+  return ( fElement != null ) ? fElement.getName() : "";
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorInput#getPersistable()
+  */
+ public IPersistableElement getPersistable()
+ {
+  return null;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.ui.IEditorInput#getToolTipText()
+  */
+ public String getToolTipText()
+ {
+  return null;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+  */
+ public Object getAdapter( Class adapter )
+ {
+  if ( adapter.equals( FileNotFoundElement.class ) )
+   return fElement;
+  return null;
+ }
+}
Index: src/org/eclipse/cdt/debug/internal/ui/editors/FileNotFoundElement.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/internal/ui/editors/FileNotFoundElement.java
diff -N src/org/eclipse/cdt/debug/internal/ui/editors/FileNotFoundElement.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/internal/ui/editors/FileNotFoundElement.java 21 Feb 2003 23:41:29 -0000
@@ -0,0 +1,48 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.internal.ui.editors;
+
+import org.eclipse.cdt.debug.core.model.IStackFrameInfo;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.model.IStackFrame;
+
+/**
+ * Enter type comment.
+ *
+ * @since: Feb 21, 2003
+ */
+public class FileNotFoundElement
+{
+ private IStackFrame fStackFrame;
+
+ /**
+  * Constructor for FileNotFoundElement.
+  */
+ public FileNotFoundElement( IStackFrame stackFrame )
+ {
+  fStackFrame = stackFrame;
+ }
+
+ public String getName()
+ {
+  IStackFrameInfo frameInfo = (IStackFrameInfo)fStackFrame.getAdapter( IStackFrameInfo.class );
+  if ( frameInfo != null && frameInfo.getFile() != null && frameInfo.getFile().length() > 0 )
+  {
+   return frameInfo.getFile();
+  }
+  return "";
+ }
+
+ public IStackFrame getStackFrame()
+ {
+  return fStackFrame;
+ }

+ public ILaunch getLaunch()
+ {
+  return ( fStackFrame != null ) ? fStackFrame.getLaunch() : null;
+ }
+}
Index: src/org/eclipse/cdt/debug/ui/sourcelookup/CUISourceLocator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/sourcelookup/CUISourceLocator.java,v
retrieving revision 1.6
diff -u -r1.6 CUISourceLocator.java
--- src/org/eclipse/cdt/debug/ui/sourcelookup/CUISourceLocator.java 18 Feb 2003 19:34:46 -0000 1.6
+++ src/org/eclipse/cdt/debug/ui/sourcelookup/CUISourceLocator.java 21 Feb 2003 23:41:29 -0000
@@ -12,6 +12,7 @@
 import org.eclipse.cdt.debug.core.sourcelookup.ISourceMode;
 import org.eclipse.cdt.debug.internal.core.sourcelookup.CSourceLocator;
 import org.eclipse.cdt.debug.internal.core.sourcelookup.CSourceManager;
+import org.eclipse.cdt.debug.internal.ui.editors.FileNotFoundElement;
 import org.eclipse.cdt.debug.internal.ui.wizards.AddDirectorySourceLocationWizard;
 import org.eclipse.cdt.debug.internal.ui.wizards.AddSourceLocationWizard;
 import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
@@ -219,11 +220,14 @@
    IStackFrameInfo frameInfo = (IStackFrameInfo)stackFrame.getAdapter( IStackFrameInfo.class );
    if ( frameInfo != null && frameInfo.getFile() != null && frameInfo.getFile().length() > 0 )
    {
+/*
     showDebugSourcePage( stackFrame.getLaunch(), frameInfo.getFile() );
     if ( fNewLocationAttached )
     {
      res = fSourceLocator.getSourceElement( stackFrame );
     }
+*/
+    res = new FileNotFoundElement( stackFrame );
    }
   }
   return res;

Back to the top