1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 18:56: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.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.model.WorkbenchLabelProvider; import org.eclipse.ui.model.WorkbenchLabelProvider;
import org.eclipse.cdt.core.model.ICElement; 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(); public final static int SHOW_DEFAULT= new Integer(SHOW_PARAMETERS | SHOW_OVERLAY_ICONS).intValue();
private WorkbenchLabelProvider fWorkbenchLabelProvider; private volatile WorkbenchLabelProvider fWorkbenchLabelProvider;
protected CElementImageProvider fImageLabelProvider; protected CElementImageProvider fImageLabelProvider;
private CUILabelProvider fCElementLabelProvider; private CUILabelProvider fCElementLabelProvider;
@ -95,7 +96,19 @@ public class CElementLabelProvider extends LabelProvider {
} }
public CElementLabelProvider(int flags) { 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(); fImageLabelProvider= new CElementImageProvider();
fFlags = flags; fFlags = flags;
@ -107,7 +120,10 @@ public class CElementLabelProvider extends LabelProvider {
if (element instanceof ICElement) { if (element instanceof ICElement) {
return fCElementLabelProvider.getText(element); return fCElementLabelProvider.getText(element);
} }
return fWorkbenchLabelProvider.getText(element); if (fWorkbenchLabelProvider != null) {
return fWorkbenchLabelProvider.getText(element);
}
return super.getText(element);
} }
@Override @Override