View Javadoc

1   /*
2    * Criado em 14/12/2004
3    *
4    */
5   package ecar.taglib.util;
6   
7   import java.util.ArrayList;
8   import java.util.Collection;
9   import java.util.Collections;
10  import java.util.Comparator;
11  import java.util.Iterator;
12  import java.util.List;
13  
14  import javax.servlet.jsp.JspException;
15  import javax.servlet.jsp.JspWriter;
16  import javax.servlet.jsp.tagext.Tag;
17  import javax.servlet.jsp.tagext.TagSupport;
18  
19  import comum.util.Util;
20  
21  import ecar.dao.ItemEstruturaDao;
22  import ecar.dao.PontoCriticoDao;
23  import ecar.pojo.EstruturaEtt;
24  import ecar.pojo.EstruturaFuncaoEttf;
25  import ecar.pojo.ItemEstruturaIett;
26  
27  /**
28   * @author felipev
29   *  
30   */
31  public class BarraLinksItemEstruturaTag extends TagSupport {
32  	private static final long serialVersionUID = -4120193640057668093L;
33  
34  	private EstruturaEtt estrutura;
35      private String selectedFuncao;
36      private String codItemEstrutura;
37      private Boolean desabilitarLinks;
38      private String contextPath;
39  
40      /**
41       * Inicializa a montagem da tag para ser adicionada na tela de HTML.<br>
42       * 
43       * @author N/C
44  	 * @since N/C
45  	 * @version N/C
46  	 * @return int
47  	 * @throws JspException
48       */
49  	public int doStartTag() throws JspException {
50          JspWriter writer = this.pageContext.getOut();
51          try {
52          	StringBuffer s = new StringBuffer();
53              s.append("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" id=\"abas\"><tr><td>");
54              List funcoes = new ArrayList( getEstrutura().getEstruturaFuncaoEttfs());
55              Collections.sort(funcoes, new Comparator(){
56  	            public int compare(Object arg0, Object arg1) {
57  					EstruturaFuncaoEttf ef1 = (EstruturaFuncaoEttf) arg0;
58  					EstruturaFuncaoEttf ef2 = (EstruturaFuncaoEttf) arg1;
59  					
60  					Integer seq1 = ef1.getSeqApresentacaoTelaEttf();
61  					Integer seq2 = ef2.getSeqApresentacaoTelaEttf();
62  					
63  					if(seq1 == null && seq2 == null)
64  						return 0;
65  					if(seq1 != null && seq2 == null)
66  						return 1;
67  					if(seq1 == null && seq2 != null)
68  						return -1;
69  					return ef1.getSeqApresentacaoTelaEttf().compareTo(ef2.getSeqApresentacaoTelaEttf());
70  	            }
71              });
72  
73              //Aba Fixa: Dados Gerais
74              if(getSelectedFuncao() != null && !"".equals(getSelectedFuncao()))
75              	s.append("<table class=\"abadesabilitada\"><tr><td nowrap>");
76              else
77              	s.append("<table class=\"abahabilitada\"><tr><td nowrap>");
78              
79              if (desabilitarLinks == null || desabilitarLinks.booleanValue() == false) {
80                  s.append("<a href=\"../dadosGerais/frm_con.jsp?")
81                   .append("codIett=").append(getCodItemEstrutura()).append("\">");
82              }
83              s.append("Dados Gerais");
84              if (desabilitarLinks == null || desabilitarLinks.booleanValue() == false)
85                  s.append("</a>");
86              
87              s.append("</td></tr></table>");
88              // Fim Dados Gerais
89              
90              
91              Iterator it = funcoes.iterator();
92              
93              while (it.hasNext()) {
94                  EstruturaFuncaoEttf estruturaFuncao = (EstruturaFuncaoEttf) it.next();
95                  if (!"N".equals(estruturaFuncao.getFuncaoFun().getIndOpcionalFun())
96                          && !"N".equals(estruturaFuncao.getFuncaoFun().getIndAtivoFun())
97                          && estruturaFuncao.getFuncaoFun().getLinkFuncaoFun() != null) {
98  
99                      String tipoAba = "abadesabilitada";
100                     
101                     if (!"".equals(getSelectedFuncao())) {
102                         if (estruturaFuncao.getFuncaoFun().getCodFun().equals(Long.valueOf(getSelectedFuncao()))) {
103                         	tipoAba = "abahabilitada";
104                         }
105                     }
106                    if ("Pontos Críticos".equals(estruturaFuncao.getLabelEttf())) {
107 		            	// verificação dos pontos críticos
108 			        	try {
109 			        		ItemEstruturaDao itemEstruturaDao = new ItemEstruturaDao(null);
110 			        		ItemEstruturaIett itemEstrutura = (ItemEstruturaIett) itemEstruturaDao.buscar(ItemEstruturaIett.class, Long.valueOf(getCodItemEstrutura()));
111 			        		PontoCriticoDao pontoCriticoDao = new PontoCriticoDao(null);
112 			    	    	Collection pontosCriticos = Collections.EMPTY_LIST;
113 			    	    	pontosCriticos = pontoCriticoDao.getAtivos(itemEstrutura);
114 			    	    	
115 			    	    	if (pontoCriticoDao.verificaDatasUltrapassadas(pontosCriticos)) {
116 			    	    		tipoAba = "abapontocritico"; 
117 			    	    	}
118 			        	} catch (Exception e) {
119 			        		tipoAba = "abadesabilitada"; 
120 			        	}
121 			            //fim - verificação dos pontos críticos
122 		            }
123                     
124                     s.append("<table class=\"").append(tipoAba).append("\"><tr>");
125                 	s.append("<td nowrap>");
126                 	
127                     if (desabilitarLinks == null || desabilitarLinks.booleanValue() == false) {
128                         s.append("<a href=\"../").append(estruturaFuncao.getFuncaoFun().getLinkFuncaoFun())
129                          .append("?codAba=").append(estruturaFuncao.getFuncaoFun().getCodFun()).append("&codIett=")
130                          .append(getCodItemEstrutura()).append("\">");
131                     }
132                     //s.append(estruturaFuncao.getFuncaoFun().getLabelPadraoFun());
133                     s.append(estruturaFuncao.getLabelEttf());
134                     if (desabilitarLinks == null || desabilitarLinks.booleanValue() == false)
135                         s.append("</a>");
136                     
137                     // Mantis #8688. Por Rogério (22/03/2007)
138                     // Aplica a dica com imagem pra chamar a atenção do usuário.
139                     if (estruturaFuncao.getDicaEttf() != null && !"".equals(estruturaFuncao.getDicaEttf()) )
140                     	s.append(Util.getTagDica(estruturaFuncao.getFuncaoFun().getNomeFun(), this.getContextPath(), estruturaFuncao.getDicaEttf()));
141                    	
142                     s.append("</td></tr></table>");
143                 }
144 
145             }
146             s.append("</td></tr></table>");
147             writer.print(s.toString());
148         } catch (Exception e) {
149         	org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
150         }
151         return Tag.SKIP_BODY;
152 
153     }
154 
155 	/**
156 	 * Encerra Tag.<br>
157 	 * 
158 	 * @author N/C
159 	 * @since N/C
160 	 * @version N/C
161 	 * @return int
162 	 * @throws JspException
163 	 */
164     public int doEndTag() throws JspException {
165         /* processa o restante da página jsp */
166         return Tag.EVAL_PAGE;
167     }
168 
169     /**
170      * Retorna String selectedFuncao.<br>
171      * 
172      * @author N/C
173 	 * @since N/C
174 	 * @version N/C
175      * @return String - (Returns the selectedEstrutura)
176      */
177     public String getSelectedFuncao() {
178         return selectedFuncao;
179     }
180 
181     /**
182      * Atribui valor especificado para String selectedFuncao.<br>
183      * 
184      * @author N/C
185 	 * @since N/C
186 	 * @version N/C
187      * @param String selectedEstrutura - (The selectedEstrutura to set)
188      */
189     public void setSelectedFuncao(String selectedEstrutura) {
190         this.selectedFuncao = selectedEstrutura;
191     }
192 
193     /**
194      * Retorna EstruturaEtt estrutura.<br>
195      * 
196      * @author N/C
197 	 * @since N/C
198 	 * @version N/C
199      * @return EstruturaEtt - (Returns the estrutura)
200      */
201     public EstruturaEtt getEstrutura() {
202         return estrutura;
203     }
204 
205     /**
206      * Atribui valor especificado para EstruturaEtt estrutura.<br>
207      * 
208      * @author N/C
209 	 * @since N/C
210 	 * @version N/C
211      * @param EstruturaEtt estrutura - (The estrutura to set)
212      */
213     public void setEstrutura(EstruturaEtt estrutura) {
214         this.estrutura = estrutura;
215     }
216 
217     /**
218      * Retorna String codItemEstrutura.<br>
219      * 
220      * @author N/C
221 	 * @since N/C
222 	 * @version N/C
223      * @return String - (Returns the codItemEstrutura)
224      */
225     public String getCodItemEstrutura() {
226         return codItemEstrutura;
227     }
228 
229     /**
230      * Atribui valor especificado para String codItemEstrutura.<br>
231      * 
232      * @author N/C
233 	 * @since N/C
234 	 * @version N/C
235      * @param String codItemEstrutura - (The codItemEstrutura to set)
236      */
237     public void setCodItemEstrutura(String codItemEstrutura) {
238         this.codItemEstrutura = codItemEstrutura;
239     }
240 
241     /**
242      * Retorna Boolean desabilitarLinks.<br>
243      * 
244      * @author N/C
245 	 * @since N/C
246 	 * @version N/C
247      * @return Boolean - (Returns the desabilitarLinks)
248      */
249     public Boolean getDesabilitarLinks() {
250         return desabilitarLinks;
251     }
252 
253     /**
254      * Atribui valor especificado para Boolean desabilitarLinks.<br>
255      * 
256      * @author N/C
257 	 * @since N/C
258 	 * @version N/C
259      * @param Boolean desabilitarLinks - (The desabilitarLinks to set)
260      */
261     public void setDesabilitarLinks(Boolean desabilitarLinks) {
262         this.desabilitarLinks = desabilitarLinks;
263     }
264     
265     /**
266      * Retorna String contextPath.<br>
267      * 
268      * @author N/C
269 	 * @since N/C
270 	 * @version N/C
271      * @return String
272      */
273     public String getContextPath() {
274 		return contextPath;
275 	}
276 
277     /**
278      * Atribui valor especificado para String contextPath.<br>
279      * 
280      * @author N/C
281 	 * @since N/C
282 	 * @version N/C
283      * @param String contextPath
284      */
285 	public void setContextPath(String contextPath) {
286 		this.contextPath = contextPath;
287 	}
288 }