1
2
3
4
5 package ecar.taglib.util;
6
7 import java.util.ArrayList;
8 import java.util.Iterator;
9 import java.util.List;
10
11 import javax.servlet.jsp.JspException;
12 import javax.servlet.jsp.JspWriter;
13 import javax.servlet.jsp.tagext.Tag;
14 import javax.servlet.jsp.tagext.TagSupport;
15
16 import org.apache.log4j.Logger;
17
18 import ecar.dao.ItemEstruturaDao;
19 import ecar.dao.TipoAcompanhamentoDao;
20 import ecar.login.SegurancaECAR;
21 import ecar.permissao.ValidaPermissao;
22 import ecar.pojo.EstruturaEtt;
23 import ecar.pojo.ItemEstruturaIett;
24 import ecar.pojo.TipoAcompanhamentoTa;
25
26
27
28
29
30 public class ArvoreEstruturasTag extends TagSupport {
31
32 ValidaPermissao validaPermissao = new ValidaPermissao();
33
34
35
36
37 private static final long serialVersionUID = -2194337577924245741L;
38 private ItemEstruturaIett itemEstrutura;
39 private Boolean proximoNivel;
40 private Boolean exibirLinks;
41 private String contextPath;
42 private SegurancaECAR seguranca;
43
44 private String primeiroIettClicado;
45 private String primeiroAriClicado;
46 private String telaAnterior;
47
48 private String codTipoAcompanhamentoSelecionado;
49 private String periodoSelecionado;
50
51
52
53
54
55
56
57
58
59
60 public int doStartTag() throws JspException {
61
62 JspWriter writer = this.pageContext.getOut();
63 String connector = "";
64
65 try {
66 StringBuffer s = new StringBuffer();
67 List lista = new ArrayList();
68 if(getItemEstrutura() != null)
69 lista = new ItemEstruturaDao(null).getAscendentes(getItemEstrutura());
70
71 if (getItemEstrutura() != null)
72 lista.add(getItemEstrutura());
73
74 Iterator it = lista.iterator();
75 ItemEstruturaIett itemEstruturaP;
76
77
78
79
80 String codTipoAcompanhamento = null;
81 TipoAcompanhamentoDao tipoAcompanhamentoDao = null;
82 TipoAcompanhamentoTa ta = null;
83
84 if (this.getCodTipoAcompanhamentoSelecionado()!=null){
85 codTipoAcompanhamento = this.getCodTipoAcompanhamentoSelecionado();
86 tipoAcompanhamentoDao = new TipoAcompanhamentoDao();
87 ta = (TipoAcompanhamentoTa) tipoAcompanhamentoDao.buscar(
88 TipoAcompanhamentoTa.class, Long.valueOf(codTipoAcompanhamento));
89 s.append(ta.getDescricaoTa());
90 }
91
92
93
94
95
96 s.append("<div id=\"menuemcascata\">");
97
98 int nivel = 1;
99
100 while (it.hasNext()) {
101 connector = "?";
102 itemEstruturaP = (ItemEstruturaIett) it.next();
103
104 s.append("<div class=\"cascata_nivel_").append(nivel).append("\">");
105
106
107 if(getItemEstrutura().getCodIett() == itemEstruturaP.getCodIett()){
108 s.append("<div class=\"selecionado\">");
109 }
110
111 s.append("<img src=\"").append(getContextPath()).append("/images/icon_seta_ident.gif\"> ");
112 s.append(itemEstruturaP.getEstruturaEtt().getNomeEtt());
113
114 boolean possuiPermissaoConsulta = true;
115
116
117 if(seguranca != null) {
118 possuiPermissaoConsulta = validaPermissao.permissaoConsultarItem(
119 itemEstruturaP,seguranca.getUsuario(),seguranca.getGruposAcesso());
120 }
121
122 if(itemEstruturaP.getNomeIett() != null){
123 s.append(" - ");
124 if( (getExibirLinks() == null || getExibirLinks().booleanValue()) && possuiPermissaoConsulta){
125 s.append("<a href=\"").append(getContextPath()).append("/cadastroItens/dadosGerais/frm_con.jsp");
126 s.append("?codIett=").append(itemEstruturaP.getCodIett());
127 s.append("\">");
128 }
129 s.append(itemEstruturaP.getNomeIett());
130 if( (getExibirLinks() == null || getExibirLinks().booleanValue()) && possuiPermissaoConsulta){
131 s.append("</a>");
132 }
133 }
134
135
136 if(getPrimeiroIettClicado() != null && !"".equals(getPrimeiroIettClicado())
137 && getPrimeiroIettClicado().equals(itemEstruturaP.getCodIett().toString())) {
138
139 if(getTelaAnterior() != null && !"".equals(getTelaAnterior())){
140 s.append("<a href=\"").append(getTelaAnterior());
141 }
142 else {
143 s.append("<a href=\"").append(getContextPath()).append("/acompanhamento/posicaoGeral.jsp");
144 s.append("?primeiroIettClicado=").append(getPrimeiroIettClicado());
145 s.append("&primeiroAriClicado=").append(getPrimeiroAriClicado());
146 if(getCodTipoAcompanhamentoSelecionado() != null && !"".equals(getCodTipoAcompanhamentoSelecionado())){
147 s.append("&codTipoAcompanhamento=").append(getCodTipoAcompanhamentoSelecionado());
148 }
149 if(getPeriodoSelecionado() != null && !"".equals(getPeriodoSelecionado())){
150 s.append("&periodo=").append(getPeriodoSelecionado());
151 }
152 }
153 s.append("\"> ");
154
155
156 Long linkCodDemanda = (Long) this.pageContext.getSession().getAttribute("linkCodDemanda");
157 if (linkCodDemanda != null && !"".equals(linkCodDemanda)) {
158 s.append("[Ir para listagem]</a>");
159 } else {
160 s.append("[Voltar]</a>");
161 }
162
163
164 }
165
166 if((getExibirLinks() == null || getExibirLinks().booleanValue())){
167
168 s.append("<a href=\"").append(getContextPath()).append("/cadastroItens/listaItem/lista.jsp");
169
170
171
172
173 if (itemEstruturaP.getItemEstruturaIett() != null) {
174 s.append(connector + "codIettPrincipal=").append(itemEstruturaP.getItemEstruturaIett().getCodIett());
175 connector = "&";
176 }
177
178 s.append(connector + "ultEttSelecionado=" + itemEstruturaP.getEstruturaEtt().getCodEtt().toString() );
179 connector = "&";
180
181
182
183 s.append("\" >");
184 s.append(" [Ir para listagem]</a></div>");
185
186
187
188 if( itemEstrutura.getEstruturaEtt() != null && getItemEstrutura().getCodIett() == itemEstruturaP.getCodIett() ) {
189 writer.print("<script type=\"text/javascript\">var jsUltEttSelecionado = " +
190 itemEstrutura.getEstruturaEtt().getCodEtt().toString() + ";</script>");
191 }
192 }
193
194
195 if(itemEstrutura.getCodIett() == itemEstruturaP.getCodIett()){
196 s.append("</div>");
197 }
198 s.append("\n");
199 nivel++;
200 }
201
202 boolean existeNiveisAtivos=false;
203 Iterator<EstruturaEtt> itEstrutura = null;
204 if (itemEstrutura != null && itemEstrutura.getEstruturaEtt() != null){
205 itEstrutura = itemEstrutura.getEstruturaEtt().getEstruturaEtts().iterator();
206 }
207
208
209 if (itEstrutura != null){
210 while(itEstrutura.hasNext()){
211 EstruturaEtt estrutura = (EstruturaEtt)itEstrutura.next();
212 if (estrutura.getIndAtivoEtt().equalsIgnoreCase("S") ){
213 existeNiveisAtivos = true;
214 break;
215 }
216 }
217 }
218
219
220
221
222
223 if ((getProximoNivel() == null || getProximoNivel().booleanValue()) && existeNiveisAtivos){
224 s.append("<div class=\"cascata_nivel_").append(nivel).append("\"><img src=\"").append(getContextPath()).append("/images/icon_seta_ident.gif\">");
225 s.append("<a href=\"" + getContextPath() + "/cadastroItens/listaItem/lista.jsp?codIettPrincipal=").append(itemEstrutura.getCodIett());
226 s.append("\" >");
227 s.append("Ir para o próximo nível </a></div>");
228 }
229
230 s.append("</div>");
231
232 s.append("<br>");
233 writer.print(s.toString());
234 } catch (Exception e) {
235 Logger logger = Logger.getLogger(this.getClass());
236 logger.error(e);
237
238 }
239 return Tag.SKIP_BODY;
240
241 }
242
243
244
245
246
247
248
249
250
251
252 public int doEndTag() throws JspException {
253
254 return Tag.EVAL_PAGE;
255 }
256
257
258
259
260
261
262
263
264
265 public Boolean getProximoNivel() {
266 return proximoNivel;
267 }
268
269
270
271
272
273
274
275
276
277 public void setProximoNivel(Boolean proximoNivel) {
278 this.proximoNivel = proximoNivel;
279 }
280
281
282
283
284
285
286
287
288
289 public String getContextPath() {
290 return contextPath;
291 }
292
293
294
295
296
297
298
299
300
301 public void setContextPath(String contextPath) {
302 this.contextPath = contextPath;
303 }
304
305
306
307
308
309
310
311
312
313 public Boolean getExibirLinks() {
314 return exibirLinks;
315 }
316
317
318
319
320
321
322
323
324
325 public void setExibirLinks(Boolean exibirLinks) {
326 this.exibirLinks = exibirLinks;
327 }
328
329
330
331
332
333
334
335
336
337 public SegurancaECAR getSeguranca() {
338 return seguranca;
339 }
340
341
342
343
344
345
346
347
348
349 public void setSeguranca(SegurancaECAR seguranca) {
350 this.seguranca = seguranca;
351 }
352
353
354
355
356
357
358
359
360
361 public String getPrimeiroIettClicado() {
362 return primeiroIettClicado;
363 }
364
365
366
367
368
369
370
371
372
373 public void setPrimeiroIettClicado(String primeiroIettClicado) {
374 this.primeiroIettClicado = primeiroIettClicado;
375 }
376
377
378
379
380
381
382
383
384
385 public String getPrimeiroAriClicado() {
386 return primeiroAriClicado;
387 }
388
389
390
391
392
393
394
395
396
397 public void setPrimeiroAriClicado(String primeiroAriClicado) {
398 this.primeiroAriClicado = primeiroAriClicado;
399 }
400
401
402
403
404
405
406
407
408
409 public String getTelaAnterior() {
410 return telaAnterior;
411 }
412
413
414
415
416
417
418
419
420
421 public void setTelaAnterior(String telaAnterior) {
422 this.telaAnterior = telaAnterior;
423 }
424
425
426
427
428
429
430
431
432 public ItemEstruturaIett getItemEstrutura() {
433 return itemEstrutura;
434 }
435
436
437
438
439
440
441
442
443
444 public void setItemEstrutura(ItemEstruturaIett itemEstrutura) {
445 this.itemEstrutura = itemEstrutura;
446 }
447
448
449
450
451
452
453
454
455
456 public String getCodTipoAcompanhamentoSelecionado() {
457 return codTipoAcompanhamentoSelecionado;
458 }
459
460
461
462
463
464
465
466
467
468 public void setCodTipoAcompanhamentoSelecionado(String codTipoAcompanhamentoSelecionado) {
469 this.codTipoAcompanhamentoSelecionado = codTipoAcompanhamentoSelecionado;
470 }
471
472 public String getPeriodoSelecionado() {
473 return periodoSelecionado;
474 }
475
476 public void setPeriodoSelecionado(String periodoSelecionado) {
477 this.periodoSelecionado = periodoSelecionado;
478 }
479 }