package br.uff.ic.oceano.peixeespada.controller; import br.uff.ic.oceano.core.exception.ServiceException; import br.uff.ic.oceano.view.SelectOneDataModel; import br.uff.ic.oceano.peixeespada.contexto.ContextoAmbiente; import br.uff.ic.oceano.controller.BaseBean; import br.uff.ic.oceano.core.factory.ObjectFactory; import br.uff.ic.oceano.core.model.SoftwareProject; import br.uff.ic.oceano.core.model.QualityAttribute; import br.uff.ic.oceano.core.model.Revision; import br.uff.ic.oceano.core.service.SoftwareProjectService; import br.uff.ic.oceano.core.service.QualityAttributeService; import br.uff.ic.oceano.core.service.RefactoringService; import br.uff.ic.oceano.peixeespada.model.Agent; import br.uff.ic.oceano.peixeespada.service.AgentService; import java.util.Date; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.faces.model.DataModel; import javax.faces.model.ListDataModel; import javax.faces.model.SelectItem; /** * * @author Kann */ public class AmbienteAgenteBean extends BaseBean{ //Variavel corrente private String PAGINA_FORM_AGENTE = "def:/privado/peixeespada/agente/formAgente"; private String PAGINA_AMBIENTE = "def:/privado/peixeespada/ambiente/listaContexto"; private String PAGINA_REFACTORING = "def:/privado/peixeespada/refactoring/listRefactoring"; private SelectOneDataModel<Revision> selectConfiguracao; private SelectOneDataModel<SoftwareProject> selectProjeto; private SelectOneDataModel<QualityAttribute> selectAtributo; private DataModel tabelaAgentes; private DataModel tabelaConhecimento; private DataModel tabelaRefactoring; private Agent agenteCorrente; private Revision configuracaoCorrente; private List<SelectItem> listaPapel; private String strPapelCorente; private SoftwareProjectService projectService = ObjectFactory.getObjectWithDataBaseDependencies(SoftwareProjectService.class); private QualityAttributeService qualityAttributeService = ObjectFactory.getObjectWithDataBaseDependencies(QualityAttributeService.class); private AgentService agentService = ObjectFactory.getObjectWithDataBaseDependencies(AgentService.class); public AmbienteAgenteBean() { super("AmbienteAgenteBean"); sessao.setPerfilPeixeEspada(); } public void mudancaConfiguracao(){ configuracaoCorrente = selectConfiguracao.getObjetoSelecionado(); } public String paginaNovoAgente(){ if(selectAtributo != null){ selectAtributo.setSelecao(null); } if(selectProjeto != null){ selectProjeto.setSelecao(null); } agenteCorrente = new Agent(); return PAGINA_FORM_AGENTE; } public boolean validaData(Date dataInicio, Date dataFim){ Date dataAgora = new Date(); boolean valida = true; if(dataAgora.compareTo(dataInicio)>0){ error("A data INICIAL não aceita datas passadas"); valida = false; } if(dataInicio.compareTo(dataFim)>=0){ error("A data FINAL tem que ser maior que a data INICIAL"); valida = false; } return valida; } public String cadastrarAgente(){ agenteCorrente.setQualityAttribute(selectAtributo.getObjetoSelecionado()); agenteCorrente.setProject(selectProjeto.getObjetoSelecionado()); try { agentService.salve(agenteCorrente); } catch (ServiceException ex) { error(ex.getMessage()); return null; } ContextoAmbiente.getInstance().registraAgente(agenteCorrente); info("Agente cadastrado com sucesso, clique em Ambiente para acompanhar o andamento"); return paginaNovoAgente(); } public String paginaAmbiente(){ return PAGINA_AMBIENTE; } public String pageRefactoring(){ return PAGINA_REFACTORING; } /** * @param selectConfiguracao the selectConfiguracao to set */ public void setSelectConfiguracao(SelectOneDataModel<Revision> selectConfiguracao) { this.selectConfiguracao = selectConfiguracao; } /** * @return the tabelaAgentes */ public DataModel getTabelaAgentes() { if(tabelaAgentes == null){ tabelaAgentes = new ListDataModel(); } tabelaAgentes.setWrappedData(ContextoAmbiente.getInstance().getListaAgentes()); return tabelaAgentes; } /** * @param tabelaAgentes the tabelaAgentes to set */ public void setTabelaAgentes(DataModel tabelaAgentes) { this.tabelaAgentes = tabelaAgentes; } /** * @return the tabelaConhecimento */ public DataModel getTabelaConhecimento() { if(tabelaConhecimento == null){ tabelaConhecimento = new ListDataModel(); } tabelaConhecimento.setWrappedData(ContextoAmbiente.getInstance().getKnowledgeAcumulado()); return tabelaConhecimento; } /** * @param tabelaConhecimento the tabelaConhecimento to set */ public void setTabelaConhecimento(DataModel tabelaConhecimento) { this.tabelaConhecimento = tabelaConhecimento; } /** * @return the agenteCorrente */ public Agent getAgenteCorrente() { return agenteCorrente; } /** * @param agenteCorrente the agenteCorrente to set */ public void setAgenteCorrente(Agent agenteCorrente) { this.agenteCorrente = agenteCorrente; } /** * @return the listaPapel */ public List<SelectItem> getListaPapel() { return listaPapel; } /** * @param listaPapel the listaPapel to set */ public void setListaPapel(List<SelectItem> listaPapel) { this.listaPapel = listaPapel; } /** * @return the strPapelCorente */ public String getStrPapelCorente() { return strPapelCorente; } /** * @param strPapelCorente the strPapelCorente to set */ public void setStrPapelCorente(String strPapelCorente) { this.strPapelCorente = strPapelCorente; } /** * @return the selectMetrica */ public SelectOneDataModel<QualityAttribute> getSelectAtributo() { if(selectAtributo == null){ // selectAtributo = SelectOneDataModel.criaComTextoInicialPersonalizado(qualityAttributeService.getAll(), "Selecione O Atributo de Qualidade"); selectAtributo = SelectOneDataModel.criaComTextoInicialPersonalizado(qualityAttributeService.getAll(), getMessageResourceString("selectQualityAttribute", null)); } return selectAtributo; } /** * @param selectMetrica the selectMetrica to set */ public void setSelectAtributo(SelectOneDataModel<QualityAttribute> selectAtributo) { this.selectAtributo = selectAtributo; } /** * @return the configuracaoCorrente */ public Revision getConfiguracaoCorrente() { return configuracaoCorrente; } /** * @param configuracaoCorrente the configuracaoCorrente to set */ public void setConfiguracaoCorrente(Revision configuracaoCorrente) { this.configuracaoCorrente = configuracaoCorrente; } /** * @return the selectProjeto */ public SelectOneDataModel<SoftwareProject> getSelectProjeto() { if(selectProjeto == null){ selectProjeto = SelectOneDataModel.criaComTextoInicialPersonalizado(projectService.getProjectsByOceanoUser(sessao.getUsuarioCorrente()), getMessageResourceString("selectProject", null)); } return selectProjeto; } /** * @param selectProjeto the selectProjeto to set */ public void setSelectProjeto(SelectOneDataModel<SoftwareProject> selectProjeto) { this.selectProjeto = selectProjeto; } /** * @return the tabelaRefactoring */ public DataModel getTabelaRefactoring() { if(tabelaRefactoring == null){ tabelaRefactoring = new ListDataModel(ContextoAmbiente.getInstance().getRefactorings()); } return tabelaRefactoring; } /** * @param tabelaRefactoring the tabelaRefactoring to set */ public void setTabelaRefactoring(DataModel tabelaRefactoring) { this.tabelaRefactoring = tabelaRefactoring; } }