Заполнение панели TabSetRef.
//---
for(SomeObject tabConfig : batchConfigurationTabList){
PanelTab panelTab = new PanelTab();
// Setting appropriate values in panelTab
panelTabSetRef.getChildren().add(panelTab);
}
//---
Извлечение компонента PanelTab из PanelTabSet и соответствующая его обработка.
List<UIComponent> panelTabs= panelTabSetRef.getChildren();
// Selecting tab to set focus
PanelTab focusTab = (PanelTab) panelTabs.get(tabSelectedIndex);
String tabId = focusTab.getId();
//---
Фокус можно установить на выбранной вкладке, как показано ниже, используя Java Script.
JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "someJSMethodToSetFocus('someForm:"+tabId+"');");
Индекс вне связанного исключения повышен, потому что панель не была заполнена и выбирает дочерние элементы из нее. Придавать значение непосредственно как
<ice:panelTabSet value="#{viewBatchBean.batch.batchConfigurationTabList}"/>
заполняется, когда страница отображается соответственно. Так что вручную заполняем панель TabSetRef.
В более новой версии IceFaces атрибут tabIndex был добавлен в panelTabSet.