【问题标题】:Restore only few views in Eclipse RCP saveAndRestore在 Eclipse RCP saveAndRestore 中仅恢复少数视图
【发布时间】:2013-11-10 20:39:06
【问题描述】:

我们有一个内部 Eclipse RCP 应用程序,它只有视图,没有编辑器。

我们在 WorkBenchAdvisor 中使用 Eclipse saveAndRestore API 来保存和恢复工作台状态。它按预期工作。

我们根据用户权限控制视图的显示。

假设应用程序有 2 个用户;经理和员工。如果经理登录,将显示所有视图,如果员工登录,则某些视图将被禁止。到目前为止一切顺利。

假设经理登录并打开他的所有视图并关闭应用程序。一名员工现在在同一台机器上登录。现在的问题是,由于eclipse恢复了工作台状态,员工没有权限的视图也被恢复了。

是否有 eclipse 提供的占位符,我们可以在其中检查用户对恢复视图的权限,而不是相应地显示这些?

请告知如何解决这个问题。

使用 WorkBenchAdvisor 中打开的登录对话框完成用户身份验证。

使用的 Eclipse 版本:3.7

感谢您的帮助。

谢谢

【问题讨论】:

    标签: java eclipse eclipse-rcp rcp


    【解决方案1】:

    当您将视图状态持久化到备忘录中时,请存储一些关于谁可以看到该视图的附加信息。在您的视图中覆盖saveState(IMemento memento)。之后,您可以在加载所有内容后强制关闭不相关的视图(查看WorkbenchWindowAdvisor 中的方法)。

    另一种可能性是在您的视图的init 方法中抛出PartInitException。这仍然会打开带有错误消息的视图,而不是内容。

    【讨论】:

      【解决方案2】:

      org.eclipse.ui.views 扩展点的view 定义中有一个restorable 标志。这允许您说视图在启动期间永远不应该被恢复。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-02
        • 1970-01-01
        • 1970-01-01
        • 2012-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多