Ваадин: Как перебрать вкладки в Таблице? - PullRequest
3 голосов
/ 08 июня 2011

В Vaadin, скажем, я должен найти вкладку в Таблице на основе ее имени.

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

Ответы [ 3 ]

10 голосов
/ 08 июня 2011

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

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
    }
}
3 голосов
/ 08 июня 2011
2 голосов
/ 11 августа 2015

В 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!!!
    }
}

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

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!!!
    }
});
...