package org.demoiselle.envers.converters; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.FacesConverter; import org.primefaces.component.picklist.PickList; import org.primefaces.model.DualListModel; import br.gov.frameworkdemoiselle.util.Beans; import org.demoiselle.envers.persistence.RevInfoDAO; import org.demoiselle.envers.domain.RevInfo; @FacesConverter(value= "ConversorRevInfo") public class RevInfoConverter implements Converter { private RevInfoDAO revInfoDAO = Beans.getReference(RevInfoDAO.class); @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { try{ Object ret = null; if (component instanceof PickList) { Object dualList = ((PickList) component).getValue(); DualListModel<?> dl = (DualListModel<?>) dualList; for (Object o : dl.getSource()) { String id = String.valueOf(((RevInfo) o).getCodRev()); if (value.equals(id)) { ret = o; break; } } if (ret == null) for (Object o : dl.getTarget()) { String id = String.valueOf(((RevInfo) o).getCodRev()); if (value.equals(id)) { ret = o; break; } } } else { if (value.trim().equals("")) { ret = null; } else { Long varId = Long.valueOf(value); ret = revInfoDAO.load(varId); } } return ret; }catch (Exception e) { e.printStackTrace(); return null; } } @Override public String getAsString(FacesContext context, UIComponent component, Object value) { try{ if (value == null || value.equals("")) { return ""; } else { return String.valueOf(((RevInfo) value).getCodRev()); } }catch (Exception e) { e.printStackTrace(); return ""; } } }