Leonardo ta ai o meu codigo, tenho uma coisa estranha acontecendo, quando clico num item ele esta perdendo o dado, nao seta o item quando clico na linha, tenho que ir pela seta do teclado.
<rich:listShuttle id="lstShEmpresas"
fastOrderControlsVisible="false" orderControlsVisible="false"
copyControlLabel="Alocar" copyAllControlLabel="Alocar Todos"
removeAllControlLabel="Desalocar Todos"
removeControlLabel="Desalocar"
sourceValue="#{cadastroFuncionario.empresas}"
targetValue="#{cadastroFuncionario.empresasDisponiveis}" var="empresa"
sourceCaptionLabel="Empresas Disponiveis"
targetCaptionLabel="Empresas Alocados"
converter="empresaConverter">
<rich:column>
<h:outputText value="#{empresa.nome}"></h:outputText>
</rich:column>
<rich:column></rich:column>
</rich:listShuttle>
Manage Bean
public List<Empresa> getEmpresasDisponiveis() {
GerenciadorEmpresa gerEmpresa = new GerenciadorEmpresa();
List<Empresa> todasEmpresas = gerEmpresa.buscaTodos(Empresa.class, "asc",
"nome");
if (decorador.getObject().getUsuario() != null)
todasEmpresas.removeAll(decorador.getObject().getUsuario().getEmpresas());
return todasEmpresas;
}
Converter
public class ListShuttleEmpresa implements javax.faces.convert.Converter {
private EmpresaDAO dao;
public ListShuttleEmpresa() {
dao = new EmpresaDAO();
}
public Object getAsObject(FacesContext facesContext, UIComponent component,
String string) {
if (string == null) {
return null;
}
Integer id = new Integer(string);
return dao.buscar(id, Empresa.class);
}
public String getAsString(FacesContext facesContext,
UIComponent uIComponent, Object object) {
if (object == null) {
return null;
}
if (object instanceof Empresa) {
Empresa empresa = (Empresa) object;
return "" + empresa.getId();
} else {
throw new IllegalArgumentException("object:" + object + "of type:"
+ object.getClass().getName());
}
}
}