/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.uff.ic.oceano.ourico.controller;
import br.uff.ic.oceano.controller.BaseBean;
import br.uff.ic.oceano.core.exception.ObjetoNaoEncontradoException;
import br.uff.ic.oceano.core.factory.ObjectFactory;
import br.uff.ic.oceano.core.model.SoftwareProject;
import br.uff.ic.oceano.core.service.SoftwareProjectService;
import br.uff.ic.oceano.ourico.model.ProjectConfiguration;
import br.uff.ic.oceano.ourico.service.ProjectConfigurationService;
import br.uff.ic.oceano.view.SelectOneDataModel;
import java.util.ArrayList;
import java.util.List;
import static br.uff.ic.oceano.ourico.controle.VariaveisOurico.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author marapao
*/
public class OuricoConfigBean extends BaseBean {
private String PAGINA_CADASTRO = "def:/privado/ourico/ouricoConfig/form";
private SelectOneDataModel<SoftwareProject> selectOneProject;
private SelectOneDataModel<String> selectOnePolitica;
private SoftwareProjectService projectService = ObjectFactory.getObjectWithDataBaseDependencies(SoftwareProjectService.class);
private ProjectConfigurationService projectConfigurationService = ObjectFactory.getObjectWithDataBaseDependencies(ProjectConfigurationService.class);
private String dirAutobranch;
private List<String> filtrosInformativos;
private boolean filtroSintatico;
private boolean filtroSemantico;
private boolean chboxFiltroSintatico;
private boolean chboxFiltroSemantico;
private boolean projetoVerificado = false;
private String politicaSelecionada;
private ProjectConfiguration projectConfiguration;
public OuricoConfigBean() {
super("OuricoConfigBean");
}
/**
* @return the selectOneProject
*/
public SelectOneDataModel<SoftwareProject> getSelectOneProject() {
if (selectOneProject == null) {
selectOneProject = selectOneProject.criaComTextoInicialPersonalizado(projectService.getAll(), "Selecione um projeto");
}
return selectOneProject;
}
/**
* @param selectOneProject the selectOneProject to set
*/
public void setSelectOneProject(SelectOneDataModel<SoftwareProject> selectOneProject) {
this.selectOneProject = selectOneProject;
}
public String doCadastrar() {
return PAGINA_CADASTRO;
}
public String doSalvar() {
if(projectConfiguration == null)
projectConfiguration = new ProjectConfiguration();
getProjectConfiguration().setProject(selectOneProject.getObjetoSelecionado());
getProjectConfiguration().setDirAutobranch(dirAutobranch);
getProjectConfiguration().setPolitica(selectOnePolitica.getObjetoSelecionado());
getProjectConfiguration().setVerificacaoSintaticaInformativa(chboxFiltroSintatico);
getProjectConfiguration().setVerificacaoSemanticaInformativa(chboxFiltroSemantico);
projectConfigurationService.save(getProjectConfiguration());
info("The configuration was sucefully stored.");
return null;
}
public void OnClickSemantico() {
if (chboxFiltroSemantico) {
chboxFiltroSintatico = true;
}
}
public void doCancelar() {
dirAutobranch = null;
}
public String preencheDadosProjeto() {
SoftwareProject projetoSelecionado = selectOneProject.getObjetoSelecionado();
try {
ProjectConfiguration projConfiguration = projectConfigurationService.getByProject(projetoSelecionado);
projectConfiguration = projConfiguration;
if (selectOnePolitica == null) {
List<String> politicasLista = new ArrayList<String>();
politicasLista.add(PERMISSIVA);
politicasLista.add(MODERADA);
politicasLista.add(RESTRITIVA);
politicasLista.add(AUTOMATICA);
selectOnePolitica = SelectOneDataModel.criaComTextoInicialPersonalizado(politicasLista, "selecione uma politica.");
}
dirAutobranch = projConfiguration.getDirAutobranch();
politicaSelecionada = projConfiguration.getPolitica();
selectOnePolitica.setSelecao(politicaSelecionada);
chboxFiltroSintatico = projConfiguration.getVerificacaoSintaticaInformativa();
chboxFiltroSemantico = projConfiguration.getVerificacaoSemanticaInformativa();
if (politicaSelecionada.equals(PERMISSIVA)) {
filtrosInformativos = new ArrayList<String>();
filtrosInformativos.add(FILTRO_SINTATICO);
filtrosInformativos.add(FILTRO_SEMANTICO);
} else if (politicaSelecionada.equals(MODERADA)) {
filtrosInformativos = new ArrayList<String>();
filtrosInformativos.add(FILTRO_SEMANTICO);
} else {
filtrosInformativos = new ArrayList<String>();
}
} catch (ObjetoNaoEncontradoException ex) {
Logger.getLogger(OuricoConfigBean.class.getName()).log(Level.SEVERE, null, ex);
} finally {
projetoVerificado = true;
}
return null;
}
/**
* @return the dirAutobranch
*/
public String getDirAutobranch() {
return dirAutobranch;
}
/**
* @param dirAutobranch the dirAutobranch to set
*/
public void setDirAutobranch(String dirAutobranch) {
this.dirAutobranch = dirAutobranch;
}
/**
* @return the selectOnePolitica
*/
public SelectOneDataModel<String> getSelectOnePolitica() {
if (selectOnePolitica == null) {
List<String> politicasLista = new ArrayList<String>();
politicasLista.add(PERMISSIVA);
politicasLista.add(MODERADA);
politicasLista.add(RESTRITIVA);
politicasLista.add(AUTOMATICA);
selectOnePolitica = SelectOneDataModel.criaComTextoInicialPersonalizado(politicasLista, "selecione uma politica.");
}
return selectOnePolitica;
}
/**
* @param selectOnePolitica the selectOnePolitica to set
*/
public void setSelectOnePolitica(SelectOneDataModel<String> selectOnePolitica) {
this.selectOnePolitica = selectOnePolitica;
}
public void preencheListaFiltrosInformativos() {
politicaSelecionada = selectOnePolitica.getObjetoSelecionado();
chboxFiltroSintatico = false;
chboxFiltroSemantico = false;
if (politicaSelecionada.equals(PERMISSIVA)) {
filtrosInformativos = new ArrayList<String>();
filtrosInformativos.add(FILTRO_SINTATICO);
filtrosInformativos.add(FILTRO_SEMANTICO);
} else if (politicaSelecionada.equals(MODERADA)) {
filtrosInformativos = new ArrayList<String>();
filtrosInformativos.add(FILTRO_SEMANTICO);
} else {
filtrosInformativos = new ArrayList<String>();
}
}
/**
* @return the filtrosInformativos
*/
public List<String> getFiltrosInformativos() {
return filtrosInformativos;
}
/**
* @param filtrosInformativos the filtrosInformativos to set
*/
public void setFiltrosInformativos(List<String> filtrosInformativos) {
this.filtrosInformativos = filtrosInformativos;
}
/**
* @return the filtroSintatico
*/
public boolean getFiltroSintatico() {
if (filtrosInformativos == null) {
filtroSintatico = false;
} else if (filtrosInformativos.contains(FILTRO_SINTATICO)) {
filtroSintatico = true;
} else {
filtroSintatico = false;
}
return filtroSintatico;
}
/**
* @param filtroSintatico the filtroSintatico to set
*/
public void setFiltroSintatico(boolean filtroSintatico) {
this.filtroSintatico = filtroSintatico;
}
/**
* @return the filtroSemantico
*/
public boolean getFiltroSemantico() {
if (filtrosInformativos == null) {
filtroSemantico = false;
} else if (filtrosInformativos.contains(FILTRO_SEMANTICO)) {
filtroSemantico = true;
} else {
filtroSemantico = false;
}
return filtroSemantico;
}
/**
* @param filtroSemantico the filtroSemantico to set
*/
public void setFiltroSemantico(boolean filtroSemantico) {
this.filtroSemantico = filtroSemantico;
}
/**
* @return the politicaSelecionada
*/
public String getPoliticaSelecionada() {
return politicaSelecionada;
}
/**
* @param politicaSelecionada the politicaSelecionada to set
*/
public void setPoliticaSelecionada(String politicaSelecionada) {
this.politicaSelecionada = politicaSelecionada;
}
/**
* @return the chboxFiltroSintatico
*/
public boolean isChboxFiltroSintatico() {
return chboxFiltroSintatico;
}
/**
* @param chboxFiltroSintatico the chboxFiltroSintatico to set
*/
public void setChboxFiltroSintatico(boolean chboxFiltroSintatico) {
this.chboxFiltroSintatico = chboxFiltroSintatico;
}
/**
* @return the chboxFiltroSemantico
*/
public boolean isChboxFiltroSemantico() {
return chboxFiltroSemantico;
}
/**
* @param chboxFiltroSemantico the chboxFiltroSemantico to set
*/
public void setChboxFiltroSemantico(boolean chboxFiltroSemantico) {
this.chboxFiltroSemantico = chboxFiltroSemantico;
}
/**
* @return the projetoVerificado
*/
public boolean isProjetoVerificado() {
return projetoVerificado;
}
/**
* @param projetoVerificado the projetoVerificado to set
*/
public void setProjetoVerificado(boolean projetoVerificado) {
this.projetoVerificado = projetoVerificado;
}
/**
* @return the projectConfiguration
*/
public ProjectConfiguration getProjectConfiguration() {
return projectConfiguration;
}
/**
* @param projectConfiguration the projectConfiguration to set
*/
public void setProjectConfiguration(ProjectConfiguration projectConfiguration) {
this.projectConfiguration = projectConfiguration;
}
}