Ваадин: Как перебирать вкладки в таблице вкладок?

В Vaadin, скажем, мне нужно найти Tab в TabSheet на основе его имени.

Как выполнить итерацию по вкладкам в Таблице, чтобы выполнить это?

3 ответа

Вы можете повторять вкладки и находить их под заголовком вкладки следующим образом:

Iterator<component> i = tabs.getComponentIterator();
while (i.hasNext()) {
 Component c = (Component) i.next();
 Tab tab = tabs.getTab(c);
 if ("some_caption".equals(tab.getCaption())) {
 // found it
 }
}
</component>


В Vaadin 7.x getComponentIterator() устарел. Поэтому ответ @eeq устарел.

По-новому его решение может выглядеть так:

Iterator<component> iterator = tabSheet.iterator();
while (iterator.hasNext()) {
 Component component = iterator.next();
 TabSheet.Tab tab = tabSheet.getTab(component);
 if ("some tab caption".equals(tab.getCaption())) {
 // Found it!!!
 }
}
</component>

Но поскольку TabSheet реализует java.lang.Iterable, он также может выглядеть так:

for (Component component : tabSheet) {
 TabSheet.Tab tab = tabSheet.getTab(component);
 if ("some tab caption".equals(tab.getCaption())) {
 // Found it!!!
 }
}

Или даже в стиле Java 8:

tabSheet.iterator().forEachRemaining(component -> {
 if ("some".equals(tabSheet.getTab(component).getCaption())) {
 // got it!!!
 }
});

licensed under cc by-sa 3.0 with attribution.