【问题标题】:Open Eclipse View in RCP headless mode?在 RCP 无头模式下打开 Eclipse 视图?
【发布时间】:2014-01-06 02:05:51
【问题描述】:

我有无头 (CLI) RCP 应用程序,通常处理命令行选项,但我偶尔需要显示部分 a gui。 当 PlatformUI/Workbench 没有运行时,有没有办法独立打开视图部件(分离很好)?

WorkbenchPage.showView(我通常用来打开视图的那个)通常会抛出“工作台未运行”异常,这当然是在无头模式下预期的。

是否有一些合理的技巧可以做到这一点?我尝试使用事件循环运行 RCP 工作台 - 问题是它阻塞了执行,而且看起来太重了。

我知道我可以为它创建嵌入视图小部件的新 Shell,但是我会错过正确视图附带的工具栏/菜单。

【问题讨论】:

    标签: java eclipse user-interface swt rcp


    【解决方案1】:

    所有的 UI 代码都完全依赖于工作台的运行。工作台必须以PlatformUI.createandRunWorkbench 启动。因此,如果不这样做,就不可能显示 UI。

    仅使用 SWT 的简单 Shell 似乎是最简单的方法。

    【讨论】:

    • 好的,谢谢。如果我使用普通的 Shell,我想尽可能多地重用视图,例如菜单、工具栏(操作栏)。我想这意味着对视图代码进行一些重构(我拥有它,无论如何这可能是一件好事)。目标是让它看起来像嵌入状态。关于如何最好地做到这一点的任何想法?
    • 只说了 SWT,我认为 JFace 也可以。抱歉,从来没有想过做这样的事情。
    • 嗯,关于 JFace 的好点 - 不确定如何将它用于上述目的,但 ApplicationWindow 看起来很有趣。谢谢
    【解决方案2】:

    排除 R​​CP 的概念,只使用 SWT/JFace 组件。

    构建一些模拟PlatformUI.createandRunWorkbench 的工厂方法。相反,他们将创建Shells 并自己运行事件循环。

    对我来说,如果应用程序变得很大,这似乎有点矫枉过正。它不是那种企业级的,那么我想你可以不用工作台框架。不过要小心悬空的资源。

    【讨论】:

    • 是的,这就是我要得出的结论。我只是希望通过按原样重用视图来减少额外的工作,同时减少管道或重新发明轮子。与此同时,使用 JFace ApplicationWindow 启动并运行它,也使用视图菜单 - 但必须为此重构视图代码..(如果有工具栏/等,我必须单独处理这些,浪费更多时间)。如果我可以插入 ActionBars 的东西,那将是一个很好的折衷方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 2014-07-30
    • 2013-03-02
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    相关资源
    最近更新 更多