Community
Participate
Working Groups
We are using decorators to decorate the tree nodes of a TreeViewer. Invoking update() for a tree node usually results in the method decorate() being invoked on the decorator. If multiple update() calls for the same tree node are issued in a short time period (<50 ms) some decorate() calls seem to be "lost". More precisely: We have three update() calls for a tree node, but only the second one results in the decorate() method of the decorator being invoked. As a result the decorator does not reflect the actual state of the tree node after the three update calls correctly. The decorator still shows the state of the tree node at the time the second update() call has been issued. Synchronizing the calls or using sync instead of async does not change the result.
We do not duplicate calculations if an update is already in process. If you call update again before you get your labelProviderChanged callback then you may get stale data. We did this as a performance tradeoff to prevent the cancellation of updates. Bascially you would need a way to tell the decorator manager to throw away a current cached result and then recalculate
There are currently no plans to work on this feature
As of now 'LATER' and 'REMIND' resolutions are no longer supported. Please reopen this bug if it is still valid for you.