Dynamic extendedDataTable
trigun Mar 16, 2012 10:57 AMHi,
i try to create a extendedDataTable from a Bean, Working on IBM WAS 7 and Richfaces 3.3.3 Final:
my .xhtml looks like this:
<h:form id="tcForm"> <h:panelGroup id="panelTestTbl" binding="#{testCaseTable.dataTableGroup }" /> <rich:contextMenu id="ctxMenu" binding="#{testCaseTable.ctxMenu }" > </rich:contextMenu> </h:form>
my Bean:
public class TestCaseTable { private UIExtendedDataTable custumExtDataTbl; private HtmlPanelGroup dataTableGroup; // Placeholder. // Getters ----------------------------------------------------------------------------------- public HtmlPanelGroup getDataTableGroup() { // This will be called once in the first RESTORE VIEW phase. if (dataTableGroup == null) { populateDataTable(); // Populate datatable. } return dataTableGroup; } // Setters ----------------------------------------------------------------------------------- public void setDataTableGroup(HtmlPanelGroup dataTableGroup) { this.dataTableGroup = dataTableGroup; } public void populateDataTable() { ExpressionFactory elFactory = FacesContext.getCurrentInstance().getApplication().getExpressionFactory(); ELContext elContext = FacesContext.getCurrentInstance().getELContext(); Application app = FacesContext.getCurrentInstance().getApplication(); /* Create the HtmlExtendedDataTable */ custumExtDataTbl = (UIExtendedDataTable) app.createComponent(UIExtendedDataTable.COMPONENT_TYPE); custumExtDataTbl.setValueExpression("selection", elFactory.createValueExpression(elContext, "#{testCaseTable.selection}", Selection.class)); custumExtDataTbl.setValueExpression("value", elFactory.createValueExpression(elContext, "#{testCaseTable.parentTestCases}", ArrayList.class)); custumExtDataTbl.setVar("testCase"); custumExtDataTbl.setRows(25); custumExtDataTbl.setId("customTestTbl"); /* Create the columns */ UIColumn namCol = (UIColumn) app.createComponent(UIColumn.COMPONENT_TYPE); custumExtDataTbl.getChildren().add(namCol); HtmlOutputText idHeader = new HtmlOutputText(); idHeader.setValue("NAME"); idHeader.setId("nameHead"); namCol.setHeader(idHeader); namCol.setId("colName"); HtmlOutputText idOutput = new HtmlOutputText(); idOutput.setValueExpression("value", elFactory.createValueExpression(elContext, "#{testCase.name}", String.class)); idOutput.setId("colNameTxt"); namCol.getChildren().add(idOutput); // Finally add the datatable to <h:panelGroup binding="#{myBean.dataTableGroup}">. dataTableGroup = new HtmlPanelGroup(); dataTableGroup.getChildren().add(custumExtDataTbl); }
I get no errors, but my Table did noch show some Data. Even the header is not displayed. Only the borders of the Table.
Any ideas ? Thank you