2

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

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

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

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

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

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

请告知如何解决此问题。

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

使用的 Eclipse 版本:3.7

感谢你的帮助。

谢谢

4

2 回答 2

2

扩展点的定义中有一个restorable标志。这使您可以说在启动期间永远不应该恢复视图。vieworg.eclipse.ui.views

于 2013-10-31T09:43:46.293 回答
2

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

另一种可能性是加入您的观点PartInitExceptioninit方法。这仍然会打开带有错误消息的视图,而不是内容。

于 2013-10-31T07:58:13.607 回答