Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] FIX PR 36876

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.95
diff -u -r1.95 ChangeLog
--- ChangeLog	26 Apr 2003 23:39:45 -0000	1.95
+++ ChangeLog	27 Apr 2003 00:14:22 -0000
@@ -1,4 +1,14 @@
-2003-04-21 Alain Magloire
+2003-04-26 Alain Magloire
+
+	ClastCastException in CView see PR 36876
+	and PR 36743 allow extending of the CView.
+	
+	* src/org/eclipse/cdt/internal/ui/cview/CView.java:
+	(createContentProvider): new Method.
+	(createViewer): new Method.
+	(createLabelProvider): new method.
+
+2003-04-26 Alain Magloire
 
 	Fix NPE in the ComparatorModelBuilder when doing visual diffs
 	with the new Parser.
Index: src/org/eclipse/cdt/internal/ui/cview/CView.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java,v
retrieving revision 1.23
diff -u -r1.23 CView.java
--- src/org/eclipse/cdt/internal/ui/cview/CView.java	21 Apr 2003 16:23:27 -0000	1.23
+++ src/org/eclipse/cdt/internal/ui/cview/CView.java	27 Apr 2003 00:14:29 -0000
@@ -414,10 +414,10 @@
 	*/
 	public void createPartControl (Composite parent) {
 
-		viewer= new ProblemTreeViewer (parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		boolean showCUChildren= CPluginPreferencePage.showCompilationUnitChildren();
+		viewer = createViewer(parent);
 		viewer.setUseHashlookup (true);
-		viewer.setContentProvider(new CElementContentProvider (showCUChildren, true));
+		CElementContentProvider provider = createContentProvider();
+		viewer.setContentProvider(provider);
 		setLabelDecorator(PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator());
 		CUIPlugin.getDefault().getProblemMarkerManager().addListener(viewer);
 		CUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this);
@@ -490,6 +490,19 @@
 
 	}
 
+	protected ProblemTreeViewer createViewer(Composite parent) {
+		return new ProblemTreeViewer (parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+	}
+
+	protected CElementContentProvider createContentProvider() {
+		boolean showCUChildren= CPluginPreferencePage.showCompilationUnitChildren();
+		return new CElementContentProvider(showCUChildren, true);
+	}
+
+	protected StandardCElementLabelProvider createLabelProvider () {
+		return new StandardCElementLabelProvider();
+	}
+
 	/* (non-Javadoc)
 	 * Method declared on IWorkbenchPart.
 	 */
@@ -1088,7 +1101,7 @@
 	 * @param decorator a label decorator or <code>null</code> for no decorations.
 	 */
 	public void setLabelDecorator(ILabelDecorator decorator) {
-		ILabelProvider cProvider= new StandardCElementLabelProvider();
+		ILabelProvider cProvider= createLabelProvider();
 		if (decorator == null) {
 			viewer.setLabelProvider(cProvider);
 		} else {
@@ -1207,8 +1220,9 @@
 				if (p != null) {
 					IPath path = new Path(p);
 					ICElement element = factory.create(path);
-					if (element != null)
+					if (element != null) {
 						elements.add(element);
+					}
 				}
 			}
 			viewer.setExpandedElements(elements.toArray());
@@ -1222,8 +1236,9 @@
 				if (p != null) {
 					IPath path = new Path(p);
 					ICElement element = factory.create(path);
-					if (element != null)
+					if (element != null) {
 						list.add(element);
+					}
 				}
 			}
 			viewer.setSelection(new StructuredSelection(list));
@@ -1254,9 +1269,10 @@
 	}
 
 	public void saveState(IMemento memento) {
-		if(viewer == null) {
-			if(this.memento != null) //Keep the old state;
+		if (viewer == null) {
+			if (this.memento != null) { //Keep the old state;
 				memento.putMemento(this.memento);
+			}
 			return;
 		}
 
@@ -1273,9 +1289,10 @@
 						|| o instanceof IBinary || o instanceof IArchive)) {
 					IMemento elementMem = expandedMem.createChild(TAG_ELEMENT);
 					ICElement e = (ICElement)o;
-					IResource res = (IResource)e.getAdapter(IResource.class);
-					if (res != null)
+					IResource res = e.getResource();
+					if (res != null) {
 						elementMem.putString(TAG_PATH, res.getLocation().toOSString());
+					}
 				}
 			}
 		}
@@ -1285,11 +1302,13 @@
 		if(elements.length > 0) {
 			IMemento selectionMem = memento.createChild(TAG_SELECTION);
 			for (int i = 0; i < elements.length; i++) {
-				ICElement e  = (ICElement)elements[i];
-				IResource r  = (IResource)e.getAdapter(IResource.class);
-				if (r != null) {
-					IMemento elementMem = selectionMem.createChild(TAG_ELEMENT);
-					elementMem.putString(TAG_PATH,r.getLocation().toString());
+				if (elements[i] instanceof ICElement) {
+					ICElement e  = (ICElement)elements[i];
+					IResource r  = e.getResource();
+					if (r != null) {
+						IMemento elementMem = selectionMem.createChild(TAG_ELEMENT);
+						elementMem.putString(TAG_PATH,r.getLocation().toString());
+					}
 				}
 			}
 		}



Back to the top