使用GWT的TabLayoutPanel在选项卡旁边添加任意文本

时间:2011-05-23 20:15:33

标签: gwt gwt-tablayoutpanel gwt-widgets

目前,我有一个带有几个标签的TabLayoutPanel,每个标签内部都有一组面包屑。我希望能够在选项卡旁边显示我的面包屑(在TabBar本身内)。我还没有看到任何人做过这样的事情,我开始相信我最终可能会自己重写他们的TabLayoutPanel课程并在需要的地方实施,但显然我宁愿不去那条路线,除非别无选择

有人对此有任何指导吗?

1 个答案:

答案 0 :(得分:1)

刚遇到同样的问题。以下是大部分相关代码片段。选中选项卡时添加了Unicode箭头,并在取消选中选项卡时将其删除。

    private final String htmlStr ="\u25bb";

        private String getTabTitle(String html){
        // Designed to work for this example input.
        //If you pass a different string you will need to do different matching.
        if(html.indexOf("\u25bb") < 0)
            return html;
        else
            return html.substring(html.indexOf("\u25bb")+1);
    }


    @Override
 public void onBeforeSelection(BeforeSelectionEvent<Integer> event) {
        if(!getSelectedIndex().equals(event.getItem())) {
            notifyCurrentTabOfClosing();
            selectedIndex = event.getItem();
            String tabtitle = getTabTitle(getTabBar().getTabHTML(selectedIndex));
            getTabBar().setTabHTML(selectedIndex, htmlStr+tabtitle);
            }
        }
    }

public void selectTab(Widget widget) {
        int widgetIndex = getWidgetIndex(widget);
        selectTab(widgetIndex);
        String tabtitle = getTabTitle(getTabBar().getTabHTML(widgetIndex));
        getTabBar().setTabHTML(widgetIndex, htmlStr+tabtitle);
    }