View Javadoc

1   /*
2    * Criado em 16/02/2005
3    */ 
4   package ecar.taglib.util;
5   
6   import java.util.Collection;
7   import java.util.Collections;
8   import java.util.Iterator;
9   import java.util.List;
10  import java.util.Set;
11  
12  import javax.servlet.http.HttpServletRequest;
13  import javax.servlet.jsp.JspException;
14  import javax.servlet.jsp.JspWriter;
15  import javax.servlet.jsp.tagext.TagSupport;
16  
17  import ecar.dao.AbaDao;
18  import ecar.dao.PontoCriticoDao;
19  import ecar.exception.ECARException;
20  import ecar.pojo.Aba;
21  import ecar.pojo.AcompReferenciaItemAri;
22  import ecar.pojo.UsuarioUsu;
23  
24  /** 
25   * @author felipev
26   *
27   */
28  public class BarraLinksRegAcompSuperiorTag extends TagSupport{
29      
30      /**
31  	 * 
32  	 */
33  	private static final long serialVersionUID = -6728974818698770839L;
34  
35  	private AcompReferenciaItemAri acompReferenciaItem;
36      private UsuarioUsu usuario;
37      private String selectedFuncao;
38      private AcompReferenciaItemAri acompReferenciaItemSubNivel;
39      private String primeiroAcomp;
40      private HttpServletRequest request;
41      private String tela;
42      private Set gruposUsuario;
43  
44      
45      //private String srcImg;
46  
47      private static final String PATH_ACOMP = "/regAcompanhamento/elabAcompanhamento/";
48  
49  
50  	/**
51       * Inicializa a montagem da tag para ser adicionada na tela de HTML.<br>
52       * 
53       * @author N/C
54  	 * @since N/C
55  	 * @version N/C
56  	 * @return int
57  	 * @throws JspException
58       */
59  	@Override
60  	public int doStartTag() throws JspException {
61  
62          JspWriter writer = this.pageContext.getOut();
63          try {
64          	StringBuffer s = new StringBuffer();
65          	//srcImg = "";
66          	s.append("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" id=\"abas\"><tr><td>");
67  			
68  			/* Aba de relação dos Itens, é fixa não está no banco */
69          	String situacaoAba = "abadesabilitada";
70              if("RELACAO".equals(selectedFuncao))
71                  situacaoAba = "abahabilitada";
72              
73              String linkPrimeiro = "";
74              if(!"".equals(primeiroAcomp))
75              	linkPrimeiro = "primeiroAcomp=" + primeiroAcomp + "&";
76              
77              String link = request.getContextPath() + PATH_ACOMP + "listaItens.jsp?" + linkPrimeiro + "codAcomp=" + acompReferenciaItem.getAcompReferenciaAref().getCodAref()+"&";
78  
79              if(getTela() != null && !getTela().equals("") && getTela().equals("acompanhamento")) {
80  				//entra aqui no caso de ser chamado pela nova tela de monitoramento
81              	link = "javascript:voltarTelaAnterior('../posicaoGeral.jsp');";
82              	criaAbaMonitoramento(situacaoAba, link, "Relação", s);
83              } else {
84              	criaAba(situacaoAba, link, "Relação", s);
85              }
86              /* **** FIM - Aba de relação dos Itens, é fixa não está no banco */
87              
88              //---------------------------------------------------------------------------
89              //situacaoAba = "abadesabilitada";
90              //if("PARECER".equals(selectedFuncao))
91              //    situacaoAba = "abahabilitada";
92              
93              //link = request.getContextPath() + PATH_ACOMP + "parecer.jsp?" + linkPrimeiro + "codAcomp=" + acompReferenciaItem.getAcompReferenciaAref().getCodAref()+"&";         
94              
95              //criaAba(situacaoAba, link, "Parecer", s);
96              //---------------------------------------------------------------------------
97                          
98              AbaDao abaDao = new AbaDao(null);
99  			
100 			for  (Iterator it = abaDao.getListaAbasComAcesso(acompReferenciaItem.getAcompReferenciaAref().getTipoAcompanhamentoTa(), gruposUsuario).iterator();it.hasNext();) {
101 				Aba aba = (Aba) it.next();
102 				
103 				if (!"NIVEL_PLANEJAMENTO".equals(aba.getNomeAba())) {
104 					situacaoAba = "abadesabilitada";
105 
106 					if (selectedFuncao.equals(aba.getNomeAba())) {
107 						situacaoAba = "abahabilitada";
108 					} else if ("PONTOS_CRITICOS".equals(aba.getNomeAba())) {
109 						// verificação dos pontos críticos
110 						try {
111 							PontoCriticoDao pontoCriticoDao = new PontoCriticoDao(
112 									null);
113 							Collection pontosCriticos = Collections.EMPTY_LIST;
114 							pontosCriticos = pontoCriticoDao
115 									.getPontosCriticosNaoSolucionados(acompReferenciaItem
116 											.getItemEstruturaIett());
117 
118 							if (pontoCriticoDao
119 									.verificaDatasUltrapassadas(pontosCriticos)) {
120 								situacaoAba = "abapontocritico";
121 							}
122 						} catch (Exception e) {
123 							situacaoAba = "abadesabilitada";
124 						}
125 						// fim - verificação dos pontos críticos
126 					}
127 					// precisa melhorar isto aqui, é preciso armazenar em alguma
128 					// estrutura
129 					if(getTela() != null && !getTela().equals("") && getTela().equals("acompanhamento")) {
130 						//entra aqui no caso de ser chamado pela nova tela de monitoramento
131 						link = "";
132 						if ("DADOS_GERAIS".equals(aba.getNomeAba())) {
133 							link += "javaScript:trocarAba('../dadosGerais/frm_con.jsp');";
134 						} else if ("EVENTOS".equals(aba.getNomeAba())) {
135 							link += "javaScript:trocarAba('../realizacoes/eventos.jsp');";
136 						} else if ("PONTOS_CRITICOS".equals(aba.getNomeAba())) {
137 							link += "javaScript:trocarAba('../restricoes/pontosCriticos.jsp');";
138 						} else if(aba.getNomeAba().equals("SITUACAO_DATAS")) {
139 							link += "javaScript:trocarAba('../situacaoDatas/situacaoDatas.jsp');";
140 						} else if ("GALERIA".equals(aba.getNomeAba())) {
141 							link += "javaScript:trocarAba('../galeria/galeria.jsp');";
142 						} else if ("FINANCEIRO".equals(aba.getNomeAba())) {
143 							link += "javaScript:trocarAba('../financeiro/financeiro.jsp');";
144 						} else if("RELACAO".equals(aba.getNomeAba())){
145 			            	link += "javascript:voltarTelaAnterior('../detalharItem.jsp');";
146 			            } else if ("REL_FISICO_IND_RESULTADO".equals(aba.getNomeAba())) {
147 							link += "javaScript:trocarAba('../resultado/indicadoresResultado.jsp');";
148 						} else if (aba.getNomeAba().equals("SITUACAO_INDICADORES")) { 
149 							link += "javaScript:trocarAba('../situacaoIndicadores/situacaoIndicadores.jsp');";
150 						}	else if ("ETAPA".equals(aba.getNomeAba())) {
151 							link += "javaScript:trocarAba('../etapa/etapas.jsp');";
152 						} else if ("DATAS_LIMITES".equals(aba.getNomeAba())) {
153 							link += "javaScript:trocarAba('../datasLimites/datasLimites.jsp');";
154 						} else if("SITUACAO".equals(aba.getNomeAba())){
155 							link += "javaScript:trocarAba('../situacao/relatorios.jsp');";
156 						}
157 
158 					} else {
159 						link = request.getContextPath() + PATH_ACOMP;
160 						if ("DADOS_GERAIS".equals(aba.getNomeAba())) {
161 							link += "dadosGerais/frm_con.jsp?" + linkPrimeiro;
162 						} else if ("EVENTOS".equals(aba.getNomeAba())) {
163 							link += "realizacoes/eventos.jsp?" + linkPrimeiro;
164 						} else if ("PONTOS_CRITICOS".equals(aba.getNomeAba())) {
165 							link += "pontosCriticos.jsp?" + linkPrimeiro;
166 						} else if ("GALERIA".equals(aba.getNomeAba())) {
167 							link += "galeria.jsp?" + linkPrimeiro;
168 						} else if ("FINANCEIRO".equals(aba.getNomeAba())) {
169 							link += "financeiro.jsp?" + linkPrimeiro;
170 						} else if("SITUACAO".equals(aba.getNomeAba())){
171 			            	link += "situacao.jsp?"+linkPrimeiro;
172 			            } else if ("REL_FISICO_IND_RESULTADO".equals(aba.getNomeAba())) {
173 							link += "realizadoFisico.jsp?" + linkPrimeiro;
174 						} else if ("ETAPA".equals(aba.getNomeAba())) {
175 							link += "Etapas/frm_con.jsp?" + linkPrimeiro;
176 						} else if ("DATAS_LIMITES".equals(aba.getNomeAba())) {
177 							link += "datasLimites.jsp?" + linkPrimeiro;
178 						}		            
179 						if (acompReferenciaItemSubNivel != null) {
180 							link += "codAriSubNivel="
181 									+ acompReferenciaItemSubNivel.getCodAri() + "&";
182 						}
183 					}
184 		            
185 				}
186 		            
187 				// criaAba(situacaoAba, link, aba.getLabelAba(),s);
188 				if(getTela() != null && !getTela().equals("") && getTela().equals("acompanhamento")) {
189 					//entra aqui no caso de ser chamado pela nova tela de monitoramento
190 					criaAbaMonitoramento(situacaoAba, link, aba,s);
191 				} else {
192 					criaAba(situacaoAba, link, aba,s);
193 				}
194 			}
195             
196             s.append("</td></tr></table>");
197             writer.print(s.toString());
198         } catch (Exception e) {
199         	e.printStackTrace();
200         }
201         return BarraLinksRegAcompSuperiorTag.SKIP_BODY;
202 
203     }
204 	
205 	
206 	/**
207 	 * Cria Aba.<br>
208 	 * 
209 	 * @author N/C
210 	 * @since N/C
211 	 * @version N/C
212 	 * @param String situacaoAba
213 	 * @param String link
214 	 * @param String label
215 	 * @param StringBuffer s
216 	 * @throws ECARException
217 	 */
218 	private void criaAba(String situacaoAba, String link, String label, StringBuffer s) throws ECARException{
219 		link += "codAri=" + acompReferenciaItem.getCodAri() + "&codAcomp=" + acompReferenciaItem.getAcompReferenciaAref().getCodAref();
220 		
221 		s.append("<table class=\"").append(situacaoAba).append("\"><tr><td nowrap>");            
222         s.append("<a href=\"").append(link).append("\">");
223         s.append(label);
224         s.append("</a>");
225         s.append("</td></tr></table>");
226     }
227 	
228 	private void criaAba(String situacaoAba, String link, Aba aba, StringBuffer s) throws ECARException{
229 		link += "codAri=" + acompReferenciaItem.getCodAri() + "&codAcomp=" + acompReferenciaItem.getAcompReferenciaAref().getCodAref();
230 		if (aba.getFuncaoFun() != null) {
231 			link += "&codAba=" + aba.getFuncaoFun().getCodFun().toString();
232 		}
233 		
234 		s.append("<table class=\"").append(situacaoAba).append("\"><tr><td nowrap>");            
235         s.append("<a href=\"").append(link).append("\">");
236         s.append(aba.getLabelAba());
237         s.append("</a>");
238         s.append("</td></tr></table>");
239     }
240 	
241 	private void criaAbaMonitoramento(String situacaoAba, String link, Aba aba, StringBuffer s) throws ECARException{	
242 		s.append("<table class=\"").append(situacaoAba).append("\"><tr><td nowrap>");            
243         s.append("<a href=\"").append(link).append("\">");
244         s.append(aba.getLabelAba());
245         s.append("</a>");
246         s.append("</td></tr></table>");
247     }
248 	
249 	private void criaAbaMonitoramento(String situacaoAba, String link, String aba, StringBuffer s) throws ECARException{	
250 		s.append("<table class=\"").append(situacaoAba).append("\"><tr><td nowrap>");            
251         s.append("<a href=\"").append(link).append("\">");
252         s.append(aba);
253         s.append("</a>");
254         s.append("</td></tr></table>");
255     }
256 
257 	/**
258 	 * Encerra Tag.<br>
259 	 * 
260 	 * @author N/C
261 	 * @since N/C
262 	 * @version N/C
263 	 * @return int
264 	 * @throws JspException
265 	 */
266     @Override
267 	public int doEndTag() throws JspException {
268         /* processa o restante da página jsp */
269         return BarraLinksRegAcompSuperiorTag.EVAL_PAGE;
270     }
271 
272     public String getTela() {
273 		return tela;
274 	}
275 
276 
277 	public void setTela(String tela) {
278 		this.tela = tela;
279 	}
280 
281 	/**
282      * Retorna AcompReferenciaItemAri acompReferenciaItem.<br>
283      * 
284      * @author N/C
285 	 * @since N/C
286 	 * @version N/C
287      * @return AcompReferenciaItemAri - (Returns the acompReferenciaItem)
288      */
289     public AcompReferenciaItemAri getAcompReferenciaItem() {
290         return acompReferenciaItem;
291     }
292     /**
293      * Atribui valor especificado para AcompReferenciaItemAri acompReferenciaItem.<br>
294      * 
295      * @author N/C
296 	 * @since N/C
297 	 * @version N/C
298      * @param AcompReferenciaItemAri acompReferenciaItem - (The acompReferenciaItem to set)
299      */
300     public void setAcompReferenciaItem(AcompReferenciaItemAri acompReferenciaItem) {
301         this.acompReferenciaItem = acompReferenciaItem;
302     }
303     
304     /**
305      * Retorna valor especificado para String selectedFuncao.<br>
306      * 
307      * @author N/C
308 	 * @since N/C
309 	 * @version N/C
310      * @return String - (Returns the selectedFuncao)
311      */
312     public String getSelectedFuncao() {
313         return selectedFuncao;
314     }
315     /**
316      * Atribui valor especificado para String selectedFuncao.<br>
317      * 
318      * @author N/C
319 	 * @since N/C
320 	 * @version N/C
321      * @param String selectedFuncao - (The selectedFuncao to set)
322      */
323     public void setSelectedFuncao(String selectedFuncao) {
324         this.selectedFuncao = selectedFuncao;
325     }
326     
327     /**
328      * Retorna UsuarioUsu usuario.<br>
329      * 
330      * @author N/C
331 	 * @since N/C
332 	 * @version N/C
333      * @return UsuarioUsu - (Returns the usuario)
334      */
335     public UsuarioUsu getUsuario() {
336         return usuario;
337     }
338     
339     /**
340      * Atribui valor especificado para UsuarioUsu usuario.<br>
341      * 
342      * @author N/C
343 	 * @since N/C
344 	 * @version N/C
345      * @param UsuarioUsu usuario - (The usuario to set)
346      */
347     public void setUsuario(UsuarioUsu usuario) {
348         this.usuario = usuario;
349     }
350 
351     /**
352      * Retorna AcompReferenciaItemAri acompReferenciaItemSubNivel.<br>
353      * 
354      * @author N/C
355 	 * @since N/C
356 	 * @version N/C
357      * @return AcompReferenciaItemAri
358      */
359 	public AcompReferenciaItemAri getAcompReferenciaItemSubNivel() {
360 		return acompReferenciaItemSubNivel;
361 	}
362 
363 	/**
364 	 * Atribui valor especificado para AcompReferenciaItemAri acompReferenciaItemSubNivel.<br>
365 	 * 
366 	 * @author N/C
367 	 * @since N/C
368 	 * @version N/C
369 	 * @param AcompReferenciaItemAri acompReferenciaItemSubNivel
370 	 */
371 	public void setAcompReferenciaItemSubNivel(AcompReferenciaItemAri acompReferenciaItemSubNivel) {
372 		this.acompReferenciaItemSubNivel = acompReferenciaItemSubNivel;
373 	}
374 
375 	/**
376 	 * Retorna String primeiroAcomp.<br>
377 	 * 
378 	 * @author N/C
379 	 * @since N/C
380 	 * @version N/C
381 	 * @return String
382 	 */
383 	public String getPrimeiroAcomp() {
384 		return primeiroAcomp;
385 	}
386 
387 	/**
388 	 * Atribui valor especificado para String primeiroAcomp.<br>
389 	 * 
390 	 * @author N/C
391 	 * @since N/C
392 	 * @version N/C
393 	 * @param String primeiroAcomp
394 	 */
395 	public void setPrimeiroAcomp(String primeiroAcomp) {
396 		this.primeiroAcomp = primeiroAcomp;
397 	}
398 	
399     /**
400      * @return HttpServletRequest
401      */
402     public HttpServletRequest getRequest() {
403 		return request;
404 	}
405 
406     /**
407      * @param request 
408      */
409     public void setRequest(HttpServletRequest request) {
410 		this.request = request;
411 	}
412 
413 
414 	public void setGruposUsuario(Set gruposUsuario) {
415 		this.gruposUsuario = gruposUsuario;
416 	}
417 }