Olá pessoal...
Estou tentando utilizar o componente pickList, mas sem sucesso até agora... Bom, a idéia e exibir uma lista de atributos dos beans de entidades, para que o usuário possa escolher qual campo ele quer imprimir no relatório. Montar o relatório eu ja consegui, só que usando swing, agora estou tentando passar pra web...
Eu ja consegui exibir os atributos no componente pickList, eles vao de uma lista pra outra sem problemas, mas eu nao consigo recuperar os itens selecionados pelo usuário... a lista sempre está vazia... eu estou tentando seguir o segundo exemplo demo [url]http://livedemo.exadel.com/richfaces-demo/richfaces/pickList.jsf;jsessionid=D2AED12D3DEC82DAC86F831A9797A4D0?c=pickList&tab=usage[/url], está na sessao Rich Selects - Pick List
meu código está praticamente igual ao do exemplo, até baixei o fonte do exemplo e copiei o pickListBean pro meu projeto, mas não consigo exibir a lista de itens selecionados, é como se não atualizasse a lista sei lah... vou colocar meu código abaixo:
código da pagina, é um modalpanel<rich:modalPanel id="selecionarCamposPanel" left="425" top="50" width="500" height="400">
Selecione os campos do relatório
<br/>
<rich:pickList value="#{pickListBean.result}">
<f:selectItems value="#{entidades.listaAtributos}"/>
<a4j:support event="onlistchanged" reRender="result"/>
</rich:pickList>
<rich:panel id="result" bodyClass="pbody">
<f:facet name="header">
<h:outputText value="#{pickListBean.items} Options Choosen"></h:outputText>
</f:facet>
<rich:dataList value="#{pickListBean.result}" var="pickList" rendered="#{pickListBean.items>0}">
<h:outputText value="#{pickList}"/>
</rich:dataList>
</rich:panel>
<br/>
<h:commandButton value="OK" onclick="Richfaces.hideModalPanel('selecionarCamposPanel')" />
</rich:modalPanel>
@Name("pickListBean")
public class PickListBean {
private List<String> result;
public PickListBean() {
}
public List<String> getResult() {
return result;
}
public void setResult(List<String> result) {
this.result = result;
}
public Integer getItems() {
if (result == null){
return 0;
}
return result.size();
}
}
@Scope(ScopeType.SESSION)
@Name("entidades")
public class Entidades {
private Integer id;
private String nome;
private String nomeSimbolico;
private Integer largura;
private List<Atributos> atributos = new ArrayList();
private List<SelectItem> listaAtributos = new ArrayList();
private List<String> listaAtributosSelecionados = new ArrayList();
//outros getters & setters
public List<SelectItem> getListaAtributos() {
Entidades e = new Entidades();
e.setId(1);
e.setNome("com.testesoa.menu.pojo.Usuario");
e.setNomeSimbolico("Relatório de Usuários");
e.setLargura(555);
Atributos atributo = new Atributos();
atributo.setNome("id");
atributo.setNomeSimbolico("Id");
atributo.setLargura(30);
atributos.add(atributo);
atributo = new Atributos();
atributo.setNome("cpf");
atributo.setNomeSimbolico("CPF");
atributo.setLargura(30);
atributos.add(atributo);
atributo = new Atributos();
atributo.setNome("rg");
atributo.setNomeSimbolico("RG");
atributo.setLargura(30);
atributos.add(atributo);
for (Atributos a : atributos) {
listaAtributos.add(new SelectItem(a.getNome(), a.getNomeSimbolico()));
}
return listaAtributos;
}
public void setListaAtributos(List<SelectItem> listaAtributos) {
this.listaAtributos = listaAtributos;
}
public List<String> getListaAtributosSelecionados() {
return listaAtributosSelecionados;
}
public void setListaAtributosSelecionados(List<String> listaAtributosSelecionados) {
this.listaAtributosSelecionados = listaAtributosSelecionados;
}
}
Desde já grato !!!