从其他类内部触发GWT类的方法

时间:2016-11-08 09:03:20

标签: java gwt

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

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

buttonAnle.addClickHandler(new ClickHandler()
    {

        @Override
        public void onClick(ClickEvent event)
        {

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

        }
    });

方法摘要()显示了popuppanel:

    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();

}

弹出窗口出现,现在我需要一种方法让OK按钮单击以触发我初始课程中的方法。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是使用SubprogramPopup中的接口。将此代码添加到SubprogramPopup类:

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();