smartGwt关闭clickHandler

时间:2014-04-20 08:50:31

标签: java gwt tabs smartgwt

我在使用smartGWT CloseClickHandler时遇到了问题,我将其添加到选项卡中,它运行良好,但我的问题是,它删除了标签,然后才能对事件做任何事情,什么我想要能够显示一个确认窗口,以便用户可以确定他想关闭标签, 所以有任何处理程序可以在删除或隐藏选项卡之前执行我的代码或者有没有办法使用选项卡CloseClickHandler来处理这种情况?

我的代码是:

    tabSet = new TabSet();
    tabSet .setWidth100();
    tabSet .setOverflow(Overflow.HIDDEN);
    tabSet .setTabBarThickness(23);
    tabSet .setHeight(23);
    tabSet .setBackgroundColor("#e1dfdf");
    tabSet .setCanCloseTabs(true);
    tabSet .setCloseTabIcon("icons/close_icon.png");
    tabSet .setCloseTabIconSize(12);
    tabSet .addCloseClickHandler(new CloseClickHandler() { 

        public void onCloseClick(TabCloseClickEvent event) {

            final int tabIndex = ((MyTab)event.getTab()).getId();

            final MyTab = (MyTab)tabSet.getTab(tabIndex);
            int tabId = tab.getTabId();
            int tabType = getType();
            presenter.removeBasket(tabId, tabType);

        }
    });

1 个答案:

答案 0 :(得分:1)

试试这个。

首先取消TabCloseClickEvent,然后做你想做的任何事情。

tabSet.addCloseClickHandler(new com.smartgwt.client.widgets.tab.events.CloseClickHandler() {

    @Override
    public void onCloseClick(TabCloseClickEvent event) {
        event.cancel();

        final Tab tab = event.getTab();

        SC.confirm("Are you sure? You want to delete " + tab.getTitle()+" tab.",
                new BooleanCallback() {

                    @Override
                    public void execute(Boolean value) {
                        if (value != null && value) {
                            tabSet.removeTab(tab);
                        }

                    }
                });

    }
});