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 "";
}
}
}