从其他 class 内部触发 GWT class' 方法

Trigger GWT class' method from inside other class

我有一个 GWT 页面,其中包含许多不同的字段,用户需要填写这些字段。当用户完成表单填写后,他们可以单击此页面上的按钮,这将打开一个 PopupPanel,其中包含他们输入内容的摘要。如果用户确定他们输入的所有数据都是正确的,他们可以选择单击此 PopupPanel 上的 "OK" 按钮。我想要实现的是,当用户单击确定时,PopupPanel 关闭并触发初始 class 中的方法(并使用初始 class' 变量)。由于某些限制,我无法使用 EventBus。

在我最初的 class 中,我有这个点击处理程序:

buttonAnle.addClickHandler(new ClickHandler()
    {

        @Override
        public void onClick(ClickEvent event)
        {

            if ( validateTimespan(subs) && validateSubumfeldTimespan(subs) )
            {
                summary();
            }

        }
    });

方法 summary() 显示弹出面板:

    private void summary()
{
    int subumfelderNr = subs.getRowCount();
    int werbeformenNr = kats.getRowCount();
    int days = (int) (datumBis.getValue().getTime() - datumVon.getValue().getTime()) / 86400000;
    new SubprogramPopup(umfeldText.getTextBoxText(), subumfelderNr - 1, werbeformenNr - 1, days + 1).show();

}

弹出窗口出现,现在我需要一种方法让单击“确定”按钮来触发我初始 class 中的方法。任何帮助将不胜感激。

一种可能的解决方案是在 SubprogramPopup 中使用界面。将此代码添加到 SubprogramPopup class:

interface MyHandler {
    void doSomething();
}

并将 MyHandler 作为另一个参数添加到 SubprogramPopup 的构造函数中。

SubprogramPopup(Textbox textbox,
                int value01,
                int value02,
                int value03,
                MyHandler handler) {}

现在,如果您正在创建 SubprogramPopup,您可以使用处理程序添加一些东西,如果需要的话应该执行这些东西。

new SubprogramPopup(umfeldText.getTextBoxText(),
                    subumfelderNr - 1,
                    werbeformenNr - 1,
                    days + 1,
                    new MyHandler() {
                      public void doSomething() {
                        // enter your code here ... 
                      }
                    }).show();