Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Fix PR 36759

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.96
diff -u -r1.96 ChangeLog
--- ChangeLog	27 Apr 2003 00:18:21 -0000	1.96
+++ ChangeLog	28 Apr 2003 02:26:26 -0000
@@ -1,3 +1,18 @@
+2003-04-27 Alain Magloire
+
+	PR 36759, the outline does not update
+	when the input is reset by the Debugger.  The debugger
+	reuse the same editor with different input.
+
+	* src/org/eclipse/cdt/internal/ui/editor/CContentOutlinet.java (setInput):
+	New method to reset the input of the viewer.
+
+	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java (setOutlinePageInput):
+	New method to reset the input of the outliner.
+
+	* src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java (createElementInfo):
+	Use the getBufferFactory() method it may been overloaded.
+
 2003-04-26 Alain Magloire
 
 	ClastCastException in CView see PR 36876
Index: src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java,v
retrieving revision 1.10
diff -u -r1.10 CContentOutlinePage.java
--- src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java	7 Apr 2003 19:06:18 -0000	1.10
+++ src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java	28 Apr 2003 02:26:30 -0000
@@ -9,6 +9,7 @@
 import java.util.Iterator;
 
 import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.internal.core.model.IWorkingCopy;
 import org.eclipse.cdt.internal.core.model.WorkingCopy;
 import org.eclipse.cdt.internal.ui.CFileElementWorkingCopy;
 import org.eclipse.cdt.internal.ui.StandardCElementLabelProvider;
@@ -48,7 +49,8 @@
 
 public class CContentOutlinePage extends Page implements IContentOutlinePage, ISelectionChangedListener {
 	private CEditor fEditor;
-	private WorkingCopy fInput;
+	//private WorkingCopy fInput;
+	private IWorkingCopy fInput;
 	private ProblemTreeViewer treeViewer;
 	private ListenerList selectionChangedListeners = new ListenerList();
 	private TogglePresentationAction fTogglePresentation;
@@ -284,5 +286,16 @@
 	public void setSelection(ISelection selection) {
 		if (treeViewer != null) 
 			treeViewer.setSelection(selection);
+	}
+
+	/**
+	 * @param unit
+	 */
+	public void setInput(IWorkingCopy unit) {
+		fInput = unit;
+		if (treeViewer != null) {
+			treeViewer.setInput (fInput);
+		}
+		contentUpdated();		
 	}
 }
Index: src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java,v
retrieving revision 1.13
diff -u -r1.13 CDocumentProvider.java
--- src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java	21 Apr 2003 16:21:26 -0000	1.13
+++ src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java	28 Apr 2003 02:26:31 -0000
@@ -194,7 +194,8 @@
 				}
 				
 				IAnnotationModel m= createAnnotationModel(input);
-				IWorkingCopy c= (IWorkingCopy) original.getSharedWorkingCopy(getProgressMonitor(), fBufferFactory);
+				IBufferFactory factory = getBufferFactory();
+				IWorkingCopy c= (IWorkingCopy) original.getSharedWorkingCopy(getProgressMonitor(), factory);
 				
 				DocumentAdapter a= null;
 				try {
@@ -321,6 +322,7 @@
 	public IBufferFactory getBufferFactory() {
 		return fBufferFactory;
 	}
+
 	/**
 	 * Returns the underlying resource for the given element.
 	 * 
Index: src/org/eclipse/cdt/internal/ui/editor/CEditor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java,v
retrieving revision 1.23
diff -u -r1.23 CEditor.java
--- src/org/eclipse/cdt/internal/ui/editor/CEditor.java	21 Apr 2003 17:05:46 -0000	1.23
+++ src/org/eclipse/cdt/internal/ui/editor/CEditor.java	28 Apr 2003 02:26:33 -0000
@@ -16,11 +16,13 @@
 import org.eclipse.cdt.core.model.ISourceRange;
 import org.eclipse.cdt.core.model.ISourceReference;
 import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.internal.core.model.IWorkingCopy;
 import org.eclipse.cdt.internal.ui.IContextMenuConstants;
 import org.eclipse.cdt.internal.ui.text.CPairMatcher;
 import org.eclipse.cdt.internal.ui.text.CSourceViewerConfiguration;
 import org.eclipse.cdt.internal.ui.text.CTextTools;
 import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.cdt.ui.IWorkingCopyManager;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IProject;
@@ -139,6 +141,7 @@
 	protected void doSetInput(IEditorInput input) throws CoreException {
 		super.doSetInput(input);
 		fCEditorErrorTickUpdater.setAnnotationModel(getDocumentProvider().getAnnotationModel(input));
+		setOutlinePageInput(fOutlinePage, input);
 	}
 
 	/**
@@ -418,6 +421,13 @@
 		addAction(menu, IContextMenuConstants.GROUP_GENERATE, "ContentAssistProposal"); //$NON-NLS-1$
 		addAction(menu, IContextMenuConstants.GROUP_GENERATE, "AddIncludeOnSelection"); //$NON-NLS-1$
 		addAction(menu, IContextMenuConstants.GROUP_GENERATE, "OpenOnSelection"); //$NON-NLS-1$
+	}
+
+	public void setOutlinePageInput(CContentOutlinePage page, IEditorInput input) {
+		if (page != null) {
+			IWorkingCopyManager manager = CUIPlugin.getDefault().getWorkingCopyManager();
+			page.setInput((IWorkingCopy)manager.getWorkingCopy(input));
+		}
 	}
 
 	/**
Index: src/org/eclipse/cdt/ui/CUIPlugin.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPlugin.java,v
retrieving revision 1.12
diff -u -r1.12 CUIPlugin.java
--- src/org/eclipse/cdt/ui/CUIPlugin.java	5 Apr 2003 06:32:14 -0000	1.12
+++ src/org/eclipse/cdt/ui/CUIPlugin.java	28 Apr 2003 02:26:35 -0000
@@ -140,7 +140,7 @@
 
 	private CoreModel fCoreModel;
 	private CDocumentProvider fDocumentProvider;
-	private IWorkingCopyManager fWorkingCopyManager;
+	private WorkingCopyManager fWorkingCopyManager;
 	private CTextTools fTextTools;
 	private AsmTextTools fAsmTextTools;
 	private ProblemMarkerManager fProblemMarkerManager;
@@ -203,7 +203,7 @@
 		}
 		return fBuildConsoleManager;
 	}
-	
+
 	/**
 	 * @see Plugin#shutdown
 	 */



Back to the top