Entao, ao clicar no botao adicionar pessoa, eu acionava um procedimento no backbean, que recebia como parametro o nome dessa pessoa e retirava ela da primeira lista e colocava na segunda. Como eu nao sabia como passava o id ao inves do nome, eu criei um metodo, tipo: searchByName(String nome, ArrayList lista, boolean remover) , onde se remover fosse true, ele retirava o elemento da lista e inseria na outra, global.
O mesmo acontecia com os botoes addAll e removeAll, so que com todos os elementos…
Nao sei se ajudou muito, mas so nao te dou mais detalhes pq nao lembro muito bem como implementei isso ha dois meses atras.
L
LeandroSeverino
Muldon,
Pois eh, o meu problema ta em fazer passar o ID para o metodo.
Mas eu tinha chegado nessa mesma lógica que tu chegastes.
De qualquer forma, muito obrigado pela ajuda.
L
LeandroSeverino
Opa,
Lá vai a solução:
No teu BackingBean:
privateArrayListlistaDeSociosSemCarteira=newArrayList();privateArrayListlistaDeSociosSelecionados=newArrayList();privateString[]selectedListaDeSociosSemCarteira;privateString[]selectedListaDeSociosSelecionados;// Getters e Setters.....// Daqui pra ca, os metodos que movimento os itens e o metodo que gera a lista.publicvoidmoveTodos(ActionEventactionEvent){getListaDeSociosSelecionados().addAll(getListaDeSociosSemCarteira());getListaDeSociosSemCarteira().clear();}publicvoidremoveTodos(ActionEventactionEvent){getListaDeSociosSemCarteira().addAll(getListaDeSociosSelecionados());getListaDeSociosSelecionados().clear();}publicvoidmoveSelecionado(ActionEventactionEvent){String[]values=getSelectedListaDeSociosSemCarteira();intlength=values.length;for(inti=0;i<length;i++){Stringvalue=values[i];getListaDeSociosSelecionados().add(removeItem(value,getListaDeSociosSemCarteira()));}}publicvoidremoveSelecionado(ActionEventactionEvent){String[]values=getSelectedListaDeSociosSelecionados();intlength=values.length;for(inti=0;i<length;i++){Stringvalue=values[i];getListaDeSociosSemCarteira().add(removeItem(value,getListaDeSociosSelecionados()));}}privateSelectItemremoveItem(Stringvalue,Listitems){SelectItemresult=null;intsize=items.size();for(inti=0;i<size;i++){SelectItemitem=(SelectItem)items.get(i);if(value.equals(item.getValue())){result=(SelectItem)items.remove(i);break;}}returnresult;}publicvoidgerar(ActionEventactionEvent){Listlista=mgr.getSociosSemCarteira();ArrayList<SelectItem>listaSocios=newArrayList<SelectItem>();Iteratorit=lista.iterator();while(it.hasNext()){Sociosocio=(Socio)it.next();listaSocios.add(newSelectItem(socio.getId().toString(),socio.getNome()));}this.setListaDeSociosSemCarteira(listaSocios);}
privateArrayListlistaDeSociosSemCarteira=newArrayList();privateArrayListlistaDeSociosSelecionados=newArrayList();privateString[]selectedListaDeSociosSemCarteira;privateString[]selectedListaDeSociosSelecionados;// Getters e Setters.....// Daqui pra ca, os metodos que movimento os itens e o metodo que gera a lista.publicvoidmoveTodos(ActionEventactionEvent){getListaDeSociosSelecionados().addAll(getListaDeSociosSemCarteira());getListaDeSociosSemCarteira().clear();}publicvoidremoveTodos(ActionEventactionEvent){getListaDeSociosSemCarteira().addAll(getListaDeSociosSelecionados());getListaDeSociosSelecionados().clear();}publicvoidmoveSelecionado(ActionEventactionEvent){String[]values=getSelectedListaDeSociosSemCarteira();intlength=values.length;for(inti=0;i<length;i++){Stringvalue=values[i];getListaDeSociosSelecionados().add(removeItem(value,getListaDeSociosSemCarteira()));}}publicvoidremoveSelecionado(ActionEventactionEvent){String[]values=getSelectedListaDeSociosSelecionados();intlength=values.length;for(inti=0;i<length;i++){Stringvalue=values[i];getListaDeSociosSemCarteira().add(removeItem(value,getListaDeSociosSelecionados()));}}privateSelectItemremoveItem(Stringvalue,Listitems){SelectItemresult=null;intsize=items.size();for(inti=0;i<size;i++){SelectItemitem=(SelectItem)items.get(i);if(value.equals(item.getValue())){result=(SelectItem)items.remove(i);break;}}returnresult;}publicvoidgerar(ActionEventactionEvent){Listlista=mgr.getSociosSemCarteira();ArrayList<SelectItem>listaSocios=newArrayList<SelectItem>();Iteratorit=lista.iterator();while(it.hasNext()){Sociosocio=(Socio)it.next();listaSocios.add(newSelectItem(socio.getId().toString(),socio.getNome()));}this.setListaDeSociosSemCarteira(listaSocios);}
Eae amigo, blz?
Estou precisando de uma ajuda sua…
Estou tentando utilizar o selectManyListBox, mas apanhando feito vira lata… mas tudo bem.
Estive olhando seu exemplo, mas gostaria de saber como vc faz para salvar os objetos selecionados no selectManyListbox no banco.