问题标签 [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.
java - JFace:在 TreeViewer 中更改 TreeItem 的颜色
我试图在包含我的 TreeViewer 的类中运行时更改特定 TreeNodes 的 BackgroundColor,但它不起作用:
我想知道为什么这不起作用,因为 TreeItem 有相应的方法。
请注意,我不想为此使用 Labelprovider,因为我必须检查节点之间的多个依赖关系以确定正确的颜色,因此 Labelprovider 不适合。
干杯,菲尔
java - SWT DragSourceEvent 图像未正确锚定到鼠标指针
当我从 SWT 中的树查看器拖放时,我遇到了以下问题。我正在设置dragSourceEvent
例如的图像属性
除了我的树查看器节点上有一个长标签的情况外,它工作得很好。如果我有一个长字符串并从节点上标题的最右边缘开始拖动事件,我注意到拖动图像未正确锚定并且实际上根据距树节点开始的距离偏移 X 像素字符串到树节点字符串的末尾。
有人有什么建议吗?Yee 可能必须进行演示才能了解它。有人见过这个吗?
java - org.eclipse.jface.viewers.TreeViewer 什么也没显示
为什么下面的示例不起作用?
TreeNodeEx
类是允许类 LISP 语法初始化的类:
即列表中的第一个元素表示父元素,尾部表示它的成员。
文本输出显示结构看起来很好。
eclipse - 模型更改时更新 Eclipse JFace Treeviewer?
我正在开发一个带有TreeViewer
. 虽然有很多文章解释了如何向查看器添加编辑支持(以及如何在模型中更新视图的更改),但当底层模型发生更改时,我没有找到太多更新 Treeview 的内容。简而言之,我的问题:
TreeView ----> 模型更新 ------ 有很多例子
模型---->树视图更新-----这是我的问题
编辑:这是我尝试过的并且有效。请发表评论
java - 如何从 SWT TreeViewer 中删除项目?
我正在使用 Eclipse 标准小部件工具包(SWT),我有一个带有项目的 TreeView 对象和一个双击事件(addDoubleClickListener)工作正常,但我不知道如何实现右键单击以删除一个项目。
java - 突出显示时更改 SWT 树节点文本前景
我是 SWT/JFace 技术的新手,我发现了一个让我发疯的问题。在 Eclipse RCP 应用程序中,我有一个视图,其中放置了一个带有 JFace TreeViewer 的 SWT 树,它通过标签提供程序提供标签和图标。根据客户要求,树的底色为深蓝色,字体颜色为白色。This combination of colours results in a bad visualization of a node's text when the node is selected, the text does not fit the tree region and we place the mouse pointer over the node. 不知何故,出现了“本机突出显示”。这可以在下图中显示。
另一方面,当我们放置鼠标的节点未被选中时,不会发生此问题。突出显示会更改字体的颜色以使其更明显。这可以在下图中显示。
在做了一些研究之后,我发现通过为事件添加一个监听器,SWT.EraseItem
我可以修改所选节点的背景颜色,然后禁用选择。这使我可以定义自己的选择背景样式,并禁用 的SWT.SELECTED
标志,event.detail
以强制操作系统在未选择节点时突出显示。
这个“解决方案”可能是合理的。我看到的主要缺点是我的选择样式仅适用于 Windows 7 默认视觉主题。对于那些“Windows 经典”或“高对比度”,我会遇到可视化问题。此外(这是最烦人的问题),为SWT.EraseItem
(即使没有处理事件的代码)添加侦听器的事实产生了两个新问题。
这使得 SWT 或 JFace 将树节点的图标绘制在错误的位置,如下图所示。
树的根节点的突出显示是完全错误的。如下图所示,节点似乎以两种不同的方式突出显示,并且重复了图标。
我的问题基本上是两个。
您认为主要问题有更简单的解决方案吗?我想要以与第二张图像相同的方式显示选定的节点(第一张图像中的那个)。我想更改所选节点的前景色以使其更明显。
如果使用该
SWT.EraseItem
方法,有没有办法在正确的位置显示图标?这种行为是已知的错误吗?
提前致谢。
java - 复合没有为 TreeViewer 抓取多余的水平空间
我试图从来自 TreeViewer 的数据水平填充复合材料,但没有成功。如果您有任何建议,我将不胜感激。
这是我正在使用的代码:
java - 如何以编程方式扩展 TreeViewer?
如何以TreeViewer
编程方式扩展?
如果我使用基础Tree.setExpanded(true)
,
元素不出现:
如果我使用鼠标点击,分支展开正常。
java - 在 SWT 中向 Tree Viewer 添加双击展开
双击树项目完全正常,但是当我在键盘上按 CTRL + M 时树项目展开\折叠,有人可以告诉我这背后的原因吗?这是 Eclipse 中的错误还是为什么当我按 CTRL+M 时会触发此双击功能。
谢谢。
java - 在底层模型更改后更新 JFace TreeViewer
我的视图中有一个树形查看器,它从标准 Ecore 编辑器中收听 EMF 模型并用它做进一步的事情。我已经注册了一个选择监听器,它检查所选元素是否是树查看器需要作为输入的类型。所以问题是,如果模型中有任何更改(例如,向现有元素添加新元素或新信息等),树查看器仅在用户更改选择时才显示更改的模型,即单击任何模型元素等.
但我需要做的是,如果底层模型发生变化,树查看器会直接收到通知,并显示新的模型元素,而无需单击模型来收听它。
我发现了以下 Eclipse 角文章(https://www.eclipse.org/articles/Article-TreeViewer/TreeViewerArticle.htm#inputChanged),从“响应变化”看来 inputChanged() 和 refresh() 方法可能是我正在寻找的解决方案,不是吗?
我仍然想知道是否有更简单的方法可以做到这一点而不必更改模型代码,而只需更改 UI 代码?谢谢!