问题标签 [treeviewer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7870 浏览

eclipse-plugin - 如何最好地在 TreeViewer 上使用 ViewerFilter?

我正在将 aViewerFilter应用于有几根树枝的树,但主要是树叶。过滤器确实适用于叶子,使用叶子内的属性。所有树枝都保持原样,以便它们的叶子可以出现。

但是,我想过滤掉不包含选定叶子的分支,并且我看不到任何机制ViewerFilter允许这样做。

这可能吗?

例如,给定下面的概念树(其中b是分支,aL是叶子)

我想应用一个ViewerFilter只选择偶数叶子和包含偶数叶子的树枝。结果树将是..

.. 分支b2不显示,因为它不包含选定的子项,但分支b0b1执行。

0 投票
2 回答
4317 浏览

java - 在 setInput() 之前保存 TreeViewer 状态

我正在尝试保存 JFace扩展状态以在调用方法TreeViewer后刷新它。setInput()我尝试了getExpandedElements, setExpandedElements, getExpandedTreePaths,setExpandedTreePaths的方法,TreeViewer但它不起作用。

0 投票
1 回答
4712 浏览

eclipse - 惰性和延​​迟 TreeViewer 问题

我实际上有两个问题,但它们有点相关,所以在这里它们是一个......

如何确保对当前未使用TreeViewer( SWT.VIRTUAL) 和显示的树节点进行垃圾收集ILazeTreeContentProvider?如果一个节点有 5000 个子节点,一旦它们被查看器显示,它们就永远不会放手,如果你的树有大量节点和叶子并且堆大小不够大,则会出现内存不足错误。是否有某种最佳实践来避免由于从未关闭的视图持有具有大量数据(数十万个对象甚至数百万个对象)的树查看器而导致的内存泄漏?也许有一些回调接口允许查看器/内容提供者元素具有更大的灵活性?

是否可以将延迟(DeferredTreeContentManager)和延迟(ILazyTreeContentProvider)加载组合为单个TreeViewerSWT.VIRTUAL)?据我通过查看示例和 API 了解,只能在给定时间使用任何一个,但不能同时使用两者,例如,仅获取给定节点的可见子节点并使用 Job 在单独的线程中获取它们API。困扰我的是延迟方法会加载所有孩子。尽管在不同的线程中,即使一次只显示最小的子集,它仍然会加载所有元素。

如果需要,我可以为我的问题提供代码示例......

我目前正在与这些人作斗争,所以如果我同时想出一些东西,我很乐意在这里分享。

谢谢!

问候,斯维伦

0 投票
1 回答
633 浏览

eclipse - 通过 DeferredTreeContentManager 延迟 Eclipse Treeviewer 加载

我知道有一种方法可以TreeViewer通过使用来延迟加载DeferredTreeContentManager,这是从这个有用的教程中学到的。

但是,这种机制需要模型实现IDeferredWorkbenchAdapter接口,这给我遗留的不可变模型类带来了问题。是否可以在DeferredTreeContentManager没有模型实现IDeferredWorkbenchAdapter接口的情况下使用?

0 投票
3 回答
1847 浏览

eclipse - Eclipse 中的列和过滤树

我正在尝试创建一个FilteredTree没有运气的有几列。如果我使用 aTreeViewer列可以正常工作,但是当我切换到使用 aFilteredTree时,如果我删除列,我只能让它工作,所以我想知道是否有一种方法可以FilteredTree与列一起使用。

0 投票
1 回答
8053 浏览

eclipse - TreeViewer.setSelection() 在给定路径后没有选择正确的项目

如果在树查看器中有更多基于同一对象的树项目,则当当前选择等于我要导航的项目时,制作 aTreePath并将其传递给不会正确选择项目。TreeViewer.setSelection()

示例:
有一棵树有 2 个项目显示相同的对象(BigDecimal.ONE在本例中)。他们有不同的路径(不同的父母): 树

我希望当我在一个BigDecimal.ONE项目上时,单击链接并导航到另一个BigDecimal.ONE。在链接的选择侦听器上,我TreeSelection使用正确的TreePath. 然后我打电话setSelection。但是导航不起作用。但是,如果根项最初是折叠的,我注意到它会展开它,但不会导航到正确的项。

代码是这样的:

我的问题是这是一个 jface 错误还是我没有以正确的方式这样做?


编辑:

看来 eclipse.org 上已经发布了一个错误:https ://bugs.eclipse.org/bugs/show_bug.cgi?id=332736

0 投票
2 回答
2534 浏览

java - SWT/JFace TreeColumn 重新排序 - setMoveable() 的问题

我正在尝试设置一个多列 SWT Tree(通过 JFace TreeViewer),它允许用户通过拖动列标题来重新排序其列。但是,第一列应保持固定且不可移动。除了第一个方法之外,我可以setMoveable(true)在每个方法上使用该方法TreeColumn来真正关闭,但这并不能阻止用户将不同的列拖到它的左侧。任何想法如何解决这个问题?

这是一个简化的工作片段(没有 JFace)来说明问题:

0 投票
1 回答
425 浏览

swt - SWT/JFace:以复合为内容的多列 TreeViewer

我想为图形编辑器创建一个类似于多列树的界面,类似于这里的:http: //imageshack.us/photo/my-images/854/51909806.png/。它将包含层作为父树项(可以添加或删除层)和表示层设置的子项集合的表格。哪个小部件更适合这个目的?我想到了 TreeViewer,但它只允许使用 getText() 或 getImage() 方法设置 LabelProvider,因此我无法将小部件作为子节点插入。在我的情况下,您认为最适合使用什么?

0 投票
2 回答
830 浏览

java - SWT TreeViewer,修剪列中的字符串文本

我正在使用 SWTTreeViewer显示一些路径,是否可以修剪路径字符串以在路径太长时插入“...”(点)在树列中不完全可见?

像这样的东西:

在此处输入图像描述

提前致谢

0 投票
5 回答
6197 浏览

java - 如何让 SWT 中的 TreeViewer 正确刷新?

我有一个使用 JFace 的应用程序TreeViewer。我把它连接到一个ContentProvider. 大多数情况下,它工作得很好。但是,对于某些操作,例如在节点列表中间添加节点或更改应该更改节点标签的值,refresh()调用不起作用。我试过包括父节点,对标签更新说“真”。没有什么是一直有效的。

我已经看到,如果我关闭可折叠节点并添加然后展开,则会显示添加的节点。但如果它已经展开,则不会显示任何更改。如果我将树信息保存到磁盘并查看,就会进行更改。只是TreeViewer刷新不起作用。

我查看了我的inputChanged方法ContentProvider,但它只在我的应用程序执行的开始和结束时调用。

任何人都可以帮忙吗?我已经阅读了所有甚至暗示答案的网页,但没有任何效果。