我正在开发一个 eclipse 插件,它通过扩展 XMLMultiPageEditorPart
使用自定义 XMLMultiPageEditor
和通过扩展 XMLTableTreeViewer 使用
第二个也实现了 XMLTableTreeView
IResourceChangeListener
。
我在 eclipse-mars 和 eclipse-neon 中提供了这个插件,但是有线行为只出现在 eclipse-neon 中。
到目前为止,编辑器工作正常,唯一的问题是,当用它打开相关的 xml 文档时, TreeView 完全空白:
我什至可以在源 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/