package br.com.ufrj.msi2.netuno.bean;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import br.com.ufrj.msi2.netuno.modelo.entidades.Atraque;
import br.com.ufrj.msi2.netuno.modelo.entidades.Porto;
import br.com.ufrj.msi2.netuno.modelo.servicos.AtraqueService;
import br.com.ufrj.msi2.netuno.modelo.servicos.PortoService;
@ManagedBean(name="portoBean")
@ViewScoped
public class PortoBean extends MBean{
@EJB
private PortoService servicosPorto;
@EJB
private AtraqueService servicoAtraque;
private Porto porto;
private List<Porto> portos;
private Integer idPorto;
private List<Atraque> atraques;
@PostConstruct
public void inicializar() {
this.portos = this.servicosPorto.obterTodos();
if (this.porto == null){
this.porto = new Porto();
}
}
public void recuperarPorto(){
this.porto = servicosPorto.obterPorId(idPorto);
this.atraques = servicoAtraque.obterAtraquesPorto(idPorto);
}
/**
* Se o id do porto a ser salvo for nulo trata-se de uma inclus�o. Caso contr�rio � uma altera��o.
*/
public String salvar(){
try{
if(porto.getId()!=null) this.servicosPorto.alterar(porto);
else this.servicosPorto.salvar(porto);
this.portos = this.servicosPorto.obterTodos();
super.sendMessage(null, FacesMessage.SEVERITY_INFO, "Porto salvo com sucesso", null);
} catch (Exception e){
super.sendMessage(null, FacesMessage.SEVERITY_ERROR, e.getMessage() , null);
return null;
}
return "listar";
}
public void excluir(){
try{
if(idPorto!=null){
this.servicosPorto.excluir(idPorto);
portos = servicosPorto.obterTodos();
super.sendMessage(null, FacesMessage.SEVERITY_INFO, "Porto exclu�do com sucesso", null);
}
} catch (Exception e) {
super.sendMessage(null, FacesMessage.SEVERITY_ERROR, e.getMessage(), null);
}
}
public void consultar(){
this.portos = servicosPorto.filtrar(this.porto);
}
public Porto getPorto() {
return porto;
}
public void setPorto(Porto porto) {
this.porto = porto;
}
public List<Porto> getPortos() {
return portos;
}
public void setPortos(List<Porto> portos) {
this.portos = portos;
}
public void setIdPorto(Integer idPorto){
this.idPorto = idPorto;
}
public Integer getIdPorto(){
return this.idPorto;
}
public PortoService getServicosPorto() {
return servicosPorto;
}
public void setServicosPorto(PortoService servicosPorto) {
this.servicosPorto = servicosPorto;
}
public List<Atraque> getAtraques() {
return atraques;
}
public void setAtraques(List<Atraque> atraques) {
this.atraques = atraques;
}
}