Bom dia Pessoal, eu tenho que usar o componente o RichFaces chamado listShuttle, eu consigo preencher as lista, porém não sei como capturar o valor das mesmas após a a transferência dos dados de um lado para o outro. Fiquei na dúvida se a lista deveria ser de selectItem ou poderia ser de qualquer tipo, outra coisa, é necessário um converter para capturar os valores? Seguem os fontes:
<h:form id="listShuttleForm">
<rich:listShuttle sourceValue="#{listShuttleBean.listaCarroSource}" targetValue="#{listShuttleBean.listaCarroTarget}"
var="item" copyControlLabel="Copiar" copyAllControlLabel="Copiar Todos" removeAllControlLabel="Remover Todos"
removeControlLabel="Remover" bottomControlLabel="Último" topControlLabel="Primeiro" downControlLabel="Descer"
upControlLabel="Subir" sourceRequired="false" targetRequired="false" >
<h:column>
<f:facet name="header">
<h:outputText value="Carro"/>
</f:facet>
<h:outputText value="#{item.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Ano"/>
</f:facet>
<h:outputText value="#{item.ano}"/>
</h:column>
<a4j:support event="onlistchanged" />
</rich:listShuttle>
<h:commandButton value="Enviar" action="#{listShuttleBean.capturarValores}" />
</h:form>
public class Carro implements Serializable {
private static final long serialVersionUID = -8571586838886146385L;
private Integer ano = null;
private String nome = null;
public Carro() {}
public Integer getAno() {
return ano;
}
public void setAno(Integer ano) {
this.ano = ano;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
public static List < Carro > carregarCarroSource() {
List < Carro > lista = new ArrayList < Carro >();
Carro carro = null;
carro = new Carro();
carro.setAno(2009);
carro.setNome("Celta");
lista.add(carro);
carro = new Carro();
carro.setAno(2008);
carro.setNome("Pálio");
lista.add(carro);
carro = new Carro();
carro.setAno(2010);
carro.setNome("Uno");
lista.add(carro);
carro = new Carro();
carro.setAno(1979);
carro.setNome("TL");
lista.add(carro);
return lista;
}
public static List < Carro > carregarCarroTarget() {
List < Carro > lista = new ArrayList < Carro >();
Carro carro = null;
carro = new Carro();
carro.setAno(2005);
carro.setNome("Golf");
lista.add(carro);
carro = new Carro();
carro.setAno(2008);
carro.setNome("Punto");
lista.add(carro);
carro = new Carro();
carro.setAno(2010);
carro.setNome("Ferrari");
lista.add(carro);
carro = new Carro();
carro.setAno(2011);
carro.setNome("Aston Martin");
lista.add(carro);
return lista;
}
Obrigado