java - eclipse XMLMultiPageEditorPart 的扩展 - 手动触发 TreeView 刷新

标签 java xml eclipse treeview eclipse-neon

我正在开发一个 eclipse 插件,它通过扩展 XMLMultiPageEditorPart 使用自定义 XMLMultiPageEditor 和通过扩展 XMLTableTreeViewer 使用 XMLTableTreeView 第二个也实现了 IResourceChangeListener

我在 eclipse-mars 和 eclipse-neon 中提供了这个插件,但是有线行为只出现在 eclipse-neon 中。

到目前为止,编辑器工作正常,唯一的问题是,当用它打开相关的 xml 文档时, TreeView 完全空白:

blank tree view

我什至可以在源 View 中修改文档并保存它...... TreeView 保持空白。

使 TreeView 栩栩如生的唯一事件是:

  • 用鼠标调整编辑器窗口的大小
  • 打开一些其他文档,然后切换回打开的 xml-doc 的选项卡。

在那之后, TreeView 就可以正常工作了。如果我现在更改源 View 中的 xml, TreeView 会立即更新。

关于如何手动触发 TreeView 刷新的任何想法?

这可能是 eclipse-neon 中的错误吗?

最佳答案

好的,问题似乎是,eclipse-neon 中 TreeViewer 的 x/y 大小是用 (0,0) 初始化的。这里有一个 hack 来解决这个问题:

...
public class MyXMLTableTreeViewer extends XMLTableTreeViewer implements IResourceChangeListener{
....

public MyXMLTableTreeViewer(Composite parent, IEditorPart parentEditor)
{
   super(parent);
   ....
   Point size = getControl().getSize();
   size.x = 1000;
   getControl().setSize(size);
}

似乎只将 x 设置为某个值就足够了……10 已经给出了图像,但是“节点”部分看起来有点压抑,所以我选择了 1000。

即使它只是内部 API,对我来说也像是一个错误。因此,如果您有进一步的兴趣,请查看 eclipse bugreport。 .

关于java - eclipse XMLMultiPageEditorPart 的扩展 - 手动触发 TreeView 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44239509/

相关文章:

java - 接口(interface) I 不能用不同的参数多次实现 : I<String> and I<String>

java - 在 NAS 上移动文件时出现 AccessDeniedException

java - 使用 Endless RecyclerView 作为日历

java - Firebase:引用节点上的OrderbyChild,在onDataChange中返回NULL快照

java - 仅通过 XML(无需其他可绘制对象)单击时如何更改按钮的颜色?

javascript - Jquery:读取表行并根据条件向行添加效果

eclipse - 我无法在 Eclipse 中启动 Cassandra Server(未知的 Commitlog 版本 4)

java - openCV:在更大的垫子上滑动时读取子垫子

c# - 您可以在运行时在 XmlRootAttribute 中设置 Namespace 字段吗?

eclipse - 无法在 Eclipse 中禁用方法括号自动完成