Как убить вкладку на панели вкладок

Я создал панель вкладок, в которую можно добавить дополнительные вкладки, нажав кнопку.

Я не могу понять, как удалить вкладку, которая не была добавлена ​​последней.

Вот где я ....

TabPanel tp = new TabPanel (); HorizontalPanel tabPanel = new HorizontalPanel (); Метка textLabel = новая метка ("Некоторое имя файла"); Кнопка killButton = новая кнопка ("x");

tabPanel.add (текстовая метка); tabPanel.add (killButton);

tp.add (new HTML ("Some Content"), tabPanel); // Тело и заголовок

killButton.addClickHandler (новый ClickHandler () {public void onClick (событие ClickEvent) {

  //Decide the Tab index that contains this button
  //Remove this tab based on index

}}); // Конец метода addClickHandler

Когда я пытаюсь использовать метод getWidgetIndex () для возврата индекса определенной вкладки, я каждый раз получаю -1.

Как правильно вернуть индекс вкладки?

пожалуйста, помогите, я схожу с ума !!!

:-(


gwt
person user193867    schedule 27.10.2009    source источник


Ответы (2)


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

final TabPanel tp = new TabPanel();
final HTML someContent1 = new HTML("Page A");
...
public void onClick(ClickEvent event){
  tp.remove(someContent1);
  // or just remove the tab it self
  //tp.getTabBar().removeTab(0);
}

NingZhang.info

person Ning120    schedule 28.10.2009

getWidgetIndex в качестве аргумента требуется виджет содержимого вместо виджета вкладки. Так, например, в вашем случае это будет виджет, созданный с помощью new HTML("Some Content").

person Hilbrand Bouwkamp    schedule 27.10.2009