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.pojo.ItemEstruturaIett;
20
21
22
23
24
25 public class ArvoreEstruturaElabAcompTag extends TagSupport {
26
27
28
29
30 private static final long serialVersionUID = 8136547080998871299L;
31
32 private Logger logger = Logger.getLogger(this.getClass());
33
34 private ItemEstruturaIett itemEstrutura;
35 private String contextPath;
36 private String codigoAcomp;
37 private String primeiroItemAriClicado;
38 private String codItemClicadoSubNiveis;
39 private List listaParaArvore;
40 private String nivelPrimeiroIettClicado;
41 private String abaAtual;
42 private String primeiroAcomp;
43
44 public static String ABA_DADOS_BASICOS = "ABA_DADOS_BASICOS";
45 public static String ABA_REALIZADO_FISICO = "ABA_REALIZADO_FISICO";
46 public static String ABA_ACOMPANHAMENTOS = "ABA_ACOMPANHAMENTOS";
47 public static String PATH_ACOMP = "/regAcompanhamento/elabAcompanhamento/";
48
49
50
51
52
53
54
55
56
57
58 public int doStartTag() throws JspException {
59
60 JspWriter writer = this.pageContext.getOut();
61
62 try {
63 StringBuffer s = new StringBuffer();
64 List lista = new ArrayList();
65
66 if(getItemEstrutura() != null)
67 lista = new ItemEstruturaDao(null).getAscendentes(getItemEstrutura());
68
69 if (getItemEstrutura() != null)
70 lista.add(getItemEstrutura());
71
72 Iterator it = lista.iterator();
73 ItemEstruturaIett itemEstruturaP;
74
75 s.append("<div id=\"menuemcascata\">");
76
77 int nivel = 1;
78
79 String linkPrimeiro = "";
80 if(!"".equals(primeiroAcomp)){
81 linkPrimeiro = "primeiroAcomp="+primeiroAcomp+"&";
82 }
83
84 while (it.hasNext()) {
85 itemEstruturaP = (ItemEstruturaIett) it.next();
86
87 s.append("<div class=\"cascata_nivel_" + nivel + "\">");
88
89
90 if(getItemEstrutura().getCodIett() == itemEstruturaP.getCodIett()){
91 s.append("<div class=\"selecionado\">");
92 }
93
94 s.append("<img src=\"" + getContextPath() + "/images/icon_seta_ident.gif\"> ");
95
96 s.append(itemEstruturaP.getEstruturaEtt().getNomeEtt().trim());
97 s.append(" - ");
98
99 if(ABA_ACOMPANHAMENTOS.equals(this.getAbaAtual())) {
100 s.append(itemEstruturaP.getNomeIett().trim());
101 s.append("</div>");
102 }
103 else {
104 String codAri = "";
105
106 if(itemEstrutura.getCodIett() == itemEstruturaP.getCodIett()){
107 Long codAriIett = getCodAri(itemEstruturaP.getCodIett());
108
109 if(codAriIett != null) {
110 codAri = "?"+linkPrimeiro+"codAri=" + codAriIett;
111 }
112 }
113
114 if("".equals(codAri)) {
115 s.append(itemEstruturaP.getNomeIett().trim());
116 }
117 else {
118 if(ABA_DADOS_BASICOS.equals(this.getAbaAtual())) {
119 s.append("<a href=\"" + getContextPath() + PATH_ACOMP + "dadosGerais/frm_con.jsp");
120 }
121 else {
122 s.append("<a href=\"" + getContextPath() + PATH_ACOMP + "realizadoFisico.jsp");
123 }
124 s.append(codAri + "&codAcomp=" + getCodigoAcomp());
125 s.append("\">");
126 s.append(itemEstruturaP.getNomeIett().trim());
127 s.append("</a>");
128 }
129
130 if(getCodItemClicadoSubNiveis() != null && getPrimeiroItemAriClicado() != null
131 && !"".equals(getCodItemClicadoSubNiveis()) && !"".equals(getPrimeiroItemAriClicado())
132 && Long.parseLong(getCodItemClicadoSubNiveis()) == itemEstruturaP.getCodIett().longValue()) {
133
134 s.append("<a href=\"" + getContextPath() + PATH_ACOMP + "realizadoFisico.jsp");
135 s.append("?"+linkPrimeiro+"codAri=" + getPrimeiroItemAriClicado());
136 s.append("&codAcomp=" + getCodigoAcomp());
137 s.append("\">");
138 s.append("[Voltar]</a>");
139 }
140 else {
141 if(nivel == Integer.parseInt(this.getNivelPrimeiroIettClicado())) {
142 s.append("<a href=\"" + getContextPath() + PATH_ACOMP + "listaItens.jsp");
143 s.append("?"+linkPrimeiro+"codAcomp=" + getCodigoAcomp() + "&sinalizarItem=" + itemEstruturaP.getCodIett() + "#ancoraItem" + itemEstruturaP.getCodIett());
144 s.append("\">");
145 s.append("[Ir para Relação]");
146 s.append("</a>");
147 }
148 }
149
150 s.append("</div>");
151 }
152
153
154 if(itemEstrutura.getCodIett() == itemEstruturaP.getCodIett()){
155 s.append("</div>");
156 }
157
158 s.append("\n");
159 nivel++;
160 }
161
162
163 s.append("</div>");
164
165 s.append("<br>");
166 writer.print(s.toString());
167 } catch (Exception e) {
168 logger.error(e);
169 }
170 return Tag.SKIP_BODY;
171
172 }
173
174
175
176
177
178
179
180
181
182
183 public int doEndTag() throws JspException {
184
185 return Tag.EVAL_PAGE;
186 }
187
188
189
190
191
192
193
194
195
196
197 private Long getCodAri(Long codIett) {
198 Iterator it = getListaParaArvore().iterator();
199
200 while(it.hasNext()) {
201 String str = (String)it.next();
202 int indiceUnderline = str.indexOf("_");
203 String item = str.substring(0, indiceUnderline);
204 String ari = str.substring(indiceUnderline + 1);
205
206 if(Long.parseLong(item) == codIett.longValue()) {
207 return Long.valueOf(ari);
208 }
209 }
210
211 return null;
212 }
213
214
215
216
217
218
219
220
221
222 public String getCodigoAcomp() {
223 return codigoAcomp;
224 }
225
226
227
228
229
230
231
232
233
234 public void setCodigoAcomp(String codigoAcomp) {
235 this.codigoAcomp = codigoAcomp;
236 }
237
238
239
240
241
242
243
244
245
246 public String getCodItemClicadoSubNiveis() {
247 return codItemClicadoSubNiveis;
248 }
249
250
251
252
253
254
255
256
257
258 public void setCodItemClicadoSubNiveis(String codItemClicadoSubNiveis) {
259 this.codItemClicadoSubNiveis = codItemClicadoSubNiveis;
260 }
261
262
263
264
265
266
267
268
269
270 public String getContextPath() {
271 return contextPath;
272 }
273
274
275
276
277
278
279
280
281
282 public void setContextPath(String contextPath) {
283 this.contextPath = contextPath;
284 }
285
286
287
288
289
290
291
292
293
294 public ItemEstruturaIett getItemEstrutura() {
295 return itemEstrutura;
296 }
297
298
299
300
301
302
303
304
305
306 public void setItemEstrutura(ItemEstruturaIett itemEstrutura) {
307 this.itemEstrutura = itemEstrutura;
308 }
309
310
311
312
313
314
315
316
317
318 public List getListaParaArvore() {
319 return listaParaArvore;
320 }
321
322
323
324
325
326
327
328
329
330 public void setListaParaArvore(List listaParaArvore) {
331 this.listaParaArvore = listaParaArvore;
332 }
333
334
335
336
337
338
339
340
341
342 public String getNivelPrimeiroIettClicado() {
343 return nivelPrimeiroIettClicado;
344 }
345
346
347
348
349
350
351
352
353
354 public void setNivelPrimeiroIettClicado(String nivelPrimeiroIettClicado) {
355 this.nivelPrimeiroIettClicado = nivelPrimeiroIettClicado;
356 }
357
358
359
360
361
362
363
364
365
366 public String getPrimeiroItemAriClicado() {
367 return primeiroItemAriClicado;
368 }
369
370
371
372
373
374
375
376
377
378 public void setPrimeiroItemAriClicado(String primeiroItemAriClicado) {
379 this.primeiroItemAriClicado = primeiroItemAriClicado;
380 }
381
382
383
384
385
386
387
388
389
390 public String getAbaAtual() {
391 return abaAtual;
392 }
393
394
395
396
397
398
399
400
401
402 public void setAbaAtual(String abaAtual) {
403 this.abaAtual = abaAtual;
404 }
405
406
407
408
409
410
411
412
413
414 public String getPrimeiroAcomp() {
415 return primeiroAcomp;
416 }
417
418
419
420
421
422
423
424
425
426 public void setPrimeiroAcomp(String primeiroAcomp) {
427 this.primeiroAcomp = primeiroAcomp;
428 }
429 }