DZone Forums
Go Back   DZone Forums > Community > Tools & IDEs > Eclipse
Reload this Page JFace TreeViewer: How to refresh properly???
Notices
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  (#1 (permalink)) Old
Member
 
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Join Date: Nov 2009
Question JFace TreeViewer: How to refresh properly??? - 11-11-2009, 04:45 AM

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
Reply With Quote
  (#2 (permalink)) Old
Member
 
Posts: 17
Thanks: 1
Thanked 2 Times in 2 Posts
Join Date: Jan 2009
Default 11-13-2009, 05:20 AM

Hi Dagmar,

what if you leave out the treeviewer.setInput() call? In my opinion, it is sufficient to set the input only once on initialization. I have written an application that refreshes a TableViewer on demand of the user, but without the need to rearrange columns. I just call tableviewer.refresh(true), and everything works just great.

Regards from Hamburg,
Heiko
Reply With Quote
  (#3 (permalink)) Old
Member
 
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Join Date: Nov 2009
Default 11-13-2009, 08:32 AM

Hi Heiko,
thx for your answer. I just tried it and noticed, that at least there is no difference in throwing this mysterious exception. The second thing is that I noticed that treeviewer.refresh(true) is the real point where the exception is thrown. So far so good, this thing is at least a bit less foggy now - but I now have to go on exploring what happens.
regards
dagmar
Reply With Quote
Reply

Tags
jface, nullpointerexception, refresh, treeviewer, update

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
TreeViewer is not updating with teh latest content while using ITreeViewerListener msubash26 Eclipse 0 06-01-2009 08:28 AM
Selecting Checkboxes of JFace TreeViewer itz.pele@gmail.com Java 0 04-17-2009 01:38 AM
refresh a view as I change the perspective markitus Eclipse 1 05-22-2008 05:46 AM
Switching from TableViewer to TreeViewer at running time (reloaded) andrea_casarella Eclipse 0 04-06-2008 06:55 PM
Refresh operation in the eclispe gudsy Eclipse 0 04-03-2008 07:06 AM


Copyright 1997-2009, DZone, Inc.
vBulletin Skin developed by: vBStyles.com