Boa noite,
Estou utilizando Ejb 3 com primefaces e Glassfish.
Meu pick list quando executa o comandbutton nao retorna nenhuma informação (Listsorce e ListTarget)
Agradeço desde já qualquer ajuda.
Managed Beans
[code]
package controllers;
import beans.UsuariosFacade;
import criptografia.EncryptorException;
import entidades.Filiais;
import entidades.Menus;
import entidades.Usuarios;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import mensagens.Bundles;
import mensagens.Mensagens;
import org.primefaces.model.DualListModel;
import sessoes.Sessoes;
@ManagedBean(name = “usuariosController”)
@SessionScoped
public class UsuariosController extends AbstractController {
…
private DualListModel dualListModelFiliais;
@Override
public String prepareEdit() {
super.prepareEdit();
List<Filiais> filiaisTarget = (List<Filiais>) current.getFiliaisCollection();
List<Filiais> filiaisSource = ejbFiliais.findAll();
for (Iterator<Filiais> it = filiaisTarget.iterator(); it.hasNext();) {
Filiais filiais = it.next();
filiaisSource.remove(filiais);
}
dualListModelFiliais =
new DualListModel<Filiais>(filiaisSource, filiaisTarget);
return editaRegistro();
}
public DualListModel<Filiais> getFiliaisPickList() {
return dualListModelFiliais;
}
public void setFiliaisPickList(DualListModel<Filiais> dualListModelFiliais) {
this.dualListModelFiliais = dualListModelFiliais;
}
public void salvarFiliais(){
//sempre vem vazio aki
List<Filiais> listaFiliaisTarget = dualListModelFiliais.getTarget();
java.util.Collection<Filiais> filiais = (java.util.Collection<Filiais>) listaFiliaisTarget;
current.setFiliaisCollection(filiais);
salvaRegistro();
}
}
[/code]
View
........
<p:dialog appendToBody="true" closable="true" header="#{bundle.EditUsuariosFiliaisTitle}"
resizable="false" widgetVar="dlgAlterarFiliais"
showEffect="clip" hideEffect="clip" modal="true">
<p align="center">
<p:pickList id="pickListFiliais" value="#{usuariosController.filiaisPickList}" widgetVar="picklistVar"
var="filial" converter="filiaisControllerConverter"
converterMessage="Falha no converter"
itemValue="#{filial}" >
<f:facet name="sourceCaption">#{bundle.EditUsuariosFiliaisDisponiveis}</f:facet>
<f:facet name="targetCaption">#{bundle.EditUsuariosFiliaisPermitidas}</f:facet>
<p:column>
#{filial.razao}
</p:column>
</p:pickList>
<p align="center">
<p:commandButton id="filiaisSubmit" value="#{bundle.BotaoSalvar}"
action="#{usuariosController.salvarFiliais}"
oncomplete="dlgAlterarFiliais.hide()"
update="panelDados"
immediate="false"
/>
<p:commandButton id="filiaisCancelar" value="#{bundle.BotaoCancelar}"
oncomplete="dlgAlterarFiliais.hide()"/>
</p>
</p>
</p:dialog>
Convert
@FacesConverter(forClass = Filiais.class, value="filiaisControllerConverter")
public static class FiliaisControllerConverter implements Converter {
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
FiliaisController controller = (FiliaisController) facesContext.getApplication().getELResolver().
getValue(facesContext.getELContext(), null, "filiaisController");
return controller.ejbFacade.find(getKey(value));
}
java.lang.Long getKey(String value) {
java.lang.Long key;
key = Long.valueOf(value);
return key;
}
String getStringKey(java.lang.Long value) {
StringBuffer sb = new StringBuffer();
sb.append(value);
return sb.toString();
}
public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
if (object == null) {
return null;
}
if (object instanceof Filiais) {
Filiais o = (Filiais) object;
return getStringKey(o.getId());
} else {
throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + FiliaisController.class.getName());
}
}
}