如何在Gwt中插入或删除TabLayoutPanel时触发事件?

时间:2013-10-08 12:01:33

标签: gwt uibinder gwtp

我有一个TabLayoutPanel。一开始,TabLayoutPanel没有Tab。用户可以尽可能多地添加标签。他们还可以删除所有标签。

我的要求是:

每当TabLayoutPanel至少有一个标签时,我想设置button enabled = true。如果没有制表符,则设置按钮enabled = false。

       getView().getMainTabLayoutPanel().addAttachHandler(new AttachEvent.Handler(){

            @Override
            public void onAttachOrDetach(AttachEvent event) {

                int currentSelectedTabInt=getView().getMainTabLayoutPanel().getSelectedIndex();
                if(currentSelectedTabInt>-1){
                    getView().getMyButton().setEnabled(true);

                }
            }

        });

上述代码不起作用。

那么无论何时插入标签或从Gwt中的TabLayoutPanel中删除标签,如何触发事件?

2 个答案:

答案 0 :(得分:1)

您可以在处理程序中设置按钮enabled = true或false,其中您将侦听按钮事件 AddTabButton RemoveTabButton 。您必须检查可见/存在的标签数量。

myTabLayoutPanel.getWidgetCount(); //Returns the number of tabs and widgets.

答案 1 :(得分:0)

您可以创建TabLayoutPanel的子类并覆盖doAttachChildrendoDetachChildren。您捕获的事件属于选项卡面板本身的附加/分离,而不是其子项。