package org.demoiselle.estacionamento.converters; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.FacesConverter; import org.demoiselle.estacionamento.domain.Automovel; import org.demoiselle.estacionamento.persistence.AutomovelDAO; import org.primefaces.component.picklist.PickList; import org.primefaces.model.DualListModel; import br.gov.frameworkdemoiselle.util.Beans; @FacesConverter(value= "ConversorAutomovel") public class AutomovelConverter implements Converter { private AutomovelDAO automovelDAO = Beans.getReference(AutomovelDAO.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(((Automovel) o).getId()); if (value.equals(id)) { ret = o; break; } } if (ret == null) for (Object o : dl.getTarget()) { String id = String.valueOf(((Automovel) o).getId()); if (value.equals(id)) { ret = o; break; } } } else { if (value.trim().equals("")) { ret = null; } else { Long varId = Long.valueOf(value); ret = automovelDAO.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(((Automovel) value).getId()); } }catch (Exception e) { e.printStackTrace(); return ""; } } }