From 53bc7d9a607f62395ba4a814decd67680869a57b Mon Sep 17 00:00:00 2001 From: gibransodre Date: Fri, 2 Sep 2016 10:09:28 -0300 Subject: [PATCH] WebService (geração do json) e identação. --- src/main/java/br/com/ases/business/impl/AvaliacaoBusinessImpl.java | 26 +++++++++++++++++--------- src/main/java/br/com/ases/controller/AvaliacaoController.java | 2119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/br/com/ases/controller/IndexController.java | 11 ++++++++++- src/main/java/br/com/ases/domain/DetalheAvaliacao.java | 2 ++ src/main/java/br/com/ases/model/utilities/Validate.java | 15 ++++++++------- 5 files changed, 1102 insertions(+), 1071 deletions(-) diff --git a/src/main/java/br/com/ases/business/impl/AvaliacaoBusinessImpl.java b/src/main/java/br/com/ases/business/impl/AvaliacaoBusinessImpl.java index fd50482..e5fa580 100644 --- a/src/main/java/br/com/ases/business/impl/AvaliacaoBusinessImpl.java +++ b/src/main/java/br/com/ases/business/impl/AvaliacaoBusinessImpl.java @@ -108,7 +108,10 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { for (String atributoBuscar : atributosBuscar) { if(element.getStartTag().getName().equalsIgnoreCase("input")) - { + { + if(element.getAttributeValue(atributoBuscar) != null) + { + System.out.println(element.getStartTag().getName().equalsIgnoreCase("input")); if(!element.getAttributeValue(atributoBuscar).equalsIgnoreCase("button") && !element.getAttributeValue(atributoBuscar).equalsIgnoreCase("reset") && !element.getAttributeValue(atributoBuscar).equalsIgnoreCase("submit") @@ -117,6 +120,7 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { { qtdItens = qtdItens + (element.getAttributeValue(atributoBuscar) != null? 1 : 0); } + } }else if(element.getStartTag().getName().equalsIgnoreCase("textarea") || element.getStartTag().getName().equalsIgnoreCase("select")) { @@ -126,6 +130,7 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { { qtdItens = qtdItens + (element.getAttributeValue(atributoBuscar) != null? 1 : 0); } + } } } @@ -193,7 +198,7 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { //Separa a recomenda��o do crit�rio sendo (x.y) de (x.y.z) recomendacaoProperties = recomendacaoCriterio[0].toString() + "." + recomendacaoCriterio[1].toString(); - //Semara a crit�rio da recomenda��o sendo (z) de (x.y.z) + //Separa a crit�rio da recomenda��o sendo (z) de (x.y.z) criterioProperties = recomendacaoCriterio[2]; @@ -208,17 +213,22 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { for (RecomendacaoCriterios recCriterio : lsRecomendacaoCriterios) { countCriterio++; postParams.addParam("relatorioAvaliacao.recomendacoes["+countReq+"].criterios["+countCriterio+"].idCriterio",recCriterio.criterio) - .addParam("relatorioAvaliacao.recomendacoes["+countReq+"].criterios["+countCriterio+"].qtdeErros", Integer.toString(recCriterio.qtdErros)) - .addParam("relatorioAvaliacao.recomendacoes["+countReq+"].criterios["+countCriterio+"].qtdeItens",Integer.toString(recCriterio.qtdItens)); + .addParam("relatorioAvaliacao.recomendacoes["+ countReq +"].criterios["+countCriterio+"].qtdeErros", Integer.toString(recCriterio.qtdErros)) + .addParam("relatorioAvaliacao.recomendacoes["+ countReq +"].criterios["+countCriterio+"].qtdeItens",Integer.toString(recCriterio.qtdItens)); } - postParams.addParam("relatorioAvaliacao.recomendacoes[" + countReq+ "].totalErros", Integer.toString(totalErros)); - postParams.addParam("relatorioAvaliacao.recomendacoes[" + countReq+ "].totalAvisos", Integer.toString(totalAvisos)); + postParams.addParam("relatorioAvaliacao.recomendacoes[" + countReq + "].totalErros", Integer.toString(totalErros)); + postParams.addParam("relatorioAvaliacao.recomendacoes[" + countReq + "].totalAvisos", Integer.toString(totalAvisos)); totalAvisos = 0; totalErros = 0; lsRecomendacaoCriterios = new ArrayList(); } + else + { + totalAvisos = 0; + totalErros = 0; + } @@ -318,9 +328,7 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { recomendacaoAdd.setQtdErros(qtdErrosAvisos); recomendacaoAdd.setQtdItens(qtdItens); lsRecomendacaoCriterios.add(recomendacaoAdd); - } - - + } } diff --git a/src/main/java/br/com/ases/controller/AvaliacaoController.java b/src/main/java/br/com/ases/controller/AvaliacaoController.java index 360a0d8..568b1d3 100644 --- a/src/main/java/br/com/ases/controller/AvaliacaoController.java +++ b/src/main/java/br/com/ases/controller/AvaliacaoController.java @@ -29,6 +29,9 @@ import java.util.regex.Pattern; import javax.servlet.ServletContext; import javax.ws.rs.QueryParam; +import org.json.JSONObject; +import org.json.XML; + import net.sf.jasperreports.engine.JRException; import br.com.ases.business.AvaliacaoBusiness; import br.com.ases.controller.EseloController.Nota; @@ -61,1059 +64,1067 @@ import br.com.checker.emag.core.ContentEvaluation; @Resource public class AvaliacaoController { - EseloProperties eseloProperties = null; - - private String tituloPagina; - // Altera a mensagem caso n�o esteja usando o ESELO (Nota e Resumo da - // Avalia��o de Acessibilidade) - private String mensagem_avaliacao = null; - - // Esconde a nota caso n�o esteja usando o ESELO - private String sem_nota = null; - private String tituloSite; - private String ancoraCampoVazio; - private String dataHoraAvaliacao; - private String webaxscore; - private Result result; - private List avisosFerramentasHtmlCssW3c; - private Validator validator; - private AvaliacaoBusiness avaliacaoBusiness; - private Map> ocorrencias = new HashMap>(); - private ServletContext application; - private DetalheAvaliacao detalheAvaliacao; - private UtilitiesProperties utilitiesProperties; - private StringBuffer xml; - private CriterioProperties criterioProperties; - - public AvaliacaoController(Result result, Validator validator, - AvaliacaoBusiness avaliacaoBusiness, ServletContext application, - DetalheAvaliacao detalheAvaliacao) { - this.result = result; - this.validator = validator; - this.avaliacaoBusiness = avaliacaoBusiness; - this.application = application; - this.detalheAvaliacao = detalheAvaliacao; - this.avaliacaoBusiness.initEseloProperties(application); - this.initEseloProperties(application); - this.criterioProperties = new CriterioProperties(application); - this.utilitiesProperties = new UtilitiesProperties(application); - - } - - - private void DefinirCorWebaxscore(String valorNota) { - - // Define a cor do webaxscore na p�gina "Avaliar" de acordo a pontua��o - - Double notaAvaliacao = Double.parseDouble(valorNota.replaceFirst(",", - ".")); - - if (notaAvaliacao >= 70) { - webaxscore = "verde"; - } else if (notaAvaliacao >= 50 & notaAvaliacao < 70) { - webaxscore = "amarela"; - } else { - webaxscore = "vermelha"; - } - } - - @Path("/avaliar-arquivo") - public void avaliarArquivo(UploadedFile file, boolean mark, - boolean content, boolean presentation, boolean multimedia, - boolean form, boolean behavior, int tiprel) throws IOException { - - Validate validate = new Validate(this.validator); - if (validate.uploadForm(file)) { - - BufferedReader reader = new BufferedReader(new InputStreamReader( - file.getFile())); - String html = ""; - String linha = ""; - while ((linha = reader.readLine()) != null) - // html += "\n"+linha; - html += linha + "\n"; - - if (validate.conteudoUploadForm(html)) { - - /* - * if(tiprel != 5) - * this.result.redirectTo(AvaliacaoController.class - * ).relatorioAvaliacao(html, mark, content, presentation, - * multimedia, form, behavior, tiprel, false); - */ - - Checker checker = from(html); - - if (mark)checker.with(marking()); - if (content)checker.with(content()); - if (presentation)checker.with(presentation()); - if (multimedia)checker.with(multimedia()); - if (form)checker.with(form()); - if (behavior)checker.with(behavior()); - - html = html.replaceAll("<", "<"); - html = html.replaceAll(">", ">"); - html = html.replaceAll(" ", " "); - - result.include("contentLenght",String.valueOf(html.getBytes("UTF-8").length)); - result.include("html", html); - - this.tituloSite = ""; - - ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); - this.tituloSite = conteudo.retornarTituloSiteAvaliado(); - - result.include("titulosite", tituloSite); - Nota nota = null; - - if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { - List>> mapaListaOcorrencias = avaliacaoBusiness.retornarCriteriosTeste(checker.check()); - //nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), file.getFileName(), mapaListaOcorrencias); - nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(),file.getFileName(), mapaListaOcorrencias); - // Altera a cor de webaxscore de acordo a pontuacao - - if (nota.getValor() != null) { - DefinirCorWebaxscore(nota.getValor()); - - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("webaxscore", webaxscore); - } - - } - - result.include("nota", nota); - this.sumarizarResultasNoResponse(checker.checkSumarized(), result); - this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check())); - - - - - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("resultadoAvaliacao", checker.checkSumarized()); - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", ""); - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("contentLenght",String.valueOf(html.getBytes("UTF-8").length)); - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("notaAvaliacao", nota); - - // Seta o valor do t�tulo no template - tituloPagina = "Resumo de avaliação por upload de arquivo - ASES"; - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("tituloPagina", tituloPagina); + EseloProperties eseloProperties = null; + + private String tituloPagina; + // Altera a mensagem caso n�o esteja usando o ESELO (Nota e Resumo da + // Avalia��o de Acessibilidade) + private String mensagem_avaliacao = null; + + // Esconde a nota caso n�o esteja usando o ESELO + private String sem_nota = null; + private String tituloSite; + private String ancoraCampoVazio; + private String dataHoraAvaliacao; + private String webaxscore; + private Result result; + private List avisosFerramentasHtmlCssW3c; + private Validator validator; + private AvaliacaoBusiness avaliacaoBusiness; + private Map> ocorrencias = + new HashMap>(); + private ServletContext application; + private DetalheAvaliacao detalheAvaliacao; + private UtilitiesProperties utilitiesProperties; + private StringBuffer xml; + private CriterioProperties criterioProperties; + + private static int PRETTY_PRINT_INDENT_FACTOR = 4; + + public AvaliacaoController(Result result, Validator validator, + AvaliacaoBusiness avaliacaoBusiness, ServletContext application, + DetalheAvaliacao detalheAvaliacao) { + this.result = result; + this.validator = validator; + this.avaliacaoBusiness = avaliacaoBusiness; + this.application = application; + this.detalheAvaliacao = detalheAvaliacao; + this.avaliacaoBusiness.initEseloProperties(application); + this.initEseloProperties(application); + this.criterioProperties = new CriterioProperties(application); + this.utilitiesProperties = new UtilitiesProperties(application); + + } + + + private void DefinirCorWebaxscore(String valorNota) { + + // Define a cor do webaxscore na p�gina "Avaliar" de acordo a pontua��o + + Double notaAvaliacao = Double.parseDouble(valorNota.replaceFirst(",", ".")); + + if (notaAvaliacao >= 70) { + webaxscore = "verde"; + } else if (notaAvaliacao >= 50 & notaAvaliacao < 70) { + webaxscore = "amarela"; + } else { + webaxscore = "vermelha"; + } + } + + @Path("/avaliar-arquivo") + public void avaliarArquivo(UploadedFile file, boolean mark, boolean content, + boolean presentation, boolean multimedia, boolean form, boolean behavior, int tiprel) + throws IOException { + + Validate validate = new Validate(this.validator); + if (validate.uploadForm(file)) { + + BufferedReader reader = new BufferedReader(new InputStreamReader(file.getFile())); + String html = ""; + String linha = ""; + while ((linha = reader.readLine()) != null) + // html += "\n"+linha; + html += linha + "\n"; + + if (validate.conteudoUploadForm(html)) { + + /* + * if(tiprel != 5) this.result.redirectTo(AvaliacaoController.class + * ).relatorioAvaliacao(html, mark, content, presentation, multimedia, form, behavior, + * tiprel, false); + */ + + Checker checker = from(html); + + if (mark) + checker.with(marking()); + if (content) + checker.with(content()); + if (presentation) + checker.with(presentation()); + if (multimedia) + checker.with(multimedia()); + if (form) + checker.with(form()); + if (behavior) + checker.with(behavior()); + + html = html.replaceAll("<", "<"); + html = html.replaceAll(">", ">"); + html = html.replaceAll(" ", " "); + + result.include("contentLenght", String.valueOf(html.getBytes("UTF-8").length)); + result.include("html", html); + + this.tituloSite = ""; + + ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); + this.tituloSite = conteudo.retornarTituloSiteAvaliado(); + + result.include("titulosite", tituloSite); + Nota nota = null; + + if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { + List>> mapaListaOcorrencias = + avaliacaoBusiness.retornarCriteriosTeste(checker.check()); + // nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), file.getFileName(), + // mapaListaOcorrencias); + nota = + avaliacaoBusiness.obterNotaEselo(checker.getDocument(), file.getFileName(), + mapaListaOcorrencias); + // Altera a cor de webaxscore de acordo a pontuacao + + if (nota.getValor() != null) { + DefinirCorWebaxscore(nota.getValor()); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("webaxscore", webaxscore); + } + + } + + result.include("nota", nota); + this.sumarizarResultasNoResponse(checker.checkSumarized(), result); + this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check())); + + + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("resultadoAvaliacao", checker.checkSumarized()); + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", ""); + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("contentLenght", String.valueOf(html.getBytes("UTF-8").length)); + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("notaAvaliacao", nota); + + // Seta o valor do t�tulo no template + tituloPagina = "Resumo de avaliação por upload de arquivo - ASES"; + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("tituloPagina", tituloPagina); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("titulosite", tituloSite); + + this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("data", dataHoraAvaliacao); + + result.of(this).avaliar(null, mark, content, presentation, multimedia, form, behavior, + tiprel); + + } else { + + // Atribui �ncora para as mensagens de erros dos campos vazios + ancoraCampoVazio = "up_file"; + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("ancoraCampoVazio", ancoraCampoVazio); + + this.validator = validate.getMessage(); + this.validator.onErrorUsePageOf(IndexController.class).index(); + } + + } else { + // Atribui �ncora para as mensagens de erros dos campos vazios + ancoraCampoVazio = "up_file"; + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("ancoraCampoVazio", ancoraCampoVazio); + + this.validator = validate.getMessage(); + this.validator.onErrorUsePageOf(IndexController.class).index(); + } + } + + @Post("/avaliar") + public void avaliar(String url, boolean mark, boolean content, boolean presentation, + boolean multimedia, boolean form, boolean behavior, int tiporel) { + + Validate validate = new Validate(this.validator); + if (validate.url(url)) { + + /* + * if(tiporel != 5) this.result.redirectTo(AvaliacaoController.class) .relatorioAvaliacao(url, + * mark, content, presentation, multimedia, form, behavior, tiporel, true); + */ + + if (url.startsWith("www")) + url = "http://" + url; + + WebChecker pagina = WebChecker.from(url).withGetRequest().execute(); + + int[] errorsWarningsCss = avaliacaoBusiness.getErrorCount(true, url); + int[] errorsWarningsHtml = avaliacaoBusiness.getErrorCount(false, url); + + Checker checker = from(pagina.getContent(), url); + + if (mark) + checker.with(marking()); + if (content) + checker.with(content()); + if (presentation) + checker.with(presentation()); + if (multimedia) + checker.with(multimedia()); + if (form) + checker.with(form()); + if (behavior) + checker.with(behavior()); + + Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); + Matcher mm = pp.matcher(url.toLowerCase().replace("https", "http")); + + if (mm.find()) + + this.tituloSite = ""; + + ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); + + this.tituloSite = conteudo.retornarTituloSiteAvaliado(); + + result.include("titulosite", tituloSite); + + result.include("contentLenght", pagina.getContentLength()); + result.include("url", url); + result.include("html", pagina.getParsedContent()); + + Nota nota = null; + + if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { + + List>> mapaListaOcorrencias = + avaliacaoBusiness.retornarCriteriosTeste(checker.check()); + // Altera a cor de webaxscore de acordo a pontuacao + // nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), url, mapaListaOcorrencias); + + nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(), url, mapaListaOcorrencias); + + if (nota.getValor() != null) { + DefinirCorWebaxscore(nota.getValor()); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("webaxscore", webaxscore); + } + + } + + result.include("nota", nota); + this.sumarizarResultasNoResponse(checker.checkSumarized(), result); + + this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check()), + errorsWarningsCss, errorsWarningsHtml); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("resultadoAvaliacao", checker.checkSumarized()); + + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", url); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("contentLenght", pagina.getContentLength()); + + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("notaAvaliacao", nota); + + // Seta o valor do t�tulo no template + tituloPagina = "Resumo de avaliação por URI - ASES"; + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("tituloPagina", tituloPagina); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("titulosite", tituloSite); + + this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("data", dataHoraAvaliacao); + + avisosFerramentasHtmlCssW3c = new ArrayList(); + + validarFerramenta_cssnoAr(errorsWarningsCss); + validarFerramenta_htmlnoAr(errorsWarningsHtml); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("avisosFerramentasHtmlCssW3c", avisosFerramentasHtmlCssW3c); + + } else { + // Atribui �ncora para as mensagens de erros dos campos vazios + ancoraCampoVazio = "url"; + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("ancoraCampoVazio", ancoraCampoVazio); + + this.validator = validate.getMessage(); + this.validator.onErrorUsePageOf(IndexController.class).index(); + } + } + + // Verifica se o site de avalia��o de sintaxe css encontra-se no ar + private void validarFerramenta_cssnoAr(int[] erros_avisos) { + if (erros_avisos[0] == -10 && erros_avisos[1] == -10) { + + avisosFerramentasHtmlCssW3c + .add("O avaliador de sintaxe css do w3c encontra-se indisponível, favor tentar mais tarde."); + } + + } + + // Verifica se o site de avalia��o de sintaxe html encontra-se no ar + private void validarFerramenta_htmlnoAr(int[] erros_avisos) { + if (erros_avisos[0] == -10 && erros_avisos[1] == -10) { + avisosFerramentasHtmlCssW3c + .add("O avaliador de sintaxe html do w3c encontra-se indisponível, favor tentar mais tarde."); + } + } + + @Get("/relatorioavaliacao") + @Post("/relatorioavaliacao") + public FileDownload relatorioAvaliacao(int tiporel) { + + List checkerList = + (List) VRaptorRequestHolder.currentRequest().getServletContext() + .getAttribute("resultadoAvaliacao"); + String urlAvaliada = + (String) VRaptorRequestHolder.currentRequest().getServletContext() + .getAttribute("urlAvaliada"); + String contentLenght = + (String) VRaptorRequestHolder.currentRequest().getServletContext() + .getAttribute("contentLenght"); + this.sumarizarResultasNoResponse(checkerList, result); + + // ================================================ GERAR RELAT�RIO + // =============================================// + + /* Cria um Map de par�metros */ + HashMap map = new HashMap(); + + /* Obtem a nota */ + // AvaliacaoBusinessImpl avaliacaoBusiness = new + // AvaliacaoBusinessImpl(); + Nota nota = null; + + if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { + nota = + (Nota) VRaptorRequestHolder.currentRequest().getServletContext() + .getAttribute("notaAvaliacao"); + + map.put("pPercentualAses", nota.getValor()); + } else { + map.put("pPercentualAses", "0"); + } + + map.put("pPagina", urlAvaliada != "" ? urlAvaliada : "Código Fonte ou Arquivo"); + + if (urlAvaliada != "") { + Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); + Matcher mm = pp.matcher(urlAvaliada.toLowerCase()); + + if (mm.find()) + map.put("pTitulo", + VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("titulosite")); + + } else + map.put("pTitulo", + VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("titulosite")); + + map.put("pTamanho", contentLenght + " Bytes"); + dataHoraAvaliacao = + (String) VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("data"); + map.put("pDataHoraAvaliacao", dataHoraAvaliacao); + + // Obtem Resumo da Avaliação + List resumoErrosAvisos = obterResumoAvaliacao(); + + int totalErros = 0; + int totalAvisos = 0; + + for (ResumoAvaliacao resumo : resumoErrosAvisos) { + map.put(resumo.getTipo() + "_A", resumo.getQuantidadeAvisos()); + map.put(resumo.getTipo() + "_E", resumo.getQuantidadeErros()); + totalErros += resumo.getQuantidadeErros(); + totalAvisos += resumo.getQuantidadeAvisos(); + } + + map.put("TOTAL_E", totalErros); + map.put("TOTAL_A", totalAvisos); + + ManagerReport managerReport = + new ManagerReport(this.application.getRealPath("") + + "/WEB-INF/templates-relatorios/relatorio-avaliacao.jrxml"); + String path = null; + + try { + path = managerReport.gerarRelatorio(checkerList, map, tiporel, "RelatorioAvaliacao"); + } catch (JRException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + File file = new File(path); + + return new FileDownload(file, managerReport.getContentType(), managerReport.getFileName()); + + // =========================================== FIM GERAR RELAT�RIO + // =============================================// + + } + + @Post("/avaliar-codigo") + public void avaliarPlainText(String html, boolean mark, boolean content, boolean presentation, + boolean multimedia, boolean form, boolean behavior, int tiporel) throws IOException { + + Validate validate = new Validate(this.validator); + if (validate.condigoFonte(html)) { + + /* + * if(tiporel != 5) this.result.redirectTo(AvaliacaoController.class) + * .relatorioAvaliacao(html, mark, content, presentation, multimedia, form, behavior, tiporel, + * false); + */ + + Checker checker = from(html); + + if (mark) + checker.with(marking()); + if (content) + checker.with(content()); + if (presentation) + checker.with(presentation()); + if (multimedia) + checker.with(multimedia()); + if (form) + checker.with(form()); + if (behavior) + checker.with(behavior()); + + html = html.replaceAll("<", "<"); + html = html.replaceAll(">", ">"); + html = html.replaceAll(" ", " "); + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy H:mm:ss"); + + result.include("contentLenght", String.valueOf(html.getBytes("UTF-8").length)); + result.include("html", html); + this.tituloSite = ""; + + ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); + + this.tituloSite = conteudo.retornarTituloSiteAvaliado(); + + result.include("titulosite", tituloSite); + + Nota nota = null; + + if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { + + List>> mapaListaOcorrencias = + avaliacaoBusiness.retornarCriteriosTeste(checker.check()); + // nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), tituloSite + " - " + + // sdf.format(new Date()),mapaListaOcorrencias); + nota = + avaliacaoBusiness.obterNotaEselo(checker.getDocument(), + tituloSite + " - " + sdf.format(new Date()), mapaListaOcorrencias); + // Altera a cor de webaxscore de acordo a pontuacao + + if (nota.getValor() != null) { + DefinirCorWebaxscore(nota.getValor()); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("webaxscore", webaxscore); + } + + + } + + result.include("nota", nota); + this.sumarizarResultasNoResponse(checker.checkSumarized(), result); + this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check())); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("resultadoAvaliacao", checker.checkSumarized()); + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", ""); + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("contentLenght", String.valueOf(html.getBytes("UTF-8").length)); + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("notaAvaliacao", nota); + + // Seta o valor do t�tulo no template + tituloPagina = "Resumo de avaliação por código fonte - ASES"; + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("tituloPagina", tituloPagina); + result.of(this).avaliar(null, mark, content, presentation, multimedia, form, behavior, + tiporel); + + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("titulosite", tituloSite); + + this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("data", dataHoraAvaliacao); + + } else { + // Atribui �ncora para as mensagens de erros dos campos vazios + ancoraCampoVazio = "input"; + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("ancoraCampoVazio", ancoraCampoVazio); + + this.validator = validate.getMessage(); + this.validator.onErrorUsePageOf(IndexController.class).index(); + } + } + + private void sumarizarResultasNoResponse(List resultadoAvaliacao, + Result result) { + + for (SummarizedOccurrence occurrence : resultadoAvaliacao) { + if (ocorrencias.get(occurrence.getType()) == null) + ocorrencias.put(occurrence.getType(), new ArrayList()); + + ocorrencias.get(occurrence.getType()).add(occurrence); + } + + for (Entry> entry : ocorrencias.entrySet()) { + List ocorrenciasComputadas = entry.getValue(); + Collections.sort(ocorrenciasComputadas); + + result.include("LISTA_" + entry.getKey().toString(), ocorrenciasComputadas); + } + + List resumoErrosAvisos = obterResumoAvaliacao(); + int totalErros = 0; + int totalAvisos = 0; + + for (ResumoAvaliacao resumo : resumoErrosAvisos) { + totalErros += resumo.getQuantidadeErros(); + totalAvisos += resumo.getQuantidadeAvisos(); + } + + result.include("totalErros", totalErros); + result.include("totalAvisos", totalAvisos); + result.include("listaResumo", resumoErrosAvisos); + result.include("data", DateUtil.dataHoraAtual()); + + } + + private List obterResumoAvaliacao() { + List resultado = new ArrayList(); + + for (OccurrenceClassification classificacao : OccurrenceClassification.values()) { + + int erros = 0; + int avisos = 0; + + List listaOcorrencias = ocorrencias.get(classificacao); + + if (listaOcorrencias != null) { + for (SummarizedOccurrence ocorrencia : ocorrencias.get(classificacao)) { + + if (ocorrencia.isError()) + for (int line : ocorrencia.getLines()) + erros++; + else + for (int line : ocorrencia.getLines()) + avisos++; + + } + } + + resultado.add(new ResumoAvaliacao(classificacao, erros, avisos)); + } + + return resultado; + } + + + // Gibran + public void obterDetalhes(OccurrenceKey rn, boolean type) { + + + List listOcorrencias = this.detalheAvaliacao.get(rn, type).getOcorrencias(); + + + + Collections.sort(listOcorrencias, new Comparator() { + public int compare(Occurrence occurrence1, Occurrence occurrence2) { + return occurrence1.getLine().compareTo(occurrence2.getLine()); + } + }); + + + result.include("detalhe", this.detalheAvaliacao.get(rn, type)); + } + + @Path("/detalhes-avaliacao/{rn}/{type}") + public void detalhesAvaliacao(OccurrenceKey rn, boolean type) { + String url = ""; + tituloPagina = "Detalhes da avalição - ASES"; + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("tituloPagina", tituloPagina); + + List listOcorrencias = this.detalheAvaliacao.get(rn, type).getOcorrencias(); + + + // Sorting + Collections.sort(listOcorrencias, new Comparator() { + public int compare(Occurrence occurrence1, Occurrence occurrence2) { + return occurrence1.getLine().compareTo(occurrence2.getLine()); + } + }); + + result.include("detalhe", this.detalheAvaliacao.get(rn, type)); + result.include("listOcorrencia", listOcorrencias); + + result.include("isError", type); + if (type) { + result.include("qtdOcorrenciasCss", this.detalheAvaliacao.getErrorsCss()); + result.include("qtdOcorrenciasHtml", this.detalheAvaliacao.getErrorsHtml()); + } else { + result.include("qtdOcorrenciasCss", this.detalheAvaliacao.getWarningsCss()); + result.include("qtdOcorrenciasHtml", this.detalheAvaliacao.getWarningsHtml()); + } + + List ob = + (List) VRaptorRequestHolder.currentRequest().getServletContext() + .getAttribute("resultadoAvaliacao"); + String recomendacao = ""; + + + for (SummarizedOccurrence occurrence : ob) { + recomendacao = occurrence.getMapDescription().get(rn.getCode()); + break; + } + + result.include("recomendacao", recomendacao); + result.include("rn", rn.getCode()); + result.include("aReq", this.utilitiesProperties.get("notExibCrit")); + result.include("aReqIsCss", this.utilitiesProperties.get("reqCss")); + result.include("aReqIsW3c", this.utilitiesProperties.get("notExibCritW3c")); + url = + VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("urlAvaliada") + .toString().replaceAll("(https://)|(http://)", ""); + result.include("url", url); + + try { + + result.include("urlFormatada", encodeURI(url)); + + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + } + + private String encodeURI(String url) throws UnsupportedEncodingException { + return URLEncoder.encode(url, "UTF-8").replace("+", "%20").replace("%21", "!") + .replace("%27", "'").replace("%28", "(").replace("%29", ")").replace("%7E", "~"); + } + + @Post("/exportar-detalhes-avaliacao") + public FileDownload exportarDetalhesAvaliacao(OccurrenceKey rn, int tiporel, boolean isError) { + + /* Cria um Map de parametros */ + HashMap map = new HashMap(); + + // List list = this.detalheAvaliacao.get(rn,isError).getCriterios(); + + List aReq = new ArrayList(); + // List index = new ArrayList(); + + String[] crit = this.utilitiesProperties.get("notExibCrit").split(" "); + + for (String c : crit) + aReq.add(c.trim()); + + List listCrit = this.detalheAvaliacao.get(rn, isError).getCriterios(); + + List list = new ArrayList(); + + for (Criterio criterio : listCrit) { + if (aReq.contains(rn.getCode() + "." + criterio.getId())) + criterio.setLinhas(new ArrayList()); + + if (criterio.getId() != null) + list.add(criterio); + } + + List codigoFonte = new ArrayList(); + + for (Occurrence occurrence : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) { + if (!aReq.contains(rn.getCode() + "." + occurrence.getCriterio())) + codigoFonte.add(occurrence.getLine() + + ": " + + occurrence.getTag().replaceAll("<", "<").replaceAll(">", ">") + .replaceAll(" ", " ") + "\n\n"); + } + map.put("codigoFonte", codigoFonte); + + List ob = + (List) VRaptorRequestHolder.currentRequest().getServletContext() + .getAttribute("resultadoAvaliacao"); + String recomendacao = ""; + + for (SummarizedOccurrence occurrence : ob) { + recomendacao = occurrence.getMapDescription().get(rn.getCode()); + break; + } + + map.put("rnAvaliada", recomendacao); + map.put("SUBREPORT_DIR", this.application.getRealPath("") + "/WEB-INF/templates-relatorios/"); + + ManagerReport managerReport = + new ManagerReport(this.application.getRealPath("") + + "/WEB-INF/templates-relatorios/relatorio-detalhes-avaliacao.jrxml"); + + String path = null; + + try { + path = + managerReport.gerarRelatorioDetalhesAvaliacao(list, map, tiporel, + "DetalhesRelatorioAvaliacao"); + } catch (JRException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + File file = new File(path); + + return new FileDownload(file, managerReport.getContentType(), managerReport.getFileName()); + } + + public void initEseloProperties(ServletContext servletContext) { + this.eseloProperties = new EseloProperties(servletContext); + + // Esconde a nota caso n�o esteja usando o ESELO + sem_nota = this.eseloProperties.getSem_nota("sem_nota"); + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("sem_nota", sem_nota); + + // Altera a mensagem caso n�o esteja usando o ESELO (Nota e Resumo da + // Avalia��o de Acessibilidade) + mensagem_avaliacao = this.eseloProperties.getMensagem_avaliacao("mensagem_avaliacao"); + VRaptorRequestHolder.currentRequest().getServletContext() + .setAttribute("mensagem_avaliacao", mensagem_avaliacao); + } + + @Get("/servico-avaliacao-acessibilidade") + @Post("/servico-avaliacao-acessibilidade") + public void servicoAvaliacaoAcessibilidade(@QueryParam("url") String url, String tipoSaida) { + + //tipoSaida deve ser "json" ou "xml"; + try { + + xml = new StringBuffer(); + + + Validate validate = new Validate(this.validator); + + if (validate.url(url)) { + + + if (url.startsWith("www")) { + url = "http://" + url; + } + + WebChecker pagina = WebChecker.from(url).withGetRequest().execute(); + + int[] errorsWarningsCss = avaliacaoBusiness.getErrorCount(true, url); + int[] errorsWarningsHtml = avaliacaoBusiness.getErrorCount(false, url); + + Checker checker = from(pagina.getContent(), url); + + checker.with(marking()); + checker.with(content()); + checker.with(presentation()); + checker.with(multimedia()); + checker.with(form()); + checker.with(behavior()); + + Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); + Matcher mm = pp.matcher(url.toLowerCase().replace("https", "http")); + + if (mm.find()) { + this.tituloSite = ""; + } + + ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); + + this.tituloSite = conteudo.retornarTituloSiteAvaliado(); + + Nota nota = null; + + List>> mapaListaOcorrencias = + avaliacaoBusiness.retornarCriteriosTeste(checker.check()); + + nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(), url, mapaListaOcorrencias); + + this.sumarizarResultasNoResponse(checker.checkSumarized(), result); + + this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check()), + errorsWarningsCss, errorsWarningsHtml); + + + this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); + List checkSumarized = checker.checkSumarized(); + + avisosFerramentasHtmlCssW3c = new ArrayList(); + List resumoErrosAvisos = obterResumoAvaliacao(); + + // pegar os dados e montar o xml + // List listOcorrencias; + // Occurrence detalhe; + OccurrenceKey rn = null; + boolean type = false; + // boolean criterioAdicionar = false; + // String criterioAdicionado = ""; + // String idCriterio = null; + int totalErros = 0; + int totalAvisos = 0; + + xml.append("\n"); + xml.append("\n"); + xml.append("\n"); + xml.append("" + this.tituloSite + "\n"); + xml.append("" + pagina.getContentLength() + "\n"); + xml.append("" + this.dataHoraAvaliacao + "\n"); + xml.append("\n"); + xml.append("\n"); + xml.append("" + nota.getValor() + "\n"); + + for (ResumoAvaliacao resumoAvaliacao : resumoErrosAvisos) { + + + xml.append(""); + xml.append("" + resumoAvaliacao.getTipo().getDescription() + "\n"); + xml.append("" + resumoAvaliacao.getQuantidadeErros() + + "\n"); + xml.append("" + resumoAvaliacao.getQuantidadeAvisos() + + "\n"); + xml.append("\n"); + + totalErros += resumoAvaliacao.getQuantidadeErros(); + totalAvisos += resumoAvaliacao.getQuantidadeAvisos(); + } + + xml.append("" + totalErros + "\n"); + xml.append("" + totalAvisos + "\n"); + xml.append("\n"); + + String recomendacaoCompara = ""; + + for (SummarizedOccurrence avaliacao : checkSumarized) { + rn = OccurrenceKey.valueOf(avaliacao.getCheckPoint()); + type = avaliacao.isError(); + + // if(!recomendacaoCompara.equalsIgnoreCase(avaliacao.getCheckPoint().toString())) + // { + if (!recomendacaoCompara.equalsIgnoreCase("")) { + xml.append("\n"); + } + + xml.append("\n"); + xml.append("" + avaliacao.getCheckPoint() + "\n"); + xml.append("" + type + "\n"); + xml.append("" + avaliacao.getDescription() + + "\n"); + xml.append("" + avaliacao.getNumberOfOccurrences() + + "\n"); + xml.append("" + avaliacao.getStringLines() + + "\n"); + // } + + + + // Critérios iniciam aqui + + criarRelatorioCriterios(rn, type); + + // Critérios terminam aqui + + + recomendacaoCompara = avaliacao.getCheckPoint().toString(); + } + + xml.append("\n"); + + xml.append("\n"); - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("titulosite", tituloSite); + } else { + System.out.println("Enviar xml de erro"); + } - this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("data", dataHoraAvaliacao); - - result.of(this).avaliar(null, mark, content, presentation, multimedia, form, behavior, tiprel); - - } else { - - // Atribui �ncora para as mensagens de erros dos campos vazios - ancoraCampoVazio = "up_file"; - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("ancoraCampoVazio", ancoraCampoVazio); - - this.validator = validate.getMessage(); - this.validator.onErrorUsePageOf(IndexController.class).index(); - } - - } else { - // Atribui �ncora para as mensagens de erros dos campos vazios - ancoraCampoVazio = "up_file"; - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("ancoraCampoVazio", ancoraCampoVazio); - - this.validator = validate.getMessage(); - this.validator.onErrorUsePageOf(IndexController.class).index(); - } - } - - @Post("/avaliar") - public void avaliar(String url, boolean mark, boolean content, - boolean presentation, boolean multimedia, boolean form, - boolean behavior, int tiporel) { - - Validate validate = new Validate(this.validator); - if (validate.url(url)) { - - /* - * if(tiporel != 5) - * this.result.redirectTo(AvaliacaoController.class) - * .relatorioAvaliacao(url, mark, content, presentation, multimedia, - * form, behavior, tiporel, true); - */ - - if (url.startsWith("www")) - url = "http://" + url; - - WebChecker pagina = WebChecker.from(url).withGetRequest().execute(); - - int[] errorsWarningsCss = avaliacaoBusiness.getErrorCount(true, url); - int[] errorsWarningsHtml = avaliacaoBusiness.getErrorCount(false,url); - - Checker checker = from(pagina.getContent(), url); - - if (mark)checker.with(marking()); - if (content)checker.with(content()); - if (presentation)checker.with(presentation()); - if (multimedia)checker.with(multimedia()); - if (form)checker.with(form()); - if (behavior)checker.with(behavior()); - - Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); - Matcher mm = pp.matcher(url.toLowerCase().replace("https", "http")); - - if (mm.find()) - - this.tituloSite = ""; - - ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); - - this.tituloSite = conteudo.retornarTituloSiteAvaliado(); - - result.include("titulosite", tituloSite); - - result.include("contentLenght", pagina.getContentLength()); - result.include("url", url); - result.include("html", pagina.getParsedContent()); - - Nota nota = null; - - if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { - - List>> mapaListaOcorrencias = avaliacaoBusiness.retornarCriteriosTeste(checker.check()); - // Altera a cor de webaxscore de acordo a pontuacao - //nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), url, mapaListaOcorrencias); - - nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(),url, mapaListaOcorrencias); - - if (nota.getValor() != null) { - DefinirCorWebaxscore(nota.getValor()); - - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("webaxscore", webaxscore); - } - - } - - result.include("nota", nota); - this.sumarizarResultasNoResponse(checker.checkSumarized(), result); - - this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check()),errorsWarningsCss, errorsWarningsHtml); - - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("resultadoAvaliacao",checker.checkSumarized()); - - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", url); - - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("contentLenght", pagina.getContentLength()); - - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("notaAvaliacao", nota); - - // Seta o valor do t�tulo no template - tituloPagina = "Resumo de avaliação por URI - ASES"; - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("tituloPagina", tituloPagina); - - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("titulosite", tituloSite); - - this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); - - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("data", dataHoraAvaliacao); - - avisosFerramentasHtmlCssW3c = new ArrayList(); - - validarFerramenta_cssnoAr(errorsWarningsCss); - validarFerramenta_htmlnoAr(errorsWarningsHtml); - - VRaptorRequestHolder - .currentRequest() - .getServletContext() - .setAttribute("avisosFerramentasHtmlCssW3c", - avisosFerramentasHtmlCssW3c); - - } else { - // Atribui �ncora para as mensagens de erros dos campos vazios - ancoraCampoVazio = "url"; - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("ancoraCampoVazio", ancoraCampoVazio); - - this.validator = validate.getMessage(); - this.validator.onErrorUsePageOf(IndexController.class).index(); - } - } - - // Verifica se o site de avalia��o de sintaxe css encontra-se no ar - private void validarFerramenta_cssnoAr(int[] erros_avisos) { - if (erros_avisos[0] == -10 && erros_avisos[1] == -10) { - - avisosFerramentasHtmlCssW3c - .add("O avaliador de sintaxe css do w3c encontra-se indisponível, favor tentar mais tarde."); - } - - } - - // Verifica se o site de avalia��o de sintaxe html encontra-se no ar - private void validarFerramenta_htmlnoAr(int[] erros_avisos) { - if (erros_avisos[0] == -10 && erros_avisos[1] == -10) { - avisosFerramentasHtmlCssW3c - .add("O avaliador de sintaxe html do w3c encontra-se indisponível, favor tentar mais tarde."); - } - } - - @Get("/relatorioavaliacao") - @Post("/relatorioavaliacao") - public FileDownload relatorioAvaliacao(int tiporel) { - - List checkerList = (List) VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("resultadoAvaliacao"); - String urlAvaliada = (String) VRaptorRequestHolder.currentRequest() - .getServletContext().getAttribute("urlAvaliada"); - String contentLenght = (String) VRaptorRequestHolder.currentRequest() - .getServletContext().getAttribute("contentLenght"); - this.sumarizarResultasNoResponse(checkerList, result); - - // ================================================ GERAR RELAT�RIO - // =============================================// - - /* Cria um Map de par�metros */ - HashMap map = new HashMap(); - - /* Obtem a nota */ - // AvaliacaoBusinessImpl avaliacaoBusiness = new - // AvaliacaoBusinessImpl(); - Nota nota = null; - - if (!this.sem_nota.equalsIgnoreCase("sem_nota")) - { - nota = (Nota) VRaptorRequestHolder.currentRequest() - .getServletContext().getAttribute("notaAvaliacao"); - - map.put("pPercentualAses", nota.getValor()); - } - else - { - map.put("pPercentualAses", "0"); - } - - map.put("pPagina", urlAvaliada != "" ? urlAvaliada - : "Código Fonte ou Arquivo"); - - if (urlAvaliada != "") { - Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); - Matcher mm = pp.matcher(urlAvaliada.toLowerCase()); - - if (mm.find()) - map.put("pTitulo", VRaptorRequestHolder.currentRequest() - .getServletContext().getAttribute("titulosite")); - - } else - map.put("pTitulo", VRaptorRequestHolder.currentRequest() - .getServletContext().getAttribute("titulosite")); - - map.put("pTamanho", contentLenght + " Bytes"); - dataHoraAvaliacao = (String) VRaptorRequestHolder.currentRequest() - .getServletContext().getAttribute("data"); - map.put("pDataHoraAvaliacao", dataHoraAvaliacao); - - // Obtem Resumo da Avaliação - List resumoErrosAvisos = obterResumoAvaliacao(); - - int totalErros = 0; - int totalAvisos = 0; - - for (ResumoAvaliacao resumo : resumoErrosAvisos) { - map.put(resumo.getTipo() + "_A", resumo.getQuantidadeAvisos()); - map.put(resumo.getTipo() + "_E", resumo.getQuantidadeErros()); - totalErros += resumo.getQuantidadeErros(); - totalAvisos += resumo.getQuantidadeAvisos(); - } - - map.put("TOTAL_E", totalErros); - map.put("TOTAL_A", totalAvisos); - - ManagerReport managerReport = new ManagerReport( - this.application.getRealPath("") - + "/WEB-INF/templates-relatorios/relatorio-avaliacao.jrxml"); - String path = null; - - try { - path = managerReport.gerarRelatorio(checkerList, map, tiporel, - "RelatorioAvaliacao"); - } catch (JRException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - File file = new File(path); - - return new FileDownload(file, managerReport.getContentType(), - managerReport.getFileName()); - - // =========================================== FIM GERAR RELAT�RIO - // =============================================// - - } - - @Post("/avaliar-codigo") - public void avaliarPlainText(String html, boolean mark, boolean content, - boolean presentation, boolean multimedia, boolean form, - boolean behavior, int tiporel) throws IOException { - - Validate validate = new Validate(this.validator); - if (validate.condigoFonte(html)) { - - /* - * if(tiporel != 5) - * this.result.redirectTo(AvaliacaoController.class) - * .relatorioAvaliacao(html, mark, content, presentation, - * multimedia, form, behavior, tiporel, false); - */ - - Checker checker = from(html); - - if (mark) - checker.with(marking()); - if (content) - checker.with(content()); - if (presentation) - checker.with(presentation()); - if (multimedia) - checker.with(multimedia()); - if (form) - checker.with(form()); - if (behavior) - checker.with(behavior()); - - html = html.replaceAll("<", "<"); - html = html.replaceAll(">", ">"); - html = html.replaceAll(" ", " "); - - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy H:mm:ss"); - - result.include("contentLenght",String.valueOf(html.getBytes("UTF-8").length)); - result.include("html", html); - this.tituloSite = ""; - - ContentEvaluation conteudo = new ContentEvaluation( - checker.getDocument()); - - this.tituloSite = conteudo.retornarTituloSiteAvaliado(); - - result.include("titulosite", tituloSite); - - Nota nota = null; - - if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { - - List>> mapaListaOcorrencias = avaliacaoBusiness.retornarCriteriosTeste(checker.check()); - //nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), tituloSite + " - " + sdf.format(new Date()),mapaListaOcorrencias); - nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(),tituloSite + " - " + sdf.format(new Date()), mapaListaOcorrencias); - // Altera a cor de webaxscore de acordo a pontuacao - - if (nota.getValor() != null) { - DefinirCorWebaxscore(nota.getValor()); - - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("webaxscore", webaxscore); - } - - - } - - result.include("nota", nota); - this.sumarizarResultasNoResponse(checker.checkSumarized(), result); - this.detalheAvaliacao.inicializar(avaliacaoBusiness - .retornarCriterios(checker.check())); - - VRaptorRequestHolder - .currentRequest() - .getServletContext() - .setAttribute("resultadoAvaliacao", - checker.checkSumarized()); - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("urlAvaliada", ""); - VRaptorRequestHolder - .currentRequest() - .getServletContext() - .setAttribute("contentLenght", - String.valueOf(html.getBytes("UTF-8").length)); - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("notaAvaliacao", nota); - - // Seta o valor do t�tulo no template - tituloPagina = "Resumo de avaliação por código fonte - ASES"; - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("tituloPagina", tituloPagina); - result.of(this).avaliar(null, mark, content, presentation, - multimedia, form, behavior, tiporel); - - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("titulosite", tituloSite); - - this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("data", dataHoraAvaliacao); - - } else { - // Atribui �ncora para as mensagens de erros dos campos vazios - ancoraCampoVazio = "input"; - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("ancoraCampoVazio", ancoraCampoVazio); - - this.validator = validate.getMessage(); - this.validator.onErrorUsePageOf(IndexController.class).index(); - } - } - - private void sumarizarResultasNoResponse( - List resultadoAvaliacao, Result result) { - - for (SummarizedOccurrence occurrence : resultadoAvaliacao) { - if (ocorrencias.get(occurrence.getType()) == null) - ocorrencias.put(occurrence.getType(), - new ArrayList()); - - ocorrencias.get(occurrence.getType()).add(occurrence); - } - - for (Entry> entry : ocorrencias.entrySet()) { - List ocorrenciasComputadas = entry.getValue(); - Collections.sort(ocorrenciasComputadas); - - result.include("LISTA_" + entry.getKey().toString(), - ocorrenciasComputadas); - } - - List resumoErrosAvisos = obterResumoAvaliacao(); - int totalErros = 0; - int totalAvisos = 0; - - for (ResumoAvaliacao resumo : resumoErrosAvisos) { - totalErros += resumo.getQuantidadeErros(); - totalAvisos += resumo.getQuantidadeAvisos(); - } - - result.include("totalErros", totalErros); - result.include("totalAvisos", totalAvisos); - result.include("listaResumo", resumoErrosAvisos); - result.include("data", DateUtil.dataHoraAtual()); - - } - - private List obterResumoAvaliacao() { - List resultado = new ArrayList(); - - for (OccurrenceClassification classificacao : OccurrenceClassification - .values()) { - - int erros = 0; - int avisos = 0; - - List listaOcorrencias = ocorrencias - .get(classificacao); - - if (listaOcorrencias != null) { - for (SummarizedOccurrence ocorrencia : ocorrencias - .get(classificacao)) { - - if (ocorrencia.isError()) - for (int line : ocorrencia.getLines()) - erros++; - else - for (int line : ocorrencia.getLines()) - avisos++; - - } - } - - resultado.add(new ResumoAvaliacao(classificacao, erros, avisos)); - } - - return resultado; - } - - - //Gibran - public void obterDetalhes(OccurrenceKey rn, boolean type) { - - - List listOcorrencias = this.detalheAvaliacao.get(rn, type).getOcorrencias(); - - - - Collections.sort(listOcorrencias, new Comparator() { - public int compare(Occurrence occurrence1, Occurrence occurrence2) { - return occurrence1.getLine().compareTo(occurrence2.getLine()); - } - }); - - - result.include("detalhe", this.detalheAvaliacao.get(rn, type)); - } - - @Path("/detalhes-avaliacao/{rn}/{type}") - public void detalhesAvaliacao(OccurrenceKey rn, boolean type) { - String url = ""; - tituloPagina = "Detalhes da avalição - ASES"; - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("tituloPagina", tituloPagina); - - List listOcorrencias = this.detalheAvaliacao.get(rn, type).getOcorrencias(); - - - // Sorting - Collections.sort(listOcorrencias, new Comparator() { - public int compare(Occurrence occurrence1, Occurrence occurrence2) { - return occurrence1.getLine().compareTo(occurrence2.getLine()); - } - }); - - result.include("detalhe", this.detalheAvaliacao.get(rn, type)); - result.include("listOcorrencia", listOcorrencias); - - result.include("isError", type); - if (type) { - result.include("qtdOcorrenciasCss", - this.detalheAvaliacao.getErrorsCss()); - result.include("qtdOcorrenciasHtml", - this.detalheAvaliacao.getErrorsHtml()); - } else { - result.include("qtdOcorrenciasCss", - this.detalheAvaliacao.getWarningsCss()); - result.include("qtdOcorrenciasHtml", - this.detalheAvaliacao.getWarningsHtml()); - } - - List ob = (List) VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("resultadoAvaliacao"); - String recomendacao = ""; - - - for (SummarizedOccurrence occurrence : ob) { - recomendacao = occurrence.getMapDescription().get(rn.getCode()); - break; - } - - result.include("recomendacao", recomendacao); - result.include("rn", rn.getCode()); - result.include("aReq", this.utilitiesProperties.get("notExibCrit")); - result.include("aReqIsCss", this.utilitiesProperties.get("reqCss")); - result.include("aReqIsW3c", - this.utilitiesProperties.get("notExibCritW3c")); - url = VRaptorRequestHolder.currentRequest() - .getServletContext().getAttribute("urlAvaliada").toString() - .replaceAll("(https://)|(http://)", ""); - result.include("url", url); - - try { - - result.include("urlFormatada", encodeURI(url)); - - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - - } - - private String encodeURI(String url) throws UnsupportedEncodingException { - return URLEncoder.encode(url, "UTF-8") - .replace("+", "%20") - .replace("%21", "!") - .replace("%27", "'") - .replace("%28", "(") - .replace("%29", ")") - .replace("%7E", "~"); - } - - @Post("/exportar-detalhes-avaliacao") - public FileDownload exportarDetalhesAvaliacao(OccurrenceKey rn, - int tiporel, boolean isError) { - - /* Cria um Map de parametros */ - HashMap map = new HashMap(); - - // List list = this.detalheAvaliacao.get(rn,isError).getCriterios(); - - List aReq = new ArrayList(); - // List index = new ArrayList(); - - String[] crit = this.utilitiesProperties.get("notExibCrit").split(" "); - - for (String c : crit) - aReq.add(c.trim()); - - List listCrit = this.detalheAvaliacao.get(rn, isError) - .getCriterios(); - - List list = new ArrayList(); - - for (Criterio criterio : listCrit) { - if (aReq.contains(rn.getCode() + "." + criterio.getId())) - criterio.setLinhas(new ArrayList()); - - if (criterio.getId() != null) - list.add(criterio); - } - - List codigoFonte = new ArrayList(); - - for (Occurrence occurrence : this.detalheAvaliacao.get(rn, isError) - .getOcorrencias()) { - if (!aReq.contains(rn.getCode() + "." + occurrence.getCriterio())) - codigoFonte.add(occurrence.getLine() - + ": " - + occurrence.getTag().replaceAll("<", "<") - .replaceAll(">", ">") - .replaceAll(" ", " ") + "\n\n"); - } - map.put("codigoFonte", codigoFonte); - - List ob = (List) VRaptorRequestHolder - .currentRequest().getServletContext() - .getAttribute("resultadoAvaliacao"); - String recomendacao = ""; - - for (SummarizedOccurrence occurrence : ob) { - recomendacao = occurrence.getMapDescription().get(rn.getCode()); - break; - } - - map.put("rnAvaliada", recomendacao); - map.put("SUBREPORT_DIR", this.application.getRealPath("") - + "/WEB-INF/templates-relatorios/"); - - ManagerReport managerReport = new ManagerReport( - this.application.getRealPath("") - + "/WEB-INF/templates-relatorios/relatorio-detalhes-avaliacao.jrxml"); - - String path = null; - - try { - path = managerReport.gerarRelatorioDetalhesAvaliacao(list, map, - tiporel, "DetalhesRelatorioAvaliacao"); - } catch (JRException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - - File file = new File(path); - - return new FileDownload(file, managerReport.getContentType(), - managerReport.getFileName()); - } - - public void initEseloProperties(ServletContext servletContext) { - this.eseloProperties = new EseloProperties(servletContext); - - // Esconde a nota caso n�o esteja usando o ESELO - sem_nota = this.eseloProperties.getSem_nota("sem_nota"); - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("sem_nota", sem_nota); - - // Altera a mensagem caso n�o esteja usando o ESELO (Nota e Resumo da - // Avalia��o de Acessibilidade) - mensagem_avaliacao = this.eseloProperties - .getMensagem_avaliacao("mensagem_avaliacao"); - VRaptorRequestHolder.currentRequest().getServletContext() - .setAttribute("mensagem_avaliacao", mensagem_avaliacao); - } - - @Get("/servico-avaliacao-acessibilidade") - @Post("/servico-avaliacao-acessibilidade") - public void servicoAvaliacaoAcessibilidade(@QueryParam("url") String url) { - - xml = new StringBuffer(); - - - Validate validate = new Validate(this.validator); - - if (validate.url(url)) { - - - if (url.startsWith("www")) - { - url = "http://" + url; - } - - WebChecker pagina = WebChecker.from(url).withGetRequest().execute(); - - int[] errorsWarningsCss = avaliacaoBusiness.getErrorCount(true, url); - int[] errorsWarningsHtml = avaliacaoBusiness.getErrorCount(false,url); - - Checker checker = from(pagina.getContent(), url); - - checker.with(marking()); - checker.with(content()); - checker.with(presentation()); - checker.with(multimedia()); - checker.with(form()); - checker.with(behavior()); - - Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); - Matcher mm = pp.matcher(url.toLowerCase().replace("https", "http")); - - if (mm.find()) - { - this.tituloSite = ""; - } - - ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); - - this.tituloSite = conteudo.retornarTituloSiteAvaliado(); - - Nota nota = null; - - List>> mapaListaOcorrencias = avaliacaoBusiness.retornarCriteriosTeste(checker.check()); - - nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(),url, mapaListaOcorrencias); - - this.sumarizarResultasNoResponse(checker.checkSumarized(), result); - - this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check()),errorsWarningsCss, errorsWarningsHtml); - - - this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); - List checkSumarized = checker.checkSumarized(); - - avisosFerramentasHtmlCssW3c = new ArrayList(); - List resumoErrosAvisos = obterResumoAvaliacao(); - - //pegar os dados e montar o xml - //List listOcorrencias; - //Occurrence detalhe; - OccurrenceKey rn = null; - boolean type = false; - //boolean criterioAdicionar = false; - //String criterioAdicionado = ""; - //String idCriterio = null; - int totalErros = 0; - int totalAvisos = 0; - - xml.append("\n"); - xml.append("\n"); - xml.append("\n"); - xml.append("" + this.tituloSite + "\n"); - xml.append("" + pagina.getContentLength() + "\n"); - xml.append("" + this.dataHoraAvaliacao + "\n"); - xml.append("\n"); - xml.append("\n"); - xml.append("" + nota.getValor() + "\n"); - - for (ResumoAvaliacao resumoAvaliacao : resumoErrosAvisos) { - - - xml.append(""); - xml.append("" + resumoAvaliacao.getTipo().getDescription() + "\n"); - xml.append("" + resumoAvaliacao.getQuantidadeErros() + "\n"); - xml.append("" + resumoAvaliacao.getQuantidadeAvisos() + "\n"); - xml.append("\n"); - - totalErros += resumoAvaliacao.getQuantidadeErros(); - totalAvisos += resumoAvaliacao.getQuantidadeAvisos(); - } - - xml.append(""+ totalErros +"\n"); - xml.append(""+ totalAvisos +"\n"); - xml.append("\n"); - - String recomendacaoCompara = ""; - - for (SummarizedOccurrence avaliacao : checkSumarized) - { - rn = OccurrenceKey.valueOf(avaliacao.getCheckPoint()); - type = avaliacao.isError(); - - //if(!recomendacaoCompara.equalsIgnoreCase(avaliacao.getCheckPoint().toString())) - //{ - if(!recomendacaoCompara.equalsIgnoreCase("")) - { - xml.append("\n"); - } - - xml.append("\n"); - xml.append("" + avaliacao.getCheckPoint() + "\n"); - xml.append("" + type + "\n"); - xml.append("" + avaliacao.getDescription() + "\n"); - xml.append("" + avaliacao.getNumberOfOccurrences() + "\n"); - xml.append("" + avaliacao.getStringLines() + "\n"); - //} - - - - //Critérios iniciam aqui - - criarRelatorioCriterios(rn,type); - - //Critérios terminam aqui - - - recomendacaoCompara = avaliacao.getCheckPoint().toString(); - } - - xml.append("\n"); - - xml.append("\n"); - - } else { - System.out.println("Enviar xml de erro"); - } - result.include("testeWeb", xml); - - } - - public void criarRelatorioCriterios(OccurrenceKey rn, boolean isError) { - - boolean recomendacao1_1_1Adicionada = false; - boolean recomendacao1_1_2Adicionada = false; - - /* Cria um Map de parametros */ - //HashMap map = new HashMap(); - - // List list = this.detalheAvaliacao.get(rn,isError).getCriterios(); - - //List aReq = new ArrayList(); - // List index = new ArrayList(); - - //String[] crit = this.utilitiesProperties.get("notExibCrit").split(" "); - - //for (String c : crit) - //{ - // aReq.add(c.trim()); - //} - - //List listCrit = this.detalheAvaliacao.get(rn, isError).getCriterios(); - - //List list = new ArrayList(); - - /*for (Criterio criterio : listCrit) { - if (aReq.contains(rn.getCode() + "." + criterio.getId())) - { - criterio.setLinhas(new ArrayList()); - } - - if (criterio.getId() != null) - { - list.add(criterio); - } - }*/ - - String codigoFonte = ""; - String criterioCompara = ""; - String numeroCriterio = ""; - - - for (Occurrence occurrence : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) - { - - numeroCriterio = occurrence.getCriterio(); - - //if (!aReq.contains(rn.getCode() + "." + numeroCriterio)) - //{ - - if(!rn.getCode().toString().equalsIgnoreCase("1.1") || !isError) - { - if(rn.getCode().toString().equalsIgnoreCase("1.1") && numeroCriterio.equalsIgnoreCase("7")) - { - codigoFonte = "Serviço de validação de HTML do W3C"; - } - else if(rn.getCode().toString().equalsIgnoreCase("1.1") && numeroCriterio.equalsIgnoreCase("8")) - { - codigoFonte = "Serviço de validação de CSS do W3C"; - } - else - { - codigoFonte = occurrence.getTag().replaceAll("<", "<").replaceAll(">", ">").replaceAll(" ", " "); - } - - if(!criterioCompara.equalsIgnoreCase(occurrence.getCriterio().toString())) - { - if(!criterioCompara.equalsIgnoreCase("")) - { - System.out.println("\n"); - xml.append("\n"); - } - - - xml.append("\n"); - xml.append("" + numeroCriterio + "\n"); - xml.append("" + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) + "\n"); - xml.append("" + occurrence.isError() + "\n"); - xml.append("" + verificaQuantidadeCriterio(rn, isError, numeroCriterio) + "\n"); - xml.append("\n"); - xml.append("" + occurrence.getLine() + "\n"); - xml.append("\n"); - xml.append("\n"); - - - criterioCompara = occurrence.getCriterio(); - }else - { - xml.append("\n"); - xml.append("" + occurrence.getLine() + "\n"); - xml.append("").replaceAll(" ", " ") + "]]>\n"); - xml.append("\n"); - } - - } - else - { - if(numeroCriterio.equalsIgnoreCase("1") && !recomendacao1_1_1Adicionada) - { - if(!criterioCompara.equalsIgnoreCase("")) - { - xml.append("\n"); - } - xml.append("\n"); - xml.append("" + numeroCriterio + "\n"); - xml.append("" + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) + "\n"); - xml.append("" + occurrence.isError() + "\n"); - xml.append("" + verificaQuantidadeCriterio(rn, isError, numeroCriterio) + "\n"); - xml.append("\n"); - xml.append("" + occurrence.getLine() + "\n"); - xml.append("Serviço de validação de HTML do W3C\n"); - xml.append("\n"); - - criterioCompara = occurrence.getCriterio(); - recomendacao1_1_1Adicionada = true; - } - - if(numeroCriterio.equalsIgnoreCase("2") && !recomendacao1_1_2Adicionada) - { - if(!criterioCompara.equalsIgnoreCase("")) - { - System.out.println("\n"); - xml.append("\n"); - } - - xml.append("\n"); - xml.append("" + numeroCriterio + "\n"); - xml.append("" + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) + "\n"); - xml.append("" + occurrence.isError() + "\n"); - xml.append("" + verificaQuantidadeCriterio(rn, isError, numeroCriterio) + "\n"); - xml.append("\n"); - xml.append("" + occurrence.getLine() + "\n"); - xml.append("Serviço de validação de CSS do W3C\n"); - xml.append("\n"); - - criterioCompara = occurrence.getCriterio(); - recomendacao1_1_2Adicionada = true; - } - - } - //} - } - - xml.append("\n"); - - } - - private Integer verificaQuantidadeCriterio(OccurrenceKey rn, boolean isError, String numeroCriterio) - { - Integer quantidadeCriterios = 0; - - for (Occurrence occurrence2 : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) - { - if(occurrence2.getCriterio().toString().equalsIgnoreCase(numeroCriterio)) - { - quantidadeCriterios++; - } - } - - return quantidadeCriterios; - } - -} \ No newline at end of file + if(tipoSaida.equalsIgnoreCase("json")) + { + JSONObject soapDatainJsonObject = XML.toJSONObject(xml.toString()); + result.include("saidaWebService", soapDatainJsonObject); + } + else if(tipoSaida.equalsIgnoreCase("xml")) + { + result.include("saidaWebService", xml); + } + } catch (Exception e) { + e.printStackTrace(); + result.include("saidaWebService", ""); + } + } + + public void criarRelatorioCriterios(OccurrenceKey rn, boolean isError) { + + boolean recomendacao1_1_1Adicionada = false; + boolean recomendacao1_1_2Adicionada = false; + + /* Cria um Map de parametros */ + // HashMap map = new HashMap(); + + // List list = this.detalheAvaliacao.get(rn,isError).getCriterios(); + + // List aReq = new ArrayList(); + // List index = new ArrayList(); + + // String[] crit = this.utilitiesProperties.get("notExibCrit").split(" "); + + // for (String c : crit) + // { + // aReq.add(c.trim()); + // } + + // List listCrit = this.detalheAvaliacao.get(rn, isError).getCriterios(); + + // List list = new ArrayList(); + + /* + * for (Criterio criterio : listCrit) { if (aReq.contains(rn.getCode() + "." + + * criterio.getId())) { criterio.setLinhas(new ArrayList()); } + * + * if (criterio.getId() != null) { list.add(criterio); } } + */ + + String codigoFonte = ""; + String criterioCompara = ""; + String numeroCriterio = ""; + + + for (Occurrence occurrence : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) { + + numeroCriterio = occurrence.getCriterio(); + + // if (!aReq.contains(rn.getCode() + "." + numeroCriterio)) + // { + + if (!rn.getCode().toString().equalsIgnoreCase("1.1") || !isError) { + if (rn.getCode().toString().equalsIgnoreCase("1.1") && numeroCriterio.equalsIgnoreCase("7")) { + codigoFonte = "Serviço de validação de HTML do W3C"; + } else if (rn.getCode().toString().equalsIgnoreCase("1.1") + && numeroCriterio.equalsIgnoreCase("8")) { + codigoFonte = "Serviço de validação de CSS do W3C"; + } else { + codigoFonte = + occurrence.getTag().replaceAll("<", "<").replaceAll(">", ">") + .replaceAll(" ", " "); + } + + if (!criterioCompara.equalsIgnoreCase(occurrence.getCriterio().toString())) { + if (!criterioCompara.equalsIgnoreCase("")) { + xml.append("\n"); + } + + + xml.append("\n"); + xml.append("" + numeroCriterio + "\n"); + xml.append("" + + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) + + "\n"); + xml.append("" + occurrence.isError() + "\n"); + xml.append("" + + verificaQuantidadeCriterio(rn, isError, numeroCriterio) + + "\n"); + xml.append("\n"); + xml.append("" + occurrence.getLine() + "\n"); + xml.append("\n"); + xml.append("\n"); + + + criterioCompara = occurrence.getCriterio(); + } else { + xml.append("\n"); + xml.append("" + occurrence.getLine() + "\n"); + xml.append("") + .replaceAll(" ", " ") + "]]>\n"); + xml.append("\n"); + } + + } else { + if (numeroCriterio.equalsIgnoreCase("1") && !recomendacao1_1_1Adicionada) { + if (!criterioCompara.equalsIgnoreCase("")) { + xml.append("\n"); + } + xml.append("\n"); + xml.append("" + numeroCriterio + "\n"); + xml.append("" + + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) + + "\n"); + xml.append("" + occurrence.isError() + "\n"); + xml.append("" + + verificaQuantidadeCriterio(rn, isError, numeroCriterio) + + "\n"); + xml.append("\n"); + xml.append("" + occurrence.getLine() + "\n"); + xml.append("Serviço de validação de HTML do W3C\n"); + xml.append("\n"); + + criterioCompara = occurrence.getCriterio(); + recomendacao1_1_1Adicionada = true; + } + + if (numeroCriterio.equalsIgnoreCase("2") && !recomendacao1_1_2Adicionada) { + if (!criterioCompara.equalsIgnoreCase("")) { + + xml.append("\n"); + } + + xml.append("\n"); + xml.append("" + numeroCriterio + "\n"); + xml.append("" + + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) + + "\n"); + xml.append("" + occurrence.isError() + "\n"); + xml.append("" + + verificaQuantidadeCriterio(rn, isError, numeroCriterio) + + "\n"); + xml.append("\n"); + xml.append("" + occurrence.getLine() + "\n"); + xml.append("Serviço de validação de CSS do W3C\n"); + xml.append("\n"); + + criterioCompara = occurrence.getCriterio(); + recomendacao1_1_2Adicionada = true; + } + + } + // } + } + + xml.append("\n"); + + } + + private Integer verificaQuantidadeCriterio(OccurrenceKey rn, boolean isError, + String numeroCriterio) { + Integer quantidadeCriterios = 0; + + for (Occurrence occurrence2 : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) { + if (occurrence2.getCriterio().toString().equalsIgnoreCase(numeroCriterio)) { + quantidadeCriterios++; + } + } + + return quantidadeCriterios; + + } + +} diff --git a/src/main/java/br/com/ases/controller/IndexController.java b/src/main/java/br/com/ases/controller/IndexController.java index e24df5a..f5e1fe9 100644 --- a/src/main/java/br/com/ases/controller/IndexController.java +++ b/src/main/java/br/com/ases/controller/IndexController.java @@ -1,5 +1,10 @@ package br.com.ases.controller; +import java.sql.Connection; +import java.sql.DriverManager; + +import org.apache.regexp.REUtil; + import com.jcabi.http.Response; import br.com.caelum.vraptor.Path; @@ -9,7 +14,7 @@ import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder; @Resource public class IndexController { - private String tituloPagina = "ASES - Avaliador e Simulador de Acessibilidade em Sítios"; + private String tituloPagina = "ASES - Avaliador e Simulador de Acessibilidade em Sítios"; private Result result; public IndexController (Result result) { @@ -27,7 +32,11 @@ public class IndexController { @Path("/") public void index() { + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("tituloPagina", tituloPagina); } } + + + diff --git a/src/main/java/br/com/ases/domain/DetalheAvaliacao.java b/src/main/java/br/com/ases/domain/DetalheAvaliacao.java index cf5ef53..b1d78e8 100644 --- a/src/main/java/br/com/ases/domain/DetalheAvaliacao.java +++ b/src/main/java/br/com/ases/domain/DetalheAvaliacao.java @@ -118,6 +118,8 @@ public class DetalheAvaliacao { } + + public @Getter @Setter class Criterio implements Comparable{ private String id; private String descricao; diff --git a/src/main/java/br/com/ases/model/utilities/Validate.java b/src/main/java/br/com/ases/model/utilities/Validate.java index 314f5b9..3e6ddfc 100644 --- a/src/main/java/br/com/ases/model/utilities/Validate.java +++ b/src/main/java/br/com/ases/model/utilities/Validate.java @@ -107,8 +107,9 @@ public class Validate { } private Integer verificarConexao(String campo, String usuario, String agente) { - System.setProperty("jsse.enableSNIExtension", "false"); + int codResponse = -1; + System.setProperty("jsse.enableSNIExtension", "false"); HttpMethod metodoRequisicaoGET = null; HttpClient clienteHTTPJakartaCommons; URL UrlConvertida; @@ -134,15 +135,15 @@ public class Validate { } catch (MalformedURLException e) { e.printStackTrace(); - // this.validator.add(new ValidationMessage( - // "Não foi possível realizar a avaliação! URL " + campo - // + " é considerada inválida.", "warning")); + // this.validator.add(new ValidationMessage( + // "Não foi possível realizar a avaliação! URL " + campo + // + " é considerada inválida.", "warning")); return -1; } catch (IOException e) { e.printStackTrace(); - //this.validator.add(new ValidationMessage( - // "Não foi possível realizar a avaliação! URL " + campo - // + " é considerada inválida.", "warning")); + // this.validator.add(new ValidationMessage( + // "Não foi possível realizar a avaliação! URL " + campo + // + " é considerada inválida.", "warning")); return -1; } -- libgit2 0.21.2