Ja tenho meu managedBean, ele ja esta sendo usado, so falta criar os RichDataTables
[code]public class RankingBB extends DataTableModel{
public HtmlPanelGroup dataTableGroup;
/*
* Combo Interface
*/
private Integer valueComboInterface;
private List<Interface> listInterface;
private List<SelectItem> listSelectItemInterface;
/*
* SelectListMany Regional
*/
private List<Regional> listRegional;
private List<SelectItem> listSelectItemRegional;
private List<Integer> listRegionaisSelecionadas;
private final Integer AGRUPAR_REGIONAIS = 1;
private final Integer QUEBRAR_REGIONAIS = 2;
private boolean renderedColunaRegional = true;
private Integer valueSelectOneRegional;
private RankingDTO rankingDTO;
/*
* Combo Ano
*/
private Integer valueComboAno;
private List<String> listAno;
private List<SelectItem> listSelectItemAno;
private Date dataAtual = new Date();
private Integer codAno = 1;
/*
* Combo Mes
*/
private Integer valueComboMes;
private List<String> listMes;
private List<SelectItem> listSelectItemMes;
@PostConstruct
public void init(){
listAno = anosConsulta(dataAtual);
preencheCombos();
listRegional = preencheSelectManyListRegional(getListSelectItemRegional(), getListRegional());
}
@Override
public DataModel getModel() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setModel(DataModel model) {
// TODO Auto-generated method stub
}
}
[/code]
lgweb
Março 8, 2012, 1:22pm
#22
ficaria ± assim:
//Um ejb aki tem que fazer lookup é claro.
private TesteEjb testeEjb;
@Override
public CustomTableVO getCustomTableVO() {
CustomTableVO tb = new CustomTableVO();
tb.setAlign("center");
tb.setColunas(loadCustomColumns());
tb.setRows(10);
tb.setSortMode("single");
tb.setValueExpression("#{mbean.model}");
tb.setVar("item");
return null;
}
@Override
public DataModel getModel() {
return new ListDataModel(testeEjb.listarDados());
}
@Override
public List<CustomColumnsVO> loadCustomColumns() {
CustomColumnsVO colunaId = createColumn("ID", "#{item.id}",Long.class , ComponentType.OUTPUT_TEXT, "", false, "");
CustomColumnsVO colunaNome = createColumn("Nome", "#{item.nome}",String.class , ComponentType.OUTPUT_TEXT, "", false, "");
List<CustomColumnsVO> colunas = new ArrayList<CustomColumnsVO>();
colunas.add(colunaId);
colunas.add(colunaNome);
return colunas;
}
vou ver se acho um exemplo completo aki, faz tempao que fiz isso e nao to lembrando em qual projeto foi.
lgweb
Março 8, 2012, 1:28pm
#23
achei é assim que ta aki:
List<CustomColumnsVO> customTable = new ArrayList<CustomColumnsVO>();
/*
* createColumn(String columnName, String expression, Class<?> columnType,
* ComponentType componentType, String actionListenerMethodBinding, Boolean
* disabled, String onComplete)
*/
public List<CustomColumnsVO> loadCustomColumns() {
boolean disabled = !getMBUnidadeOperacional().getIsEditing();
customTable.add(createColumn("Del.", null, HtmlCommandButton.class,
ComponentType.BUTTON, "#{mbPeriodoOperacao.actionDelete}",
disabled, "Richfaces.showModalPanel('periodoDeletePanel')"));
customTable.add(createColumn("Ref. Inicial",
"#{item.vigencia.dataHoraInicio}", Date.class,
ComponentType.COMMAND_LINK,
"#{mBPeriodoOperacao.actionEdit}", disabled,
"Richfaces.showModalPanel('novoPeriodoPanel')"));
customTable.add(createColumn("Ref. Final",
"#{item.vigencia.dataHoraFim}", Date.class,
ComponentType.OUTPUT_TEXT, "", false, ""));
customTable.add(createColumn("Freqüência de medição",
"#{item.tipoFrequencia}", Enum.class,
ComponentType.OUTPUT_TEXT, "", false, ""));
return customTable;
}
public CustomTableVO getCustomTableVO() {
CustomTableVO customDataTable = new CustomTableVO();
customDataTable.setAlign("center");
customDataTable.setColunas(loadCustomColumns());
customDataTable.setRows(5);
customDataTable.setSortMode("single");
customDataTable.setValueExpression("#{mBPeriodoOperacao.model}");
customDataTable.setVar("item");
return customDataTable;
}
tem como me mostrar agora seu getModel,setModel? E o binding como vc criou o panelGroup? Sei que to encomodando mas e pq nunca fiz isso e to perdido =[
minhas implementações estao assim:
[code]@Override
public DataModel getModel() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setModel(DataModel model) {
// TODO Auto-generated method stub
}
public TableRankingTotalVendas getTable() {
TableRankingTotalVendas tb = new TableRankingTotalVendas();
tb.setColunas(loadCustomColumns());
tb.setRows(10);
tb.setValueExpression("#{rankingBB.model}");
tb.setVar("item");
return tb;
}
public List<ColumnsTableRanking> loadCustomColumns() {
ColumnsTableRanking colunaId = createColumn("ID", "#{item.id}",Long.class , ComponentType.OUTPUT_TEXT, "", false, "");
ColumnsTableRanking colunaNome = createColumn("Nome", "#{item.nome}",String.class , ComponentType.OUTPUT_TEXT, "", false, "");
List<ColumnsTableRanking> colunas = new ArrayList<ColumnsTableRanking>();
colunas.add(colunaId);
colunas.add(colunaNome);
return colunas;
}[/code]
lgweb
Março 8, 2012, 1:43pm
#25
@Override
public DataModel getModel() {
//testeEjb um ejb que faz um select no banco e retorna todos os objetos Usuarios por exemplo
return new ListDataModel(testeEjb.listarUsuarios());
}
@Override
public void setModel(DataModel model) {
this.model = model;
}
e na sua pagina vc coloca <h:panelGroup binding="#{bean.dataTableGroup}" />
bean.dataTableGroup vc criou um public HtmlPanelGroup dataTableGroup no seu bean? So isso? Vou testar aqui
lgweb
Março 8, 2012, 3:02pm
#27
è so isso msm, teste ai e poste o resultado.
Vou testar amanha no meu serviço, so uma pergunta, nao preciso setar nada para o dataTableGroup? Pq no bean nao estou fazendo nda com ele.
E quem vai chamar meus metodo getTable()?
Fazendo os testes aqui nao ta dando erro, só que a table nao aparece na pagina, sera pq?
Criei um método so pra teste:
[code]public void createDataTable(){
HtmlColumn colum = new HtmlColumn();
HtmlOutputText header = new HtmlOutputText();
header.setValue("Produto");
colum.setHeader(header);
HtmlColumn columDois = new HtmlColumn();
HtmlOutputText headerDois = new HtmlOutputText();
header.setValue("Regional");
colum.setHeader(headerDois);
HtmlOutputText textUm = new HtmlOutputText();
textUm.setValueExpression("value", createValueExpression("#{item.produto.dsProduto}", String.class));
textUm.setValue("#{item.produto.dsProduto}");
HtmlOutputText textDois = new HtmlOutputText();
textUm.setValueExpression("value", createValueExpression("#{item.regional.dsRegional}", String.class));
textUm.setValue("#{item.regional.dsRegional}");
colum.getChildren().add(textUm);
columDois.getChildren().add(textDois);
getDataTable().getChildren().add(colum);
getDataTable().getChildren().add(columDois);
List<RankingProduto> listRanking = getRankingService().consultaTodos();
listDataModel = new ListDataModel(listRanking);
getDataTable().setVar("item");
getDataTable().setValueExpression("value", createValueExpression("#{rankingBB.listDataModel}", ListDataModel.class));
getDataTableGroup().getChildren().add(getDataTable());
}[/code]
Na pagina:
<h:panelGroup binding="#{rankingBB.dataTableGroup}">
lgweb
Março 9, 2012, 6:08am
#30
Não aparece? Nem os cabecalhos da tabela?
Nao aparece nada =[
Eu posso usar um ListDataModel na expression?