Расширение стандартной панели с табами

Рейтинг: 1Ответов: 1Опубликовано: 16.03.2011

У меня имеется стандартная панель с табами (DecoratedTabPanel). Задача сводится к тому, чтобы добавить несколько кнопок в панель, а именно в ее верхнюю часть, там где находятся заголовки табов. Посмотрел все методы, стандартного способа не нашел.

Если посмотреть код страницы, кнопки должны находиться в диве с классом "gwt-TabBarRest".

Возможно ли так разместить кнопки или надо делать свою панель табов?

Ответы

▲ 3Принят

Не думаю, что это самое лучшее решение, но оно работать будет

Нам необходимо найти элемент с классом "gwt-TabBarRest"

private Element getRestBar(Element current){
    if (current == null)
        return null;

    if (current.getClassName().equals("gwt-TabBarRest"))
        return current;

    Element child = current.getFirstChildElement();
    while(child != null){
        Element tmp = getRestBar(child);
        if(tmp != null)
            return tmp;

        child = child.getNextSiblingElement();
    }
    return null;
}

Для добавления панельки с кнопками делаем так:

Element element = getRestBar(getTabBar().getElement());
if (element != null)
    element .appendChild(addPanel.getElement());

Сначала идея с поиском по классу показалось слишком большим хаком, потом подумав, что стандартные элементы мы стилизируем по классам, вроде кажется и ничего.