使用eclipse 做一个rcp应用,其中要用到一棵树。于是自己写了一个 ITreeContentProvider 的实现,
结果就因为这个bug:https://bugs.eclipse.org/bugs/show_bug.cgi?id=9262
一直有问题,那个树就一直无穷无尽的往下展开同样的一个目录。现象就如那个bug里面提到的:
The view should show ... root + ch1 + ch2 + ch21 + ch22 + ch23 ... but it shows ... root + root + root + root ...
后来的解决办法是Monkey do,参考 TreeNodeContentProvider,在input
的时候使用了一个只有一个值的数组,就搞定了。。。
public Object[] getElements(Object group) {
if ( group instanceof ContactGroup[]) return (Object[]) group;
return new Object[0];
}
groupTree.setInput( new ContactGroup[]{ ContactGroup.getRoot()});
最可恨的是,那个bug最早是 2002年被发现的,期间也有人提出了fix的代码,
不知道什么原因一直没有被解决,大概是因为用树的人少?被我赶上了。