1
2
3
4
5 package ecar.taglib.util;
6
7 import java.util.Collection;
8 import java.util.Collections;
9 import java.util.Iterator;
10 import java.util.List;
11 import java.util.Set;
12
13 import javax.servlet.jsp.JspException;
14 import javax.servlet.jsp.JspWriter;
15 import javax.servlet.jsp.tagext.Tag;
16 import javax.servlet.jsp.tagext.TagSupport;
17
18 import ecar.dao.AbaDao;
19 import ecar.dao.ItemEstruturaDao;
20 import ecar.dao.PontoCriticoDao;
21 import ecar.dao.TipoAcompanhamentoDao;
22 import ecar.exception.ECARException;
23 import ecar.pojo.Aba;
24 import ecar.pojo.AcompReferenciaItemAri;
25 import ecar.pojo.ItemEstruturaIett;
26 import ecar.pojo.TipoAcompanhamentoTa;
27 import ecar.util.Dominios;
28
29
30
31
32
33 public class BarraLinksRelatorioAcompanhamentoTag extends TagSupport{
34
35 private static final long serialVersionUID = -6791633584021020042L;
36 private String funcaoSelecionada;
37 private String links;
38 private AcompReferenciaItemAri acompReferenciaItem;
39
40 private String primeiroIettClicado;
41 private String primeiroAriClicado;
42
43 private String caminho;
44
45 private String codTipoAcompanhamento;
46
47 private static final String ABA_HABILITADA = "abahabilitada";
48 private static final String ABA_DESABILITADA = "abadesabilitada";
49
50 private Set gruposUsuario;
51 private String contextPath;
52
53 private String listaGeral;
54
55
56
57
58
59
60
61
62
63
64 public int doStartTag() throws JspException {
65
66 JspWriter writer = this.pageContext.getOut();
67 try {
68
69
70 ItemEstruturaDao itemEstruturaDao = new ItemEstruturaDao(null);
71 TipoAcompanhamentoDao tipoAcompanhamentoDao= new TipoAcompanhamentoDao(null);
72 PontoCriticoDao pontoCriticoDao = new PontoCriticoDao(null);
73 AbaDao abaDao = new AbaDao(null);
74 primeiroIettClicado = this.pageContext.getRequest().getParameter("primeiroIettClicado");
75 StringBuffer s = new StringBuffer();
76
77
78 Long linkCodDemanda = (Long) this.pageContext.getSession().getAttribute("linkCodDemanda");
79
80
81
82 String ehAssociacao = (String) this.pageContext.getSession().getAttribute("ehAssociacao");
83
84
85 if (getAbaSuperior().equals(Dominios.NAO) && linkCodDemanda != null && !"".equals(linkCodDemanda)) {
86
87
88
89
90 String associacaoDemanda = (String) this.pageContext.getRequest().getAttribute("associacaoDemanda");
91
92 s.append("<script language=\"JavaScript\">");
93 s.append("function aoClicarAssociacaoDemandas(){");
94 s.append(" document.form.action = \"" + contextPath + "/cadastroItens/associacaoDemandas/frm_con.jsp\";");
95 s.append(" document.form.submit();");
96 s.append("}");
97 s.append("function aoClicarDemandas(){");
98 s.append(" document.form.action = \"" + contextPath + "/demandas/registro/frm_cons.jsp\";");
99 s.append(" document.form.submit();");
100 s.append("}");
101 s.append("</script>");
102 s.append("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">");
103 s.append("<tr><td align=\"right\">");
104
105 if(associacaoDemanda != null && associacaoDemanda.equals("V")) {
106 s.append("<a href=\"#\" onclick=\"aoClicarAssociacaoDemandas();\">[ Voltar para Associação de Demandas ]</a>");
107
108 String codAbaDemanda = (String) this.pageContext.getSession().getAttribute("codAbaDemanda");
109 String codIettDemanda = (String) this.pageContext.getSession().getAttribute("codIettDemanda");
110
111 s.append("<input type=\"hidden\" name=\"codAbaDemanda\" value=\"");
112 s.append(codAbaDemanda);
113 s.append("\">");
114 s.append("<input type=\"hidden\" name=\"codIettDemanda\" value=\"");
115 s.append(codIettDemanda);
116 s.append("\">");
117 } else {
118
119 s.append("<a href=\"#\" onclick=\"aoClicarDemandas();\">[ Voltar para Demandas ]</a>");
120 }
121 s.append("</td></tr>");
122 s.append("</table>");
123 s.append("\n");
124 s.append("<input type=\"hidden\" name=\"codRegd\" value=\"" +linkCodDemanda.toString() + "\">" );
125 s.append("\n");
126 }
127
128
129
130 s.append("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" id=\"abas\"><tr><td>");
131
132 String codItemPai = "";
133
134 TipoAcompanhamentoTa tipoAcompanhamento = (TipoAcompanhamentoTa) tipoAcompanhamentoDao.buscar(TipoAcompanhamentoTa.class, Long.valueOf(getCodTipoAcompanhamento()));
135 Long longPrimeiroItemClicado = (primeiroIettClicado == null)?null:Long.valueOf(primeiroIettClicado);
136
137 if(tipoAcompanhamento != null && tipoAcompanhamento.getEstruturaEtt() != null && longPrimeiroItemClicado != null){
138 ItemEstruturaIett itemFilho = (ItemEstruturaIett) itemEstruturaDao.buscar(ItemEstruturaIett.class, longPrimeiroItemClicado);
139 if(itemFilho != null && itemFilho.getItemEstruturaIett() != null){
140 codItemPai = itemFilho.getItemEstruturaIett().getCodIett().toString();
141 }
142 if("".equals(codItemPai)) {
143 codItemPai = itemFilho.getCodIett().toString();
144 }
145 }
146
147 String pagina = "";
148 String situacaoAba = "";
149
150
151 if (abaSuperior == null || getAbaSuperior().equals(Dominios.NAO)){
152 situacaoAba = ABA_DESABILITADA;
153 if("RESUMO".equals(funcaoSelecionada))
154 situacaoAba = ABA_HABILITADA;
155
156 if(podeCriarAba("Resumo", "resumo/detalharItem.jsp", situacaoAba, false))
157 criaAba("Resumo", "resumo/detalharItem.jsp", situacaoAba, s, codItemPai, false);
158 }
159
160
161 List<Aba> listAbas = null;
162
163 if (getAbaSuperior().equals(Dominios.SIM)) {
164 listAbas = abaDao.getListaAbasSuperiorComAcesso(tipoAcompanhamento, gruposUsuario);
165 } else {
166 listAbas = abaDao.getListaAbasComAcesso(tipoAcompanhamento, gruposUsuario);
167 }
168
169
170 Aba abaListaGeral = new Aba();
171
172 if (getAbaSuperior().equals("S")) {
173 abaListaGeral.setAbaSuperior("S");
174 abaListaGeral.setNomeAba("LISTA_GERAL");
175 abaListaGeral.setLabelAba("Lista Geral");
176 abaListaGeral.setOrdemAba(0);
177 listAbas.add(0, abaListaGeral);
178 }
179
180 for (Iterator it = listAbas.iterator();it.hasNext();) {
181 Aba aba = (Aba) it.next();
182
183 String nomeAba = aba.getNomeAba();
184
185 situacaoAba = ABA_DESABILITADA;
186
187 if (!"NIVEL_PLANEJAMENTO".equals(nomeAba)) {
188
189 if (funcaoSelecionada.equals(nomeAba)) {
190 situacaoAba = ABA_HABILITADA;
191 }
192
193 if ("PONTOS_CRITICOS".equals(nomeAba)) {
194 ItemEstruturaIett iett = null;
195 String codIettRelacao = this.pageContext.getRequest().getParameter("codIettRelacao");
196 if(acompReferenciaItem != null) {
197 iett = acompReferenciaItem.getItemEstruturaIett();
198 } else if(codIettRelacao != null && !"".equals(codIettRelacao) && !"situacaoDatas".equals(funcaoSelecionada) && !"situacaoIndicadores".equals(funcaoSelecionada)){
199 iett = (ItemEstruturaIett) itemEstruturaDao.buscar(ItemEstruturaIett.class, Long.valueOf(codIettRelacao));
200 }
201 if(iett != null) {
202
203 try {
204 Collection pontosCriticos = Collections.EMPTY_LIST;
205 pontosCriticos = pontoCriticoDao.getPontosCriticosNaoSolucionados(iett);
206
207 if (pontoCriticoDao.verificaDatasUltrapassadas(pontosCriticos)) {
208 situacaoAba = "abapontocritico";
209 }
210 } catch (Exception e) {
211 situacaoAba = ABA_DESABILITADA;
212 }
213 } else {
214 situacaoAba = ABA_DESABILITADA;
215 }
216
217 pagina = "restricoes/pontosCriticos.jsp";
218 } else if ("DADOS_GERAIS".equals(nomeAba)) {
219 pagina = "dadosGerais/dadosGerais.jsp";
220 } else if ("EVENTOS".equals(nomeAba)) {
221 pagina = "eventos/eventos.jsp";
222 } else if ("GALERIA".equals(nomeAba)) {
223 pagina = "galeria/galeria.jsp";
224 } else if ("FINANCEIRO".equals(nomeAba)) {
225 pagina = "financeiro/financeiro.jsp";
226 } else if ("REL_FISICO_IND_RESULTADO".equals(nomeAba)) {
227 pagina = "../resultado/indicadoresResultado.jsp?tela=V";
228
229 } else if ("DATAS_LIMITES".equals(nomeAba)) {
230 pagina = "datasLimites/datasLimites.jsp";
231 } else if ("SITUACAO".equals(nomeAba)){
232 pagina = "situacao/relatorios.jsp?tela=V";
233 } else if ("SITUACAO_DATAS".equals(nomeAba)) {
234 pagina = "situacaoDatas/situacaoDatas.jsp";
235 } else if ("SITUACAO_INDICADORES".equals(nomeAba)) {
236 pagina = "situacaoIndicadores/situacaoIndicadores.jsp";
237 } else if ("ETAPA".equals(nomeAba)) {
238 pagina = "etapas/etapas.jsp";
239 if(acompReferenciaItem != null && itemEstruturaDao.verificaItemPossuiEtapas(acompReferenciaItem.getItemEstruturaIett())){
240 if(podeCriarAba(aba.getLabelAba(),pagina,situacaoAba,false))
241 criaAba(aba.getLabelAba(), pagina, situacaoAba, s, codItemPai, false);
242 }
243 continue;
244 }
245 else if ("LISTA_GERAL".equals(nomeAba)){
246 pagina = getListaGeral();
247 }
248 else if ("GRAFICO_DE_GANTT".equals(nomeAba)){
249 pagina = "graficoGantt/graficoGantt.jsp";
250 }
251
252 boolean ehProximosItens = false;
253 if("proximosItens".equals(funcaoSelecionada)) {
254 if("DADOS_GERAIS".equals(nomeAba)
255 || "EVENTOS".equals(nomeAba)
256 || "GALERIA".equals(nomeAba)
257 || "PONTOS_CRITICOS".equals(nomeAba)) {
258 ehProximosItens = true;
259 }
260 }
261
262
263 if(podeCriarAba(aba.getLabelAba() , pagina, situacaoAba, ehProximosItens))
264 criaAba(aba.getLabelAba(), pagina, situacaoAba, s, codItemPai, ehProximosItens);
265 }
266 }
267
268
269
270
271
272 if (getAbaSuperior().equals(Dominios.NAO)) {
273 situacaoAba = ABA_DESABILITADA;
274 if ("relatorioImpresso".equals(funcaoSelecionada)) {
275 situacaoAba = ABA_HABILITADA;
276 }
277
278 if(podeCriarAba("Relatório Impresso", "relatorioImpresso.jsp", situacaoAba, false))
279 criaAba("Relatório Impresso", "relatorios/relatorioImpresso.jsp?tela=V", situacaoAba, s, codItemPai, false);
280 }
281
282 s.append("</td></tr></table>");
283
284 writer.print(s.toString());
285 } catch (Exception e) {
286 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
287 e.printStackTrace();
288 }
289 return Tag.SKIP_BODY;
290 }
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305 private boolean podeCriarAba(String label, String pagina, String situacaoAba,
306 boolean liberarAbasSeProximosItens) throws ECARException {
307
308 boolean podeCriar = false;
309
310
311 if (situacaoAba == ABA_HABILITADA) {
312 podeCriar = true;
313 } else {
314
315
316
317 String codIettRelacao = (this.pageContext.getRequest().getParameter("codIettRelacao") == null)?"":this.pageContext.getRequest().getParameter("codIettRelacao");
318
319 if(acompReferenciaItem == null && codIettRelacao != null && !"".equals(codIettRelacao)
320 && ("../posicaoGeral.jsp".equals(pagina)
321 || "eventos/eventos.jsp".equals(pagina)
322 || "dadosGerais/dadosGerais.jsp".equals(pagina)
323 || "galeria/galeria.jsp".equals(pagina)
324 || "restricoes/pontosCriticos.jsp".equals(pagina)
325 || "proximosItens.jsp".equals(pagina))) {
326
327
328 podeCriar = true;
329
330 } else if(liberarAbasSeProximosItens && acompReferenciaItem == null) {
331 podeCriar = true;
332 }
333 else if(!"N".equals(getLinks()) && acompReferenciaItem != null){
334 podeCriar = true;
335 }
336 else if ("Relatório Impresso".equals(label) && ABA_DESABILITADA.equals(situacaoAba)){
337
338 if (getAbaSuperior().equals(Dominios.NAO)) {
339 podeCriar = true;
340 }
341 }
342 else if ("Posição Geral".equals(label) && ABA_DESABILITADA.equals(situacaoAba)){
343 podeCriar = true;
344 }
345 else if (("situacaoDatas/situacaoDatas.jsp".equals(pagina) || "situacaoIndicadores/situacaoIndicadores.jsp".equals(pagina))&& ABA_DESABILITADA.equals(situacaoAba)){
346 podeCriar = true;
347 }
348
349
350 }
351
352 return podeCriar;
353
354 }
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370 private void criaAba(String label, String pagina, String situacaoAba, StringBuffer s,
371 String codItemPai, boolean liberarAbasSeProximosItens) throws ECARException{
372 String link = caminho + pagina;
373
374 if(!"N".equals(getLinks())) {
375
376 if (pagina.indexOf("?") < 0){
377 link += "?primeiroIettClicado=" + getPrimeiroIettClicado() + "&primeiroAriClicado=" + getPrimeiroAriClicado() ;
378 } else {
379 link += "&primeiroIettClicado=" + getPrimeiroIettClicado() + "&primeiroAriClicado=" + getPrimeiroAriClicado();
380 }
381
382 if(codItemPai != null && !"".equals(codItemPai)) {
383 link += "&itemDoNivelClicado=" + codItemPai;
384 }
385 }
386
387 String codIettRelacao = (this.pageContext.getRequest().getParameter("codIettRelacao") == null)?"":this.pageContext.getRequest().getParameter("codIettRelacao");
388
389
390 s.append("<table class=\"" + situacaoAba + "\"><tr><td nowrap>");
391 if(acompReferenciaItem == null && codIettRelacao != null && !"".equals(codIettRelacao)
392 && ("../posicaoGeral.jsp".equals(pagina)
393 || "dadosGerais/dadosGerais.jsp".equals(pagina)
394 || "eventos/eventos.jsp".equals(pagina)
395 || "galeria/galeria.jsp".equals(pagina)
396 || "restricoes/pontosCriticos.jsp".equals(pagina)
397 || "proximosItens.jsp".equals(pagina))) {
398 s.append("<a href=\"#\" onclick=\"javascript:trocaAbaSemAri('" + link + "','" + this.pageContext.getRequest().getParameter("itemDoNivelClicado") + "')\">");
399 } else if(liberarAbasSeProximosItens && acompReferenciaItem == null) {
400 s.append("<a href=\"#\" onclick=\"javascript:trocaAbaSemAri('" + link + "','" + this.pageContext.getRequest().getParameter("itemDoNivelClicado") + "')\">");
401 }
402 else if(!"N".equals(getLinks()) && acompReferenciaItem != null){
403 s.append("<a href=\"#\" onclick=\"javascript:trocaAba('" + link + "'," + acompReferenciaItem.getCodAri() + ")\">");
404 }
405 else if ("Relatório Impresso".equals(label) && ABA_DESABILITADA.equals(situacaoAba)){
406
407
408 if (getAbaSuperior().equals(Dominios.NAO)) {
409 link = caminho + "../posicaoGeral.jsp?relatorio=true&acomp=true";
410 s.append("<a href=\"#\" onclick=\"javascript:trocaAbaImpressao('" + link + "'" + ")\">");
411 }
412 }
413 else if ("Posição Geral".equals(label) && ABA_DESABILITADA.equals(situacaoAba)){
414 link = caminho + "../posicaoGeral.jsp";
415 s.append("<a href=\"#\" onclick=\"javascript:trocaAbaImpressao('" + link + "'" + ")\">");
416 }
417 else if (("situacaoDatas/situacaoDatas.jsp".equals(pagina) || "situacaoIndicadores/situacaoIndicadores.jsp".equals(pagina))&& ABA_DESABILITADA.equals(situacaoAba)){
418 s.append("<a href=\"#\" onclick=\"javascript:trocaAbaImpressao('" + link + "'" + ")\">");
419 }
420
421 s.append(label);
422 s.append("</a>");
423 s.append("</td></tr></table>");
424 }
425
426
427
428
429
430
431
432
433
434
435 public int doEndTag() throws JspException {
436
437 return Tag.EVAL_PAGE;
438 }
439
440
441
442
443
444
445
446
447
448 public AcompReferenciaItemAri getAcompReferenciaItem() {
449 return acompReferenciaItem;
450 }
451
452
453
454
455
456
457
458
459
460 public void setAcompReferenciaItem(AcompReferenciaItemAri acompReferenciaItem) {
461 this.acompReferenciaItem = acompReferenciaItem;
462 }
463
464
465
466
467
468
469
470
471
472 public String getFuncaoSelecionada() {
473 return funcaoSelecionada;
474 }
475
476
477
478
479
480
481
482
483
484 public void setFuncaoSelecionada(String funcaoSelecionada) {
485 this.funcaoSelecionada = funcaoSelecionada;
486 }
487
488
489
490
491
492
493
494
495
496 public String getLinks() {
497 return links;
498 }
499
500
501
502
503
504
505
506
507
508 public void setLinks(String links) {
509 this.links = links;
510 }
511
512
513
514
515
516
517
518
519
520 public String getPrimeiroIettClicado() {
521 return primeiroIettClicado;
522 }
523
524
525
526
527
528
529
530
531
532 public void setPrimeiroIettClicado(String primeiroIettClicado) {
533
534 this.primeiroIettClicado = (primeiroIettClicado == null || primeiroIettClicado.trim().equals(""))?null:primeiroIettClicado;
535 }
536
537
538
539
540
541
542
543
544
545 public String getPrimeiroAriClicado() {
546 return primeiroAriClicado;
547 }
548
549
550
551
552
553
554
555
556
557 public void setPrimeiroAriClicado(String primeiroAriClicado) {
558 this.primeiroAriClicado = primeiroAriClicado;
559 }
560
561
562
563
564
565
566
567
568
569 public String getCaminho() {
570 return caminho;
571 }
572
573
574
575
576
577
578
579
580
581 public void setCaminho(String caminho) {
582 this.caminho = caminho;
583 }
584
585
586
587
588
589
590
591
592
593 public String getCodTipoAcompanhamento() {
594 return codTipoAcompanhamento;
595 }
596
597
598
599
600
601
602
603
604
605 public void setCodTipoAcompanhamento(String codTipoAcompanhamento) {
606 this.codTipoAcompanhamento = codTipoAcompanhamento;
607 }
608
609 public void setGruposUsuario(Set gruposUsuario) {
610 this.gruposUsuario = gruposUsuario;
611 }
612
613
614
615
616
617
618
619
620
621 public String getContextPath() {
622 return contextPath;
623 }
624
625 public void setContextPath(String contextPath) {
626 this.contextPath = contextPath;
627 }
628
629
630
631
632
633
634
635 private String abaSuperior= Dominios.NAO ;
636
637 public String getAbaSuperior() {
638 return abaSuperior;
639 }
640
641
642 public void setAbaSuperior(String abaSuperior) {
643 this.abaSuperior = abaSuperior;
644 }
645
646
647 public Set getGruposUsuario() {
648 return gruposUsuario;
649 }
650
651
652 public String getListaGeral() {
653 return listaGeral;
654 }
655
656
657 public void setListaGeral(String listaGeral) {
658 this.listaGeral = listaGeral;
659 }
660 }