1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 10:46:02 +02:00

Bug 247274 - NullPointerException in Modules view

This commit is contained in:
Anton Leherbauer 2008-09-24 10:35:38 +00:00
parent e9f1594821
commit cae0db4052

View file

@ -14,6 +14,7 @@ package org.eclipse.cdt.ui;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.model.WorkbenchLabelProvider;
import org.eclipse.cdt.core.model.ICElement;
@ -82,7 +83,7 @@ public class CElementLabelProvider extends LabelProvider {
public final static int SHOW_DEFAULT= new Integer(SHOW_PARAMETERS | SHOW_OVERLAY_ICONS).intValue();
private WorkbenchLabelProvider fWorkbenchLabelProvider;
private volatile WorkbenchLabelProvider fWorkbenchLabelProvider;
protected CElementImageProvider fImageLabelProvider;
private CUILabelProvider fCElementLabelProvider;
@ -95,7 +96,19 @@ public class CElementLabelProvider extends LabelProvider {
}
public CElementLabelProvider(int flags) {
fWorkbenchLabelProvider= new WorkbenchLabelProvider();
// WorkbenchLabelProvider may only be initialized on the UI thread
// http://bugs.eclipse.org/247274
if (Display.getCurrent() != null) {
fWorkbenchLabelProvider= new WorkbenchLabelProvider();
} else {
// Delay initialization
CUIPlugin.getStandardDisplay().asyncExec(new Runnable() {
public void run() {
if (fCElementLabelProvider != null) {
fWorkbenchLabelProvider= new WorkbenchLabelProvider();
}
}});
}
fImageLabelProvider= new CElementImageProvider();
fFlags = flags;
@ -107,7 +120,10 @@ public class CElementLabelProvider extends LabelProvider {
if (element instanceof ICElement) {
return fCElementLabelProvider.getText(element);
}
return fWorkbenchLabelProvider.getText(element);
if (fWorkbenchLabelProvider != null) {
return fWorkbenchLabelProvider.getText(element);
}
return super.getText(element);
}
@Override