【问题标题】:Why aren't my Resources being refreshed in my Eclipse plugin?为什么我的 Eclipse 插件中的资源没有被刷新?
【发布时间】:2010-10-18 09:14:15
【问题描述】:

我有一个正在开发的自定义 Eclipse 插件。它有一个 CustomerExplorer View(Part),可以有效地替换“Project Explorer”,它有许多 MultiPageEditorPart,每个都有一个 XML 编辑器和一个表单编辑器,它们都修改相同的配置文件。 XML 编辑器是一个 TextEditor。表单和 XML 是链接在一起的,只要有 pageChange(),就会互相更新。

我的问题在于在我的 Eclipse 插件中打开的文件的外部修改。如果我在外部编辑器中编辑文件然后加载它(从 CustomerExplorer 视图),在切换到 XML 选项卡时我会收到消息:

"Resource is out of sync with the file system: '/example/example.xml'.

Press 'F5' or select File > Refresh to refresh the file.

我对使用 Eclipse 的这个错误很熟悉,通常只需按 F5,右键单击有问题的文件并选择刷新或从菜单栏中选择文件 > 刷新通常可以解决它。但是,在这种情况下,F5 什么都不做,文件 > 刷新显示为灰色并右键单击文件(在我的自定义视图中),上下文菜单不包含“刷新”。我尝试打开“项目资源管理器”视图,在上下文菜单中可以使用“刷新”,但这没有任何作用。

通过阅读,我了解到这些资源应该由 eclipse 刷新,但事实并非如此。任何关于为什么的指针?

【问题讨论】:

    标签: java eclipse eclipse-plugin eclipse-rcp


    【解决方案1】:

    很难确切地说出这里发生了什么,但您可能需要明确添加用于刷新资源的操作集到您的自定义视图中。

    【讨论】:

    • 这正是我最终要做的。
    【解决方案2】:

    解决您的问题的另一种方法可能是跟踪文件的更改并在有视图时更新您的视图:

    ResourcesPlugin.getWorkspace().addResourceChangeListener(new MyResourceTracker(), IResourceChangeEvent.POST_CHANGE);
    

    这样的话:

    public class MyResourceTrackerimplements IResourceChangeListener {
        @Override
        public void resourceChanged(final IResourceChangeEvent ev) {
            if (ev.getDelta() != null) {
                try {
                    ev.getDelta().accept(new IResourceDeltaVisitor() {
                        @Override
                        public boolean visit(final IResourceDelta delta)
                                throws CoreException {
                            // TODO do something
                            return true;
                        }
                    });
                } catch (CoreException e) {
                    // TODO
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多