Hi,
I'm creating an App which main part consists of a JFace TreeViewer. My users must have the possibilities to completely refresh the displayed data, so the domain model is completely renewed.
I'm cleaning my domain model, reloading it and refreshing the interfaces to the viewer as visible in the follwing method calls:
Code:
disposeTreeColumns();
frontendModuleService.clean();
load();
createTreeColumns();
frontendModuleService.refresh();
treeviewer.setInput(ModelProvider.getInstance().getModules());
treeviewer.refresh(true);
frontendModuleService.refresh() refreshes the LabelProvider by adding the new columns.
Everything works fine until from treeviewer.setInput(ModelProvider.getInstance().ge tModules()) is called. It produces a NullPointerException, which is thrown by org.eclipse.jface.viewers.ViewerColumn.refresh(Vie werColumn.java:145). In that method getLabelProvider() is called, which is null, but when treeviewer.setInput() was called, everything was fine!!! My domain model object as well is properly refilled.
So what happens there?

Am I completely wrong with my approach to refresh TreeViewer?
Here the stack trace, to be complete:
Code:
java.lang.NullPointerException
at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:145)
at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:932)
at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:102)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:880)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1012)
at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:466)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:880)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2041)
at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:827)
at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:802)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:776)
at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:634)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1702)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1712)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1491)
at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:823)
at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1474)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1365)
at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:397)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1328)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1467)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:274)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1603)
at de.doxanize.divsddrcp.treeviewer.View.refresh(View.java:318)
Any help would be great!
Thx
Dagmar