Eclipse Scout(重新)激活SWT客户端中的表单

时间:2015-10-01 10:47:16

标签: java forms tabs swt eclipse-scout

还有一个新的Eclipse Scout问题:

在我的Scout应用程序中,它大致基于模板"大纲树和表格形式"我设法通过点击节点添加(搜索)表单的新实例。我的表单显示属性配置如下:

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

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

我对此实现的问题是:

  1. 只能在RAP客户端中重新激活选项卡。对于RAP客户端,只需调用表单的activate()方法即可重新激活并聚焦相应的选项卡。 另一方面,SWT客户端(我依赖它)似乎并不关心activate()调用,因此不会重新激活页面。 因此,我正在寻找一种安全简便的方法来说服SWT渲染器
    1. 最好不使用Scout TabField将表单彼此相邻。如上所述,这已经有效,但我不确定这是否是推荐方式。
    2. 重新激活NodeClick上的选项卡,因为RAP客户端已经
  2. 单击关闭选项卡的选项卡(SWT中的X按钮,RAP -.-中没有按钮)或其他任何内容时接收事件。我认为这个问题有点广泛,因为Scout中的一个普遍问题是进入特定于产品的过程,这些过程不属于Scout的抽象编程模型。尽管如此,如果不调整特定的渲染产品,最好将这些事件和其他事件从全局客户端处理出来。
  3. 我的程序用户界面的屏幕截图,可让您更轻松地遵循: Screenshot of the Scout application

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

    我使用的是Scout Version 5.0

1 个答案:

答案 0 :(得分:0)

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

对于SWT,我们依赖Eclipse平台提供的工作台。这定义了视图堆栈中视图的打开和制表方式。

对我来说,这样使用scout(SWT渲染器)是好的。这是一个例子:

Form opened as view

ComplexForm作为已打开表单旁边的SWT视图打开。

我很惊讶听到侦察员表格上的activate()不适合你。我有一个类似的问题,提出Bug 433010我们决定关闭它,完全是因为activate()方法是解决方案。

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

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

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

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