Commit 53bc7d9a607f62395ba4a814decd67680869a57b
1 parent
46a89376
Exists in
master
WebService (geração do json) e identação.
Showing
5 changed files
with
1102 additions
and
1071 deletions
Show diff stats
src/main/java/br/com/ases/business/impl/AvaliacaoBusinessImpl.java
... | ... | @@ -108,7 +108,10 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { |
108 | 108 | for (String atributoBuscar : atributosBuscar) { |
109 | 109 | |
110 | 110 | if(element.getStartTag().getName().equalsIgnoreCase("input")) |
111 | - { | |
111 | + { | |
112 | + if(element.getAttributeValue(atributoBuscar) != null) | |
113 | + { | |
114 | + System.out.println(element.getStartTag().getName().equalsIgnoreCase("input")); | |
112 | 115 | if(!element.getAttributeValue(atributoBuscar).equalsIgnoreCase("button") |
113 | 116 | && !element.getAttributeValue(atributoBuscar).equalsIgnoreCase("reset") |
114 | 117 | && !element.getAttributeValue(atributoBuscar).equalsIgnoreCase("submit") |
... | ... | @@ -117,6 +120,7 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { |
117 | 120 | { |
118 | 121 | qtdItens = qtdItens + (element.getAttributeValue(atributoBuscar) != null? 1 : 0); |
119 | 122 | } |
123 | + } | |
120 | 124 | }else if(element.getStartTag().getName().equalsIgnoreCase("textarea") || |
121 | 125 | element.getStartTag().getName().equalsIgnoreCase("select")) |
122 | 126 | { |
... | ... | @@ -126,6 +130,7 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { |
126 | 130 | { |
127 | 131 | qtdItens = qtdItens + (element.getAttributeValue(atributoBuscar) != null? 1 : 0); |
128 | 132 | } |
133 | + | |
129 | 134 | } |
130 | 135 | } |
131 | 136 | } |
... | ... | @@ -193,7 +198,7 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { |
193 | 198 | //Separa a recomenda��o do crit�rio sendo (x.y) de (x.y.z) |
194 | 199 | recomendacaoProperties = recomendacaoCriterio[0].toString() + "." + recomendacaoCriterio[1].toString(); |
195 | 200 | |
196 | - //Semara a crit�rio da recomenda��o sendo (z) de (x.y.z) | |
201 | + //Separa a crit�rio da recomenda��o sendo (z) de (x.y.z) | |
197 | 202 | criterioProperties = recomendacaoCriterio[2]; |
198 | 203 | |
199 | 204 | |
... | ... | @@ -208,17 +213,22 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { |
208 | 213 | for (RecomendacaoCriterios recCriterio : lsRecomendacaoCriterios) { |
209 | 214 | countCriterio++; |
210 | 215 | postParams.addParam("relatorioAvaliacao.recomendacoes["+countReq+"].criterios["+countCriterio+"].idCriterio",recCriterio.criterio) |
211 | - .addParam("relatorioAvaliacao.recomendacoes["+countReq+"].criterios["+countCriterio+"].qtdeErros", Integer.toString(recCriterio.qtdErros)) | |
212 | - .addParam("relatorioAvaliacao.recomendacoes["+countReq+"].criterios["+countCriterio+"].qtdeItens",Integer.toString(recCriterio.qtdItens)); | |
216 | + .addParam("relatorioAvaliacao.recomendacoes["+ countReq +"].criterios["+countCriterio+"].qtdeErros", Integer.toString(recCriterio.qtdErros)) | |
217 | + .addParam("relatorioAvaliacao.recomendacoes["+ countReq +"].criterios["+countCriterio+"].qtdeItens",Integer.toString(recCriterio.qtdItens)); | |
213 | 218 | } |
214 | 219 | |
215 | - postParams.addParam("relatorioAvaliacao.recomendacoes[" + countReq+ "].totalErros", Integer.toString(totalErros)); | |
216 | - postParams.addParam("relatorioAvaliacao.recomendacoes[" + countReq+ "].totalAvisos", Integer.toString(totalAvisos)); | |
220 | + postParams.addParam("relatorioAvaliacao.recomendacoes[" + countReq + "].totalErros", Integer.toString(totalErros)); | |
221 | + postParams.addParam("relatorioAvaliacao.recomendacoes[" + countReq + "].totalAvisos", Integer.toString(totalAvisos)); | |
217 | 222 | |
218 | 223 | totalAvisos = 0; |
219 | 224 | totalErros = 0; |
220 | 225 | lsRecomendacaoCriterios = new ArrayList<RecomendacaoCriterios>(); |
221 | 226 | } |
227 | + else | |
228 | + { | |
229 | + totalAvisos = 0; | |
230 | + totalErros = 0; | |
231 | + } | |
222 | 232 | |
223 | 233 | |
224 | 234 | |
... | ... | @@ -318,9 +328,7 @@ public class AvaliacaoBusinessImpl implements AvaliacaoBusiness { |
318 | 328 | recomendacaoAdd.setQtdErros(qtdErrosAvisos); |
319 | 329 | recomendacaoAdd.setQtdItens(qtdItens); |
320 | 330 | lsRecomendacaoCriterios.add(recomendacaoAdd); |
321 | - } | |
322 | - | |
323 | - | |
331 | + } | |
324 | 332 | |
325 | 333 | } |
326 | 334 | ... | ... |
src/main/java/br/com/ases/controller/AvaliacaoController.java
... | ... | @@ -29,6 +29,9 @@ import java.util.regex.Pattern; |
29 | 29 | import javax.servlet.ServletContext; |
30 | 30 | import javax.ws.rs.QueryParam; |
31 | 31 | |
32 | +import org.json.JSONObject; | |
33 | +import org.json.XML; | |
34 | + | |
32 | 35 | import net.sf.jasperreports.engine.JRException; |
33 | 36 | import br.com.ases.business.AvaliacaoBusiness; |
34 | 37 | import br.com.ases.controller.EseloController.Nota; |
... | ... | @@ -61,1059 +64,1067 @@ import br.com.checker.emag.core.ContentEvaluation; |
61 | 64 | |
62 | 65 | @Resource |
63 | 66 | public class AvaliacaoController { |
64 | - EseloProperties eseloProperties = null; | |
65 | - | |
66 | - private String tituloPagina; | |
67 | - // Altera a mensagem caso n�o esteja usando o ESELO (Nota e Resumo da | |
68 | - // Avalia��o de Acessibilidade) | |
69 | - private String mensagem_avaliacao = null; | |
70 | - | |
71 | - // Esconde a nota caso n�o esteja usando o ESELO | |
72 | - private String sem_nota = null; | |
73 | - private String tituloSite; | |
74 | - private String ancoraCampoVazio; | |
75 | - private String dataHoraAvaliacao; | |
76 | - private String webaxscore; | |
77 | - private Result result; | |
78 | - private List<String> avisosFerramentasHtmlCssW3c; | |
79 | - private Validator validator; | |
80 | - private AvaliacaoBusiness avaliacaoBusiness; | |
81 | - private Map<OccurrenceClassification, List<SummarizedOccurrence>> ocorrencias = new HashMap<OccurrenceClassification, List<SummarizedOccurrence>>(); | |
82 | - private ServletContext application; | |
83 | - private DetalheAvaliacao detalheAvaliacao; | |
84 | - private UtilitiesProperties utilitiesProperties; | |
85 | - private StringBuffer xml; | |
86 | - private CriterioProperties criterioProperties; | |
87 | - | |
88 | - public AvaliacaoController(Result result, Validator validator, | |
89 | - AvaliacaoBusiness avaliacaoBusiness, ServletContext application, | |
90 | - DetalheAvaliacao detalheAvaliacao) { | |
91 | - this.result = result; | |
92 | - this.validator = validator; | |
93 | - this.avaliacaoBusiness = avaliacaoBusiness; | |
94 | - this.application = application; | |
95 | - this.detalheAvaliacao = detalheAvaliacao; | |
96 | - this.avaliacaoBusiness.initEseloProperties(application); | |
97 | - this.initEseloProperties(application); | |
98 | - this.criterioProperties = new CriterioProperties(application); | |
99 | - this.utilitiesProperties = new UtilitiesProperties(application); | |
100 | - | |
101 | - } | |
102 | - | |
103 | - | |
104 | - private void DefinirCorWebaxscore(String valorNota) { | |
105 | - | |
106 | - // Define a cor do webaxscore na p�gina "Avaliar" de acordo a pontua��o | |
107 | - | |
108 | - Double notaAvaliacao = Double.parseDouble(valorNota.replaceFirst(",", | |
109 | - ".")); | |
110 | - | |
111 | - if (notaAvaliacao >= 70) { | |
112 | - webaxscore = "verde"; | |
113 | - } else if (notaAvaliacao >= 50 & notaAvaliacao < 70) { | |
114 | - webaxscore = "amarela"; | |
115 | - } else { | |
116 | - webaxscore = "vermelha"; | |
117 | - } | |
118 | - } | |
119 | - | |
120 | - @Path("/avaliar-arquivo") | |
121 | - public void avaliarArquivo(UploadedFile file, boolean mark, | |
122 | - boolean content, boolean presentation, boolean multimedia, | |
123 | - boolean form, boolean behavior, int tiprel) throws IOException { | |
124 | - | |
125 | - Validate validate = new Validate(this.validator); | |
126 | - if (validate.uploadForm(file)) { | |
127 | - | |
128 | - BufferedReader reader = new BufferedReader(new InputStreamReader( | |
129 | - file.getFile())); | |
130 | - String html = ""; | |
131 | - String linha = ""; | |
132 | - while ((linha = reader.readLine()) != null) | |
133 | - // html += "\n"+linha; | |
134 | - html += linha + "\n"; | |
135 | - | |
136 | - if (validate.conteudoUploadForm(html)) { | |
137 | - | |
138 | - /* | |
139 | - * if(tiprel != 5) | |
140 | - * this.result.redirectTo(AvaliacaoController.class | |
141 | - * ).relatorioAvaliacao(html, mark, content, presentation, | |
142 | - * multimedia, form, behavior, tiprel, false); | |
143 | - */ | |
144 | - | |
145 | - Checker checker = from(html); | |
146 | - | |
147 | - if (mark)checker.with(marking()); | |
148 | - if (content)checker.with(content()); | |
149 | - if (presentation)checker.with(presentation()); | |
150 | - if (multimedia)checker.with(multimedia()); | |
151 | - if (form)checker.with(form()); | |
152 | - if (behavior)checker.with(behavior()); | |
153 | - | |
154 | - html = html.replaceAll("<", "<"); | |
155 | - html = html.replaceAll(">", ">"); | |
156 | - html = html.replaceAll(" ", " "); | |
157 | - | |
158 | - result.include("contentLenght",String.valueOf(html.getBytes("UTF-8").length)); | |
159 | - result.include("html", html); | |
160 | - | |
161 | - this.tituloSite = ""; | |
162 | - | |
163 | - ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); | |
164 | - this.tituloSite = conteudo.retornarTituloSiteAvaliado(); | |
165 | - | |
166 | - result.include("titulosite", tituloSite); | |
167 | - Nota nota = null; | |
168 | - | |
169 | - if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { | |
170 | - List<Entry<OccurrenceKey,List<Occurrence>>> mapaListaOcorrencias = avaliacaoBusiness.retornarCriteriosTeste(checker.check()); | |
171 | - //nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), file.getFileName(), mapaListaOcorrencias); | |
172 | - nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(),file.getFileName(), mapaListaOcorrencias); | |
173 | - // Altera a cor de webaxscore de acordo a pontuacao | |
174 | - | |
175 | - if (nota.getValor() != null) { | |
176 | - DefinirCorWebaxscore(nota.getValor()); | |
177 | - | |
178 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("webaxscore", webaxscore); | |
179 | - } | |
180 | - | |
181 | - } | |
182 | - | |
183 | - result.include("nota", nota); | |
184 | - this.sumarizarResultasNoResponse(checker.checkSumarized(), result); | |
185 | - this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check())); | |
186 | - | |
187 | - | |
188 | - | |
189 | - | |
190 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("resultadoAvaliacao", checker.checkSumarized()); | |
191 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", ""); | |
192 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("contentLenght",String.valueOf(html.getBytes("UTF-8").length)); | |
193 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("notaAvaliacao", nota); | |
194 | - | |
195 | - // Seta o valor do t�tulo no template | |
196 | - tituloPagina = "Resumo de avaliação por upload de arquivo - ASES"; | |
197 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("tituloPagina", tituloPagina); | |
67 | + EseloProperties eseloProperties = null; | |
68 | + | |
69 | + private String tituloPagina; | |
70 | + // Altera a mensagem caso n�o esteja usando o ESELO (Nota e Resumo da | |
71 | + // Avalia��o de Acessibilidade) | |
72 | + private String mensagem_avaliacao = null; | |
73 | + | |
74 | + // Esconde a nota caso n�o esteja usando o ESELO | |
75 | + private String sem_nota = null; | |
76 | + private String tituloSite; | |
77 | + private String ancoraCampoVazio; | |
78 | + private String dataHoraAvaliacao; | |
79 | + private String webaxscore; | |
80 | + private Result result; | |
81 | + private List<String> avisosFerramentasHtmlCssW3c; | |
82 | + private Validator validator; | |
83 | + private AvaliacaoBusiness avaliacaoBusiness; | |
84 | + private Map<OccurrenceClassification, List<SummarizedOccurrence>> ocorrencias = | |
85 | + new HashMap<OccurrenceClassification, List<SummarizedOccurrence>>(); | |
86 | + private ServletContext application; | |
87 | + private DetalheAvaliacao detalheAvaliacao; | |
88 | + private UtilitiesProperties utilitiesProperties; | |
89 | + private StringBuffer xml; | |
90 | + private CriterioProperties criterioProperties; | |
91 | + | |
92 | + private static int PRETTY_PRINT_INDENT_FACTOR = 4; | |
93 | + | |
94 | + public AvaliacaoController(Result result, Validator validator, | |
95 | + AvaliacaoBusiness avaliacaoBusiness, ServletContext application, | |
96 | + DetalheAvaliacao detalheAvaliacao) { | |
97 | + this.result = result; | |
98 | + this.validator = validator; | |
99 | + this.avaliacaoBusiness = avaliacaoBusiness; | |
100 | + this.application = application; | |
101 | + this.detalheAvaliacao = detalheAvaliacao; | |
102 | + this.avaliacaoBusiness.initEseloProperties(application); | |
103 | + this.initEseloProperties(application); | |
104 | + this.criterioProperties = new CriterioProperties(application); | |
105 | + this.utilitiesProperties = new UtilitiesProperties(application); | |
106 | + | |
107 | + } | |
108 | + | |
109 | + | |
110 | + private void DefinirCorWebaxscore(String valorNota) { | |
111 | + | |
112 | + // Define a cor do webaxscore na p�gina "Avaliar" de acordo a pontua��o | |
113 | + | |
114 | + Double notaAvaliacao = Double.parseDouble(valorNota.replaceFirst(",", ".")); | |
115 | + | |
116 | + if (notaAvaliacao >= 70) { | |
117 | + webaxscore = "verde"; | |
118 | + } else if (notaAvaliacao >= 50 & notaAvaliacao < 70) { | |
119 | + webaxscore = "amarela"; | |
120 | + } else { | |
121 | + webaxscore = "vermelha"; | |
122 | + } | |
123 | + } | |
124 | + | |
125 | + @Path("/avaliar-arquivo") | |
126 | + public void avaliarArquivo(UploadedFile file, boolean mark, boolean content, | |
127 | + boolean presentation, boolean multimedia, boolean form, boolean behavior, int tiprel) | |
128 | + throws IOException { | |
129 | + | |
130 | + Validate validate = new Validate(this.validator); | |
131 | + if (validate.uploadForm(file)) { | |
132 | + | |
133 | + BufferedReader reader = new BufferedReader(new InputStreamReader(file.getFile())); | |
134 | + String html = ""; | |
135 | + String linha = ""; | |
136 | + while ((linha = reader.readLine()) != null) | |
137 | + // html += "\n"+linha; | |
138 | + html += linha + "\n"; | |
139 | + | |
140 | + if (validate.conteudoUploadForm(html)) { | |
141 | + | |
142 | + /* | |
143 | + * if(tiprel != 5) this.result.redirectTo(AvaliacaoController.class | |
144 | + * ).relatorioAvaliacao(html, mark, content, presentation, multimedia, form, behavior, | |
145 | + * tiprel, false); | |
146 | + */ | |
147 | + | |
148 | + Checker checker = from(html); | |
149 | + | |
150 | + if (mark) | |
151 | + checker.with(marking()); | |
152 | + if (content) | |
153 | + checker.with(content()); | |
154 | + if (presentation) | |
155 | + checker.with(presentation()); | |
156 | + if (multimedia) | |
157 | + checker.with(multimedia()); | |
158 | + if (form) | |
159 | + checker.with(form()); | |
160 | + if (behavior) | |
161 | + checker.with(behavior()); | |
162 | + | |
163 | + html = html.replaceAll("<", "<"); | |
164 | + html = html.replaceAll(">", ">"); | |
165 | + html = html.replaceAll(" ", " "); | |
166 | + | |
167 | + result.include("contentLenght", String.valueOf(html.getBytes("UTF-8").length)); | |
168 | + result.include("html", html); | |
169 | + | |
170 | + this.tituloSite = ""; | |
171 | + | |
172 | + ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); | |
173 | + this.tituloSite = conteudo.retornarTituloSiteAvaliado(); | |
174 | + | |
175 | + result.include("titulosite", tituloSite); | |
176 | + Nota nota = null; | |
177 | + | |
178 | + if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { | |
179 | + List<Entry<OccurrenceKey, List<Occurrence>>> mapaListaOcorrencias = | |
180 | + avaliacaoBusiness.retornarCriteriosTeste(checker.check()); | |
181 | + // nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), file.getFileName(), | |
182 | + // mapaListaOcorrencias); | |
183 | + nota = | |
184 | + avaliacaoBusiness.obterNotaEselo(checker.getDocument(), file.getFileName(), | |
185 | + mapaListaOcorrencias); | |
186 | + // Altera a cor de webaxscore de acordo a pontuacao | |
187 | + | |
188 | + if (nota.getValor() != null) { | |
189 | + DefinirCorWebaxscore(nota.getValor()); | |
190 | + | |
191 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
192 | + .setAttribute("webaxscore", webaxscore); | |
193 | + } | |
194 | + | |
195 | + } | |
196 | + | |
197 | + result.include("nota", nota); | |
198 | + this.sumarizarResultasNoResponse(checker.checkSumarized(), result); | |
199 | + this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check())); | |
200 | + | |
201 | + | |
202 | + | |
203 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
204 | + .setAttribute("resultadoAvaliacao", checker.checkSumarized()); | |
205 | + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", ""); | |
206 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
207 | + .setAttribute("contentLenght", String.valueOf(html.getBytes("UTF-8").length)); | |
208 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
209 | + .setAttribute("notaAvaliacao", nota); | |
210 | + | |
211 | + // Seta o valor do t�tulo no template | |
212 | + tituloPagina = "Resumo de avaliação por upload de arquivo - ASES"; | |
213 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
214 | + .setAttribute("tituloPagina", tituloPagina); | |
215 | + | |
216 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
217 | + .setAttribute("titulosite", tituloSite); | |
218 | + | |
219 | + this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); | |
220 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
221 | + .setAttribute("data", dataHoraAvaliacao); | |
222 | + | |
223 | + result.of(this).avaliar(null, mark, content, presentation, multimedia, form, behavior, | |
224 | + tiprel); | |
225 | + | |
226 | + } else { | |
227 | + | |
228 | + // Atribui �ncora para as mensagens de erros dos campos vazios | |
229 | + ancoraCampoVazio = "up_file"; | |
230 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
231 | + .setAttribute("ancoraCampoVazio", ancoraCampoVazio); | |
232 | + | |
233 | + this.validator = validate.getMessage(); | |
234 | + this.validator.onErrorUsePageOf(IndexController.class).index(); | |
235 | + } | |
236 | + | |
237 | + } else { | |
238 | + // Atribui �ncora para as mensagens de erros dos campos vazios | |
239 | + ancoraCampoVazio = "up_file"; | |
240 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
241 | + .setAttribute("ancoraCampoVazio", ancoraCampoVazio); | |
242 | + | |
243 | + this.validator = validate.getMessage(); | |
244 | + this.validator.onErrorUsePageOf(IndexController.class).index(); | |
245 | + } | |
246 | + } | |
247 | + | |
248 | + @Post("/avaliar") | |
249 | + public void avaliar(String url, boolean mark, boolean content, boolean presentation, | |
250 | + boolean multimedia, boolean form, boolean behavior, int tiporel) { | |
251 | + | |
252 | + Validate validate = new Validate(this.validator); | |
253 | + if (validate.url(url)) { | |
254 | + | |
255 | + /* | |
256 | + * if(tiporel != 5) this.result.redirectTo(AvaliacaoController.class) .relatorioAvaliacao(url, | |
257 | + * mark, content, presentation, multimedia, form, behavior, tiporel, true); | |
258 | + */ | |
259 | + | |
260 | + if (url.startsWith("www")) | |
261 | + url = "http://" + url; | |
262 | + | |
263 | + WebChecker pagina = WebChecker.from(url).withGetRequest().execute(); | |
264 | + | |
265 | + int[] errorsWarningsCss = avaliacaoBusiness.getErrorCount(true, url); | |
266 | + int[] errorsWarningsHtml = avaliacaoBusiness.getErrorCount(false, url); | |
267 | + | |
268 | + Checker checker = from(pagina.getContent(), url); | |
269 | + | |
270 | + if (mark) | |
271 | + checker.with(marking()); | |
272 | + if (content) | |
273 | + checker.with(content()); | |
274 | + if (presentation) | |
275 | + checker.with(presentation()); | |
276 | + if (multimedia) | |
277 | + checker.with(multimedia()); | |
278 | + if (form) | |
279 | + checker.with(form()); | |
280 | + if (behavior) | |
281 | + checker.with(behavior()); | |
282 | + | |
283 | + Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); | |
284 | + Matcher mm = pp.matcher(url.toLowerCase().replace("https", "http")); | |
285 | + | |
286 | + if (mm.find()) | |
287 | + | |
288 | + this.tituloSite = ""; | |
289 | + | |
290 | + ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); | |
291 | + | |
292 | + this.tituloSite = conteudo.retornarTituloSiteAvaliado(); | |
293 | + | |
294 | + result.include("titulosite", tituloSite); | |
295 | + | |
296 | + result.include("contentLenght", pagina.getContentLength()); | |
297 | + result.include("url", url); | |
298 | + result.include("html", pagina.getParsedContent()); | |
299 | + | |
300 | + Nota nota = null; | |
301 | + | |
302 | + if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { | |
303 | + | |
304 | + List<Entry<OccurrenceKey, List<Occurrence>>> mapaListaOcorrencias = | |
305 | + avaliacaoBusiness.retornarCriteriosTeste(checker.check()); | |
306 | + // Altera a cor de webaxscore de acordo a pontuacao | |
307 | + // nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), url, mapaListaOcorrencias); | |
308 | + | |
309 | + nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(), url, mapaListaOcorrencias); | |
310 | + | |
311 | + if (nota.getValor() != null) { | |
312 | + DefinirCorWebaxscore(nota.getValor()); | |
313 | + | |
314 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
315 | + .setAttribute("webaxscore", webaxscore); | |
316 | + } | |
317 | + | |
318 | + } | |
319 | + | |
320 | + result.include("nota", nota); | |
321 | + this.sumarizarResultasNoResponse(checker.checkSumarized(), result); | |
322 | + | |
323 | + this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check()), | |
324 | + errorsWarningsCss, errorsWarningsHtml); | |
325 | + | |
326 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
327 | + .setAttribute("resultadoAvaliacao", checker.checkSumarized()); | |
328 | + | |
329 | + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", url); | |
330 | + | |
331 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
332 | + .setAttribute("contentLenght", pagina.getContentLength()); | |
333 | + | |
334 | + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("notaAvaliacao", nota); | |
335 | + | |
336 | + // Seta o valor do t�tulo no template | |
337 | + tituloPagina = "Resumo de avaliação por URI - ASES"; | |
338 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
339 | + .setAttribute("tituloPagina", tituloPagina); | |
340 | + | |
341 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
342 | + .setAttribute("titulosite", tituloSite); | |
343 | + | |
344 | + this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); | |
345 | + | |
346 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
347 | + .setAttribute("data", dataHoraAvaliacao); | |
348 | + | |
349 | + avisosFerramentasHtmlCssW3c = new ArrayList<String>(); | |
350 | + | |
351 | + validarFerramenta_cssnoAr(errorsWarningsCss); | |
352 | + validarFerramenta_htmlnoAr(errorsWarningsHtml); | |
353 | + | |
354 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
355 | + .setAttribute("avisosFerramentasHtmlCssW3c", avisosFerramentasHtmlCssW3c); | |
356 | + | |
357 | + } else { | |
358 | + // Atribui �ncora para as mensagens de erros dos campos vazios | |
359 | + ancoraCampoVazio = "url"; | |
360 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
361 | + .setAttribute("ancoraCampoVazio", ancoraCampoVazio); | |
362 | + | |
363 | + this.validator = validate.getMessage(); | |
364 | + this.validator.onErrorUsePageOf(IndexController.class).index(); | |
365 | + } | |
366 | + } | |
367 | + | |
368 | + // Verifica se o site de avalia��o de sintaxe css encontra-se no ar | |
369 | + private void validarFerramenta_cssnoAr(int[] erros_avisos) { | |
370 | + if (erros_avisos[0] == -10 && erros_avisos[1] == -10) { | |
371 | + | |
372 | + avisosFerramentasHtmlCssW3c | |
373 | + .add("O avaliador de sintaxe css do w3c encontra-se indisponível, favor tentar mais tarde."); | |
374 | + } | |
375 | + | |
376 | + } | |
377 | + | |
378 | + // Verifica se o site de avalia��o de sintaxe html encontra-se no ar | |
379 | + private void validarFerramenta_htmlnoAr(int[] erros_avisos) { | |
380 | + if (erros_avisos[0] == -10 && erros_avisos[1] == -10) { | |
381 | + avisosFerramentasHtmlCssW3c | |
382 | + .add("O avaliador de sintaxe html do w3c encontra-se indisponível, favor tentar mais tarde."); | |
383 | + } | |
384 | + } | |
385 | + | |
386 | + @Get("/relatorioavaliacao") | |
387 | + @Post("/relatorioavaliacao") | |
388 | + public FileDownload relatorioAvaliacao(int tiporel) { | |
389 | + | |
390 | + List<SummarizedOccurrence> checkerList = | |
391 | + (List<SummarizedOccurrence>) VRaptorRequestHolder.currentRequest().getServletContext() | |
392 | + .getAttribute("resultadoAvaliacao"); | |
393 | + String urlAvaliada = | |
394 | + (String) VRaptorRequestHolder.currentRequest().getServletContext() | |
395 | + .getAttribute("urlAvaliada"); | |
396 | + String contentLenght = | |
397 | + (String) VRaptorRequestHolder.currentRequest().getServletContext() | |
398 | + .getAttribute("contentLenght"); | |
399 | + this.sumarizarResultasNoResponse(checkerList, result); | |
400 | + | |
401 | + // ================================================ GERAR RELAT�RIO | |
402 | + // =============================================// | |
403 | + | |
404 | + /* Cria um Map de par�metros */ | |
405 | + HashMap<String, Object> map = new HashMap<String, Object>(); | |
406 | + | |
407 | + /* Obtem a nota */ | |
408 | + // AvaliacaoBusinessImpl avaliacaoBusiness = new | |
409 | + // AvaliacaoBusinessImpl(); | |
410 | + Nota nota = null; | |
411 | + | |
412 | + if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { | |
413 | + nota = | |
414 | + (Nota) VRaptorRequestHolder.currentRequest().getServletContext() | |
415 | + .getAttribute("notaAvaliacao"); | |
416 | + | |
417 | + map.put("pPercentualAses", nota.getValor()); | |
418 | + } else { | |
419 | + map.put("pPercentualAses", "0"); | |
420 | + } | |
421 | + | |
422 | + map.put("pPagina", urlAvaliada != "" ? urlAvaliada : "Código Fonte ou Arquivo"); | |
423 | + | |
424 | + if (urlAvaliada != "") { | |
425 | + Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); | |
426 | + Matcher mm = pp.matcher(urlAvaliada.toLowerCase()); | |
427 | + | |
428 | + if (mm.find()) | |
429 | + map.put("pTitulo", | |
430 | + VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("titulosite")); | |
431 | + | |
432 | + } else | |
433 | + map.put("pTitulo", | |
434 | + VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("titulosite")); | |
435 | + | |
436 | + map.put("pTamanho", contentLenght + " Bytes"); | |
437 | + dataHoraAvaliacao = | |
438 | + (String) VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("data"); | |
439 | + map.put("pDataHoraAvaliacao", dataHoraAvaliacao); | |
440 | + | |
441 | + // Obtem Resumo da Avaliação | |
442 | + List<ResumoAvaliacao> resumoErrosAvisos = obterResumoAvaliacao(); | |
443 | + | |
444 | + int totalErros = 0; | |
445 | + int totalAvisos = 0; | |
446 | + | |
447 | + for (ResumoAvaliacao resumo : resumoErrosAvisos) { | |
448 | + map.put(resumo.getTipo() + "_A", resumo.getQuantidadeAvisos()); | |
449 | + map.put(resumo.getTipo() + "_E", resumo.getQuantidadeErros()); | |
450 | + totalErros += resumo.getQuantidadeErros(); | |
451 | + totalAvisos += resumo.getQuantidadeAvisos(); | |
452 | + } | |
453 | + | |
454 | + map.put("TOTAL_E", totalErros); | |
455 | + map.put("TOTAL_A", totalAvisos); | |
456 | + | |
457 | + ManagerReport managerReport = | |
458 | + new ManagerReport(this.application.getRealPath("") | |
459 | + + "/WEB-INF/templates-relatorios/relatorio-avaliacao.jrxml"); | |
460 | + String path = null; | |
461 | + | |
462 | + try { | |
463 | + path = managerReport.gerarRelatorio(checkerList, map, tiporel, "RelatorioAvaliacao"); | |
464 | + } catch (JRException e) { | |
465 | + e.printStackTrace(); | |
466 | + } catch (IOException e) { | |
467 | + e.printStackTrace(); | |
468 | + } | |
469 | + File file = new File(path); | |
470 | + | |
471 | + return new FileDownload(file, managerReport.getContentType(), managerReport.getFileName()); | |
472 | + | |
473 | + // =========================================== FIM GERAR RELAT�RIO | |
474 | + // =============================================// | |
475 | + | |
476 | + } | |
477 | + | |
478 | + @Post("/avaliar-codigo") | |
479 | + public void avaliarPlainText(String html, boolean mark, boolean content, boolean presentation, | |
480 | + boolean multimedia, boolean form, boolean behavior, int tiporel) throws IOException { | |
481 | + | |
482 | + Validate validate = new Validate(this.validator); | |
483 | + if (validate.condigoFonte(html)) { | |
484 | + | |
485 | + /* | |
486 | + * if(tiporel != 5) this.result.redirectTo(AvaliacaoController.class) | |
487 | + * .relatorioAvaliacao(html, mark, content, presentation, multimedia, form, behavior, tiporel, | |
488 | + * false); | |
489 | + */ | |
490 | + | |
491 | + Checker checker = from(html); | |
492 | + | |
493 | + if (mark) | |
494 | + checker.with(marking()); | |
495 | + if (content) | |
496 | + checker.with(content()); | |
497 | + if (presentation) | |
498 | + checker.with(presentation()); | |
499 | + if (multimedia) | |
500 | + checker.with(multimedia()); | |
501 | + if (form) | |
502 | + checker.with(form()); | |
503 | + if (behavior) | |
504 | + checker.with(behavior()); | |
505 | + | |
506 | + html = html.replaceAll("<", "<"); | |
507 | + html = html.replaceAll(">", ">"); | |
508 | + html = html.replaceAll(" ", " "); | |
509 | + | |
510 | + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy H:mm:ss"); | |
511 | + | |
512 | + result.include("contentLenght", String.valueOf(html.getBytes("UTF-8").length)); | |
513 | + result.include("html", html); | |
514 | + this.tituloSite = ""; | |
515 | + | |
516 | + ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); | |
517 | + | |
518 | + this.tituloSite = conteudo.retornarTituloSiteAvaliado(); | |
519 | + | |
520 | + result.include("titulosite", tituloSite); | |
521 | + | |
522 | + Nota nota = null; | |
523 | + | |
524 | + if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { | |
525 | + | |
526 | + List<Entry<OccurrenceKey, List<Occurrence>>> mapaListaOcorrencias = | |
527 | + avaliacaoBusiness.retornarCriteriosTeste(checker.check()); | |
528 | + // nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), tituloSite + " - " + | |
529 | + // sdf.format(new Date()),mapaListaOcorrencias); | |
530 | + nota = | |
531 | + avaliacaoBusiness.obterNotaEselo(checker.getDocument(), | |
532 | + tituloSite + " - " + sdf.format(new Date()), mapaListaOcorrencias); | |
533 | + // Altera a cor de webaxscore de acordo a pontuacao | |
534 | + | |
535 | + if (nota.getValor() != null) { | |
536 | + DefinirCorWebaxscore(nota.getValor()); | |
537 | + | |
538 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
539 | + .setAttribute("webaxscore", webaxscore); | |
540 | + } | |
541 | + | |
542 | + | |
543 | + } | |
544 | + | |
545 | + result.include("nota", nota); | |
546 | + this.sumarizarResultasNoResponse(checker.checkSumarized(), result); | |
547 | + this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check())); | |
548 | + | |
549 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
550 | + .setAttribute("resultadoAvaliacao", checker.checkSumarized()); | |
551 | + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", ""); | |
552 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
553 | + .setAttribute("contentLenght", String.valueOf(html.getBytes("UTF-8").length)); | |
554 | + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("notaAvaliacao", nota); | |
555 | + | |
556 | + // Seta o valor do t�tulo no template | |
557 | + tituloPagina = "Resumo de avaliação por código fonte - ASES"; | |
558 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
559 | + .setAttribute("tituloPagina", tituloPagina); | |
560 | + result.of(this).avaliar(null, mark, content, presentation, multimedia, form, behavior, | |
561 | + tiporel); | |
562 | + | |
563 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
564 | + .setAttribute("titulosite", tituloSite); | |
565 | + | |
566 | + this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); | |
567 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
568 | + .setAttribute("data", dataHoraAvaliacao); | |
569 | + | |
570 | + } else { | |
571 | + // Atribui �ncora para as mensagens de erros dos campos vazios | |
572 | + ancoraCampoVazio = "input"; | |
573 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
574 | + .setAttribute("ancoraCampoVazio", ancoraCampoVazio); | |
575 | + | |
576 | + this.validator = validate.getMessage(); | |
577 | + this.validator.onErrorUsePageOf(IndexController.class).index(); | |
578 | + } | |
579 | + } | |
580 | + | |
581 | + private void sumarizarResultasNoResponse(List<SummarizedOccurrence> resultadoAvaliacao, | |
582 | + Result result) { | |
583 | + | |
584 | + for (SummarizedOccurrence occurrence : resultadoAvaliacao) { | |
585 | + if (ocorrencias.get(occurrence.getType()) == null) | |
586 | + ocorrencias.put(occurrence.getType(), new ArrayList<SummarizedOccurrence>()); | |
587 | + | |
588 | + ocorrencias.get(occurrence.getType()).add(occurrence); | |
589 | + } | |
590 | + | |
591 | + for (Entry<OccurrenceClassification, List<SummarizedOccurrence>> entry : ocorrencias.entrySet()) { | |
592 | + List<SummarizedOccurrence> ocorrenciasComputadas = entry.getValue(); | |
593 | + Collections.sort(ocorrenciasComputadas); | |
594 | + | |
595 | + result.include("LISTA_" + entry.getKey().toString(), ocorrenciasComputadas); | |
596 | + } | |
597 | + | |
598 | + List<ResumoAvaliacao> resumoErrosAvisos = obterResumoAvaliacao(); | |
599 | + int totalErros = 0; | |
600 | + int totalAvisos = 0; | |
601 | + | |
602 | + for (ResumoAvaliacao resumo : resumoErrosAvisos) { | |
603 | + totalErros += resumo.getQuantidadeErros(); | |
604 | + totalAvisos += resumo.getQuantidadeAvisos(); | |
605 | + } | |
606 | + | |
607 | + result.include("totalErros", totalErros); | |
608 | + result.include("totalAvisos", totalAvisos); | |
609 | + result.include("listaResumo", resumoErrosAvisos); | |
610 | + result.include("data", DateUtil.dataHoraAtual()); | |
611 | + | |
612 | + } | |
613 | + | |
614 | + private List<ResumoAvaliacao> obterResumoAvaliacao() { | |
615 | + List<ResumoAvaliacao> resultado = new ArrayList<ResumoAvaliacao>(); | |
616 | + | |
617 | + for (OccurrenceClassification classificacao : OccurrenceClassification.values()) { | |
618 | + | |
619 | + int erros = 0; | |
620 | + int avisos = 0; | |
621 | + | |
622 | + List<SummarizedOccurrence> listaOcorrencias = ocorrencias.get(classificacao); | |
623 | + | |
624 | + if (listaOcorrencias != null) { | |
625 | + for (SummarizedOccurrence ocorrencia : ocorrencias.get(classificacao)) { | |
626 | + | |
627 | + if (ocorrencia.isError()) | |
628 | + for (int line : ocorrencia.getLines()) | |
629 | + erros++; | |
630 | + else | |
631 | + for (int line : ocorrencia.getLines()) | |
632 | + avisos++; | |
633 | + | |
634 | + } | |
635 | + } | |
636 | + | |
637 | + resultado.add(new ResumoAvaliacao(classificacao, erros, avisos)); | |
638 | + } | |
639 | + | |
640 | + return resultado; | |
641 | + } | |
642 | + | |
643 | + | |
644 | + // Gibran | |
645 | + public void obterDetalhes(OccurrenceKey rn, boolean type) { | |
646 | + | |
647 | + | |
648 | + List<Occurrence> listOcorrencias = this.detalheAvaliacao.get(rn, type).getOcorrencias(); | |
649 | + | |
650 | + | |
651 | + | |
652 | + Collections.sort(listOcorrencias, new Comparator<Occurrence>() { | |
653 | + public int compare(Occurrence occurrence1, Occurrence occurrence2) { | |
654 | + return occurrence1.getLine().compareTo(occurrence2.getLine()); | |
655 | + } | |
656 | + }); | |
657 | + | |
658 | + | |
659 | + result.include("detalhe", this.detalheAvaliacao.get(rn, type)); | |
660 | + } | |
661 | + | |
662 | + @Path("/detalhes-avaliacao/{rn}/{type}") | |
663 | + public void detalhesAvaliacao(OccurrenceKey rn, boolean type) { | |
664 | + String url = ""; | |
665 | + tituloPagina = "Detalhes da avalição - ASES"; | |
666 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
667 | + .setAttribute("tituloPagina", tituloPagina); | |
668 | + | |
669 | + List<Occurrence> listOcorrencias = this.detalheAvaliacao.get(rn, type).getOcorrencias(); | |
670 | + | |
671 | + | |
672 | + // Sorting | |
673 | + Collections.sort(listOcorrencias, new Comparator<Occurrence>() { | |
674 | + public int compare(Occurrence occurrence1, Occurrence occurrence2) { | |
675 | + return occurrence1.getLine().compareTo(occurrence2.getLine()); | |
676 | + } | |
677 | + }); | |
678 | + | |
679 | + result.include("detalhe", this.detalheAvaliacao.get(rn, type)); | |
680 | + result.include("listOcorrencia", listOcorrencias); | |
681 | + | |
682 | + result.include("isError", type); | |
683 | + if (type) { | |
684 | + result.include("qtdOcorrenciasCss", this.detalheAvaliacao.getErrorsCss()); | |
685 | + result.include("qtdOcorrenciasHtml", this.detalheAvaliacao.getErrorsHtml()); | |
686 | + } else { | |
687 | + result.include("qtdOcorrenciasCss", this.detalheAvaliacao.getWarningsCss()); | |
688 | + result.include("qtdOcorrenciasHtml", this.detalheAvaliacao.getWarningsHtml()); | |
689 | + } | |
690 | + | |
691 | + List<SummarizedOccurrence> ob = | |
692 | + (List<SummarizedOccurrence>) VRaptorRequestHolder.currentRequest().getServletContext() | |
693 | + .getAttribute("resultadoAvaliacao"); | |
694 | + String recomendacao = ""; | |
695 | + | |
696 | + | |
697 | + for (SummarizedOccurrence occurrence : ob) { | |
698 | + recomendacao = occurrence.getMapDescription().get(rn.getCode()); | |
699 | + break; | |
700 | + } | |
701 | + | |
702 | + result.include("recomendacao", recomendacao); | |
703 | + result.include("rn", rn.getCode()); | |
704 | + result.include("aReq", this.utilitiesProperties.get("notExibCrit")); | |
705 | + result.include("aReqIsCss", this.utilitiesProperties.get("reqCss")); | |
706 | + result.include("aReqIsW3c", this.utilitiesProperties.get("notExibCritW3c")); | |
707 | + url = | |
708 | + VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("urlAvaliada") | |
709 | + .toString().replaceAll("(https://)|(http://)", ""); | |
710 | + result.include("url", url); | |
711 | + | |
712 | + try { | |
713 | + | |
714 | + result.include("urlFormatada", encodeURI(url)); | |
715 | + | |
716 | + } catch (UnsupportedEncodingException e) { | |
717 | + e.printStackTrace(); | |
718 | + } | |
719 | + | |
720 | + } | |
721 | + | |
722 | + private String encodeURI(String url) throws UnsupportedEncodingException { | |
723 | + return URLEncoder.encode(url, "UTF-8").replace("+", "%20").replace("%21", "!") | |
724 | + .replace("%27", "'").replace("%28", "(").replace("%29", ")").replace("%7E", "~"); | |
725 | + } | |
726 | + | |
727 | + @Post("/exportar-detalhes-avaliacao") | |
728 | + public FileDownload exportarDetalhesAvaliacao(OccurrenceKey rn, int tiporel, boolean isError) { | |
729 | + | |
730 | + /* Cria um Map de parametros */ | |
731 | + HashMap<String, Object> map = new HashMap<String, Object>(); | |
732 | + | |
733 | + // List list = this.detalheAvaliacao.get(rn,isError).getCriterios(); | |
734 | + | |
735 | + List<String> aReq = new ArrayList(); | |
736 | + // List<Integer> index = new ArrayList(); | |
737 | + | |
738 | + String[] crit = this.utilitiesProperties.get("notExibCrit").split(" "); | |
739 | + | |
740 | + for (String c : crit) | |
741 | + aReq.add(c.trim()); | |
742 | + | |
743 | + List<Criterio> listCrit = this.detalheAvaliacao.get(rn, isError).getCriterios(); | |
744 | + | |
745 | + List<Criterio> list = new ArrayList<DetalheAvaliacao.Criterio>(); | |
746 | + | |
747 | + for (Criterio criterio : listCrit) { | |
748 | + if (aReq.contains(rn.getCode() + "." + criterio.getId())) | |
749 | + criterio.setLinhas(new ArrayList()); | |
750 | + | |
751 | + if (criterio.getId() != null) | |
752 | + list.add(criterio); | |
753 | + } | |
754 | + | |
755 | + List<String> codigoFonte = new ArrayList(); | |
756 | + | |
757 | + for (Occurrence occurrence : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) { | |
758 | + if (!aReq.contains(rn.getCode() + "." + occurrence.getCriterio())) | |
759 | + codigoFonte.add(occurrence.getLine() | |
760 | + + ": " | |
761 | + + occurrence.getTag().replaceAll("<", "<").replaceAll(">", ">") | |
762 | + .replaceAll(" ", " ") + "\n\n"); | |
763 | + } | |
764 | + map.put("codigoFonte", codigoFonte); | |
765 | + | |
766 | + List<SummarizedOccurrence> ob = | |
767 | + (List<SummarizedOccurrence>) VRaptorRequestHolder.currentRequest().getServletContext() | |
768 | + .getAttribute("resultadoAvaliacao"); | |
769 | + String recomendacao = ""; | |
770 | + | |
771 | + for (SummarizedOccurrence occurrence : ob) { | |
772 | + recomendacao = occurrence.getMapDescription().get(rn.getCode()); | |
773 | + break; | |
774 | + } | |
775 | + | |
776 | + map.put("rnAvaliada", recomendacao); | |
777 | + map.put("SUBREPORT_DIR", this.application.getRealPath("") + "/WEB-INF/templates-relatorios/"); | |
778 | + | |
779 | + ManagerReport managerReport = | |
780 | + new ManagerReport(this.application.getRealPath("") | |
781 | + + "/WEB-INF/templates-relatorios/relatorio-detalhes-avaliacao.jrxml"); | |
782 | + | |
783 | + String path = null; | |
784 | + | |
785 | + try { | |
786 | + path = | |
787 | + managerReport.gerarRelatorioDetalhesAvaliacao(list, map, tiporel, | |
788 | + "DetalhesRelatorioAvaliacao"); | |
789 | + } catch (JRException e) { | |
790 | + e.printStackTrace(); | |
791 | + } catch (IOException e) { | |
792 | + e.printStackTrace(); | |
793 | + } | |
794 | + | |
795 | + File file = new File(path); | |
796 | + | |
797 | + return new FileDownload(file, managerReport.getContentType(), managerReport.getFileName()); | |
798 | + } | |
799 | + | |
800 | + public void initEseloProperties(ServletContext servletContext) { | |
801 | + this.eseloProperties = new EseloProperties(servletContext); | |
802 | + | |
803 | + // Esconde a nota caso n�o esteja usando o ESELO | |
804 | + sem_nota = this.eseloProperties.getSem_nota("sem_nota"); | |
805 | + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("sem_nota", sem_nota); | |
806 | + | |
807 | + // Altera a mensagem caso n�o esteja usando o ESELO (Nota e Resumo da | |
808 | + // Avalia��o de Acessibilidade) | |
809 | + mensagem_avaliacao = this.eseloProperties.getMensagem_avaliacao("mensagem_avaliacao"); | |
810 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
811 | + .setAttribute("mensagem_avaliacao", mensagem_avaliacao); | |
812 | + } | |
813 | + | |
814 | + @Get("/servico-avaliacao-acessibilidade") | |
815 | + @Post("/servico-avaliacao-acessibilidade") | |
816 | + public void servicoAvaliacaoAcessibilidade(@QueryParam("url") String url, String tipoSaida) { | |
817 | + | |
818 | + //tipoSaida deve ser "json" ou "xml"; | |
819 | + try { | |
820 | + | |
821 | + xml = new StringBuffer(); | |
822 | + | |
823 | + | |
824 | + Validate validate = new Validate(this.validator); | |
825 | + | |
826 | + if (validate.url(url)) { | |
827 | + | |
828 | + | |
829 | + if (url.startsWith("www")) { | |
830 | + url = "http://" + url; | |
831 | + } | |
832 | + | |
833 | + WebChecker pagina = WebChecker.from(url).withGetRequest().execute(); | |
834 | + | |
835 | + int[] errorsWarningsCss = avaliacaoBusiness.getErrorCount(true, url); | |
836 | + int[] errorsWarningsHtml = avaliacaoBusiness.getErrorCount(false, url); | |
837 | + | |
838 | + Checker checker = from(pagina.getContent(), url); | |
839 | + | |
840 | + checker.with(marking()); | |
841 | + checker.with(content()); | |
842 | + checker.with(presentation()); | |
843 | + checker.with(multimedia()); | |
844 | + checker.with(form()); | |
845 | + checker.with(behavior()); | |
846 | + | |
847 | + Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); | |
848 | + Matcher mm = pp.matcher(url.toLowerCase().replace("https", "http")); | |
849 | + | |
850 | + if (mm.find()) { | |
851 | + this.tituloSite = ""; | |
852 | + } | |
853 | + | |
854 | + ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); | |
855 | + | |
856 | + this.tituloSite = conteudo.retornarTituloSiteAvaliado(); | |
857 | + | |
858 | + Nota nota = null; | |
859 | + | |
860 | + List<Entry<OccurrenceKey, List<Occurrence>>> mapaListaOcorrencias = | |
861 | + avaliacaoBusiness.retornarCriteriosTeste(checker.check()); | |
862 | + | |
863 | + nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(), url, mapaListaOcorrencias); | |
864 | + | |
865 | + this.sumarizarResultasNoResponse(checker.checkSumarized(), result); | |
866 | + | |
867 | + this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check()), | |
868 | + errorsWarningsCss, errorsWarningsHtml); | |
869 | + | |
870 | + | |
871 | + this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); | |
872 | + List<SummarizedOccurrence> checkSumarized = checker.checkSumarized(); | |
873 | + | |
874 | + avisosFerramentasHtmlCssW3c = new ArrayList<String>(); | |
875 | + List<ResumoAvaliacao> resumoErrosAvisos = obterResumoAvaliacao(); | |
876 | + | |
877 | + // pegar os dados e montar o xml | |
878 | + // List<Occurrence> listOcorrencias; | |
879 | + // Occurrence detalhe; | |
880 | + OccurrenceKey rn = null; | |
881 | + boolean type = false; | |
882 | + // boolean criterioAdicionar = false; | |
883 | + // String criterioAdicionado = ""; | |
884 | + // String idCriterio = null; | |
885 | + int totalErros = 0; | |
886 | + int totalAvisos = 0; | |
887 | + | |
888 | + xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); | |
889 | + xml.append("<avaliacao-automatica>\n"); | |
890 | + xml.append("<pagina-avaliada>\n"); | |
891 | + xml.append("<titulo>" + this.tituloSite + "</titulo>\n"); | |
892 | + xml.append("<tamanho>" + pagina.getContentLength() + "</tamanho>\n"); | |
893 | + xml.append("<data-hora>" + this.dataHoraAvaliacao + "</data-hora>\n"); | |
894 | + xml.append("</pagina-avaliada>\n"); | |
895 | + xml.append("<resumo-avaliacao>\n"); | |
896 | + xml.append("<nota-avaliacao>" + nota.getValor() + "</nota-avaliacao>\n"); | |
897 | + | |
898 | + for (ResumoAvaliacao resumoAvaliacao : resumoErrosAvisos) { | |
899 | + | |
900 | + | |
901 | + xml.append("<secao>"); | |
902 | + xml.append("<nome>" + resumoAvaliacao.getTipo().getDescription() + "</nome>\n"); | |
903 | + xml.append("<quantidade-erro>" + resumoAvaliacao.getQuantidadeErros() | |
904 | + + "</quantidade-erro>\n"); | |
905 | + xml.append("<quantidade-aviso>" + resumoAvaliacao.getQuantidadeAvisos() | |
906 | + + "</quantidade-aviso>\n"); | |
907 | + xml.append("</secao>\n"); | |
908 | + | |
909 | + totalErros += resumoAvaliacao.getQuantidadeErros(); | |
910 | + totalAvisos += resumoAvaliacao.getQuantidadeAvisos(); | |
911 | + } | |
912 | + | |
913 | + xml.append("<total-erros>" + totalErros + "</total-erros>\n"); | |
914 | + xml.append("<total-avisos>" + totalAvisos + "</total-avisos>\n"); | |
915 | + xml.append("</resumo-avaliacao>\n"); | |
916 | + | |
917 | + String recomendacaoCompara = ""; | |
918 | + | |
919 | + for (SummarizedOccurrence avaliacao : checkSumarized) { | |
920 | + rn = OccurrenceKey.valueOf(avaliacao.getCheckPoint()); | |
921 | + type = avaliacao.isError(); | |
922 | + | |
923 | + // if(!recomendacaoCompara.equalsIgnoreCase(avaliacao.getCheckPoint().toString())) | |
924 | + // { | |
925 | + if (!recomendacaoCompara.equalsIgnoreCase("")) { | |
926 | + xml.append("</recomendacao-avaliacao>\n"); | |
927 | + } | |
928 | + | |
929 | + xml.append("<recomendacao-avaliacao>\n"); | |
930 | + xml.append("<numero-recomendacao>" + avaliacao.getCheckPoint() + "</numero-recomendacao>\n"); | |
931 | + xml.append("<erro-recomendacao>" + type + "</erro-recomendacao>\n"); | |
932 | + xml.append("<descricao-recomendacao>" + avaliacao.getDescription() | |
933 | + + "</descricao-recomendacao>\n"); | |
934 | + xml.append("<quantidade-recomendacao>" + avaliacao.getNumberOfOccurrences() | |
935 | + + "</quantidade-recomendacao>\n"); | |
936 | + xml.append("<linhas-codigo-fonte-recomendacao>" + avaliacao.getStringLines() | |
937 | + + "</linhas-codigo-fonte-recomendacao>\n"); | |
938 | + // } | |
939 | + | |
940 | + | |
941 | + | |
942 | + // Critérios iniciam aqui | |
943 | + | |
944 | + criarRelatorioCriterios(rn, type); | |
945 | + | |
946 | + // Critérios terminam aqui | |
947 | + | |
948 | + | |
949 | + recomendacaoCompara = avaliacao.getCheckPoint().toString(); | |
950 | + } | |
951 | + | |
952 | + xml.append("</recomendacao-avaliacao>\n"); | |
953 | + | |
954 | + xml.append("</avaliacao-automatica>\n"); | |
198 | 955 | |
199 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("titulosite", tituloSite); | |
956 | + } else { | |
957 | + System.out.println("Enviar xml de erro"); | |
958 | + } | |
200 | 959 | |
201 | - this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); | |
202 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("data", dataHoraAvaliacao); | |
203 | - | |
204 | - result.of(this).avaliar(null, mark, content, presentation, multimedia, form, behavior, tiprel); | |
205 | - | |
206 | - } else { | |
207 | - | |
208 | - // Atribui �ncora para as mensagens de erros dos campos vazios | |
209 | - ancoraCampoVazio = "up_file"; | |
210 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("ancoraCampoVazio", ancoraCampoVazio); | |
211 | - | |
212 | - this.validator = validate.getMessage(); | |
213 | - this.validator.onErrorUsePageOf(IndexController.class).index(); | |
214 | - } | |
215 | - | |
216 | - } else { | |
217 | - // Atribui �ncora para as mensagens de erros dos campos vazios | |
218 | - ancoraCampoVazio = "up_file"; | |
219 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("ancoraCampoVazio", ancoraCampoVazio); | |
220 | - | |
221 | - this.validator = validate.getMessage(); | |
222 | - this.validator.onErrorUsePageOf(IndexController.class).index(); | |
223 | - } | |
224 | - } | |
225 | - | |
226 | - @Post("/avaliar") | |
227 | - public void avaliar(String url, boolean mark, boolean content, | |
228 | - boolean presentation, boolean multimedia, boolean form, | |
229 | - boolean behavior, int tiporel) { | |
230 | - | |
231 | - Validate validate = new Validate(this.validator); | |
232 | - if (validate.url(url)) { | |
233 | - | |
234 | - /* | |
235 | - * if(tiporel != 5) | |
236 | - * this.result.redirectTo(AvaliacaoController.class) | |
237 | - * .relatorioAvaliacao(url, mark, content, presentation, multimedia, | |
238 | - * form, behavior, tiporel, true); | |
239 | - */ | |
240 | - | |
241 | - if (url.startsWith("www")) | |
242 | - url = "http://" + url; | |
243 | - | |
244 | - WebChecker pagina = WebChecker.from(url).withGetRequest().execute(); | |
245 | - | |
246 | - int[] errorsWarningsCss = avaliacaoBusiness.getErrorCount(true, url); | |
247 | - int[] errorsWarningsHtml = avaliacaoBusiness.getErrorCount(false,url); | |
248 | - | |
249 | - Checker checker = from(pagina.getContent(), url); | |
250 | - | |
251 | - if (mark)checker.with(marking()); | |
252 | - if (content)checker.with(content()); | |
253 | - if (presentation)checker.with(presentation()); | |
254 | - if (multimedia)checker.with(multimedia()); | |
255 | - if (form)checker.with(form()); | |
256 | - if (behavior)checker.with(behavior()); | |
257 | - | |
258 | - Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); | |
259 | - Matcher mm = pp.matcher(url.toLowerCase().replace("https", "http")); | |
260 | - | |
261 | - if (mm.find()) | |
262 | - | |
263 | - this.tituloSite = ""; | |
264 | - | |
265 | - ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); | |
266 | - | |
267 | - this.tituloSite = conteudo.retornarTituloSiteAvaliado(); | |
268 | - | |
269 | - result.include("titulosite", tituloSite); | |
270 | - | |
271 | - result.include("contentLenght", pagina.getContentLength()); | |
272 | - result.include("url", url); | |
273 | - result.include("html", pagina.getParsedContent()); | |
274 | - | |
275 | - Nota nota = null; | |
276 | - | |
277 | - if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { | |
278 | - | |
279 | - List<Entry<OccurrenceKey,List<Occurrence>>> mapaListaOcorrencias = avaliacaoBusiness.retornarCriteriosTeste(checker.check()); | |
280 | - // Altera a cor de webaxscore de acordo a pontuacao | |
281 | - //nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), url, mapaListaOcorrencias); | |
282 | - | |
283 | - nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(),url, mapaListaOcorrencias); | |
284 | - | |
285 | - if (nota.getValor() != null) { | |
286 | - DefinirCorWebaxscore(nota.getValor()); | |
287 | - | |
288 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
289 | - .setAttribute("webaxscore", webaxscore); | |
290 | - } | |
291 | - | |
292 | - } | |
293 | - | |
294 | - result.include("nota", nota); | |
295 | - this.sumarizarResultasNoResponse(checker.checkSumarized(), result); | |
296 | - | |
297 | - this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check()),errorsWarningsCss, errorsWarningsHtml); | |
298 | - | |
299 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("resultadoAvaliacao",checker.checkSumarized()); | |
300 | - | |
301 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("urlAvaliada", url); | |
302 | - | |
303 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("contentLenght", pagina.getContentLength()); | |
304 | - | |
305 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("notaAvaliacao", nota); | |
306 | - | |
307 | - // Seta o valor do t�tulo no template | |
308 | - tituloPagina = "Resumo de avaliação por URI - ASES"; | |
309 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("tituloPagina", tituloPagina); | |
310 | - | |
311 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("titulosite", tituloSite); | |
312 | - | |
313 | - this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); | |
314 | - | |
315 | - VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("data", dataHoraAvaliacao); | |
316 | - | |
317 | - avisosFerramentasHtmlCssW3c = new ArrayList<String>(); | |
318 | - | |
319 | - validarFerramenta_cssnoAr(errorsWarningsCss); | |
320 | - validarFerramenta_htmlnoAr(errorsWarningsHtml); | |
321 | - | |
322 | - VRaptorRequestHolder | |
323 | - .currentRequest() | |
324 | - .getServletContext() | |
325 | - .setAttribute("avisosFerramentasHtmlCssW3c", | |
326 | - avisosFerramentasHtmlCssW3c); | |
327 | - | |
328 | - } else { | |
329 | - // Atribui �ncora para as mensagens de erros dos campos vazios | |
330 | - ancoraCampoVazio = "url"; | |
331 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
332 | - .setAttribute("ancoraCampoVazio", ancoraCampoVazio); | |
333 | - | |
334 | - this.validator = validate.getMessage(); | |
335 | - this.validator.onErrorUsePageOf(IndexController.class).index(); | |
336 | - } | |
337 | - } | |
338 | - | |
339 | - // Verifica se o site de avalia��o de sintaxe css encontra-se no ar | |
340 | - private void validarFerramenta_cssnoAr(int[] erros_avisos) { | |
341 | - if (erros_avisos[0] == -10 && erros_avisos[1] == -10) { | |
342 | - | |
343 | - avisosFerramentasHtmlCssW3c | |
344 | - .add("O avaliador de sintaxe css do w3c encontra-se indisponível, favor tentar mais tarde."); | |
345 | - } | |
346 | - | |
347 | - } | |
348 | - | |
349 | - // Verifica se o site de avalia��o de sintaxe html encontra-se no ar | |
350 | - private void validarFerramenta_htmlnoAr(int[] erros_avisos) { | |
351 | - if (erros_avisos[0] == -10 && erros_avisos[1] == -10) { | |
352 | - avisosFerramentasHtmlCssW3c | |
353 | - .add("O avaliador de sintaxe html do w3c encontra-se indisponível, favor tentar mais tarde."); | |
354 | - } | |
355 | - } | |
356 | - | |
357 | - @Get("/relatorioavaliacao") | |
358 | - @Post("/relatorioavaliacao") | |
359 | - public FileDownload relatorioAvaliacao(int tiporel) { | |
360 | - | |
361 | - List<SummarizedOccurrence> checkerList = (List<SummarizedOccurrence>) VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("resultadoAvaliacao"); | |
362 | - String urlAvaliada = (String) VRaptorRequestHolder.currentRequest() | |
363 | - .getServletContext().getAttribute("urlAvaliada"); | |
364 | - String contentLenght = (String) VRaptorRequestHolder.currentRequest() | |
365 | - .getServletContext().getAttribute("contentLenght"); | |
366 | - this.sumarizarResultasNoResponse(checkerList, result); | |
367 | - | |
368 | - // ================================================ GERAR RELAT�RIO | |
369 | - // =============================================// | |
370 | - | |
371 | - /* Cria um Map de par�metros */ | |
372 | - HashMap<String, Object> map = new HashMap<String, Object>(); | |
373 | - | |
374 | - /* Obtem a nota */ | |
375 | - // AvaliacaoBusinessImpl avaliacaoBusiness = new | |
376 | - // AvaliacaoBusinessImpl(); | |
377 | - Nota nota = null; | |
378 | - | |
379 | - if (!this.sem_nota.equalsIgnoreCase("sem_nota")) | |
380 | - { | |
381 | - nota = (Nota) VRaptorRequestHolder.currentRequest() | |
382 | - .getServletContext().getAttribute("notaAvaliacao"); | |
383 | - | |
384 | - map.put("pPercentualAses", nota.getValor()); | |
385 | - } | |
386 | - else | |
387 | - { | |
388 | - map.put("pPercentualAses", "0"); | |
389 | - } | |
390 | - | |
391 | - map.put("pPagina", urlAvaliada != "" ? urlAvaliada | |
392 | - : "Código Fonte ou Arquivo"); | |
393 | - | |
394 | - if (urlAvaliada != "") { | |
395 | - Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); | |
396 | - Matcher mm = pp.matcher(urlAvaliada.toLowerCase()); | |
397 | - | |
398 | - if (mm.find()) | |
399 | - map.put("pTitulo", VRaptorRequestHolder.currentRequest() | |
400 | - .getServletContext().getAttribute("titulosite")); | |
401 | - | |
402 | - } else | |
403 | - map.put("pTitulo", VRaptorRequestHolder.currentRequest() | |
404 | - .getServletContext().getAttribute("titulosite")); | |
405 | - | |
406 | - map.put("pTamanho", contentLenght + " Bytes"); | |
407 | - dataHoraAvaliacao = (String) VRaptorRequestHolder.currentRequest() | |
408 | - .getServletContext().getAttribute("data"); | |
409 | - map.put("pDataHoraAvaliacao", dataHoraAvaliacao); | |
410 | - | |
411 | - // Obtem Resumo da Avaliação | |
412 | - List<ResumoAvaliacao> resumoErrosAvisos = obterResumoAvaliacao(); | |
413 | - | |
414 | - int totalErros = 0; | |
415 | - int totalAvisos = 0; | |
416 | - | |
417 | - for (ResumoAvaliacao resumo : resumoErrosAvisos) { | |
418 | - map.put(resumo.getTipo() + "_A", resumo.getQuantidadeAvisos()); | |
419 | - map.put(resumo.getTipo() + "_E", resumo.getQuantidadeErros()); | |
420 | - totalErros += resumo.getQuantidadeErros(); | |
421 | - totalAvisos += resumo.getQuantidadeAvisos(); | |
422 | - } | |
423 | - | |
424 | - map.put("TOTAL_E", totalErros); | |
425 | - map.put("TOTAL_A", totalAvisos); | |
426 | - | |
427 | - ManagerReport managerReport = new ManagerReport( | |
428 | - this.application.getRealPath("") | |
429 | - + "/WEB-INF/templates-relatorios/relatorio-avaliacao.jrxml"); | |
430 | - String path = null; | |
431 | - | |
432 | - try { | |
433 | - path = managerReport.gerarRelatorio(checkerList, map, tiporel, | |
434 | - "RelatorioAvaliacao"); | |
435 | - } catch (JRException e) { | |
436 | - e.printStackTrace(); | |
437 | - } catch (IOException e) { | |
438 | - e.printStackTrace(); | |
439 | - } | |
440 | - File file = new File(path); | |
441 | - | |
442 | - return new FileDownload(file, managerReport.getContentType(), | |
443 | - managerReport.getFileName()); | |
444 | - | |
445 | - // =========================================== FIM GERAR RELAT�RIO | |
446 | - // =============================================// | |
447 | - | |
448 | - } | |
449 | - | |
450 | - @Post("/avaliar-codigo") | |
451 | - public void avaliarPlainText(String html, boolean mark, boolean content, | |
452 | - boolean presentation, boolean multimedia, boolean form, | |
453 | - boolean behavior, int tiporel) throws IOException { | |
454 | - | |
455 | - Validate validate = new Validate(this.validator); | |
456 | - if (validate.condigoFonte(html)) { | |
457 | - | |
458 | - /* | |
459 | - * if(tiporel != 5) | |
460 | - * this.result.redirectTo(AvaliacaoController.class) | |
461 | - * .relatorioAvaliacao(html, mark, content, presentation, | |
462 | - * multimedia, form, behavior, tiporel, false); | |
463 | - */ | |
464 | - | |
465 | - Checker checker = from(html); | |
466 | - | |
467 | - if (mark) | |
468 | - checker.with(marking()); | |
469 | - if (content) | |
470 | - checker.with(content()); | |
471 | - if (presentation) | |
472 | - checker.with(presentation()); | |
473 | - if (multimedia) | |
474 | - checker.with(multimedia()); | |
475 | - if (form) | |
476 | - checker.with(form()); | |
477 | - if (behavior) | |
478 | - checker.with(behavior()); | |
479 | - | |
480 | - html = html.replaceAll("<", "<"); | |
481 | - html = html.replaceAll(">", ">"); | |
482 | - html = html.replaceAll(" ", " "); | |
483 | - | |
484 | - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy H:mm:ss"); | |
485 | - | |
486 | - result.include("contentLenght",String.valueOf(html.getBytes("UTF-8").length)); | |
487 | - result.include("html", html); | |
488 | - this.tituloSite = ""; | |
489 | - | |
490 | - ContentEvaluation conteudo = new ContentEvaluation( | |
491 | - checker.getDocument()); | |
492 | - | |
493 | - this.tituloSite = conteudo.retornarTituloSiteAvaliado(); | |
494 | - | |
495 | - result.include("titulosite", tituloSite); | |
496 | - | |
497 | - Nota nota = null; | |
498 | - | |
499 | - if (!this.sem_nota.equalsIgnoreCase("sem_nota")) { | |
500 | - | |
501 | - List<Entry<OccurrenceKey,List<Occurrence>>> mapaListaOcorrencias = avaliacaoBusiness.retornarCriteriosTeste(checker.check()); | |
502 | - //nota = avaliacaoBusiness.obterNota(checker.checkSumarized(), tituloSite + " - " + sdf.format(new Date()),mapaListaOcorrencias); | |
503 | - nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(),tituloSite + " - " + sdf.format(new Date()), mapaListaOcorrencias); | |
504 | - // Altera a cor de webaxscore de acordo a pontuacao | |
505 | - | |
506 | - if (nota.getValor() != null) { | |
507 | - DefinirCorWebaxscore(nota.getValor()); | |
508 | - | |
509 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
510 | - .setAttribute("webaxscore", webaxscore); | |
511 | - } | |
512 | - | |
513 | - | |
514 | - } | |
515 | - | |
516 | - result.include("nota", nota); | |
517 | - this.sumarizarResultasNoResponse(checker.checkSumarized(), result); | |
518 | - this.detalheAvaliacao.inicializar(avaliacaoBusiness | |
519 | - .retornarCriterios(checker.check())); | |
520 | - | |
521 | - VRaptorRequestHolder | |
522 | - .currentRequest() | |
523 | - .getServletContext() | |
524 | - .setAttribute("resultadoAvaliacao", | |
525 | - checker.checkSumarized()); | |
526 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
527 | - .setAttribute("urlAvaliada", ""); | |
528 | - VRaptorRequestHolder | |
529 | - .currentRequest() | |
530 | - .getServletContext() | |
531 | - .setAttribute("contentLenght", | |
532 | - String.valueOf(html.getBytes("UTF-8").length)); | |
533 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
534 | - .setAttribute("notaAvaliacao", nota); | |
535 | - | |
536 | - // Seta o valor do t�tulo no template | |
537 | - tituloPagina = "Resumo de avaliação por código fonte - ASES"; | |
538 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
539 | - .setAttribute("tituloPagina", tituloPagina); | |
540 | - result.of(this).avaliar(null, mark, content, presentation, | |
541 | - multimedia, form, behavior, tiporel); | |
542 | - | |
543 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
544 | - .setAttribute("titulosite", tituloSite); | |
545 | - | |
546 | - this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); | |
547 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
548 | - .setAttribute("data", dataHoraAvaliacao); | |
549 | - | |
550 | - } else { | |
551 | - // Atribui �ncora para as mensagens de erros dos campos vazios | |
552 | - ancoraCampoVazio = "input"; | |
553 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
554 | - .setAttribute("ancoraCampoVazio", ancoraCampoVazio); | |
555 | - | |
556 | - this.validator = validate.getMessage(); | |
557 | - this.validator.onErrorUsePageOf(IndexController.class).index(); | |
558 | - } | |
559 | - } | |
560 | - | |
561 | - private void sumarizarResultasNoResponse( | |
562 | - List<SummarizedOccurrence> resultadoAvaliacao, Result result) { | |
563 | - | |
564 | - for (SummarizedOccurrence occurrence : resultadoAvaliacao) { | |
565 | - if (ocorrencias.get(occurrence.getType()) == null) | |
566 | - ocorrencias.put(occurrence.getType(), | |
567 | - new ArrayList<SummarizedOccurrence>()); | |
568 | - | |
569 | - ocorrencias.get(occurrence.getType()).add(occurrence); | |
570 | - } | |
571 | - | |
572 | - for (Entry<OccurrenceClassification, List<SummarizedOccurrence>> entry : ocorrencias.entrySet()) { | |
573 | - List<SummarizedOccurrence> ocorrenciasComputadas = entry.getValue(); | |
574 | - Collections.sort(ocorrenciasComputadas); | |
575 | - | |
576 | - result.include("LISTA_" + entry.getKey().toString(), | |
577 | - ocorrenciasComputadas); | |
578 | - } | |
579 | - | |
580 | - List<ResumoAvaliacao> resumoErrosAvisos = obterResumoAvaliacao(); | |
581 | - int totalErros = 0; | |
582 | - int totalAvisos = 0; | |
583 | - | |
584 | - for (ResumoAvaliacao resumo : resumoErrosAvisos) { | |
585 | - totalErros += resumo.getQuantidadeErros(); | |
586 | - totalAvisos += resumo.getQuantidadeAvisos(); | |
587 | - } | |
588 | - | |
589 | - result.include("totalErros", totalErros); | |
590 | - result.include("totalAvisos", totalAvisos); | |
591 | - result.include("listaResumo", resumoErrosAvisos); | |
592 | - result.include("data", DateUtil.dataHoraAtual()); | |
593 | - | |
594 | - } | |
595 | - | |
596 | - private List<ResumoAvaliacao> obterResumoAvaliacao() { | |
597 | - List<ResumoAvaliacao> resultado = new ArrayList<ResumoAvaliacao>(); | |
598 | - | |
599 | - for (OccurrenceClassification classificacao : OccurrenceClassification | |
600 | - .values()) { | |
601 | - | |
602 | - int erros = 0; | |
603 | - int avisos = 0; | |
604 | - | |
605 | - List<SummarizedOccurrence> listaOcorrencias = ocorrencias | |
606 | - .get(classificacao); | |
607 | - | |
608 | - if (listaOcorrencias != null) { | |
609 | - for (SummarizedOccurrence ocorrencia : ocorrencias | |
610 | - .get(classificacao)) { | |
611 | - | |
612 | - if (ocorrencia.isError()) | |
613 | - for (int line : ocorrencia.getLines()) | |
614 | - erros++; | |
615 | - else | |
616 | - for (int line : ocorrencia.getLines()) | |
617 | - avisos++; | |
618 | - | |
619 | - } | |
620 | - } | |
621 | - | |
622 | - resultado.add(new ResumoAvaliacao(classificacao, erros, avisos)); | |
623 | - } | |
624 | - | |
625 | - return resultado; | |
626 | - } | |
627 | - | |
628 | - | |
629 | - //Gibran | |
630 | - public void obterDetalhes(OccurrenceKey rn, boolean type) { | |
631 | - | |
632 | - | |
633 | - List<Occurrence> listOcorrencias = this.detalheAvaliacao.get(rn, type).getOcorrencias(); | |
634 | - | |
635 | - | |
636 | - | |
637 | - Collections.sort(listOcorrencias, new Comparator<Occurrence>() { | |
638 | - public int compare(Occurrence occurrence1, Occurrence occurrence2) { | |
639 | - return occurrence1.getLine().compareTo(occurrence2.getLine()); | |
640 | - } | |
641 | - }); | |
642 | - | |
643 | - | |
644 | - result.include("detalhe", this.detalheAvaliacao.get(rn, type)); | |
645 | - } | |
646 | - | |
647 | - @Path("/detalhes-avaliacao/{rn}/{type}") | |
648 | - public void detalhesAvaliacao(OccurrenceKey rn, boolean type) { | |
649 | - String url = ""; | |
650 | - tituloPagina = "Detalhes da avalição - ASES"; | |
651 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
652 | - .setAttribute("tituloPagina", tituloPagina); | |
653 | - | |
654 | - List<Occurrence> listOcorrencias = this.detalheAvaliacao.get(rn, type).getOcorrencias(); | |
655 | - | |
656 | - | |
657 | - // Sorting | |
658 | - Collections.sort(listOcorrencias, new Comparator<Occurrence>() { | |
659 | - public int compare(Occurrence occurrence1, Occurrence occurrence2) { | |
660 | - return occurrence1.getLine().compareTo(occurrence2.getLine()); | |
661 | - } | |
662 | - }); | |
663 | - | |
664 | - result.include("detalhe", this.detalheAvaliacao.get(rn, type)); | |
665 | - result.include("listOcorrencia", listOcorrencias); | |
666 | - | |
667 | - result.include("isError", type); | |
668 | - if (type) { | |
669 | - result.include("qtdOcorrenciasCss", | |
670 | - this.detalheAvaliacao.getErrorsCss()); | |
671 | - result.include("qtdOcorrenciasHtml", | |
672 | - this.detalheAvaliacao.getErrorsHtml()); | |
673 | - } else { | |
674 | - result.include("qtdOcorrenciasCss", | |
675 | - this.detalheAvaliacao.getWarningsCss()); | |
676 | - result.include("qtdOcorrenciasHtml", | |
677 | - this.detalheAvaliacao.getWarningsHtml()); | |
678 | - } | |
679 | - | |
680 | - List<SummarizedOccurrence> ob = (List<SummarizedOccurrence>) VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("resultadoAvaliacao"); | |
681 | - String recomendacao = ""; | |
682 | - | |
683 | - | |
684 | - for (SummarizedOccurrence occurrence : ob) { | |
685 | - recomendacao = occurrence.getMapDescription().get(rn.getCode()); | |
686 | - break; | |
687 | - } | |
688 | - | |
689 | - result.include("recomendacao", recomendacao); | |
690 | - result.include("rn", rn.getCode()); | |
691 | - result.include("aReq", this.utilitiesProperties.get("notExibCrit")); | |
692 | - result.include("aReqIsCss", this.utilitiesProperties.get("reqCss")); | |
693 | - result.include("aReqIsW3c", | |
694 | - this.utilitiesProperties.get("notExibCritW3c")); | |
695 | - url = VRaptorRequestHolder.currentRequest() | |
696 | - .getServletContext().getAttribute("urlAvaliada").toString() | |
697 | - .replaceAll("(https://)|(http://)", ""); | |
698 | - result.include("url", url); | |
699 | - | |
700 | - try { | |
701 | - | |
702 | - result.include("urlFormatada", encodeURI(url)); | |
703 | - | |
704 | - } catch (UnsupportedEncodingException e) { | |
705 | - e.printStackTrace(); | |
706 | - } | |
707 | - | |
708 | - } | |
709 | - | |
710 | - private String encodeURI(String url) throws UnsupportedEncodingException { | |
711 | - return URLEncoder.encode(url, "UTF-8") | |
712 | - .replace("+", "%20") | |
713 | - .replace("%21", "!") | |
714 | - .replace("%27", "'") | |
715 | - .replace("%28", "(") | |
716 | - .replace("%29", ")") | |
717 | - .replace("%7E", "~"); | |
718 | - } | |
719 | - | |
720 | - @Post("/exportar-detalhes-avaliacao") | |
721 | - public FileDownload exportarDetalhesAvaliacao(OccurrenceKey rn, | |
722 | - int tiporel, boolean isError) { | |
723 | - | |
724 | - /* Cria um Map de parametros */ | |
725 | - HashMap<String, Object> map = new HashMap<String, Object>(); | |
726 | - | |
727 | - // List list = this.detalheAvaliacao.get(rn,isError).getCriterios(); | |
728 | - | |
729 | - List<String> aReq = new ArrayList(); | |
730 | - // List<Integer> index = new ArrayList(); | |
731 | - | |
732 | - String[] crit = this.utilitiesProperties.get("notExibCrit").split(" "); | |
733 | - | |
734 | - for (String c : crit) | |
735 | - aReq.add(c.trim()); | |
736 | - | |
737 | - List<Criterio> listCrit = this.detalheAvaliacao.get(rn, isError) | |
738 | - .getCriterios(); | |
739 | - | |
740 | - List<Criterio> list = new ArrayList<DetalheAvaliacao.Criterio>(); | |
741 | - | |
742 | - for (Criterio criterio : listCrit) { | |
743 | - if (aReq.contains(rn.getCode() + "." + criterio.getId())) | |
744 | - criterio.setLinhas(new ArrayList()); | |
745 | - | |
746 | - if (criterio.getId() != null) | |
747 | - list.add(criterio); | |
748 | - } | |
749 | - | |
750 | - List<String> codigoFonte = new ArrayList(); | |
751 | - | |
752 | - for (Occurrence occurrence : this.detalheAvaliacao.get(rn, isError) | |
753 | - .getOcorrencias()) { | |
754 | - if (!aReq.contains(rn.getCode() + "." + occurrence.getCriterio())) | |
755 | - codigoFonte.add(occurrence.getLine() | |
756 | - + ": " | |
757 | - + occurrence.getTag().replaceAll("<", "<") | |
758 | - .replaceAll(">", ">") | |
759 | - .replaceAll(" ", " ") + "\n\n"); | |
760 | - } | |
761 | - map.put("codigoFonte", codigoFonte); | |
762 | - | |
763 | - List<SummarizedOccurrence> ob = (List<SummarizedOccurrence>) VRaptorRequestHolder | |
764 | - .currentRequest().getServletContext() | |
765 | - .getAttribute("resultadoAvaliacao"); | |
766 | - String recomendacao = ""; | |
767 | - | |
768 | - for (SummarizedOccurrence occurrence : ob) { | |
769 | - recomendacao = occurrence.getMapDescription().get(rn.getCode()); | |
770 | - break; | |
771 | - } | |
772 | - | |
773 | - map.put("rnAvaliada", recomendacao); | |
774 | - map.put("SUBREPORT_DIR", this.application.getRealPath("") | |
775 | - + "/WEB-INF/templates-relatorios/"); | |
776 | - | |
777 | - ManagerReport managerReport = new ManagerReport( | |
778 | - this.application.getRealPath("") | |
779 | - + "/WEB-INF/templates-relatorios/relatorio-detalhes-avaliacao.jrxml"); | |
780 | - | |
781 | - String path = null; | |
782 | - | |
783 | - try { | |
784 | - path = managerReport.gerarRelatorioDetalhesAvaliacao(list, map, | |
785 | - tiporel, "DetalhesRelatorioAvaliacao"); | |
786 | - } catch (JRException e) { | |
787 | - e.printStackTrace(); | |
788 | - } catch (IOException e) { | |
789 | - e.printStackTrace(); | |
790 | - } | |
791 | - | |
792 | - File file = new File(path); | |
793 | - | |
794 | - return new FileDownload(file, managerReport.getContentType(), | |
795 | - managerReport.getFileName()); | |
796 | - } | |
797 | - | |
798 | - public void initEseloProperties(ServletContext servletContext) { | |
799 | - this.eseloProperties = new EseloProperties(servletContext); | |
800 | - | |
801 | - // Esconde a nota caso n�o esteja usando o ESELO | |
802 | - sem_nota = this.eseloProperties.getSem_nota("sem_nota"); | |
803 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
804 | - .setAttribute("sem_nota", sem_nota); | |
805 | - | |
806 | - // Altera a mensagem caso n�o esteja usando o ESELO (Nota e Resumo da | |
807 | - // Avalia��o de Acessibilidade) | |
808 | - mensagem_avaliacao = this.eseloProperties | |
809 | - .getMensagem_avaliacao("mensagem_avaliacao"); | |
810 | - VRaptorRequestHolder.currentRequest().getServletContext() | |
811 | - .setAttribute("mensagem_avaliacao", mensagem_avaliacao); | |
812 | - } | |
813 | - | |
814 | - @Get("/servico-avaliacao-acessibilidade") | |
815 | - @Post("/servico-avaliacao-acessibilidade") | |
816 | - public void servicoAvaliacaoAcessibilidade(@QueryParam("url") String url) { | |
817 | - | |
818 | - xml = new StringBuffer(); | |
819 | - | |
820 | - | |
821 | - Validate validate = new Validate(this.validator); | |
822 | - | |
823 | - if (validate.url(url)) { | |
824 | - | |
825 | - | |
826 | - if (url.startsWith("www")) | |
827 | - { | |
828 | - url = "http://" + url; | |
829 | - } | |
830 | - | |
831 | - WebChecker pagina = WebChecker.from(url).withGetRequest().execute(); | |
832 | - | |
833 | - int[] errorsWarningsCss = avaliacaoBusiness.getErrorCount(true, url); | |
834 | - int[] errorsWarningsHtml = avaliacaoBusiness.getErrorCount(false,url); | |
835 | - | |
836 | - Checker checker = from(pagina.getContent(), url); | |
837 | - | |
838 | - checker.with(marking()); | |
839 | - checker.with(content()); | |
840 | - checker.with(presentation()); | |
841 | - checker.with(multimedia()); | |
842 | - checker.with(form()); | |
843 | - checker.with(behavior()); | |
844 | - | |
845 | - Pattern pp = Pattern.compile("(http://www.)?([a-z]*)(.)?"); | |
846 | - Matcher mm = pp.matcher(url.toLowerCase().replace("https", "http")); | |
847 | - | |
848 | - if (mm.find()) | |
849 | - { | |
850 | - this.tituloSite = ""; | |
851 | - } | |
852 | - | |
853 | - ContentEvaluation conteudo = new ContentEvaluation(checker.getDocument()); | |
854 | - | |
855 | - this.tituloSite = conteudo.retornarTituloSiteAvaliado(); | |
856 | - | |
857 | - Nota nota = null; | |
858 | - | |
859 | - List<Entry<OccurrenceKey,List<Occurrence>>> mapaListaOcorrencias = avaliacaoBusiness.retornarCriteriosTeste(checker.check()); | |
860 | - | |
861 | - nota = avaliacaoBusiness.obterNotaEselo(checker.getDocument(),url, mapaListaOcorrencias); | |
862 | - | |
863 | - this.sumarizarResultasNoResponse(checker.checkSumarized(), result); | |
864 | - | |
865 | - this.detalheAvaliacao.inicializar(avaliacaoBusiness.retornarCriterios(checker.check()),errorsWarningsCss, errorsWarningsHtml); | |
866 | - | |
867 | - | |
868 | - this.dataHoraAvaliacao = (String) DateUtil.dataHoraAtual(); | |
869 | - List<SummarizedOccurrence> checkSumarized = checker.checkSumarized(); | |
870 | - | |
871 | - avisosFerramentasHtmlCssW3c = new ArrayList<String>(); | |
872 | - List<ResumoAvaliacao> resumoErrosAvisos = obterResumoAvaliacao(); | |
873 | - | |
874 | - //pegar os dados e montar o xml | |
875 | - //List<Occurrence> listOcorrencias; | |
876 | - //Occurrence detalhe; | |
877 | - OccurrenceKey rn = null; | |
878 | - boolean type = false; | |
879 | - //boolean criterioAdicionar = false; | |
880 | - //String criterioAdicionado = ""; | |
881 | - //String idCriterio = null; | |
882 | - int totalErros = 0; | |
883 | - int totalAvisos = 0; | |
884 | - | |
885 | - xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); | |
886 | - xml.append("<avaliacao-automatica>\n"); | |
887 | - xml.append("<pagina-avaliada>\n"); | |
888 | - xml.append("<titulo>" + this.tituloSite + "</titulo>\n"); | |
889 | - xml.append("<tamanho>" + pagina.getContentLength() + "</tamanho>\n"); | |
890 | - xml.append("<data-hora>" + this.dataHoraAvaliacao + "</data-hora>\n"); | |
891 | - xml.append("</pagina-avaliada>\n"); | |
892 | - xml.append("<resumo-avaliacao>\n"); | |
893 | - xml.append("<nota-avaliacao>" + nota.getValor() + "</nota-avaliacao>\n"); | |
894 | - | |
895 | - for (ResumoAvaliacao resumoAvaliacao : resumoErrosAvisos) { | |
896 | - | |
897 | - | |
898 | - xml.append("<secao>"); | |
899 | - xml.append("<nome>" + resumoAvaliacao.getTipo().getDescription() + "</nome>\n"); | |
900 | - xml.append("<quantidade-erro>" + resumoAvaliacao.getQuantidadeErros() + "</quantidade-erro>\n"); | |
901 | - xml.append("<quantidade-aviso>" + resumoAvaliacao.getQuantidadeAvisos() + "</quantidade-aviso>\n"); | |
902 | - xml.append("</secao>\n"); | |
903 | - | |
904 | - totalErros += resumoAvaliacao.getQuantidadeErros(); | |
905 | - totalAvisos += resumoAvaliacao.getQuantidadeAvisos(); | |
906 | - } | |
907 | - | |
908 | - xml.append("<total-erros>"+ totalErros +"</total-erros>\n"); | |
909 | - xml.append("<total-avisos>"+ totalAvisos +"</total-avisos>\n"); | |
910 | - xml.append("</resumo-avaliacao>\n"); | |
911 | - | |
912 | - String recomendacaoCompara = ""; | |
913 | - | |
914 | - for (SummarizedOccurrence avaliacao : checkSumarized) | |
915 | - { | |
916 | - rn = OccurrenceKey.valueOf(avaliacao.getCheckPoint()); | |
917 | - type = avaliacao.isError(); | |
918 | - | |
919 | - //if(!recomendacaoCompara.equalsIgnoreCase(avaliacao.getCheckPoint().toString())) | |
920 | - //{ | |
921 | - if(!recomendacaoCompara.equalsIgnoreCase("")) | |
922 | - { | |
923 | - xml.append("</recomendacao-avaliacao>\n"); | |
924 | - } | |
925 | - | |
926 | - xml.append("<recomendacao-avaliacao>\n"); | |
927 | - xml.append("<numero-recomendacao>" + avaliacao.getCheckPoint() + "</numero-recomendacao>\n"); | |
928 | - xml.append("<erro-recomendacao>" + type + "</erro-recomendacao>\n"); | |
929 | - xml.append("<descricao-recomendacao>" + avaliacao.getDescription() + "</descricao-recomendacao>\n"); | |
930 | - xml.append("<quantidade-recomendacao>" + avaliacao.getNumberOfOccurrences() + "</quantidade-recomendacao>\n"); | |
931 | - xml.append("<linhas-codigo-fonte-recomendacao>" + avaliacao.getStringLines() + "</linhas-codigo-fonte-recomendacao>\n"); | |
932 | - //} | |
933 | - | |
934 | - | |
935 | - | |
936 | - //Critérios iniciam aqui | |
937 | - | |
938 | - criarRelatorioCriterios(rn,type); | |
939 | - | |
940 | - //Critérios terminam aqui | |
941 | - | |
942 | - | |
943 | - recomendacaoCompara = avaliacao.getCheckPoint().toString(); | |
944 | - } | |
945 | - | |
946 | - xml.append("</recomendacao-avaliacao>\n"); | |
947 | - | |
948 | - xml.append("</avaliacao-automatica>\n"); | |
949 | - | |
950 | - } else { | |
951 | - System.out.println("Enviar xml de erro"); | |
952 | - } | |
953 | - result.include("testeWeb", xml); | |
954 | - | |
955 | - } | |
956 | - | |
957 | - public void criarRelatorioCriterios(OccurrenceKey rn, boolean isError) { | |
958 | - | |
959 | - boolean recomendacao1_1_1Adicionada = false; | |
960 | - boolean recomendacao1_1_2Adicionada = false; | |
961 | - | |
962 | - /* Cria um Map de parametros */ | |
963 | - //HashMap<String, Object> map = new HashMap<String, Object>(); | |
964 | - | |
965 | - // List list = this.detalheAvaliacao.get(rn,isError).getCriterios(); | |
966 | - | |
967 | - //List<String> aReq = new ArrayList(); | |
968 | - // List<Integer> index = new ArrayList(); | |
969 | - | |
970 | - //String[] crit = this.utilitiesProperties.get("notExibCrit").split(" "); | |
971 | - | |
972 | - //for (String c : crit) | |
973 | - //{ | |
974 | - // aReq.add(c.trim()); | |
975 | - //} | |
976 | - | |
977 | - //List<Criterio> listCrit = this.detalheAvaliacao.get(rn, isError).getCriterios(); | |
978 | - | |
979 | - //List<Criterio> list = new ArrayList<DetalheAvaliacao.Criterio>(); | |
980 | - | |
981 | - /*for (Criterio criterio : listCrit) { | |
982 | - if (aReq.contains(rn.getCode() + "." + criterio.getId())) | |
983 | - { | |
984 | - criterio.setLinhas(new ArrayList()); | |
985 | - } | |
986 | - | |
987 | - if (criterio.getId() != null) | |
988 | - { | |
989 | - list.add(criterio); | |
990 | - } | |
991 | - }*/ | |
992 | - | |
993 | - String codigoFonte = ""; | |
994 | - String criterioCompara = ""; | |
995 | - String numeroCriterio = ""; | |
996 | - | |
997 | - | |
998 | - for (Occurrence occurrence : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) | |
999 | - { | |
1000 | - | |
1001 | - numeroCriterio = occurrence.getCriterio(); | |
1002 | - | |
1003 | - //if (!aReq.contains(rn.getCode() + "." + numeroCriterio)) | |
1004 | - //{ | |
1005 | - | |
1006 | - if(!rn.getCode().toString().equalsIgnoreCase("1.1") || !isError) | |
1007 | - { | |
1008 | - if(rn.getCode().toString().equalsIgnoreCase("1.1") && numeroCriterio.equalsIgnoreCase("7")) | |
1009 | - { | |
1010 | - codigoFonte = "Serviço de validação de HTML do W3C"; | |
1011 | - } | |
1012 | - else if(rn.getCode().toString().equalsIgnoreCase("1.1") && numeroCriterio.equalsIgnoreCase("8")) | |
1013 | - { | |
1014 | - codigoFonte = "Serviço de validação de CSS do W3C"; | |
1015 | - } | |
1016 | - else | |
1017 | - { | |
1018 | - codigoFonte = occurrence.getTag().replaceAll("<", "<").replaceAll(">", ">").replaceAll(" ", " "); | |
1019 | - } | |
1020 | - | |
1021 | - if(!criterioCompara.equalsIgnoreCase(occurrence.getCriterio().toString())) | |
1022 | - { | |
1023 | - if(!criterioCompara.equalsIgnoreCase("")) | |
1024 | - { | |
1025 | - System.out.println("</criterio>\n"); | |
1026 | - xml.append("</criterio>\n"); | |
1027 | - } | |
1028 | - | |
1029 | - | |
1030 | - xml.append("<criterio>\n"); | |
1031 | - xml.append("<numero-criterio>" + numeroCriterio + "</numero-criterio>\n"); | |
1032 | - xml.append("<nome-criterio>" + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) + "</nome-criterio>\n"); | |
1033 | - xml.append("<erro-criterio>" + occurrence.isError() + "</tipo-criterio>\n"); | |
1034 | - xml.append("<quantidade-criterio>" + verificaQuantidadeCriterio(rn, isError, numeroCriterio) + "</quantidade-criterio>\n"); | |
1035 | - xml.append("<codigo-fonte-criterio>\n"); | |
1036 | - xml.append("<numero-linha>" + occurrence.getLine() + "</numero-linha>\n"); | |
1037 | - xml.append("<conteudo-linha><![CDATA[" + codigoFonte + "]]></conteudo-linha>\n"); | |
1038 | - xml.append("</codigo-fonte-criterio>\n"); | |
1039 | - | |
1040 | - | |
1041 | - criterioCompara = occurrence.getCriterio(); | |
1042 | - }else | |
1043 | - { | |
1044 | - xml.append("<codigo-fonte-criterio>\n"); | |
1045 | - xml.append("<numero-linha>" + occurrence.getLine() + "</numero-linha>\n"); | |
1046 | - xml.append("<conteudo-linha><![CDATA[" + occurrence.getTag().replaceAll("<", "<") | |
1047 | - .replaceAll(">", ">").replaceAll(" ", " ") + "]]></conteudo-linha>\n"); | |
1048 | - xml.append("</codigo-fonte-criterio>\n"); | |
1049 | - } | |
1050 | - | |
1051 | - } | |
1052 | - else | |
1053 | - { | |
1054 | - if(numeroCriterio.equalsIgnoreCase("1") && !recomendacao1_1_1Adicionada) | |
1055 | - { | |
1056 | - if(!criterioCompara.equalsIgnoreCase("")) | |
1057 | - { | |
1058 | - xml.append("</criterio>\n"); | |
1059 | - } | |
1060 | - xml.append("<criterio>\n"); | |
1061 | - xml.append("<numero-criterio>" + numeroCriterio + "</numero-criterio>\n"); | |
1062 | - xml.append("<nome-criterio>" + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) + "</nome-criterio>\n"); | |
1063 | - xml.append("<erro-criterio>" + occurrence.isError() + "</tipo-criterio>\n"); | |
1064 | - xml.append("<quantidade-criterio>" + verificaQuantidadeCriterio(rn, isError, numeroCriterio) + "</quantidade-criterio>\n"); | |
1065 | - xml.append("<codigo-fonte-criterio>\n"); | |
1066 | - xml.append("<numero-linha>" + occurrence.getLine() + "</numero-linha>\n"); | |
1067 | - xml.append("<conteudo-linha>Serviço de validação de HTML do W3C</conteudo-linha>\n"); | |
1068 | - xml.append("</codigo-fonte-criterio>\n"); | |
1069 | - | |
1070 | - criterioCompara = occurrence.getCriterio(); | |
1071 | - recomendacao1_1_1Adicionada = true; | |
1072 | - } | |
1073 | - | |
1074 | - if(numeroCriterio.equalsIgnoreCase("2") && !recomendacao1_1_2Adicionada) | |
1075 | - { | |
1076 | - if(!criterioCompara.equalsIgnoreCase("")) | |
1077 | - { | |
1078 | - System.out.println("</criterio>\n"); | |
1079 | - xml.append("</criterio>\n"); | |
1080 | - } | |
1081 | - | |
1082 | - xml.append("<criterio>\n"); | |
1083 | - xml.append("<numero-criterio>" + numeroCriterio + "</numero-criterio>\n"); | |
1084 | - xml.append("<nome-criterio>" + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) + "</nome-criterio>\n"); | |
1085 | - xml.append("<erro-criterio>" + occurrence.isError() + "</tipo-criterio>\n"); | |
1086 | - xml.append("<quantidade-criterio>" + verificaQuantidadeCriterio(rn, isError, numeroCriterio) + "</quantidade-criterio>\n"); | |
1087 | - xml.append("<codigo-fonte-criterio>\n"); | |
1088 | - xml.append("<numero-linha>" + occurrence.getLine() + "</numero-linha>\n"); | |
1089 | - xml.append("<conteudo-linha>Serviço de validação de CSS do W3C</conteudo-linha>\n"); | |
1090 | - xml.append("</codigo-fonte-criterio>\n"); | |
1091 | - | |
1092 | - criterioCompara = occurrence.getCriterio(); | |
1093 | - recomendacao1_1_2Adicionada = true; | |
1094 | - } | |
1095 | - | |
1096 | - } | |
1097 | - //} | |
1098 | - } | |
1099 | - | |
1100 | - xml.append("</criterio>\n"); | |
1101 | - | |
1102 | - } | |
1103 | - | |
1104 | - private Integer verificaQuantidadeCriterio(OccurrenceKey rn, boolean isError, String numeroCriterio) | |
1105 | - { | |
1106 | - Integer quantidadeCriterios = 0; | |
1107 | - | |
1108 | - for (Occurrence occurrence2 : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) | |
1109 | - { | |
1110 | - if(occurrence2.getCriterio().toString().equalsIgnoreCase(numeroCriterio)) | |
1111 | - { | |
1112 | - quantidadeCriterios++; | |
1113 | - } | |
1114 | - } | |
1115 | - | |
1116 | - return quantidadeCriterios; | |
1117 | - } | |
1118 | - | |
1119 | -} | |
1120 | 960 | \ No newline at end of file |
961 | + if(tipoSaida.equalsIgnoreCase("json")) | |
962 | + { | |
963 | + JSONObject soapDatainJsonObject = XML.toJSONObject(xml.toString()); | |
964 | + result.include("saidaWebService", soapDatainJsonObject); | |
965 | + } | |
966 | + else if(tipoSaida.equalsIgnoreCase("xml")) | |
967 | + { | |
968 | + result.include("saidaWebService", xml); | |
969 | + } | |
970 | + } catch (Exception e) { | |
971 | + e.printStackTrace(); | |
972 | + result.include("saidaWebService", ""); | |
973 | + } | |
974 | + } | |
975 | + | |
976 | + public void criarRelatorioCriterios(OccurrenceKey rn, boolean isError) { | |
977 | + | |
978 | + boolean recomendacao1_1_1Adicionada = false; | |
979 | + boolean recomendacao1_1_2Adicionada = false; | |
980 | + | |
981 | + /* Cria um Map de parametros */ | |
982 | + // HashMap<String, Object> map = new HashMap<String, Object>(); | |
983 | + | |
984 | + // List list = this.detalheAvaliacao.get(rn,isError).getCriterios(); | |
985 | + | |
986 | + // List<String> aReq = new ArrayList(); | |
987 | + // List<Integer> index = new ArrayList(); | |
988 | + | |
989 | + // String[] crit = this.utilitiesProperties.get("notExibCrit").split(" "); | |
990 | + | |
991 | + // for (String c : crit) | |
992 | + // { | |
993 | + // aReq.add(c.trim()); | |
994 | + // } | |
995 | + | |
996 | + // List<Criterio> listCrit = this.detalheAvaliacao.get(rn, isError).getCriterios(); | |
997 | + | |
998 | + // List<Criterio> list = new ArrayList<DetalheAvaliacao.Criterio>(); | |
999 | + | |
1000 | + /* | |
1001 | + * for (Criterio criterio : listCrit) { if (aReq.contains(rn.getCode() + "." + | |
1002 | + * criterio.getId())) { criterio.setLinhas(new ArrayList()); } | |
1003 | + * | |
1004 | + * if (criterio.getId() != null) { list.add(criterio); } } | |
1005 | + */ | |
1006 | + | |
1007 | + String codigoFonte = ""; | |
1008 | + String criterioCompara = ""; | |
1009 | + String numeroCriterio = ""; | |
1010 | + | |
1011 | + | |
1012 | + for (Occurrence occurrence : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) { | |
1013 | + | |
1014 | + numeroCriterio = occurrence.getCriterio(); | |
1015 | + | |
1016 | + // if (!aReq.contains(rn.getCode() + "." + numeroCriterio)) | |
1017 | + // { | |
1018 | + | |
1019 | + if (!rn.getCode().toString().equalsIgnoreCase("1.1") || !isError) { | |
1020 | + if (rn.getCode().toString().equalsIgnoreCase("1.1") && numeroCriterio.equalsIgnoreCase("7")) { | |
1021 | + codigoFonte = "Serviço de validação de HTML do W3C"; | |
1022 | + } else if (rn.getCode().toString().equalsIgnoreCase("1.1") | |
1023 | + && numeroCriterio.equalsIgnoreCase("8")) { | |
1024 | + codigoFonte = "Serviço de validação de CSS do W3C"; | |
1025 | + } else { | |
1026 | + codigoFonte = | |
1027 | + occurrence.getTag().replaceAll("<", "<").replaceAll(">", ">") | |
1028 | + .replaceAll(" ", " "); | |
1029 | + } | |
1030 | + | |
1031 | + if (!criterioCompara.equalsIgnoreCase(occurrence.getCriterio().toString())) { | |
1032 | + if (!criterioCompara.equalsIgnoreCase("")) { | |
1033 | + xml.append("</criterio>\n"); | |
1034 | + } | |
1035 | + | |
1036 | + | |
1037 | + xml.append("<criterio>\n"); | |
1038 | + xml.append("<numero-criterio>" + numeroCriterio + "</numero-criterio>\n"); | |
1039 | + xml.append("<nome-criterio>" | |
1040 | + + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) | |
1041 | + + "</nome-criterio>\n"); | |
1042 | + xml.append("<erro-criterio>" + occurrence.isError() + "</erro-criterio>\n"); | |
1043 | + xml.append("<quantidade-criterio>" | |
1044 | + + verificaQuantidadeCriterio(rn, isError, numeroCriterio) | |
1045 | + + "</quantidade-criterio>\n"); | |
1046 | + xml.append("<codigo-fonte-criterio>\n"); | |
1047 | + xml.append("<numero-linha>" + occurrence.getLine() + "</numero-linha>\n"); | |
1048 | + xml.append("<conteudo-linha><![CDATA[" + codigoFonte + "]]></conteudo-linha>\n"); | |
1049 | + xml.append("</codigo-fonte-criterio>\n"); | |
1050 | + | |
1051 | + | |
1052 | + criterioCompara = occurrence.getCriterio(); | |
1053 | + } else { | |
1054 | + xml.append("<codigo-fonte-criterio>\n"); | |
1055 | + xml.append("<numero-linha>" + occurrence.getLine() + "</numero-linha>\n"); | |
1056 | + xml.append("<conteudo-linha><![CDATA[" | |
1057 | + + occurrence.getTag().replaceAll("<", "<").replaceAll(">", ">") | |
1058 | + .replaceAll(" ", " ") + "]]></conteudo-linha>\n"); | |
1059 | + xml.append("</codigo-fonte-criterio>\n"); | |
1060 | + } | |
1061 | + | |
1062 | + } else { | |
1063 | + if (numeroCriterio.equalsIgnoreCase("1") && !recomendacao1_1_1Adicionada) { | |
1064 | + if (!criterioCompara.equalsIgnoreCase("")) { | |
1065 | + xml.append("</criterio>\n"); | |
1066 | + } | |
1067 | + xml.append("<criterio>\n"); | |
1068 | + xml.append("<numero-criterio>" + numeroCriterio + "</numero-criterio>\n"); | |
1069 | + xml.append("<nome-criterio>" | |
1070 | + + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) | |
1071 | + + "</nome-criterio>\n"); | |
1072 | + xml.append("<erro-criterio>" + occurrence.isError() + "</erro-criterio>\n"); | |
1073 | + xml.append("<quantidade-criterio>" | |
1074 | + + verificaQuantidadeCriterio(rn, isError, numeroCriterio) | |
1075 | + + "</quantidade-criterio>\n"); | |
1076 | + xml.append("<codigo-fonte-criterio>\n"); | |
1077 | + xml.append("<numero-linha>" + occurrence.getLine() + "</numero-linha>\n"); | |
1078 | + xml.append("<conteudo-linha>Serviço de validação de HTML do W3C</conteudo-linha>\n"); | |
1079 | + xml.append("</codigo-fonte-criterio>\n"); | |
1080 | + | |
1081 | + criterioCompara = occurrence.getCriterio(); | |
1082 | + recomendacao1_1_1Adicionada = true; | |
1083 | + } | |
1084 | + | |
1085 | + if (numeroCriterio.equalsIgnoreCase("2") && !recomendacao1_1_2Adicionada) { | |
1086 | + if (!criterioCompara.equalsIgnoreCase("")) { | |
1087 | + | |
1088 | + xml.append("</criterio>\n"); | |
1089 | + } | |
1090 | + | |
1091 | + xml.append("<criterio>\n"); | |
1092 | + xml.append("<numero-criterio>" + numeroCriterio + "</numero-criterio>\n"); | |
1093 | + xml.append("<nome-criterio>" | |
1094 | + + criterioProperties.getDescricao(rn.getCode() + "." + numeroCriterio) | |
1095 | + + "</nome-criterio>\n"); | |
1096 | + xml.append("<erro-criterio>" + occurrence.isError() + "</erro-criterio>\n"); | |
1097 | + xml.append("<quantidade-criterio>" | |
1098 | + + verificaQuantidadeCriterio(rn, isError, numeroCriterio) | |
1099 | + + "</quantidade-criterio>\n"); | |
1100 | + xml.append("<codigo-fonte-criterio>\n"); | |
1101 | + xml.append("<numero-linha>" + occurrence.getLine() + "</numero-linha>\n"); | |
1102 | + xml.append("<conteudo-linha>Serviço de validação de CSS do W3C</conteudo-linha>\n"); | |
1103 | + xml.append("</codigo-fonte-criterio>\n"); | |
1104 | + | |
1105 | + criterioCompara = occurrence.getCriterio(); | |
1106 | + recomendacao1_1_2Adicionada = true; | |
1107 | + } | |
1108 | + | |
1109 | + } | |
1110 | + // } | |
1111 | + } | |
1112 | + | |
1113 | + xml.append("</criterio>\n"); | |
1114 | + | |
1115 | + } | |
1116 | + | |
1117 | + private Integer verificaQuantidadeCriterio(OccurrenceKey rn, boolean isError, | |
1118 | + String numeroCriterio) { | |
1119 | + Integer quantidadeCriterios = 0; | |
1120 | + | |
1121 | + for (Occurrence occurrence2 : this.detalheAvaliacao.get(rn, isError).getOcorrencias()) { | |
1122 | + if (occurrence2.getCriterio().toString().equalsIgnoreCase(numeroCriterio)) { | |
1123 | + quantidadeCriterios++; | |
1124 | + } | |
1125 | + } | |
1126 | + | |
1127 | + return quantidadeCriterios; | |
1128 | + | |
1129 | + } | |
1130 | + | |
1131 | +} | ... | ... |
src/main/java/br/com/ases/controller/IndexController.java
1 | 1 | package br.com.ases.controller; |
2 | 2 | |
3 | +import java.sql.Connection; | |
4 | +import java.sql.DriverManager; | |
5 | + | |
6 | +import org.apache.regexp.REUtil; | |
7 | + | |
3 | 8 | import com.jcabi.http.Response; |
4 | 9 | |
5 | 10 | import br.com.caelum.vraptor.Path; |
... | ... | @@ -9,7 +14,7 @@ import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder; |
9 | 14 | @Resource |
10 | 15 | public class IndexController { |
11 | 16 | |
12 | - private String tituloPagina = "ASES - Avaliador e Simulador de Acessibilidade em Sítios"; | |
17 | + private String tituloPagina = "ASES - Avaliador e Simulador de Acessibilidade em SÃtios"; | |
13 | 18 | private Result result; |
14 | 19 | |
15 | 20 | public IndexController (Result result) { |
... | ... | @@ -27,7 +32,11 @@ public class IndexController { |
27 | 32 | |
28 | 33 | @Path("/") |
29 | 34 | public void index() { |
35 | + | |
30 | 36 | VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("tituloPagina", tituloPagina); |
31 | 37 | } |
32 | 38 | |
33 | 39 | } |
40 | + | |
41 | + | |
42 | + | ... | ... |
src/main/java/br/com/ases/domain/DetalheAvaliacao.java
src/main/java/br/com/ases/model/utilities/Validate.java
... | ... | @@ -107,8 +107,9 @@ public class Validate { |
107 | 107 | } |
108 | 108 | |
109 | 109 | private Integer verificarConexao(String campo, String usuario, String agente) { |
110 | - System.setProperty("jsse.enableSNIExtension", "false"); | |
110 | + | |
111 | 111 | int codResponse = -1; |
112 | + System.setProperty("jsse.enableSNIExtension", "false"); | |
112 | 113 | HttpMethod metodoRequisicaoGET = null; |
113 | 114 | HttpClient clienteHTTPJakartaCommons; |
114 | 115 | URL UrlConvertida; |
... | ... | @@ -134,15 +135,15 @@ public class Validate { |
134 | 135 | |
135 | 136 | } catch (MalformedURLException e) { |
136 | 137 | e.printStackTrace(); |
137 | - // this.validator.add(new ValidationMessage( | |
138 | - // "Não foi possível realizar a avaliação! URL " + campo | |
139 | - // + " é considerada inválida.", "warning")); | |
138 | + // this.validator.add(new ValidationMessage( | |
139 | + // "Não foi possível realizar a avaliação! URL " + campo | |
140 | + // + " é considerada inválida.", "warning")); | |
140 | 141 | return -1; |
141 | 142 | } catch (IOException e) { |
142 | 143 | e.printStackTrace(); |
143 | - //this.validator.add(new ValidationMessage( | |
144 | - // "Não foi possível realizar a avaliação! URL " + campo | |
145 | - // + " é considerada inválida.", "warning")); | |
144 | + // this.validator.add(new ValidationMessage( | |
145 | + // "Não foi possível realizar a avaliação! URL " + campo | |
146 | + // + " é considerada inválida.", "warning")); | |
146 | 147 | return -1; |
147 | 148 | } |
148 | 149 | ... | ... |