Olá Pessoal,
Estou tendo problemas ao tentar montar o compomente rich:pickList, pois depois de salvar e voltar o mesmo nao mostra os itens salvos. No metodo doPesquisa eu recupero o que esta no Bcoe ou para a pagina.
Segue codigo:
Pagina:
<h:form id="perfilItemCadastroForm">
<style>
.rich-picklist-source-cell-selected{
background-color:#FFFFB3;
}
.rich-picklist-source-cell-active{
background-color:#FFCECE;
}
</style>
<h:panelGrid columns="2" columnClasses="titInfL,infL">
<h:outputText value="#{msg.perfil}:" />
<h:panelGroup>
<b><h:outputText value="#{perfilMB.perfil.desPerfil}" /></b>
</h:panelGroup>
<rich:spacer width="100%" height="7px" styleClass="branco"/>
<rich:spacer width="100%" height="7px" styleClass="branco"/>
<h:outputText value="#{msg.itens}:" />
<rich:pickList id="PerfilSelecionado"
value="#{perfilMB.perfilSelecionado}"
copyAllControlLabel="#{msg.copyAll}"
copyControlLabel="#{msg.copy}"
removeControlLabel="#{msg.remove}"
removeAllControlLabel="#{msg.removeAll}"
sourceListWidth="150px"
targetListWidth="150px">
<f:selectItems value="#{perfilMB.listaItemMenuItens}" />
</rich:pickList>
</h:panelGrid>
<rich:spacer width="100%" height="7px"/>
<rich:separator height="3px" width="100%"/>
<rich:spacer width="100%" height="7px"/>
<h:panelGrid>
<f:facet name="footer">
<h:panelGroup>
<h:commandButton value="#{msg.salvar}" action="#{perfilMB.doSalvarItem}" />
</h:panelGroup>
</f:facet>
</h:panelGrid>
</h:form>
Bean:
private List<Perfil> listaPerfil;
private List<String> perfilSelecionado = new ArrayList<String>();
private List<SelectItem> listaItemMenuItens;
@SuppressWarnings("unused")
private ApplicationContext context;
@Resource(name = "perfilDAO")
private PerfilDaoJpa perfilDao;
@Resource(name = "itemMenuDAO")
private ItemMenuDaoJpa itemMenuDao;
public Perfil getPerfil() {
if (perfil == null)
perfil = new Perfil();
return perfil;
}
public void setPerfil(Perfil perfil) {
this.perfil = perfil;
}
public List<Perfil> getListaPerfil() {
if(listaPerfil == null)
listaPerfil = perfilDao.loadAll();
return listaPerfil;
}
public void setListaPerfil(List<Perfil> listaPerfil) {
this.listaPerfil = listaPerfil;
}
public List<String> getPerfilSelecionado() {
return perfilSelecionado;
}
public void setPerfilSelecionado(List<String> perfilSelecionado) {
this.perfilSelecionado = perfilSelecionado;
}
public List<SelectItem> getListaItemMenuItens() {
List<SelectItem> lista = new ArrayList<SelectItem>();
this.listaItemMenuItens = null;
for(ItemMenu m : itemMenuDao.findByTipo("I")){
lista.add(new SelectItem(m.getCodItem(), m.getNmItem(), m.getNmItem()));
}
this.listaItemMenuItens = lista;
return this.listaItemMenuItens;
}
public void setListaItemMenuItens(List<SelectItem> listaItemMenuItens) {
this.listaItemMenuItens = listaItemMenuItens;
}
>>>>>> AQUI É QUANDO EU CARREGO O QUE ESTA NO BANCO
public String doPesquisa(){
setPerfilSelecionado(new ArrayList<String>());
if (perfil.getItemMenuList().size() > 0){
for (ItemMenu i : perfil.getItemMenuList()){
if ("I".equals(i.getTipo()))
getPerfilSelecionado().add(i.getCodItem().toString());
}
}
return "perfilItemCadastro";
}
Alguma ideia ?
Obrigado,
Rodrigo