Изменение имени панели вкладок GWT

Я пытаюсь сделать динамическую TabPanel в GWT. Я хочу, чтобы текст в TabPanel менялся в зависимости от того, что пользователь вводит в TextBox. Например, ввод «Tab one» изменит текст вкладки на «Tab one». Однако я не могу найти способ изменить имя вкладки. getTitle() просто возвращает заголовок, а не фактический текст. Кто-нибудь знает как это сделать?

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


person Steven Morad    schedule 27.08.2012    source источник
comment
TabPanel.getTabBar(), а затем TabBar.setTabText()?   -  person onnoweb    schedule 28.08.2012
comment
Идеально! Я искал только TabPanel.setText() или TabPanel.getTabBar().getTab().setText().   -  person Steven Morad    schedule 28.08.2012


Ответы (1)


Что ж, «onnoweb» уже дал правильный ответ, но вот вам демонстрационный пример.

package stefank.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TabLayoutPanel;

public class _02_GWTAnimation implements EntryPoint {

    public void onModuleLoad() {

        // Create a tab panel
        final TabLayoutPanel tabPanel = new TabLayoutPanel(2.5, Unit.EM);
        tabPanel.setHeight("100px");
        tabPanel.setAnimationDuration(1000);
        tabPanel.getElement().getStyle().setMarginBottom(10.0, Unit.PX);

        // Add a home tab
        String[] tabTitles = {"hello", "world"};
        HTML homeText = new HTML("Lorem ipsum");
        tabPanel.add(homeText, tabTitles[0]);


        // Add a tab
        HTML moreInfo = new HTML("Lorem ipsum");
        tabPanel.add(moreInfo, tabTitles[1]);

        // Return the content
        tabPanel.selectTab(0);
        tabPanel.ensureDebugId("cwTabPanel");

        RootPanel.get().add(tabPanel);

        Button changeText = new Button("change Text");
        changeText.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                tabPanel.setTabText(0, "new Title");                
            }
        });
        RootPanel.get().add(changeText);

    }
}
person Stefan    schedule 27.08.2012