JSF icefaces中的选项卡选择问题

时间:2010-11-29 06:56:46

标签: java jsf icefaces

我有一个标签集如下所示,我希望在java中使用绑定选择动态标签。

<ice:panelTabSet var="currentTab" partialSubmit="true"  selectedIndex="#{viewBatchBean.tabSelectedIndex}"
            value="#{viewBatchBean.batch.batchConfigurationTabList}"
            tabChangeListener="#{viewBatchBean.showDefaultValueForTab}"
            binding="#{viewBatchBean.panelTabSetRef}">

这里我设置标签索引如下..

  panelTabSetRef.setSelectedIndex(0);

它按照给定的索引设置标签,但没有设置焦点。

1 个答案:

答案 0 :(得分:0)

填充panelTabSetRef。

//---

for(SomeObject tabConfig : batchConfigurationTabList){
   PanelTab panelTab = new PanelTab();
   // Setting appropriate values in panelTab
   panelTabSetRef.getChildren().add(panelTab);
}

//---

从PanelTabSet&amp;获取PanelTab组件。相应地处理它。

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+"');");

引发索引超出范围的异常,因为该面板尚未填充&am​​p;从中取出孩子。直接给予价值 <ice:panelTabSet value="#{viewBatchBean.batch.batchConfigurationTabList}"/> 在相应呈现页面时填充。所以手动填充panelTabSetRef。

在较新的IceFaces版本中,tabIndex属性已添加到panelTabSet。