package br.com.ufrj.msi2.netuno.bean; import java.util.ResourceBundle; import javax.annotation.PostConstruct; import javax.ejb.EJB; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; import br.com.ufrj.msi2.netuno.attributes.Attributes; import br.com.ufrj.msi2.netuno.carga.servicos.GerenciarCargasService; import br.com.ufrj.msi2.netuno.carga.servicos.GerenciarConteinersService; import br.com.ufrj.msi2.netuno.modelo.entidades.AgenteCarga; import br.com.ufrj.msi2.netuno.modelo.entidades.Conteiner; @ManagedBean(name = "alocaCargaConteinerController") @ViewScoped public class AlocaCargaConteinerControllerBean extends MBean { @EJB public GerenciarCargasService gCargaService; @EJB public GerenciarConteinersService gConteinerService; private AgenteCarga agente; private ResourceBundle bundle; private int cargaId = 0; @ManagedProperty(value = "#{alocaCargaConteinerModel}") private AlocaCargaConteinerModelBean alocaCargaConteinerModelBean; @PostConstruct public void construct() { HttpSession session = (HttpSession) FacesContext.getCurrentInstance() .getExternalContext().getSession(true); agente = (AgenteCarga) session .getAttribute(Attributes.SessionAttributes.LOGIN.toString()); FacesContext context = FacesContext.getCurrentInstance(); this.bundle = context.getApplication().getResourceBundle(context, "cargaMsg"); } public void onPageLoad() { if (cargaId > 0) { this.getInformations(); } } /** * Recupera informa��es para preencher a tela de aloca��o de cargas. */ private void getInformations() { alocaCargaConteinerModelBean .setCarga(gCargaService.obterPorId(cargaId)); alocaCargaConteinerModelBean.setPartes(gCargaService.listaParteCargasComConteiner( alocaCargaConteinerModelBean.getCarga())); alocaCargaConteinerModelBean.setListDisponiveis(gConteinerService .listaConteinersDisponiveis( alocaCargaConteinerModelBean.getCarga(),agente.getPertence())); } public int getCargaId() { return cargaId; } public void setCargaId(int cargaId) { this.cargaId = cargaId; } public AlocaCargaConteinerModelBean getAlocaCargaConteinerModelBean() { return alocaCargaConteinerModelBean; } public void setAlocaCargaConteinerModelBean( AlocaCargaConteinerModelBean alocaCargaConteinerModelBean) { this.alocaCargaConteinerModelBean = alocaCargaConteinerModelBean; } /** * Aloca a carga no conteiner selecionado. */ public void alocarCarga() { boolean valida = true; if (alocaCargaConteinerModelBean.getConteinerSelecionado() == 0) { valida = false; super.sendMessage(null, FacesMessage.SEVERITY_ERROR, this.bundle.getString("alocaCarga.SelectMessage"), null); } if (valida) { Conteiner conteiner = gConteinerService .obterPorId(alocaCargaConteinerModelBean .getConteinerSelecionado()); gCargaService.alocarCarga(alocaCargaConteinerModelBean.getCarga(), conteiner); super.sendMessage(null, FacesMessage.SEVERITY_INFO, this.bundle.getString("alocaCarga.cargaAlocadaSucesso"), null); this.getInformations(); } } public String cancelar() { return "listaCarga"; } public AgenteCarga getAgente() { return agente; } public void setAgente(AgenteCarga agente) { this.agente = agente; } public ResourceBundle getBundle() { return bundle; } public void setBundle(ResourceBundle bundle) { this.bundle = bundle; } }