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