/*
*
* Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute
- Graduate School and Research in Engineering.
* See the file license.txt for copyright permission.
*
*/
package actions;
import java.util.ArrayList;
import java.util.List;
import javax.faces.event.ValueChangeEvent;
import service.CargaAppService;
import service.controleTransacao.FabricaDeAppService;
import service.exception.AplicacaoException;
import util.Constantes;
import util.SelectOneDataModel;
/**
* Action responsavel por realizar a carga do sistema,
* Aten��o ao fato de que esse action n�o requer autentica��o para seus metodos!
* Ou seja pode ser acessada sem passar pelo filtro de login.
*
* */
public class CargaActions extends BaseActions {
// Services
private static CargaAppService cargaService;
private static String PAGINA_CARGA = "cargabd";
private static String SENHA_CARGA = Constantes.SENHA_CARGABD;
private static String OPCAO_BASICA = "Basica";
private static String OPCAO_ESTUDO = "Estudo de Caso";
private static String OPCAO_ALTERACAO_ESTUDO = "Alteracoes no Estudo de Caso";
/** Opcoes possiveis para o combobox do campo de Carga do Sistema
* */
public List<String> tiposDeCarga = new ArrayList<String>();
private SelectOneDataModel<String> comboTiposDeCarga;
//variaveis de tela
private String senha;
private String descCarga;
public CargaActions() throws Exception {
try {
cargaService = FabricaDeAppService.getAppService(CargaAppService.class);
} catch (Exception e) {
throw e;
}
//add a opcao de alteracao no estudo de caso nos tipos de carga
tiposDeCarga.add(OPCAO_ALTERACAO_ESTUDO);
//add a opcao do estudo de caso nos tipos de carga
tiposDeCarga.add(OPCAO_ESTUDO);
//adciona a opcao basica nos tipos de carga.
tiposDeCarga.add(OPCAO_BASICA);
descCarga=null;
comboTiposDeCarga=null;
}
/**
* Metodo chamado por ajax, para alterar a descri��o sempre que alterar a combobox
*/
public void alteraDescAjax(ValueChangeEvent event){
String opcao = event.getNewValue().toString();
alteraDesc(opcao);
}
/**
* Metodo chamado para alterar a descri��o
*/
public void alteraDesc(String opcao){
if(opcao == null || opcao.equals(OPCAO_ALTERACAO_ESTUDO)){
descCarga = "Insere tipos de usuarios, usuario administrador e parametros." +
"<br />Insere o estudo de casos." +
"<br /> Realiza as altera��es posteriores.";
}
else if(opcao.equals(OPCAO_BASICA)){
descCarga = "Insere tipos de usuarios, usuario administrador e parametros.";
}
else if(opcao.equals(OPCAO_ESTUDO)){
descCarga = "Insere tipos de usuarios, usuario administrador e parametros." +
"<br />E o estudo de casos.";
}
}
/**
* Carrega a carga do sistema se a senha for igual a SENHA_CARGA
*
* @return
*/
public String executarCarga(){
//caso a senha n�o bata com a SENHA_CARGA, da mensagem de erro e n�o faz a carga
if(!senha.equals(SENHA_CARGA)){
error("usuario.ERRO_LOGIN_SENHA_INEXISTENTES");
return PAGINA_CARGA;
}
String opcao = comboTiposDeCarga.getObjetoSelecionado();
System.out.println(">>>"+opcao);
try {
if(opcao.equals(OPCAO_BASICA)){
cargaService.executarCargaBasica();
}
else if(opcao.equals(OPCAO_ESTUDO)){
cargaService.executarCargaEstudoDeCaso();
}
else if(opcao.equals(OPCAO_ALTERACAO_ESTUDO)){
cargaService.executarCargaAlteraEstudoDeCaso();
}
info("carga.SUCESSO_CARGA");
} catch (AplicacaoException ex){
error(ex.getMessage());
}
descCarga=null;
return PAGINA_CARGA;
}
// ================================== M�todos get() e set() ================================== //
public String getSenha() {
return senha;
}
public String getDescCarga() {
if(descCarga == null){
if(comboTiposDeCarga==null){
//supostamente so passa aqui na primeira vez que roda o sistema.
descCarga = "Carga b�sica do sistema.";
}
else{
String opcao = comboTiposDeCarga.getObjetoSelecionado();
alteraDesc(opcao);
}
}
return descCarga;
}
public void setDescCarga(String descCarga) {
this.descCarga = descCarga;
}
public void setSenha(String senha) {
this.senha = senha;
}
public static String getSENHA_CARGA() {
return SENHA_CARGA;
}
public static void setSENHA_CARGA(String sENHACARGA) {
SENHA_CARGA = sENHACARGA;
}
/**
* M�todo que cria a Combobox que lista os tipos de Carga no sistema
* @author felipe.arruda
*/
public SelectOneDataModel<String> getComboTiposDeCarga() {
if (comboTiposDeCarga == null){
comboTiposDeCarga = SelectOneDataModel.criaSemTextoInicial(tiposDeCarga);
}
return comboTiposDeCarga;
}
public void setComboTiposDeCarga(SelectOneDataModel<String> comboTiposDeCarga) {
this.comboTiposDeCarga = comboTiposDeCarga;
}
}