问题标签 [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 投票
1 回答
830 浏览

java - SWT 双击展开

我已经在树查看器上实现了双击侦听器,下面是我的示例代码片段。

我现在有一个问题。我从需要双击功能的不同类传递树查看器的对象。因此,除了从不同的类传递树查看器的对象之外,还有一种方法可以使用event.getSource()它返回发生事件的对象吗?我尝试实施它但徒劳无功。有人可以建议如何进行吗?我不想到处使用树查看器的对象,因为event.getSource()返回相应的树查看器的对象。

更新

是的,我同意你的观点,但我不想将树查看器作为参数传递。所以我以这种方式实现了它:

我上面的代码有增强吗?我的意思是创建一个对象ITreeSelection并检查该对象是IStructuredSelection正确的方法吗?如果不是,检查 instanceof 的正确方法是IStructuredSelection什么?

0 投票
0 回答
480 浏览

java - JFace::TreeViewer::setInput() -> 长时间处理和沙漏光标 - 即使使用 null 作为参数

我正在编写一个 Eclipse-JFace-TreeViewer 并且最近注意到,每次我调用 setInput() 时,UI 线程都会被占用至少 10~30 毫秒,无论设置了什么输入。调用 setInput(null) 时也需要很长时间来处理。

我还做了一个带有虚拟内容提供者的 TreeViewer 的最小实现。问题仍然存在。你可以自己试试。也许它只在我的系统上。查看下面的代码。要刷新查看器,只需单击它。如果你的系统也有问题,光标应该闪烁并显示沙漏图标。

}

0 投票
0 回答
785 浏览

eclipse - jface TreeViewer的右键菜单

我想为 TreeViewer 显示一个简单的右键菜单。我找到了一些示例(例如:基于选定节点的 TreeViewer 的上下文菜单 - SWT),但它们的代码似乎相当复杂且冗长。

是否有任何简单的方法可以将右键菜单附加到 TreeViewer?

0 投票
1 回答
557 浏览

java - TreeViewer Expand-/Collapse-ToLevel 错误

我有一个 TreeViewer,我试图将其项目展开或折叠一层。我的 TreeViewer 包含具有相同名称的项目。例如:

即使我选择第二个节点 A 展开或折叠,它仍然会展开或折叠第一个节点 A。

我的扩展代码是:

我的崩溃代码是:

我该怎么做才能使 TreeViewer 展开和折叠正确的选定项目?

0 投票
1 回答
892 浏览

java - 如何在不触发 selectionChanged() 的情况下为 treeviewer 设置选择?

我正在开发一个 Eclipse RCP 项目。它有几个视图,TreeViewer我使用selectionChanged()方法来处理选择事件。但是,有时我需要以编程方式设置选择。为此,在selectionChanged()方法中,我调用setSelection()方法TreeViewer来设置所需的选择。此方法触发selectionChanged()所有视图的方法,从而导致对selectionChanged().

如何从TreeViewerStructuredViewer不触发selectionChanged()其他视图中选择项目?

0 投票
1 回答
204 浏览

java - Java TreeViewer SWT.RIGHT_TO_LEFT

我在一个 Eclipse 插件上工作,它有两个TreeViewer,其中一个带有参数SWT.RIGHT_TO_LEFT。这看起来像这样: 插件屏幕

如您所见,树结构是从右到左绘制的,这就是我所需要的。但是,这是我的问题,文本也会被反转,但只有当字符串中有特殊字符时。 PID.5.7被转换为7.5.PID。这是我创建TreeViewer文本的方式:

有没有人可以解决这个问题?我希望我的字符串与我在TextLayout.

编辑:

我添加了提到的

现在我的输出是这样的:

在此处输入图像描述

如您所见,它适用于像 PID.7.5 这样的字符串,但如果字符串用空格分隔并且只包含特殊字符,则它的反转。像“MSH.1 |” 变成“|MSH.1”

(删除了 Style2 并在 TextLayout 中仅使用一种样式)

编辑2:

解决方法:

我现在测试我的字符串是否以没有 az、AZ 的“单词”开头,我只需在前面添加一个 StyleColor = WHITE 的“x”。这样,所有值都可以正确显示。

0 投票
1 回答
78 浏览

java - 根据字符串的后缀从 TreeViewer 中删除项目(列表项目)

我在 TreeViewer 中有一个 TreeViewer 和一个包含项目列表(字符串)的列表,例如:

子任务一个 \\TreeViewer 中的第一项

子任务二一

子任务三一

子任务四二

子任务四三

我想从 TreeViewer 中删除后缀为“one”的项目并保留其余项目。如何遍历项目并删除名称以字符串“one”结尾的项目?

示例代码:

有人请尽早帮助我,拜托。

在设置树查看器的输入之前,我想遍历列表并仅删除名称以字符串“one”结尾的项目(后缀为“one”的项目)?从列表中删除项目后,我将设置 treeViewer 的输入。

有没有办法删除名称以字符串“one”结尾的项目?我该怎么做呢?我被困在这里,请有人建议如何进行?

提前致谢。

0 投票
1 回答
2202 浏览

java - java treeviewer 添加元素

基本上我正在使用Java(org.eclipse.jface.viewers.TreeViewer)中的treeviewer。现在我的问题是,我想将一个子元素/项目添加到现有的结中。

首先,我的树看起来像这样:

这些孩子(child1,child2)不是手动添加的,它们是在我拿到树本身之前生成的。

  1. 我创建树查看器: viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
  2. 我填充了 treeviewer: viewer.setInput(....elements()); 从上面生成状态。

  3. viewer.getTree().getItem(0)返回我的树的正确结 A。

但是我不能在现有的结中添加一个新的孩子。我尝试了以下和其他事情:

TreeItem newItem = new TreeItem(items[0], SWT.NONE); and viewer.add(items[0], newItem); with a newly created item viewer.refresh();

从理论上讲,我可以首先操作填充树查看器的arrayList,但我认为这真的很糟糕。

我真的不知道我现在做错了什么。我想这是一个非常愚蠢的问题。如果是这样,那我很抱歉。^^

感谢您的帮助,我感谢您提供的每一个提示。

0 投票
1 回答
609 浏览

java - 如何在 Treeviewer 中展开对象?

我正在尝试了解 Java 树视图。我使用以下教程创建了一个 Treeviewer:

http://www.eclipse.org/articles/Article-TreeViewer/TreeViewerArticle.htm

现在我有一个我无法解决的问题:/

我想用另一个对象扩展书籍对象。

例如:

如何将对象添加到对象?

非常感谢你

这是代码:

内容提供商:

这是带有输入的查看器:

我想为例如添加一个对象。CCId 到测试包。

谢谢。

0 投票
2 回答
375 浏览

java - Eclipse,在项目资源管理器视图中拥有带有文件属性的 TreeViewer

我正在编写 Eclipse 插件。许多功能之一是创建具有文件属性的树,例如.java文件(如果您在 Eclipse 中单击 .java 文件,您可以看到包含该文件具有哪些类或方法的整个列表)。

我可以用单独的视图创建这棵树,这没问题(我有数据,使用 TreeViewer,一切都很好),但现在我必须在 Project Explorer View 中创建这棵树,我不知道如何。
也许我应该写,因为它不明显。此树不会与 .java 文件一起显示,而是与.txt文件一起显示。

所以阅读这个。我现在所知道的:

  1. 我应该有org.eclipse.ui.decorators扩展点。这东西我已经有了
  2. 我的课程应该扩展 LabelProvider 实现 ILightweightLabelDecorator。它已经有了

我也可以访问已经选择的 File 、 Project 、 Folder (通过使用decorate()方法)。我可以将前缀/后缀添加到已经选择的文件中,将图标添加到文件中但是......

我没有看到任何方法让我有可能将任何属性添加到 file