View Javadoc

1   /*
2    * Criado em 27/09/2007
3    *
4    */
5   package ecar.taglib.util;
6   
7   import java.util.Collection;
8   import java.util.Collections;
9   import java.util.Iterator;
10  
11  import javax.servlet.jsp.JspException;
12  import javax.servlet.jsp.JspWriter;
13  import javax.servlet.jsp.PageContext;
14  import javax.servlet.jsp.tagext.Tag;
15  
16  import comum.util.Data;
17  import comum.util.Pagina;
18  
19  import ecar.dao.PontoCriticoDao;
20  import ecar.login.SegurancaECAR;
21  import ecar.pojo.AcompReferenciaItemAri;
22  import ecar.pojo.AcompRelatorioArel;
23  import ecar.pojo.ItemEstruturaIett;
24  import ecar.pojo.PontoCriticoPtc;
25  import ecar.pojo.SisGrupoAtributoSga;
26  
27  
28  /**
29   * Taglib que gera a tela com a lista de pontos criticos para um controle HTML.<br>
30   * 
31   * @author Milton Pereira
32   */
33  public class PontosCriticosListaTag implements Tag {
34  	
35  	private SisGrupoAtributoSga grupoAssunto;
36  	private PontoCriticoDao pontoCriticoDao;
37  	private ItemEstruturaIett itemEstrutura;
38  	private AcompRelatorioArel acompRelatorioArel;
39  	private Boolean apontamentos;
40  	private String contextPath;
41  
42  	//variavel usada apenas pela nova tela de acompanhamento
43  	private String indice;
44  	
45  	
46  	// Os quatros parametros abaixo sao para adicionar Pontos Criticos na aba de Acompanhamento / Monitoramento 
47  	private Boolean abaPontoCriticoDeAcompanhamento = new Boolean(false);
48  	private AcompReferenciaItemAri ari;
49  	private SegurancaECAR seguranca;
50  	private String tipoSelecao = "";
51  
52  	
53  	private PageContext page = null;
54  
55      private Tag parent;
56  
57      public static final long MAXLENGTH = 200;
58      
59      private JspWriter writerParametro = null;
60      
61      /**
62       * @author N/C
63  	 * @since N/C
64  	 * @version N/C
65       */
66      public PontosCriticosListaTag() {
67      	
68      }
69      
70      /**
71       * Atribui valor especificado para JspWriter writerParametro.<br>
72       * 
73       * @author N/C
74  	 * @since N/C
75  	 * @version N/C
76       * @param JspWriter writer
77       */
78      public PontosCriticosListaTag(JspWriter writer) {
79      	this.writerParametro = writer;
80      }
81      
82      /**
83       * Inicializa a montagem da tag para ser adicionada na tela de HTML.<br>
84       * 
85       * @author N/C
86  	 * @since N/C
87  	 * @version N/C
88  	 * @return int
89  	 * @throws JspException
90       */
91      public int doStartTag() throws JspException {
92      	JspWriter writer = null;
93      	if(writerParametro != null) {
94      		writer = writerParametro;
95      	} else {
96          	writer = this.page.getOut();
97      	}
98          StringBuffer s = new StringBuffer();
99          try {
100         	s.append("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
101         	s.append("<tr><td class=\"espacador\" colspan=8><img src=\"" + contextPath + "/images/pixel.gif\"></td></tr>");
102         	s.append("<tr class=\"linha_subtitulo\">");
103         	s.append("	<td width=\"4%\">");
104         	if(getIndice() != null && !getIndice().equals("")) {
105         		s.append("		<input type=\"checkBox\" class=\"form_check_radio\" name=\"todosPontosCriticos"+getIndice()+"\" onclick=\"javascript:selectAllParecer(document.forms[1], 'todosPontosCriticos"+getIndice()+"', 'excluirPontoCritico"+getIndice()+"')\">&nbsp;");
106 			} else {
107 				s.append("		<input type=\"checkBox\" class=\"form_check_radio\" name=\"todosPontosCriticos\" onclick=\"javascript:selectAll(document.form, 'todosPontosCriticos', 'excluirPontoCritico')\">&nbsp;");
108 			}
109         	s.append("	</td>	");
110         	s.append("	<td width=\"4%\"></td>");
111         	if (grupoAssunto != null){
112         		s.append("<td>");
113     			s.append(grupoAssunto.getDescricaoSga());
114     			s.append("</td>");
115     		}
116         	s.append("	<td>Descri&ccedil;&atilde;o</td>");
117         	s.append("	<td>Estado</td>");
118         	s.append("	<td>Data Limite</td>");
119         	s.append("	<td>Data da Solu&ccedil;&atilde;o</td>");
120         	s.append("	<td>Respons&aacute;vel</td>");
121         	s.append("</tr>");
122         	s.append("<tr><td class=\"espacador\" colspan=8><img src=\"" + contextPath + "/images/pixel.gif\"></td></tr>");
123         	
124         	
125         	Collection<PontoCriticoPtc> pontosAtivos = Collections.EMPTY_LIST;
126         	
127         	/* Verifica qual opção está marcada na tela*/
128 			if(abaPontoCriticoDeAcompanhamento.booleanValue() ){
129 				if( "".equals(tipoSelecao) || "T".equals(tipoSelecao) )
130 					pontosAtivos  = pontoCriticoDao.getAtivos(itemEstrutura); 
131 				else{
132 					if("S".equals(tipoSelecao))
133 						pontosAtivos  = pontoCriticoDao.getPontosCriticosSolucionados(itemEstrutura);
134 					if("N".equals(tipoSelecao))
135 						pontosAtivos  = pontoCriticoDao.getPontosCriticosNaoSolucionados(itemEstrutura);
136 				}
137 			 
138         	
139     		/* Percorre a lista de Pontos Criticos de ItemEstrutura e imprime na tela */
140 			} else if (acompRelatorioArel != null ){ //como feito anteriormente
141         		PontoCriticoPtc pontoCriticoPtc = new PontoCriticoPtc();
142         		pontoCriticoPtc.setAcompRelatorioArel(acompRelatorioArel);
143         		pontoCriticoPtc.setItemEstruturaIett(itemEstrutura);
144         		pontoCriticoPtc.setIndAtivoPtc("S");
145         		pontosAtivos = pontoCriticoDao.pesquisar(pontoCriticoPtc, new String[]{"acompRelatorioArel", "asc"});
146         	} else  {
147         		pontosAtivos = pontoCriticoDao.getAtivos(itemEstrutura);
148         	}
149         	
150     		
151     		String corRelogio = "Branco";
152     		String descRelogio = "";
153     		if(pontosAtivos != null ){ 
154 				Iterator itPc = pontosAtivos.iterator();
155 				while(itPc.hasNext()){
156 					PontoCriticoPtc pontoCritico = (PontoCriticoPtc) itPc.next();
157 					
158 					//Se o ponto crítico não foi excluído
159 					if (pontoCritico.getIndExcluidoPtc() == null || !pontoCritico.getIndExcluidoPtc().equals("S")){
160 					
161 						String[] relogioAtual = pontoCriticoDao.getRelogioNaData(pontoCritico, Data.getDataAtual());
162 						corRelogio = relogioAtual[0];
163 						descRelogio = relogioAtual[1];
164 						s.append("<tr class=\"linha_subtitulo2\">");
165 						s.append("	<td width=\"4%\">");
166 						if(getIndice() != null && !getIndice().equals("")) {
167 							s.append("		<input type=\"checkbox\" class=\"form_check_radio\" name=\"excluirPontoCritico"+getIndice()+"\" id=\"excluirPontoCritico"+getIndice()+"\" value=\"" + pontoCritico.getCodPtc() + "\">");
168 						} else {
169 							s.append("		<input type=\"checkbox\" class=\"form_check_radio\" name=\"excluirPontoCritico\" value=\"" + pontoCritico.getCodPtc() + "\">");
170 						}
171 						s.append("	</td>");
172 						s.append("	<td width=\"4%\">");
173 						if(getIndice() != null && !getIndice().equals("")) {
174 							s.append("		<a href=\"javascript:aoClicarEditar(document.form, " + getIndice() + " ," + pontoCritico.getCodPtc() +  ")\">");
175 						} else {
176 							s.append("		<a href=\"javascript:aoClicarEditar(document.form," + pontoCritico.getCodPtc() +  ")\">");
177 						}
178 						s.append("			<img border=\"0\" src=\"" + contextPath + "/images/icon_alterar.png\" alt=\"Alterar\"></a>&nbsp;");
179 						s.append("	</td>");
180 						if (grupoAssunto != null) {
181 							s.append("<td>");
182 							if (apontamentos != null && apontamentos.booleanValue()){
183 								s.append("<a href=\"javascript:aoClicarConsultar(document.form, " + pontoCritico.getCodPtc() + ")\">");
184 							}
185 							
186 							if (pontoCritico.getSisAtributoTipo() != null) {
187 								s.append(pontoCritico.getSisAtributoTipo().getDescricaoSatb());
188 							}
189 							if (apontamentos != null && apontamentos.booleanValue()){
190 								s.append("</a>");
191 							}
192 							
193 							s.append("</td>");
194 							
195 						}
196 						s.append("	<td>");
197 						if (apontamentos != null && apontamentos.booleanValue()){
198 							s.append("		<a href=\"javascript:aoClicarConsultar(document.form," + pontoCritico.getCodPtc()+ ")\">");
199 						}
200 						
201 						s.append(pontoCritico.getDescricaoPtc());
202 						if (apontamentos != null && apontamentos.booleanValue()){
203 							s.append("		</a>");
204 						}
205 						s.append("	</td>");
206 						s.append("	<td><img src=\"" + contextPath + "/images/pc"+corRelogio+"1.png\" title=\""+descRelogio+"\"></td>");
207 						s.append("	<td> " + Pagina.trocaNullData(pontoCritico.getDataLimitePtc()) + "</td>");
208 						s.append("	<td> " + Pagina.trocaNullData(pontoCritico.getDataSolucaoPtc())+ "</td>");																								
209 						s.append("	<td>");
210 						if(pontoCritico.getUsuarioUsu()!=null){
211 							s.append(Pagina.trocaNull(pontoCritico.getUsuarioUsu().getNomeUsuSent()));
212 						}
213 						s.append("	</td>");
214 						s.append("	</tr>");	
215 					}
216 				}  
217 			}		
218     		
219     		Collection pontosInativos = null;
220     		
221     		if (acompRelatorioArel != null){
222         		PontoCriticoPtc pontoCriticoPtc = new PontoCriticoPtc();
223         		pontoCriticoPtc.setAcompRelatorioArel(acompRelatorioArel);
224         		pontoCriticoPtc.setItemEstruturaIett(itemEstrutura);
225         		pontoCriticoPtc.setIndAtivoPtc("N");
226         		pontosInativos = pontoCriticoDao.pesquisar(pontoCriticoPtc, new String[]{"acompRelatorioArel", "asc"});
227         	} else  {
228         		pontosInativos = pontoCriticoDao.getInativos(itemEstrutura);
229         	}
230     		if(pontosInativos != null ){ 
231 				Iterator itPc = pontosInativos.iterator();
232 				while(itPc.hasNext()){
233 					PontoCriticoPtc pontoCritico = (PontoCriticoPtc) itPc.next();
234 					
235 					//Se o ponto crítico não foi excluído
236 					if (pontoCritico.getIndExcluidoPtc() == null || !pontoCritico.getIndExcluidoPtc().equals("S")){
237 					
238 						String[] relogioAtual = pontoCriticoDao.getRelogioNaData(pontoCritico, Data.getDataAtual());						
239 						corRelogio = relogioAtual[0];
240 						descRelogio = relogioAtual[1];						
241 						s.append("<tr class=\"linha_subtitulo2inativo\">"); 
242 						s.append("	<td width=\"4%\">");
243 						if(getIndice() != null && !getIndice().equals("")) {
244 							s.append("		<input type=\"checkbox\" class=\"form_check_radio\" name=\"excluirPontoCritico"+getIndice()+"\" id=\"excluirPontoCritico"+getIndice()+"\" value=\"" + pontoCritico.getCodPtc() + "\">");
245 						} else {
246 							s.append("		<input type=\"checkbox\" class=\"form_check_radio\" name=\"excluir\" value=\""+pontoCritico.getCodPtc()+"\">");
247 						}
248 						s.append("	</td>");
249 						s.append("	<td width=\"4%\">");
250 						if(getIndice() != null && !getIndice().equals("")) {
251 							s.append("		<a href=\"javascript:aoClicarEditar(document.form, " + getIndice() + " ," + pontoCritico.getCodPtc() +  ")\">");
252 						} else {
253 							s.append(" 		<a  href=\"javascript:aoClicarEditar(document.form,"+pontoCritico.getCodPtc()+")\">");
254 						}
255 						s.append("		<img border=\"0\" src=\"" + contextPath + "/images/icon_alterar.png\" alt=\"Alterar\"></a>&nbsp;");
256 						s.append("	</td>");
257 						if (grupoAssunto != null) {
258 							s.append("<td>");	
259 							if (apontamentos != null && apontamentos.booleanValue()){
260 								s.append("<a href=\"javascript:aoClicarConsultar(document.form,"+pontoCritico.getCodPtc()+")\">");
261 							}
262 							
263 							if (pontoCritico.getSisAtributoTipo() != null) {
264 								s.append(pontoCritico.getSisAtributoTipo().getDescricaoSatb());
265 							}
266 							if (apontamentos != null && apontamentos.booleanValue()){
267 								s.append("</a>");
268 							}
269 							
270 							s.append("</td>");
271 						}
272 						s.append("<td>");
273 						if (apontamentos != null && apontamentos.booleanValue()){
274 							s.append("	<a href=\"javascript:aoClicarConsultar(document.form,"+pontoCritico.getCodPtc()+")\">");
275 						}
276 						
277 						s.append(pontoCritico.getDescricaoPtc());
278 						if (apontamentos != null && apontamentos.booleanValue()){
279 							s.append("	</a>");
280 						}
281 						
282 						s.append("</td>");
283 						s.append("<td><img src=\"" + contextPath + "/images/pc"+corRelogio+"1.png\" title=\""+descRelogio+"\"></td>");										
284 						s.append("<td>"+Pagina.trocaNullData(pontoCritico.getDataLimitePtc())+"</td>");																	
285 						s.append("<td>"+Pagina.trocaNullData(pontoCritico.getDataSolucaoPtc())+"</td>");																								
286 						s.append("<td>");
287 						if(pontoCritico.getUsuarioUsu()!=null){
288 							s.append(Pagina.trocaNull(pontoCritico.getUsuarioUsu().getNomeUsuSent()));
289 						}
290 						s.append("</td>");
291 						s.append("</tr>");	
292 					}
293 				}  
294 			}			
295 
296     		s.append("</table>");
297 
298         		
299             writer.print(s.toString());
300         } catch (Exception e) {
301         	
302         }
303         return Tag.EVAL_BODY_INCLUDE;
304     }
305 
306     public String getIndice() {
307 		return indice;
308 	}
309 
310 	public void setIndice(String indice) {
311 		this.indice = indice;
312 	}
313 
314 	/**
315      * Atribui valor especificado para PageContext page.<br>
316      * 
317      * @author N/C
318 	 * @since N/C
319 	 * @version N/C
320 	 * @param PageContext arg0
321      */
322     public void setPageContext(PageContext arg0) {
323         this.page = arg0;
324     }
325 
326     /**
327      * Atribui valor especificado para Tag parent.<br>
328      * 
329      * @author N/C
330 	 * @since N/C
331 	 * @version N/C
332 	 * @param Tag arg0
333      */
334     public void setParent(Tag arg0) {
335         parent = arg0;
336     }
337 
338     /**
339      * Retorna Tag parent.<br>
340      * 
341      * @author N/C
342 	 * @since N/C
343 	 * @version N/C
344 	 * @return Tag
345      */
346     public Tag getParent() {
347         return parent;
348     }
349 
350     /**
351      * Encerra Tag.<br>
352      * 
353      * @author N/C
354 	 * @since N/C
355 	 * @version N/C
356 	 * @return int
357 	 * @throws JspException
358      */
359     public int doEndTag() throws JspException {
360         return Tag.EVAL_PAGE;
361     }
362 
363     /**
364      * 
365      * 
366      * @author N/C
367 	 * @since N/C
368 	 * @version N/C
369      */
370     public void release() {
371         //this.selected = null;
372     }
373 
374     /**
375      * Retorna PageContext page.<br>
376      * 
377      * @author N/C
378 	 * @since N/C
379 	 * @version N/C
380      * @return PageContext - (Returns the page)
381      */
382     public PageContext getPage() {
383         return page;
384     }
385 
386     /**
387      * Atribui valor especificado para PageContext page.<br>
388      * 
389      * @author N/C
390 	 * @since N/C
391 	 * @version N/C
392      * @param PageContext page - (The page to set)
393      */
394     public void setPage(PageContext page) {
395         this.page = page;
396     }
397 
398 	public SisGrupoAtributoSga getGrupoAssunto() {
399 		return grupoAssunto;
400 	}
401 
402 	public void setGrupoAssunto(SisGrupoAtributoSga grupoAssunto) {
403 		this.grupoAssunto = grupoAssunto;
404 	}
405 
406 	public PontoCriticoDao getPontoCriticoDao() {
407 		return pontoCriticoDao;
408 	}
409 
410 	public void setPontoCriticoDao(PontoCriticoDao pontoCriticoDao) {
411 		this.pontoCriticoDao = pontoCriticoDao;
412 	}
413 
414 	public ItemEstruturaIett getItemEstrutura() {
415 		return itemEstrutura;
416 	}
417 
418 	public void setItemEstrutura(ItemEstruturaIett itemEstrutura) {
419 		this.itemEstrutura = itemEstrutura;
420 	}
421 
422 	public AcompRelatorioArel getAcompRelatorioArel() {
423 		return acompRelatorioArel;
424 	}
425 
426 	public void setAcompRelatorioArel(AcompRelatorioArel acompRelatorioArel) {
427 		this.acompRelatorioArel = acompRelatorioArel;
428 	}
429 
430 	public Boolean getApontamentos() {
431 		return apontamentos;
432 	}
433 
434 	public void setApontamentos(Boolean apontamentos) {
435 		this.apontamentos = apontamentos;
436 	}
437 
438 	public String getContextPath() {
439 		return contextPath;
440 	}
441 
442 	public void setContextPath(String contextPath) {
443 		this.contextPath = contextPath;
444 	}
445 
446 	public Boolean getAbaPontoCriticoDeAcompanhamento() {
447 		return abaPontoCriticoDeAcompanhamento;
448 	}
449 
450 	public void setAbaPontoCriticoDeAcompanhamento(
451 			Boolean abaPontoCriticoDeAcompanhamento) {
452 		this.abaPontoCriticoDeAcompanhamento = abaPontoCriticoDeAcompanhamento;
453 	}
454 
455 	public AcompReferenciaItemAri getAri() {
456 		return ari;
457 	}
458 
459 	public void setAri(AcompReferenciaItemAri ari) {
460 		this.ari = ari;
461 	}
462 
463 	public SegurancaECAR getSeguranca() {
464 		return seguranca;
465 	}
466 
467 	public void setSeguranca(SegurancaECAR seguranca) {
468 		this.seguranca = seguranca;
469 	}
470 
471 	public String getTipoSelecao() {
472 		return tipoSelecao;
473 	}
474 
475 	public void setTipoSelecao(String tipoSelecao) {
476 		this.tipoSelecao = tipoSelecao;
477 	}
478 }