java - 如何以编程方式刷新 Eclipse View 或 RSE 文件子系统?

标签 java eclipse-plugin eclipse-rcp eclipse-rse

如何以编程方式更新 Eclipse View ? (我想这可能不需要特定于 RSE?)。

背景:我使用 Remote System Explorer (RSE)对于 Eclipse,通过 SSH 执行远程命令来做一些事情,这会在远程主机上创建新文件。我意识到远程系统 View 中的 SFTP 文件列表不会自动更新以显示新创建的文件。

到目前为止,我已经设法获得了相关的观点,如下所示:

IWorkbench workbench = PlatformUI.getWorkbench();
IViewRegistry viewReg = workbench.getViewRegistry();
IViewDescriptor[] views = viewReg.getViews();
for (IViewDescriptor view : views) {
  String viewID = view.getId();
    System.out.println("View ID: " + viewID);
    if (viewID.equals("org.eclipse.rse.ui.view.systemView")) {
      // Do something with the view here
    }
}

...为了可能做一些特定于 RSE 的事情,我尝试获取 RemoteFileSubSystem:
IRemoteFileSubSystem rfss = RemoteFileUtility.getFileSubSystem(HPCUtils.getApplication().getHPCHost());

...但无论是在 ViewDescriptor 对象还是 FileSubSystem 中,我都找到了刷新 View 或文件子系统的任何方法。我错过了什么?

最佳答案

您是否希望刷新您构建的容器? IOW,您编写的一个扩展了 org.eclipse.rse.core.subsystems.AbstractResource 的类?

如果是这样,试试这个代码......

ISystemRegistry registry = SystemStartHere.getSystemRegistry();

SystemResourceChangeEvent event = new SystemResourceChangeEvent(this, 
    ISystemResourceChangeEvents.EVENT_REFRESH, yoursubsystem);

registry.fireEvent(event);

如果您不在自己的资源容器中,但知道资源容器的对象,请替换 thisSystemResourceChangeEvent与对象的构造。

关于java - 如何以编程方式刷新 Eclipse View 或 RSE 文件子系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7039349/

相关文章:

java - 如何同时管理多个版本的类?

java - 如何在 Eclipse RCP 中的 View 之间进行通信?

debugging - 如何调试eclipse插件的启动?

python - Pydev 没有字符串参数的悬停文本

eclipse - 哪种函数式编程语言在 Eclipse 中提供最好的支持?

java - 按部分从 cassandra 获取数据

java - 我在哪里可以下载 mp3plugin.jar 以用 Java 代码播放 MP3?

Java - 帮助我理解从子类访问 protected 成员(再次)

eclipse - Eclipse 2.0 插件升级工具

java - eclipse插件启动后立即调用方法