From 9b8d4451dd1004dd0d82ca98516e8e3a269e256a Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Fri, 6 Jan 2012 12:08:17 -0500 Subject: [PATCH] bug 367559: Fixed exception in MakeContentProvider, viewer can be TableViewer. --- .../cdt/make/ui/MakeContentProvider.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java index e601ccabe87..d2637679416 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java @@ -46,6 +46,8 @@ import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChang import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.StructuredViewer; +import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.widgets.Display; @@ -63,7 +65,7 @@ public class MakeContentProvider implements ITreeContentProvider, IMakeTargetLis /** presentation of the content, i.e. for MakeView tree of for BuildTargetDialog table */ protected boolean bFlatten; - protected TreeViewer viewer; + protected StructuredViewer viewer; /** * Default constructor. @@ -196,7 +198,7 @@ public class MakeContentProvider implements ITreeContentProvider, IMakeTargetLis if (this.viewer == null) { MakeCorePlugin.getDefault().getTargetManager().addListener(this); } - this.viewer = (TreeViewer) viewer; + this.viewer = (StructuredViewer) viewer; IWorkspace oldWorkspace = null; IWorkspace newWorkspace = null; if (oldInput instanceof IWorkspace) { @@ -250,11 +252,23 @@ public class MakeContentProvider implements ITreeContentProvider, IMakeTargetLis if (viewer == null || viewer.getControl() == null || viewer.getControl().isDisposed()) return; - if (viewer.getTree().getItemCount() <= 0) { + int itemCount = 0; + if (viewer instanceof TreeViewer) { + ((TreeViewer) viewer).getTree().getItemCount(); + } else if (viewer instanceof TableViewer) { + ((TableViewer) viewer).getTable().getItemCount(); + } + if (itemCount <= 0) { return; } - Object firstItem = viewer.getTree().getItem(0).getData(); + Object firstItem = null; + if (viewer instanceof TreeViewer) { + firstItem = ((TreeViewer) viewer).getTree().getItem(0).getData(); + } else if (viewer instanceof TableViewer) { + firstItem = ((TableViewer) viewer).getTable().getItem(0).getData(); + } + IContainer parentContainer = null; boolean isDrilledDown = !(firstItem instanceof IProject);