Dynamic HtmlScrollableDataTable not showing data
campos Jan 27, 2012 9:27 AMHello guys.
I'm creating a coded HtmlScrollableDataTable, the page appears but my table doesn't show.
Here is the basic structure that I use:
ObjetoComponenteDinamico.java
public class ObjetoComponenteDinamico{
private String codigo;
private String descricao;
public String getCodigo(){
return codigo;
}
public void setCodigo(String codigo){
this.codigo = codigo;
}
public String getDescricao(){
return descricao;
}
public void setDescricao(String descricao){
this.descricao = descricao;
}
}
TesteBean.java
public class TesteBean {
private HtmlPanelGrid renderPanel = new HtmlPanelGrid();
private HtmlScrollableDataTable table = new HtmlScrollableDataTable();
private List<ObjetoComponenteDinamico> list = new ArrayList<ObjetoComponenteDinamico>(0);
private DataModel data = new ListDataModel();
private SimpleSelection selection = new SimpleSelection();
/**
* Construtor padrão da classe
*/
public TesteBean(){
}
public HtmlPanelGrid getRenderPanel() {
doTable();
renderPanel.getChildren().add( table );
return renderPanel;
}
private void doTable() {
table.setId("table");
table.getChildren().clear();
table.setRendererType(HtmlScrollableDataTable.COMPONENT_TYPE);
table.setSortMode(HtmlScrollableDataTable.SORT_MULTI);
table.setSelectionMode(SelectionMode.multi);
table.setRows(10);
table.setSelection(selection);
table.setRowKeyVar("rkv");
table.setWidth("300");
table.setVar("tableVar");
table.setValueExpression("value", GeradorUtil.createValueExpression("#{testeBean.data}"));
HtmlColumn columnCod = new HtmlColumn();
columnCod.setRendererType(HtmlColumn.COMPONENT_TYPE);
columnCod.setId("columnCod");
HtmlColumn columnDesc = new HtmlColumn();
columnDesc.setRendererType(HtmlColumn.COMPONENT_TYPE);
columnDesc.setId("columnDesc");
HtmlOutputText outputCod = new HtmlOutputText();
outputCod.setRendererType(HtmlOutputText.COMPONENT_TYPE);
HtmlOutputText outputDesc = new HtmlOutputText();
outputDesc.setRendererType(HtmlOutputText.COMPONENT_TYPE);
outputCod.setValueExpression( "value", GeradorUtil.createValueExpression( "#{tableVar.codigo}" ) );
outputDesc.setValueExpression( "value", GeradorUtil.createValueExpression( "#{tableVar.descricao}" ) );
columnCod.getChildren().add(outputCod);
columnDesc.getChildren().add(outputDesc);
table.getChildren().add(columnCod);
table.getChildren().add(columnDesc);
}
public DataModel getData() {
list.clear();
for (int i = 0; i < 10; i++) {
ObjetoComponenteDinamico obj = new ObjetoComponenteDinamico();
obj.setCodigo("Cod " + i + " ");
obj.setDescricao("Desc " + i + " ");
list.add(obj);
}
data.setWrappedData(list);
return data;
}
public void setRenderPanel(HtmlPanelGrid renderPanel) {
this.renderPanel = renderPanel;
}
public HtmlScrollableDataTable getTable() {
return table;
}
public void setTable(HtmlScrollableDataTable table) {
this.table = table;
}
public List<ObjetoComponenteDinamico> getList() {
return list;
}
public void setList(List<ObjetoComponenteDinamico> list) {
this.list = list;
}
public SimpleSelection getSelection() {
return selection;
}
public void setSelection(SimpleSelection selection) {
this.selection = selection;
}
public void setData(DataModel data) {
this.data = data;
}
}
XHTML code
<rich:simpleTogglePanel id="togglePanel" label="Teste" switchType="client">
<h:inputHidden id="cod_atividade" value="1357" />
<a4j:form id="formGeradorRelatorio">
<h:panelGrid id="renderPanel" binding="#{testeBean.renderPanel}"/>
</a4j:form>
</rich:simpleTogglePanel>
the result page is in attached image
what am I missing??
any help will be appreciated!
Tanks in advance
-
table.PNG 4.4 KB