/* * * 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.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; import javax.faces.event.ValueChangeEvent; import javax.faces.model.DataModel; import javax.faces.model.ListDataModel; import modelo.File; import modelo.ModelagemFuzzy; import modelo.Modelo; import modelo.RegraModelagemView; import modelo.VariavelModelagemView; import motorInferencia.MotorInferencia; import br.blog.arruda.plot.Plot; import org.hibernate.dialect.function.VarArgsSQLFunction; import org.richfaces.event.UploadEvent; import org.richfaces.model.UploadItem; import exception.motorInferencia.MotorInferenciaException; import service.ModelagemFuzzyAppService; import service.controleTransacao.FabricaDeAppService; import service.exception.AplicacaoException; import util.DataUtil; import xfuzzy.lang.ParamMemFunc; import util.SelectOneDataModel; import xfuzzy.lang.MemFunc; import xfuzzy.lang.Rule; import xfuzzy.lang.Rulebase; import xfuzzy.lang.SystemModule; import xfuzzy.lang.Type; import xfuzzy.lang.Variable; public class ModelagemFuzzyActions extends BaseActions { private static ModelagemFuzzyAppService modelagemFuzzyService; private ModelagemFuzzy modelagemFuzzyCorrente; private DataModel listaDeModelagemFuzzys; // Paginas public final String PAGINA_GRAFICO_MF = "graficoMFModelagem"; public final String PAGINA_SIMULADOR_2D_PREPARA = "preparaSimulador2DModelagem"; public final String PAGINA_SIMULADOR_2D_MOSTRA = "mostraSimulador2DModelagem"; public final String PAGINA_MONITOR = "monitorModelagem"; public final String PAGINA_GRAFICO_3D_MOSTRA = "showGrafico3D"; //vars de arquivos private ArrayList<File> files = new ArrayList<File>(); private int uploadsAvailable = 1; private boolean autoUpload = false; private boolean useFlash = false; private boolean messenger = false; private String valorDaMensagem=""; private Date dataCriacao; private final static String OPCAO_MODELAGEM = "Conteudo do Arquivo de Modelagem"; private final static String OPCAO_REGRAS = "Regras do Arquivo de Modelagem"; private final static String OPCAO_OPERADORES = "Operadores do Arquivo de Modelagem"; private final static String OPCAO_MF = "Func�es de Pertin�ncia do Arquivo de Modelagem"; private final static String OPCAO_GRAFICO_MF = "Grafico das Func�es de Pertin�ncia das Vari�veis Lingu�sticas"; private final static String OPCAO_SIMULADOR_2D = "Simulador 2D"; private final static String OPCAO_MONITOR = "Monitor"; private final static String OPCAO_LIMITES = "Universo do Discurso de Cada Variavel"; private final static String OPCAO_SUPERFICIE = "Superficie Gerada Pela Modelagem"; private final static String OPCAO_GRAFICO3D = "Grafico 3D"; private String opcaoDescricaoSelecionada = "Detalhar Arquivo"; private String opcaoMostraModelagem = "Informa��es Extras"; private String conteudoTextArea = "Nenhuma op��o selecionada."; private boolean isTexto = true; private SelectOneDataModel<String> comboModelagemFuzzy; /** Opcoes possiveis para o combobox do campo Finalidade. */ public List<String> tiposDeFlag = new ArrayList<String>(2); // Variaveis de grafico //variaveis possiveis da modelagem private SelectOneDataModel<Type> comboVariaveisGraficoMF; private boolean exibindoGrafico = false; //representa os datasets(conjunto de funcoes de um grafico) do grafico de MF. private Plot plotMF; private String variavelGraficoMF = "DemandaMaxT"; //===== //representa o grafico do simulador 2d. //IMPORTANTE: SEMPRE GERAR GETS E SETS DO PLOT private Plot plotSimulador2D; private SelectOneDataModel<VariavelModelagemView> comboVariaveisInput; private SelectOneDataModel<VariavelModelagemView> comboVariaveisOutput; private VariavelModelagemView variavelInputCorrente; private VariavelModelagemView variavelOutputCorrente; private boolean simuladorExecutado=false; //variaveis de input e de output private String paginaAtual; private DataModel variaveisInput; private DataModel variaveisOutput; //variaveis de Monitor //IMPORTANTE: SEMPRE GERAR GETS E SETS DO PLOT private Plot plotMonitor; private DataModel regrasViewModelagem; private MotorInferencia motorInferenciaMonitor; //===== //variaveis do grafico 3d private VariavelModelagemView variavelInput1CorrenteGrafico3D; private VariavelModelagemView variavelInput2CorrenteGrafico3D; private String dataSimulador3D; private int simulador3DNumSamples=40; public boolean extensao=false; public ModelagemFuzzyActions() { try { modelagemFuzzyService = FabricaDeAppService.getAppService(ModelagemFuzzyAppService.class); tiposDeFlag.add("Gerar PMP"); tiposDeFlag.add("Avaliar PMP"); } catch (Exception e) { e.printStackTrace(); } isTexto = true; paginaAtual=null; } /** * Volta para a p�gina de lista de ModelagemFuzzy * * @return String */ public String cancela() { listaDeModelagemFuzzys = null; opcaoDescricaoSelecionada = "Detalhar Arquivo"; opcaoMostraModelagem = "Informa��es Extras"; conteudoTextArea = "Nenhuma op��o selecionada."; isTexto = true; comboModelagemFuzzy =null; variavelGraficoMF =null; plotMF=null; exibindoGrafico=false; comboVariaveisInput=null; comboVariaveisOutput=null; variaveisInput=null; variaveisOutput=null; variavelInputCorrente=null; variavelOutputCorrente=null; variavelInput1CorrenteGrafico3D=null; variavelInput2CorrenteGrafico3D=null; paginaAtual=null; simuladorExecutado=false; dataSimulador3D=null; motorInferenciaMonitor=null; return "listModelagemFuzzy"; } /** * Insere na requisicao um novo ModelagemFuzzy * Retorna "newModelagemFuzzy" * Prepara para utilizar a pagina de inclusao(new) * @return */ public String preparaInclusao() { modelagemFuzzyCorrente = new ModelagemFuzzy(); comboModelagemFuzzy = null; return "newModelagemFuzzy"; } /** * Este m�todo � respons�vel pelo upload de arquivos, perceba que este * metodo esta ligado a um fileUploadListener, ou seja, a um listener de aplica�ao, * por isso nao foi necessario passar um atributo do tipo File, pois o proprio * atributo fileUploadListener encarrega-se de receber um objeto do tipo File. * * chama o metodo incluiComUpload() de modelagemFuzzyService. * * @author felipe.arruda * @param evento * */ public void enviarArquivo(UploadEvent evento) { UploadItem item = evento.getUploadItem(); try { dataCriacao = new Date(); modelagemFuzzyCorrente.setDataCriacao(DataUtil.dateToCalendar(dataCriacao)); modelagemFuzzyCorrente.setNomeArquivo(item.getFileName()); modelagemFuzzyCorrente.setAutor(sessaoUsuarioCorrente.getUsuarioLogado().getNome()); modelagemFuzzyCorrente.setFinalidadeModelagem(comboModelagemFuzzy.getObjetoSelecionado()); modelagemFuzzyService.incluiComUpload(modelagemFuzzyCorrente, item); File file = new File(); file.setLength(item.getData().length); file.setName(item.getFileName()); file.setData(item.getData()); files.add(file); uploadsAvailable--; listaDeModelagemFuzzys = null; messenger = true; } catch (AplicacaoException e) { valorDaMensagem=e.getMessage(); messenger = false; } } /** * Este metodo direciona para a pagina listModelagemFuzzy, apos a inclusao de modelagemFuzzyCorrente no * metodo enviarArquivo ou caso ja exista um arquivo com determinado nome. * * @return String */ public String mensagemUpload(){ this.clearUploadData(); if(messenger){ info("modelagemFuzzy.SUCESSO_UPLOAD"); }else{ if(valorDaMensagem.indexOf("CODIGO_MODELAGEM_EXISTENTE")!=-1){ error("modelagemFuzzy.CODIGO_MODELAGEM_EXISTENTE"); return "newModelagemFuzzy"; }else{ error("modelagemFuzzy.NOME_ARQUIVO_MODELAGEM_EXISTENTE"); modelagemFuzzyCorrente.setId(null); return "uploadModelagemFuzzy"; } } return "listModelagemFuzzy"; } public void paint(OutputStream stream, Object object) throws IOException { stream.write(getFiles().get((Integer)object).getData()); } public String clearUploadData() { files.clear(); setUploadsAvailable(1); return null; } /** * Este metodo � uma varia�ao do do original para atender a necessidade de nao mostrar a imagem do arquivo * quando o usuario voltar a pagina new para efetuar um novo upload * * @return */ public void clearUploadDataModificado() { files.clear(); setUploadsAvailable(1); } /** * Seleciona o objeto para edi��o e redireciona para a tela de edi��o * * Insere o objeto no request * * @return String */ public String preparaAlteracao() { modelagemFuzzyCorrente = (ModelagemFuzzy) listaDeModelagemFuzzys.getRowData(); comboModelagemFuzzy = null; comboModelagemFuzzy = SelectOneDataModel.criaComObjetoSelecionadoSemTextoInicial(tiposDeFlag, modelagemFuzzyCorrente.getFinalidadeModelagem()); return "editModelagemFuzzy"; } /** * Executa a regra de neg�cio de altera��o de um ModelagemFuzzy * * Atualiza a lista de ModelagemFuzzy e a insere no request * * @return String */ public String altera() { modelagemFuzzyService.altera(modelagemFuzzyCorrente); info("modelagemFuzzy.SUCESSO_ALTERACAO"); listaDeModelagemFuzzys = null; return "listModelagemFuzzy"; } /** * Seleciona o objeto para exclusao * * Insere o objeto no request * */ public void preparaExclusao() { modelagemFuzzyCorrente = (ModelagemFuzzy) listaDeModelagemFuzzys.getRowData(); } /** * Executa a regra de neg�cio de exclus�o de um recurso * * @return String */ public String exclui() { try { modelagemFuzzyService.exclui(modelagemFuzzyCorrente); listaDeModelagemFuzzys = null; info("modelagemFuzzy.SUCESSO_EXCLUSAO"); } catch (AplicacaoException e) { error(e.getMessage()); } return "listModelagemFuzzy"; } /** * Exibe um objeto modelagemFuzzy, e leva para a tela onde tem as opcoes de * Mostrar informacoes diversas sobre a modelagem. * * Redireciona para a p�gina show * * @return String */ public String mostra() { modelagemFuzzyCorrente = (ModelagemFuzzy) listaDeModelagemFuzzys.getRowData(); try { modelagemFuzzyCorrente = modelagemFuzzyService.recuperaModelagemFuzzyComSpecification(modelagemFuzzyCorrente); } catch (AplicacaoException e) { error(e.getMessage()); return "listModelagemFuzzy"; } opcaoMostraModelagem = "Informa��es Extras"; conteudoTextArea = "Nenhuma op��o selecionada."; isTexto = true; return "showModelagemFuzzy"; } /** * Exibe informacoes em um TextArea da pagina show. * Dependendo do valor de opcaoMostraModelagem ele mostra um valor diferente no TextArea, e se * for igual OPCAO_MF troca o TextArea pelo grafico. * @return String * @author felipe.arruda */ public String mostraDados() { if(opcaoMostraModelagem.equals(OPCAO_MODELAGEM)){ opcaoDescricaoSelecionada = "Detalhar Modelagem"; conteudoTextArea = modelagemFuzzyService.imprimeModelagem(modelagemFuzzyCorrente); isTexto = true; } if(opcaoMostraModelagem.equals(OPCAO_REGRAS)){ opcaoDescricaoSelecionada = "Detalhar Regras"; conteudoTextArea = modelagemFuzzyService.imprimeRegras(modelagemFuzzyCorrente); isTexto = true; } if(opcaoMostraModelagem.equals(OPCAO_OPERADORES)){ opcaoDescricaoSelecionada = "Detalhar Operadores"; conteudoTextArea = modelagemFuzzyService.imprimeOperadores(modelagemFuzzyCorrente); isTexto = true; } if(opcaoMostraModelagem.equals(OPCAO_LIMITES)){ opcaoDescricaoSelecionada = "Detalhar Limites"; conteudoTextArea = modelagemFuzzyService.imprimeLimites(modelagemFuzzyCorrente); isTexto = true; } if(opcaoMostraModelagem.equals(OPCAO_MF)){ opcaoDescricaoSelecionada = "Detalhar MF"; conteudoTextArea = modelagemFuzzyService.imprimeMF(modelagemFuzzyCorrente); isTexto = true; } if(opcaoMostraModelagem.equals(OPCAO_GRAFICO_MF)){ conteudoTextArea = ""; isTexto = false; comboModelagemFuzzy =null; variavelGraficoMF = modelagemFuzzyCorrente.getModelagem().getTypes()[0].getName(); plotMF = modelagemFuzzyService.gerarDadosGraficoMF(variavelGraficoMF, modelagemFuzzyCorrente); return PAGINA_GRAFICO_MF; } if(opcaoMostraModelagem.equals(OPCAO_SIMULADOR_2D)){ conteudoTextArea = ""; isTexto = false; comboVariaveisInput=null; comboVariaveisOutput=null; variaveisInput=null; variaveisOutput=null; variavelInputCorrente=null; variavelOutputCorrente=null; paginaAtual=PAGINA_SIMULADOR_2D_PREPARA; simuladorExecutado=false; return PAGINA_SIMULADOR_2D_PREPARA; } if(opcaoMostraModelagem.equals(OPCAO_MONITOR)){ conteudoTextArea = ""; isTexto = false; variaveisInput=null; variaveisOutput=null; motorInferenciaMonitor=null; regrasViewModelagem=null; plotMonitor=null; exibindoGrafico = false; paginaAtual=PAGINA_MONITOR; return PAGINA_MONITOR; } if(opcaoMostraModelagem.equals(OPCAO_GRAFICO3D)){ //verifica se tem exatas 2 variaveis de input, se nao tiver nao permite ao usuario entrar nessa opcao. //a principio estou obrigando a x e y serem,respectivamente, variaveis de entrada 1 e 2 da modelagem corrente. ArrayList<VariavelModelagemView> listaVariaveisInput = modelagemFuzzyService.recuperaListaVariavelModelagemViewDeInputPorModelagem(modelagemFuzzyCorrente); if (modelagemFuzzyCorrente.getModelagem().getSystemModule().getInputs().length != 2){ error("modelagemFuzzy.VARIAVEIS_INPUT_INCORRETAS"); return "showModelagemFuzzy"; } conteudoTextArea = ""; isTexto = false; exibindoGrafico = false; motorInferenciaMonitor=null; dataSimulador3D = null; variavelInput1CorrenteGrafico3D=listaVariaveisInput.get(0); variavelInput2CorrenteGrafico3D=listaVariaveisInput.get(1); variavelOutputCorrente= modelagemFuzzyService.recuperaListaVariavelModelagemViewDeOutputPorModelagem(modelagemFuzzyCorrente).get(0); paginaAtual=PAGINA_GRAFICO_3D_MOSTRA; return PAGINA_GRAFICO_3D_MOSTRA; } return "showModelagemFuzzy"; } /** * Exibe grafico das funcoes de pertinencia na tela. * Funciona por ajax. * @param event */ public void mostrarGraficoMF(ValueChangeEvent event){ variavelGraficoMF = event.getNewValue().toString(); plotMF = modelagemFuzzyService.gerarDadosGraficoMF(event.getNewValue().toString(), modelagemFuzzyCorrente); exibindoGrafico=true; } /** * Metodo chamado quando clicado no botao "Proximo" que redireciona para a pagina em que ser� realizado o simulador * * @return */ public String preparaSimulador2D(){ //obriga a pegar valores novos e atualizar o datamodel de variaveis para ficarem corretos, isso � //retirando o que foi selecionado pelas comboboxes. variaveisOutput = null; variaveisInput = null; //variavel selecionada anteriormente para eixo X variavelInputCorrente = comboVariaveisInput.getObjetoSelecionado(); //variavel selecionada anteriormente para eixo Y variavelOutputCorrente = comboVariaveisOutput.getObjetoSelecionado(); return PAGINA_SIMULADOR_2D_MOSTRA; } /** * Metodo chamado quando clicado no botao "Executar Simulador" * Chamado depois que o usuario colocou valores fixos para as variaveis que nao estao sendo analizadas. * Chama o metodo do service responsavel por criar um grafico(Plot) com os dados de tela passados como parametro. * * @return */ public String mostraSimulador2D(){ //variavel selecionada anteriormente para eixo X VariavelModelagemView eixoX = comboVariaveisInput.getObjetoSelecionado(); //variavel selecionada anteriormente para eixo Y VariavelModelagemView eixoY = comboVariaveisOutput.getObjetoSelecionado(); //Lista das varaiveis que sobraram depois da selecao, e tiveram seus que ter seus valores fixos. ArrayList<VariavelModelagemView> variaveisInputQueSobraram = ((ArrayList<VariavelModelagemView>) variaveisInput.getWrappedData()); ArrayList<VariavelModelagemView> variaveisOutputQueSobraram = ((ArrayList<VariavelModelagemView>) variaveisOutput.getWrappedData()); //chama o simulador passando os variaveis de input que sobraram, e as de output que sobraram, junto com as selecionadas try { plotSimulador2D = modelagemFuzzyService.gerarPlotSimulador2D(eixoX,eixoY,variaveisInputQueSobraram,variaveisOutputQueSobraram,modelagemFuzzyCorrente); } catch (MotorInferenciaException e) { error(e.getMessage()); } simuladorExecutado=true; return PAGINA_SIMULADOR_2D_MOSTRA; } /** * Metodo que faz com que retorne para a pagina de prepara Simulador, * caso o usuario queira selecionar outra variavel para ficar nos eixos. * * @return */ public String voltarSimulador2D(){ variaveisInput=null; variaveisOutput=null; variavelInputCorrente=null; variavelOutputCorrente=null; paginaAtual=PAGINA_SIMULADOR_2D_PREPARA; simuladorExecutado=false; return PAGINA_SIMULADOR_2D_PREPARA; } /** * Criar um grafico 3d, * Atualmente n�o est� usando as variaveis de input, est� selecionando na mao, portanto funciona apenas para o nosso sistema. * @return */ public String mostraGrafico3D(){ //variavel selecionada para eixo X VariavelModelagemView eixoX = variavelInput1CorrenteGrafico3D; //variavel selecionada para eixo Y VariavelModelagemView eixoY = variavelInput2CorrenteGrafico3D; try { dataSimulador3D = modelagemFuzzyService.gerarDadosGrafico3D(modelagemFuzzyCorrente); exibindoGrafico = true; } catch (MotorInferenciaException e) { exibindoGrafico = false; error(e.getMessage()); } return PAGINA_GRAFICO_3D_MOSTRA; } /** * Metodo chamado quando clicado no botao "Mostrar Monitor" * Chamado depois que o usuario colocou valores para as variaveis de input. * * @return */ public String mostraMonitor(){ motorInferenciaMonitor = new MotorInferencia(); //popula os novos valores das variaveis de entrada. double[] inputs= new double[((ArrayList<VariavelModelagemView>) variaveisInput.getWrappedData()).size()]; for (int i = 0; i < ((ArrayList<VariavelModelagemView>) variaveisInput.getWrappedData()).size(); i++) { VariavelModelagemView variavelIn = ((ArrayList<VariavelModelagemView>) variaveisInput.getWrappedData()).get(i); inputs[i] = variavelIn.getValor(); } //popula os novos valores das outputs pegando os valores da execucao do motor de inferencia para as entradas acima. double[] outputs=null; try { outputs = motorInferenciaMonitor.executaMotorDeInferencia(inputs, modelagemFuzzyCorrente.getNomeArquivo()); } catch (MotorInferenciaException e) { error(e.getMessage()); return PAGINA_MONITOR; } //pega a lista das variaveis de output que serao atualizadas(todas). ArrayList<VariavelModelagemView> variaveisOutputParaAtualizar = ((ArrayList<VariavelModelagemView>) variaveisOutput.getWrappedData()); //atualiza o arraylist variaveisOutputParaAtualizar com os valores do motor de inferencia for (int i = 0; i < outputs.length; i++) { //pega a variavel de output do datamodel que pelo indice i VariavelModelagemView variavelOut = variaveisOutputParaAtualizar.get(i); //altera o valor da mesma para o da execucao do motor de inferencia. variavelOut.setValor(outputs[i]); } //atualiza o datamodel variaveisOutput para ficar com os valores atualizados, pegando a nova lista de outputs variaveisOutput = new ListDataModel(variaveisOutputParaAtualizar); //gera o grafico do conjunto fuzzy resultante plotMonitor = modelagemFuzzyService.gerarDadosGraficoConjuntoFuzzyResultante(motorInferenciaMonitor); exibindoGrafico = true; //coloca como null para forcar a atualizacao da mesma. regrasViewModelagem=null; return PAGINA_MONITOR; } /** * M�todo que cria a Combobox que lista as Modelagens Fuzzy cadastradas no sistema. * * @author walanem */ public SelectOneDataModel<String> getComboModelagemFuzzy() { if (comboModelagemFuzzy == null){ comboModelagemFuzzy = SelectOneDataModel.criaSemTextoInicial(tiposDeFlag); } return comboModelagemFuzzy; } public void setComboModelagemFuzzy(SelectOneDataModel<String> comboModelagemFuzzy) { this.comboModelagemFuzzy = comboModelagemFuzzy; } /** * M�todo que cria a Combobox que lista as variaveis(Type) da Modelagens Fuzzy selecionada. * * @author felipe.arruda */ public SelectOneDataModel<Type> getComboVariaveisGraficoMF() { if (comboModelagemFuzzy == null){ ArrayList<Type> tipos = new ArrayList<Type>(); for (Type tipo : modelagemFuzzyCorrente.getModelagem().getTypes()){ tipos.add(tipo); } comboVariaveisGraficoMF = SelectOneDataModel.criaComObjetoSelecionadoSemTextoInicial(tipos, tipos.get(0)); variavelGraficoMF = comboVariaveisGraficoMF.getObjetoSelecionado().toString(); plotMF = modelagemFuzzyService.gerarDadosGraficoMF(variavelGraficoMF, modelagemFuzzyCorrente); } return comboVariaveisGraficoMF; } public void setComboVariaveisGraficoMF(SelectOneDataModel<Type> comboVariaveisGraficoMF) { this.comboVariaveisGraficoMF = comboVariaveisGraficoMF; } /** * M�todo que cria a combobox que lista as variaveis(VariavelModelagemView) de input da modelagem Fuzzy selecionada. * @return */ public SelectOneDataModel<VariavelModelagemView> getComboVariaveisInput() { if (comboVariaveisInput == null){ ArrayList<VariavelModelagemView> inputvars = modelagemFuzzyService.recuperaListaVariavelModelagemViewDeInputPorModelagem(modelagemFuzzyCorrente); comboVariaveisInput = SelectOneDataModel.criaComObjetoSelecionadoSemTextoInicial(inputvars, inputvars.get(0)); } return comboVariaveisInput; } public void setComboVariaveisInput( SelectOneDataModel<VariavelModelagemView> comboVariaveisInput) { this.comboVariaveisInput = comboVariaveisInput; } /** * M�todo que cria a combobox que lista as variaveis(VariavelModelagemView) de output da modelagem Fuzzy selecionada. * @return */ public SelectOneDataModel<VariavelModelagemView> getComboVariaveisOutput() { if (comboVariaveisOutput == null){ ArrayList<VariavelModelagemView> outputvars = modelagemFuzzyService.recuperaListaVariavelModelagemViewDeOutputPorModelagem(modelagemFuzzyCorrente); comboVariaveisOutput = SelectOneDataModel.criaComObjetoSelecionadoSemTextoInicial(outputvars, outputvars.get(0)); } return comboVariaveisOutput; } public void setComboVariaveisOutput( SelectOneDataModel<VariavelModelagemView> comboVariaveisOutput) { this.comboVariaveisOutput = comboVariaveisOutput; } /* * *********** Gets e Sets ***************** * */ public int getSize() { if (getFiles().size()>0){ return getFiles().size(); }else { return 0; } } public long getTimeStamp(){ return System.currentTimeMillis(); } public ModelagemFuzzy getModelagemFuzzyCorrente() { return modelagemFuzzyCorrente; } public void setModelagemFuzzyCorrente(ModelagemFuzzy modelagemFuzzyCorrente) { this.modelagemFuzzyCorrente = modelagemFuzzyCorrente; } /** * Obtem Data Model listaDeModelagemFuzzys com lista atraves de ModelagemFuzzyAppService * @return */ public DataModel getListaDeModelagemFuzzys() { if (listaDeModelagemFuzzys == null) { listaDeModelagemFuzzys = new ListDataModel(modelagemFuzzyService.recuperaListaPaginadaDeModelagemFuzzys()); } return listaDeModelagemFuzzys; } public void setListaDeModelagemFuzzys(DataModel listaDeModelagemFuzzys) { this.listaDeModelagemFuzzys = listaDeModelagemFuzzys; } /** * @return the files */ public ArrayList<File> getFiles() { return files; } /** * @param files the files to set */ public void setFiles(ArrayList<File> files) { this.files = files; } /** * @return the uploadsAvailable */ public int getUploadsAvailable() { return uploadsAvailable; } /** * @param uploadsAvailable the uploadsAvailable to set */ public void setUploadsAvailable(int uploadsAvailable) { this.uploadsAvailable = uploadsAvailable; } /** * @return the autoUpload */ public boolean isAutoUpload() { return autoUpload; } /** * @param autoUpload the autoUpload to set */ public void setAutoUpload(boolean autoUpload) { this.autoUpload = autoUpload; } /** * @return the useFlash */ public boolean isUseFlash() { return useFlash; } /** * @param useFlash the useFlash to set */ public void setUseFlash(boolean useFlash) { this.useFlash = useFlash; } public Date getDataCriacao() { return dataCriacao; } public void setDataCriacao(Date dataCriacao) { this.dataCriacao = dataCriacao; } /** * @return the modelagemFuzzyService */ public static ModelagemFuzzyAppService getModelagemFuzzyService() { return modelagemFuzzyService; } /** * @param modelagemFuzzyService the modelagemFuzzyService to set */ public static void setModelagemFuzzyService( ModelagemFuzzyAppService modelagemFuzzyService) { ModelagemFuzzyActions.modelagemFuzzyService = modelagemFuzzyService; } /** * @return the messenger */ public boolean isMessenger() { return messenger; } /** * @param messenger the messenger to set */ public void setMessenger(boolean messenger) { this.messenger = messenger; } /** * @return the opcaoMostraModelagem */ public String getOpcaoMostraModelagem() { return opcaoMostraModelagem; } /** * @param opcaoMostraModelagem the opcaoMostraModelagem to set */ public void setOpcaoMostraModelagem(String opcaoMostraModelagem) { this.opcaoMostraModelagem = opcaoMostraModelagem; } /** * @return the opcaoModelagem */ public String getOpcaoModelagem() { return OPCAO_MODELAGEM; } /** * @return the opcaoRegras */ public String getOpcaoRegras() { return OPCAO_REGRAS; } /** * @return the opcaoOperadores */ public String getOpcaoOperadores() { return OPCAO_OPERADORES; } /** * @return the opcaoMf */ public String getOpcaoMf() { return OPCAO_MF; } /** * @return the OpcaoGraficoMf */ public String getOpcaoGraficoMf() { return OPCAO_GRAFICO_MF; } /** * @return the opcaoLimites */ public String getOpcaoLimites() { return OPCAO_LIMITES; } /** * @return the opcaoSuperficie */ public String getOpcaoSuperficie() { return OPCAO_SUPERFICIE; } /** * @return the conteudoTextArea */ public String getConteudoTextArea() { return conteudoTextArea; } /** * @param conteudoTextArea the conteudoTextArea to set */ public void setConteudoTextArea(String conteudoTextArea) { this.conteudoTextArea = conteudoTextArea; } /** * @return the getIsTexto */ public boolean getIsTexto() { return isTexto; } /** * @param isTexto the isTexto to set */ public void setIsTexto(boolean isTexto) { this.isTexto = isTexto; } public boolean getExibindoGrafico() { return exibindoGrafico; } public void setExibindoGrafico(boolean exibindoGrafico) { this.exibindoGrafico = exibindoGrafico; } public String getVariavelGraficoMF() { return variavelGraficoMF; } public void setVariavelGraficoMF(String variavelGraficoMF) { this.variavelGraficoMF = variavelGraficoMF; } public Plot getPlotMF() { return plotMF; } public void setPlotMF(Plot plotMF) { this.plotMF = plotMF; } public Plot getPlotSimulador2D() { return plotSimulador2D; } public void setPlotSimulador2D(Plot plotSimulador2D) { this.plotSimulador2D = plotSimulador2D; } public Plot getPlotMonitor() { return plotMonitor; } public void setPlotMonitor(Plot plotMonitor) { this.plotMonitor = plotMonitor; } public DataModel getVariaveisInput() { if (variaveisInput == null && modelagemFuzzyCorrente!=null) { ArrayList<VariavelModelagemView> listaVariaveisInput = modelagemFuzzyService.recuperaListaVariavelModelagemViewDeInputPorModelagem(modelagemFuzzyCorrente); if(paginaAtual==PAGINA_SIMULADOR_2D_PREPARA){ VariavelModelagemView variavelInputSelecionada = comboVariaveisInput.getObjetoSelecionado(); ArrayList<Integer> indicesParaDelecao=new ArrayList<Integer>(); for(int i=0;i<listaVariaveisInput.size();i++){ VariavelModelagemView var = listaVariaveisInput.get(i); if(var.getNome().equals(variavelInputSelecionada.getNome())) indicesParaDelecao.add(i); } for(int i=0;i<indicesParaDelecao.size();i++){ int temp = indicesParaDelecao.get(i); listaVariaveisInput.remove(temp); } } variaveisInput = new ListDataModel(listaVariaveisInput); } return variaveisInput; } public void setVariaveisInput(DataModel variaveisInput) { this.variaveisInput = variaveisInput; } public DataModel getVariaveisOutput() { if (variaveisOutput == null && modelagemFuzzyCorrente!=null) { ArrayList<VariavelModelagemView> listaVariaveisOutput = modelagemFuzzyService.recuperaListaVariavelModelagemViewDeOutputPorModelagem(modelagemFuzzyCorrente); if(paginaAtual==PAGINA_SIMULADOR_2D_PREPARA){ VariavelModelagemView variavelOutputSelecionada = comboVariaveisOutput.getObjetoSelecionado(); ArrayList<Integer> indicesParaDelecao=new ArrayList<Integer>(); for(int i=0;i<listaVariaveisOutput.size();i++){ VariavelModelagemView var = listaVariaveisOutput.get(i); if(var.getNome().equals(variavelOutputSelecionada.getNome())) indicesParaDelecao.add(i); } for(int i=0;i<indicesParaDelecao.size();i++){ int temp = indicesParaDelecao.get(i); listaVariaveisOutput.remove(temp); } } variaveisOutput = new ListDataModel(listaVariaveisOutput); } return variaveisOutput; } public void setVariaveisOutput(DataModel variaveisOutput) { this.variaveisOutput = variaveisOutput; } /** * Recupera as informacoes de grau de ativacao de cada regra dada uma modelagem. * @return */ public DataModel getRegrasViewModelagem() { if (regrasViewModelagem == null && modelagemFuzzyCorrente!=null && motorInferenciaMonitor!=null) { ArrayList<RegraModelagemView> listaRegrasViewModelagem = modelagemFuzzyService.recuperaListaRegraModelagemViewPorModelagemPorMotorInferencia(modelagemFuzzyCorrente,motorInferenciaMonitor); regrasViewModelagem = new ListDataModel(listaRegrasViewModelagem); } return regrasViewModelagem; } public void setRegrasViewModelagem(DataModel regrasViewModelagem) { this.regrasViewModelagem = regrasViewModelagem; } public VariavelModelagemView getVariavelInputCorrente() { return variavelInputCorrente; } public void setVariavelInputCorrente(VariavelModelagemView variavelInputCorrente) { this.variavelInputCorrente = variavelInputCorrente; } public VariavelModelagemView getVariavelOutputCorrente() { return variavelOutputCorrente; } public void setVariavelOutputCorrente( VariavelModelagemView variavelOutputCorrente) { this.variavelOutputCorrente = variavelOutputCorrente; } public boolean isSimuladorExecutado() { return simuladorExecutado; } public void setSimuladorExecutado(boolean simuladorExecutado) { this.simuladorExecutado = simuladorExecutado; } public String getOpcaoSimulador2d() { return OPCAO_SIMULADOR_2D; } public String getOpcaoMonitor() { return OPCAO_MONITOR; } public String getDataSimulador3D() { return dataSimulador3D; } public void setDataSimulador3D(String dataSimulador3D) { this.dataSimulador3D = dataSimulador3D; } public int getSimulador3DNumSamples() { return simulador3DNumSamples; } public void setSimulador3DNumSamples(int simulador3dNumSamples) { simulador3DNumSamples = simulador3dNumSamples; } public String getOpcaoGrafico3d() { return OPCAO_GRAFICO3D; } public VariavelModelagemView getVariavelInput1CorrenteGrafico3D() { return variavelInput1CorrenteGrafico3D; } public void setVariavelInput1CorrenteGrafico3D( VariavelModelagemView variavelInput1CorrenteGrafico3D) { this.variavelInput1CorrenteGrafico3D = variavelInput1CorrenteGrafico3D; } public VariavelModelagemView getVariavelInput2CorrenteGrafico3D() { return variavelInput2CorrenteGrafico3D; } public void setVariavelInput2CorrenteGrafico3D( VariavelModelagemView variavelInput2CorrenteGrafico3D) { this.variavelInput2CorrenteGrafico3D = variavelInput2CorrenteGrafico3D; } public void setOpcaoDescricaoSelecionada(String opcaoDescricaoSelecionada) { this.opcaoDescricaoSelecionada = opcaoDescricaoSelecionada; } public String getOpcaoDescricaoSelecionada() { return opcaoDescricaoSelecionada; } }