1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-01 06:05:24 +02:00

bug 367559: Fixed exception in MakeContentProvider, viewer can be

TableViewer.
This commit is contained in:
Andrew Gvozdev 2012-01-06 12:08:17 -05:00
parent be46e98db2
commit 9b8d4451dd

View file

@ -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);