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:
parent
e9f1594821
commit
cae0db4052
1 changed files with 19 additions and 3 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue