【问题标题】:Eclipse Scout (re-)activate Form in SWT ClientEclipse Scout(重新)激活 SWT 客户端中的表单
【发布时间】:2015-12-29 09:25:11
【问题描述】:

我提出了一个新的 Eclipse Scout 问题:

在大致基于模板“大纲树和表格表单”的 Scout 应用程序中,我设法通过单击节点来添加(搜索)表单的新实例。我的表单的显示属性是这样配置的:

  @Override
  protected int getConfiguredDisplayHint() { return DISPLAY_HINT_VIEW; }    
  @Override
  protected String getConfiguredDisplayViewId() { return VIEW_ID_PAGE_DETAIL; }

我没有使用内置方法(例如 setDetailForm(IForm form))将表单添加到页面,但我将它们设置为页面的新属性并通过它们的 FormHandler 启动它们。通过这种方式,我实现了 Scout 渲染器将表单彼此相邻,这正是我想要的。将它们作为表单添加到页面会导致渲染器在激活页面时关闭其他表单,因此一次只显示一个表单。

我对这个实现的问题是:

  1. 只能在 RAP 客户端中重新激活选项卡。对于 RAP 客户端,只需调用表单的 activate() 方法即可重新激活并聚焦相应的选项卡。 另一方面,SWT 客户端(我依赖它)似乎根本不关心 activate() 调用,因此不会重新激活页面。 所以我正在寻找一种安全简单的方法来说服 SWT 渲染器
    1. 最好在不使用 Scout TabField 的情况下将表单彼此相邻。如上所述,这已经有效,但我不确定这是否是推荐的方式。
    2. 像 RAP 客户端一样重新激活 NodeClick 上的选项卡
  2. 单击关闭选项卡的选项卡时接收事件(SWT 中的 X 按钮,RAP 中的无按钮 -.-),或其他。我认为这个问题有点宽泛,因为进入特定于产品的流程是 Scout 中的一个普遍问题,而这些流程不属于 Scout 的抽象编程模型的一部分。不过,最好在不调整特定渲染产品的情况下从全球客户端处理这些事件和其他事件。

我的程序 UI 的屏幕截图,以使事情更容易理解:

在屏幕截图中,第五个表单被激活为视图,左侧大纲树中的相应节点也被标记。如您所见,添加了多个表单,它们都属于大纲树中的一个节点。当我单击树中的一个节点时,如果之前没有打开过,我希望激活相应的表单并聚焦它。除此之外,选项卡应保持不变。我不想重新初始化已经存在的表单。


我正在使用 Scout 5.0 版

【问题讨论】:

    标签: java forms tabs swt eclipse-scout


    【解决方案1】:

    RAP UI 更接近 SWING UI 而不是 SWT。这就是为什么在 RAP(类似于 Swing)中无法使用 x 关闭视图的原因。

    对于 SWT,我们依赖 Eclipse 平台提供的工作台。这定义了视图如何在视图堆栈中打开和选项卡。

    对我来说,以这种方式使用 scout(SWT 渲染器)是可以的。举个例子:

    ComplexForm 在已打开的表单旁边以 SWT 视图的形式打开。


    得知球探表格上的activate() 对您不起作用,我感到很惊讶。我遇到了类似的问题,提出了Bug 433010,我们决定关闭它,正是因为activate() 方法是解决方案。

    ComplexForm form = new ComplexForm();
    form.startNew();
    form.activate();
    

    我想在任何事件中(单击菜单或节点上的某处),您都可以在表单实例上调用 activate()

    您使用的是哪个版本的 Scout?

    也许你可以在你的问题中添加一个屏幕截图,因为我错过了你的意思。

    【讨论】:

    • 感谢您的回答。据我所知,你所描述的就是我实际在做的事情。在新表单实例上使用 startNew() 调用 FormHandler 时,似乎不需要 activate() 调用。我只想使用 activate() 来重新激活之前已经启动的表单。也许另一个 FormHandler 可能是关键,但我不确定具体如何。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多