`
SimonLei
  • 浏览: 176168 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse 之 8年没解决的ITreeContentProvider 问题

阅读更多

使用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的代码,

不知道什么原因一直没有被解决,大概是因为用树的人少?被我赶上了。

1
1
分享到:
评论
1 楼 uniquejava 2012-10-21  
谢谢提供思路,我也碰到了,折腾了半天。。

相关推荐

    Eclipse开发经典教程-TreeViewer组件

    ### Eclipse开发经典教程:深入解析TreeViewer组件 在Eclipse平台的GUI开发中,`TreeViewer`组件扮演着至关重要的角色,特别是在展示层次结构数据时。`TreeViewer`不仅能够直观地呈现树形结构的数据,还支持丰富的...

    eclipse从入门到精通的treexiew代码

    在本文中,我们将深入探讨Eclipse IDE中的TreeViewer组件,它是Java SWT(Standard Widget Toolkit)库的一部分,用于创建树形用户界面。通过掌握TreeViewer,您可以有效地构建具有层次结构的数据展示,这对于各种...

    使用CommonNavigator开发资源管理器.pdf

    `IPipelinedTreeContentProvider`接口的引入解决了这个问题,它允许你在数据流中插入过滤或添加额外的子节点。 在`PackageExplorerContentProvider`的基础上,`JavaNavigatorContentProvider`类不仅继承了对Java...

    RCP资料 filterTreeViewer

    在IT行业中,RCP(Rich Client Platform)是Eclipse框架的一部分,它提供了一种构建桌面应用程序的强有力方式。"RCP资料 filterTreeViewer"这个标题指的是一个关于如何在RCP应用中实现过滤功能的树视图组件的学习...

    RCP项目开发手册.pdf

    8. **树形查看器模型**:树形视图的管理通常涉及一个模型类`TreeViewerModel`,用于表示树的各个节点以及它们之间的关系。该类提供了添加、删除子节点等基本操作,并且可以通过设置节点类型、名称等属性来丰富节点的...

    swt tree学习文档

    public class TreeContentProvider implements ITreeContentProvider { @Override public Object[] getElements(Object inputElement) { if (inputElement instanceof List) { List<?> list = (List) input...

Global site tag (gtag.js) - Google Analytics