INCLUIR ALTERA NORMAL MAIS QUANDO EU ESCOLHO O CLIENTE E RETURN OS selectOneMenu NAO SETA O OBJETO
FORM COMPUTADOR
<h:outputLabel for="cliente" value="Cliente:" style="font-weight:bold" />
<p:selectOneMenu id="cliente" value="#{ComputadorBean.computador.cliente}" effect="fade" converter="clienteConverter"
required="#{param['f:btnGravarComputador'] != null}" requiredMessage="Escolha um Cliente">
<f:selectItem itemLabel="Selecione Cliente" itemValue="" />
<f:selectItems value="#{ComputadorBean.listCliente}" var="cliente" itemLabel="#{cliente.razaoSocial}" itemValue="#{cliente}"/>
</p:selectOneMenu>
COMPUTADOR BEAN
public List<Cliente> getListCliente() {
if(listCliente == null){
listCliente = clienteDao.findAll("Cliente","razaoSocial");
}
return listCliente;
}
public void setListCliente(List<Cliente> listCliente) {
this.listCliente = listCliente;
}
public void onRowSelect(SelectEvent event) {
try {
this.computador = (Computador) event.getObject();
if (id == computador.getId()) {
System.out.print(computador.getCliente().getRazaoSocial());
tabIndex = 0;
id = 0;
} else {
id = computador.getId();
}
} catch (Exception ex) {
UtilFaces.addMensagem("Error.: " + ex.getMessage());
}
}
@FacesConverter(value = "clienteConverter", forClass = Cliente.class)
public class ClienteConverter implements Converter {
public Object getAsObject(FacesContext ctx, UIComponent component, String value) {
if (value != null) {
return this.getAttributesFrom(component).get(value);
}
return null;
}
public String getAsString(FacesContext ctx, UIComponent component, Object value) {
if (value != null && !"".equals(value)) {
Cliente entity = (Cliente) value;
// adiciona item como atributo do componente
this.addAttribute(component, entity);
Integer codigo = entity.getId();
if (codigo != null) {
return String.valueOf(entity.getId());
}
}
return (String) value;
}
protected void addAttribute(UIComponent component, Cliente cliente) {
String key = String.valueOf(cliente.getId()); // codigo da empresa como chave neste
// caso
this.getAttributesFrom(component).put(key, cliente);
}
protected Map<String, Object> getAttributesFrom(UIComponent component) {
return component.getAttributes();
}
}