使用 Nebula 的 Eclipse RCP - 在多个编辑器页面上循环拍摄快照的动作

问题描述 投票:0回答:0

我有一个 Java - Eclipse RCP 应用程序。 编辑器有几个页面,其中一些包含 nebula.XYGraph 图表。 工具栏有一个动作,它循环遍历这些页面以拍摄每个图形的快照。 在循环中,我检索页面,使用 editor.setActivePage(页面索引)以便显示/刷新页面,然后调用 page.doSnapshot()。

然而,出现了几个问题:

  • setActivePage()不显示页面,即用户看不到页面一个接一个的切换。就像 Action 的运行锁定/冻结 Editor UI,当到达循环结束时,最终只显示最后一页。
  • 由于图表尚未显示,它们的某些组件(例如注释)未正确显示/定位。所以生成的快照是不正确的。仅当用户自己在执行操作之前已经打开该页面一次时,图表才是正确的。

我试过:

  • 修改循环中函数调用的顺序
  • 使用 Thread.sleep() 让页面有更多时间显示
  • 使用作业的操作,因此一次管理一个页面
  • 在执行 editor.addPage() 时使用 editor.setActivePage(),因此页面在创建时应显示一次(但随着页面再次循环添加,UI 中不会刷新/切换页面)
  • 设置图形的注释位置,以及对 XYGraph 的其他操作。 什么都没用...
user-interface eclipse-rcp nebula
© www.soinside.com 2019 - 2024. All rights reserved.