在Eclipse 4中保存透视图布局

时间:2014-11-19 10:23:01

标签: eclipse eclipse-rcp eclipse-luna

我们有一个使用模型片段的纯Eclipse 4应用程序。 启动此应用程序时,将加载default-perspective,并且用户可以登录并选择他想要使用的透视图。在透视图启动期间,将设置相应的数据库凭据。 现在,用户可以在此透视图中工作,甚至可以自定义此透视图的布局。 工作完成后,用户可以通过' X'退出应用程序。在右上角或通过菜单中的命令。

现在用户可以再次启动应用程序,我们可以生成2种不同的状态。首先,如果我们使用-clearPersistetState-Flag,应用程序将以default-perspective开头,但即使是其他透视图中的自定义布局也会重置。 其次,如果我们不使用该标志,则应用程序从最后一个活动透视图开始。由于使用default-perspective启动登录/选择透视图并设置数据库凭据的工作流程,这会导致大量异常(因为未设置DB凭据)。

那么我在寻找什么:我想保存用户制作的透视布局(将一部分从堆栈A移动到堆栈B,......)。在启动时,我想只启动default-perspective并在用户选择后加载其他透视图。

目前我一直坚持这个问题,主要是搜索Eclipse 3.X解决方案,所以我希望有一些想法。

提前致谢, 斯特芬

1 个答案:

答案 0 :(得分:2)

对于Eclipse 3.x,我重写了Perspective/PerspectiveRegistry以添加对save&amp ;;的支持。通过实例(在您的情况下,由用户)而不是 persp_id 恢复透视布局:

  • 保存:在 persp_id 旁边,还包括一个辅助ID,用于标识相同视角的不同实例。
  • 还原:加载与 persp_id 和辅助(实例)ID匹配的透视图。
  • 后备:建议仅使用 persp_id 保存副本。如果匹配的辅助ID失败,您可以随时回退到最新

对于E4 RCP应用程序,Lars Vogel在其文章中提供了足够的信息: Eclipse 4 Model Persistence - Tutorial

我首先从org.eclipse.e4.ui.internal.workbench.ResourceHandler复制实现来创建我自己的ResourceHandler(太难以扩展它):

  • #save():使用实例ID 保存资源(例如,将其包含在输出资源文件名中)。
  • #loadMostRecentModel():使用实例ID 查找资源(文件)。
  • 后备:还保留副本作为后备。