【问题标题】:Eclipse Scout Neon Message box triggered on server sideEclipse Scout Neon 消息框在服务器端触发
【发布时间】:2023-03-18 14:32:01
【问题描述】:

我想知道是否有办法在服务器端触发消息框。

我的情况是我在侦察应用程序的服务器端有一些逻辑。在这个过程的中间,需要做出一些决定。在这种情况下,我想触发带有 YES、NO、CANCEL 选项的消息框。

我的逻辑工作方式很难将其拆分为两个函数,先调用一个,然后提问,然后再调用另一个函数。所以这对我来说是不合适的。

如果无法在侦察服务上触发消息框,有没有办法“模仿”它。所以调用服务方法,中间暂停,去客户端,显示消息框,返回相同的服务方法并继续。

我为什么需要这个:

我在 scout 服务器端实现了依赖关系图(字段之间)。 更改一个字段后,将解析整个依赖关系图。 图的一个节点有一些需要用户交互的逻辑。问题是我不知道这个方法是否会被调用(依赖于一个图),以及在这个方法之后是否会调用其他节点。

【问题讨论】:

    标签: server messagebox eclipse-scout


    【解决方案1】:

    几个月前你问过一个非常相似的问题: Scout Eclipse present optional message on server side

    MessageBox 是一个客户端概念(包是:org.eclipse.scout.rt.client.ui.messagebox)。

    你需要将你需要的数据从服务端传送到客户端,并在客户端截取这些信息,以显示你想要的消息框。

    【讨论】:

      【解决方案2】:

      正如 Jmini 已经说过的,MessageBox 是一个客户端概念。您可以做的是发回一个状态(从服务器到客户端),在客户端检查它并显示适当的消息(框)。但是随后你中断了你的服务方法并且不能继续它停止的地方(或者你可以抛出一个 VetoException,但这也会中断你的服务方法,所以同样的问题)。在我看来,从服务器端“请求”用户交互也不是一个好的设计,因为在这种情况下,服务器端必须等待用户响应。
      我建议,如果可能的话,将你的逻辑分成不同的部分。首先,您执行第一部分,直到您到达需要用户交互的地步。然后你可以保存当前的执行状态,返回客户端并显示消息。用户响应后,您应该根据用户的输入开始“第二次”执行。第二次执行应该通过调用另一个(新)服务来启动,该服务首先应该加载或恢复在请求用户输入之前保存的执行状态。

      【讨论】:

        猜你喜欢
        • 2016-07-08
        • 1970-01-01
        • 2016-07-28
        • 1970-01-01
        • 2016-06-01
        • 2016-06-29
        • 1970-01-01
        • 2016-04-24
        • 1970-01-01
        相关资源
        最近更新 更多