[Resolvido] Problema com rich:pickList

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

Depois de verificar que a lista que esta no source era Long p/ codigo e String para Descrição… Foi so alterar o List para List ai funcionou…

Estou com um problema. Meu pick lista funciona corretamente somente quando carrego Não todos os itens da lista.
Ao selecionar Copy all ele diz "Este campo contém informação inválida!!!
Alguém já passou por isso?

vai o código:

[code]rich:tab label=“Especialidade” style=“width:100%; heigth:100%”>
<rich:panel header=“Especialidades requeridas:”>
<h:outputText
value=“Selecione as especialidades necessárias ao candidato:” />
<h:form>
<h:panelGrid columns=“2” columnClasses=“top, top”>
<rich:pickList value="#{manterOfertaBean.escolhidas}“
required=“true” id=“especialidadePickList”>
<f:selectItems value=”#{manterOfertaBean.listaEspecialidades}" />
</rich:pickList>

							<rich:message for="especialidadePickList" style="color:red;" />

						</h:panelGrid>
					</h:form>
				</rich:panel>
				<br></br>
			</rich:tab>[/code]

Onde escolhidas é uma LisT

:frowning:

Grata