| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/07/2006 16:01:42
|
Java-Cachaça
Debugger
![[Avatar]](/images/avatar/b5d3ad899f70013367f24e0b1fa75944.jpg)
Membro desde: 14/04/2005 13:37:10
Mensagens: 55
Localização: Canoas - RS
Offline
|
Colegas,
Tenho duas listas(lado a lado) em uma página:
Eu gostaria de transferir elementos de uma lista para outra..
Como fazer isto com JSF ?
Alguém teria um exemplo, link ou qualquer coisa ?
|
Atenciosamente,
===========================================================
Leandro Severino - Analista Desenvolvedor
www.lstecnologia.com.br - Conhecimento e Profissionalismo.
Blog: http://www.lstecnologia.com.br/page/blog/blog.faces
===========================================================
"Quanto maior o nosso conhecimento, maior a compreensão da nossa ignorância." |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/07/2006 17:22:43
|
muldon
JavaTeenager
![[Avatar]](/images/avatar/5f25fbe144e4a81a1b0080b6c1032778.png)
Membro desde: 16/05/2006 14:06:03
Mensagens: 174
Offline
|
Eu fiz esse componente em JSF, pois precisava exatamente dessa funcionalidade. Entao, eu fiz o seguinte: criei duas listas como atributos de classe tipo:
public ArrayList<Pessoa> clientes;
public ArrayList<Pessoa> selecionados;
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<Pessoa> 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.
|
Sun Certified Java Programmer 5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/07/2006 17:39:29
|
Java-Cachaça
Debugger
![[Avatar]](/images/avatar/b5d3ad899f70013367f24e0b1fa75944.jpg)
Membro desde: 14/04/2005 13:37:10
Mensagens: 55
Localização: Canoas - RS
Offline
|
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.
|
Atenciosamente,
===========================================================
Leandro Severino - Analista Desenvolvedor
www.lstecnologia.com.br - Conhecimento e Profissionalismo.
Blog: http://www.lstecnologia.com.br/page/blog/blog.faces
===========================================================
"Quanto maior o nosso conhecimento, maior a compreensão da nossa ignorância." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/07/2006 17:49:55
|
Java-Cachaça
Debugger
![[Avatar]](/images/avatar/b5d3ad899f70013367f24e0b1fa75944.jpg)
Membro desde: 14/04/2005 13:37:10
Mensagens: 55
Localização: Canoas - RS
Offline
|
Opa,
Lá vai a solução:
No teu BackingBean:
[code]
private ArrayList listaDeSociosSemCarteira = new ArrayList();
private ArrayList listaDeSociosSelecionados = new ArrayList();
private String[] selectedListaDeSociosSemCarteira;
private String[] selectedListaDeSociosSelecionados;
// Getters e Setters.....
// Daqui pra ca, os metodos que movimento os itens e o metodo que gera a lista.
public void moveTodos(ActionEvent actionEvent){
getListaDeSociosSelecionados().addAll(getListaDeSociosSemCarteira());
getListaDeSociosSemCarteira().clear();
}
public void removeTodos(ActionEvent actionEvent){
getListaDeSociosSemCarteira().addAll(getListaDeSociosSelecionados());
getListaDeSociosSelecionados().clear();
}
public void moveSelecionado(ActionEvent actionEvent){
String[] values = getSelectedListaDeSociosSemCarteira();
int length = values.length;
for (int i=0; i<length; i++) {
String value = values[i];
getListaDeSociosSelecionados().add(removeItem(value, getListaDeSociosSemCarteira()));
}
}
public void removeSelecionado(ActionEvent actionEvent){
String[] values = getSelectedListaDeSociosSelecionados();
int length = values.length;
for (int i=0; i<length; i++) {
String value = values[i];
getListaDeSociosSemCarteira().add(removeItem(value, getListaDeSociosSelecionados()));
}
}
private SelectItem removeItem(String value, List items) {
SelectItem result = null;
int size = items.size();
for (int i=0; i<size; i++) {
SelectItem item = (SelectItem) items.get(i);
if (value.equals(item.getValue())) {
result = (SelectItem) items.remove(i);
break;
}
}
return result;
}
public void gerar(ActionEvent actionEvent){
List lista = mgr.getSociosSemCarteira();
ArrayList<SelectItem> listaSocios = new ArrayList<SelectItem>();
Iterator it = lista.iterator();
while ( it.hasNext()){
Socio socio= (Socio)it.next();
listaSocios.add(new SelectItem(socio.getId().toString(),socio.getNome()));
}
this.setListaDeSociosSemCarteira(listaSocios);
}
[/code]
Na página:
[code]
<h:form id="wizardCarteira">
<div align="center">
<h:commandButton value="#{messages['wizardCarteira.gerarRelacaoCarteira']}" actionListener="#{wizardCarteira.gerar}" id="gerar" immediate="true"/>
<h:commandButton value="#{messages['wizardCarteira.imprimirRelacaoCarteira']}" actionListener="#{wizardCarteira.imprimirRelacaoCarteira}" id="imprimir"/>
</div>
<br/>
<h:panelGrid columns="3" cellspacing="0" border="1">
<h:selectManyListbox id="sociosSemCarteira" value="#{wizardCarteira.selectedListaDeSociosSemCarteira}" style="width: 250px;height: 250px;">
<f:selectItems value="#{wizardCarteira.listaDeSociosSemCarteira}"/>
</h:selectManyListbox>
<h:panelGrid columns="1">
<h:commandButton value="#{messages['wizardCarteira.moveSelecionado']}" actionListener="#{wizardCarteira.moveSelecionado}" id="moveSelecionado" style="width: 30px;"/>
<h:commandButton value="#{messages['wizardCarteira.removeSelecionado']}" actionListener="#{wizardCarteira.removeSelecionado}" id="removeSelecionado" style="width: 30px;"/>
<h:commandButton value="#{messages['wizardCarteira.moveTodos']}" actionListener="#{wizardCarteira.moveTodos}" id="moveTodos" style="width: 30px;"/>
<h:commandButton value="#{messages['wizardCarteira.removeTodos']}" actionListener="#{wizardCarteira.removeTodos}" id="removeTodos" style="width: 30px;"/>
</h:panelGrid>
<h:selectManyListbox id="sociosSelecionados" value="#{wizardCarteira.selectedListaDeSociosSelecionados}" style="width: 250px;height: 250px;">
<f:selectItems value="#{wizardCarteira.listaDeSociosSelecionados}"/>
</h:selectManyListbox>
</h:panelGrid>
</h:form>
[/code]
|
Atenciosamente,
===========================================================
Leandro Severino - Analista Desenvolvedor
www.lstecnologia.com.br - Conhecimento e Profissionalismo.
Blog: http://www.lstecnologia.com.br/page/blog/blog.faces
===========================================================
"Quanto maior o nosso conhecimento, maior a compreensão da nossa ignorância." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/02/2010 11:03:43
|
Kleber-rr
Virtual Machine Man
![[Avatar]](/images/avatar/ba3ce9aeca1ef55d67282287b5a4b423.jpeg)
Membro desde: 02/07/2009 12:12:02
Mensagens: 664
Offline
|
[quote=Java-Cachaça]Opa,
Lá vai a solução:
No teu BackingBean:
[code]
private ArrayList listaDeSociosSemCarteira = new ArrayList();
private ArrayList listaDeSociosSelecionados = new ArrayList();
private String[] selectedListaDeSociosSemCarteira;
private String[] selectedListaDeSociosSelecionados;
// Getters e Setters.....
// Daqui pra ca, os metodos que movimento os itens e o metodo que gera a lista.
public void moveTodos(ActionEvent actionEvent){
getListaDeSociosSelecionados().addAll(getListaDeSociosSemCarteira());
getListaDeSociosSemCarteira().clear();
}
public void removeTodos(ActionEvent actionEvent){
getListaDeSociosSemCarteira().addAll(getListaDeSociosSelecionados());
getListaDeSociosSelecionados().clear();
}
public void moveSelecionado(ActionEvent actionEvent){
String[] values = getSelectedListaDeSociosSemCarteira();
int length = values.length;
for (int i=0; i<length; i++) {
String value = values[i];
getListaDeSociosSelecionados().add(removeItem(value, getListaDeSociosSemCarteira()));
}
}
public void removeSelecionado(ActionEvent actionEvent){
String[] values = getSelectedListaDeSociosSelecionados();
int length = values.length;
for (int i=0; i<length; i++) {
String value = values[i];
getListaDeSociosSemCarteira().add(removeItem(value, getListaDeSociosSelecionados()));
}
}
private SelectItem removeItem(String value, List items) {
SelectItem result = null;
int size = items.size();
for (int i=0; i<size; i++) {
SelectItem item = (SelectItem) items.get(i);
if (value.equals(item.getValue())) {
result = (SelectItem) items.remove(i);
break;
}
}
return result;
}
public void gerar(ActionEvent actionEvent){
List lista = mgr.getSociosSemCarteira();
ArrayList<SelectItem> listaSocios = new ArrayList<SelectItem>();
Iterator it = lista.iterator();
while ( it.hasNext()){
Socio socio= (Socio)it.next();
listaSocios.add(new SelectItem(socio.getId().toString(),socio.getNome()));
}
this.setListaDeSociosSemCarteira(listaSocios);
}
[/code]
Na página:
[code]
<h:form id="wizardCarteira">
<div align="center">
<h:commandButton value="#{messages['wizardCarteira.gerarRelacaoCarteira']}" actionListener="#{wizardCarteira.gerar}" id="gerar" immediate="true"/>
<h:commandButton value="#{messages['wizardCarteira.imprimirRelacaoCarteira']}" actionListener="#{wizardCarteira.imprimirRelacaoCarteira}" id="imprimir"/>
</div>
<br/>
<h:panelGrid columns="3" cellspacing="0" border="1">
<h:selectManyListbox id="sociosSemCarteira" value="#{wizardCarteira.selectedListaDeSociosSemCarteira}" style="width: 250px;height: 250px;">
<f:selectItems value="#{wizardCarteira.listaDeSociosSemCarteira}"/>
</h:selectManyListbox>
<h:panelGrid columns="1">
<h:commandButton value="#{messages['wizardCarteira.moveSelecionado']}" actionListener="#{wizardCarteira.moveSelecionado}" id="moveSelecionado" style="width: 30px;"/>
<h:commandButton value="#{messages['wizardCarteira.removeSelecionado']}" actionListener="#{wizardCarteira.removeSelecionado}" id="removeSelecionado" style="width: 30px;"/>
<h:commandButton value="#{messages['wizardCarteira.moveTodos']}" actionListener="#{wizardCarteira.moveTodos}" id="moveTodos" style="width: 30px;"/>
<h:commandButton value="#{messages['wizardCarteira.removeTodos']}" actionListener="#{wizardCarteira.removeTodos}" id="removeTodos" style="width: 30px;"/>
</h:panelGrid>
<h:selectManyListbox id="sociosSelecionados" value="#{wizardCarteira.selectedListaDeSociosSelecionados}" style="width: 250px;height: 250px;">
<f:selectItems value="#{wizardCarteira.listaDeSociosSelecionados}"/>
</h:selectManyListbox>
</h:panelGrid>
</h:form>
[/code]
[/quote]
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.
Agradeço a ajuda.
|
 |
|
|
 |
|
|