【问题标题】:Save perspective containing multiple instances of the same view保存包含同一视图的多个实例的透视图
【发布时间】:2016-01-28 22:56:37
【问题描述】:

我对情况的理解:

有两种方法可以在 Eclipse 中保持视图状态:

  • 纪念品:这些在工作台关闭时保存并在打开时恢复
  • IDialogSettings:可以随意保存和恢复

PackageExplorerPart 在 Eclipse 中用于(例如)将资源管理器中的文件链接到编辑器。

我有多个具有不同状态的同一个视图实例,我想将它们保存在一个透视图中。如果我使用 mementos 保存,关闭和打开 Eclipse 将正确恢复状态。

如果我用 File | 打开一个新窗口新窗口,我保存的透视图不向视图提供纪念品或辅助 ID,因此它们无法恢复。

有没有办法保存这些视图的状态,以便正确恢复透视图?

【问题讨论】:

    标签: java eclipse-rcp


    【解决方案1】:

    虽然从技术上讲 DialogSettings 可用于保持视图状态,但因此只有传递给 saveState()init() 的纪念品是有意义的。

    不知道为什么包浏览器会这样做双重记账。可能会有原因,但我没有必要这样做。

    New Window 创建一个新视图,因此没有什么可以恢复的。如果您在打开两个窗口的情况下重新启动 Eclipse,这两个窗口以及其中的视图都将被恢复。

    如果您想恢复具有相同类型的另一个视图的状态的新视图,则必须自己进行(不支持工作台)。

    例如,您可以将传递给saveState() 的备忘录存储在一个众所周知的位置,并在要打开新视图时加载此状态。

    【讨论】:

    • 目的是保存和恢复包含这些视图的透视图。创建新视图时,我不知道它在透视图中的位置,所以我不知道要重新加载哪个状态。
    • 所以您想要在打开新窗口时获得当前透视图的精确副本?
    • 不完全是。我希望能够将安排保存为透视图。如果您在 Eclipse 中打开一个新窗口,它会给您一个“重置”版本的任何透视图。这就是我想要的,但我希望能够在该透视图中保存视图的内容。
    • 对不起,我不明白:“但我想保存视图的内容......” -> 这就是 saveState() 的用途。如果同一个视图有多个实例,用getViewSite().getSecondaryId()区分。
    • 当新窗口创建这些视图时,既不提供纪念品也不提供辅助ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多