View Javadoc

1   /*
2    * Criado em 06/04/2005
3    *
4    */
5   package ecar.taglib.util;
6   
7   import java.util.Iterator;
8   import java.util.List;
9   
10  import javax.servlet.jsp.JspException;
11  import javax.servlet.jsp.JspWriter;
12  import javax.servlet.jsp.tagext.Tag;
13  import javax.servlet.jsp.tagext.TagSupport;
14  
15  import ecar.exception.ECARException;
16  
17  /**
18   * @author felipev
19   *
20   */
21  public class BarraLinksRelatorioItens extends TagSupport{
22  
23  	private static final long serialVersionUID = 2869225621544161026L;
24  	
25  	private String chamarPagina;
26  	private String complementoRequest;
27  	private List itensBarra;
28  	private int indexAtivo;
29  	private String semLinks;
30  	
31  	private static final String ABA_HABILITADA = "abarelatoriohabilitada";
32  	private static final String ABA_DESABILITADA = "abarelatoriodesabilitada";
33  
34  	/**
35  	 * Inicializa a montagem da tag para ser adicionada na tela de HTML.<br>
36  	 * 
37  	 * @author N/C
38  	 * @since N/C
39  	 * @version N/C
40  	 * @return int
41  	 * @throws JspException
42  	 */
43  	public int doStartTag() throws JspException {
44          JspWriter writer = this.pageContext.getOut();
45          try {
46              StringBuffer s = new StringBuffer();
47              
48              if(itensBarra != null && itensBarra.size() > 0){
49              	
50              	s.append("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" id=\"abastipoacompanhamento\">")
51              	 .append("<tr>")
52              	 .append("<td class=\"texto_negrito\">");
53              	
54              	Iterator itItens = itensBarra.iterator();
55      			
56              	int index = 0;
57          		while (itItens.hasNext()) {
58          			String item = (String) itItens.next();
59          			
60          			String situacaoAba = ABA_DESABILITADA;
61                      if(index == indexAtivo) {
62                          situacaoAba = ABA_HABILITADA;
63                      }
64                      
65                      String comp = "";
66                      if(complementoRequest != null)
67                      	comp = complementoRequest;
68                      
69                      criaAba(item, getChamarPagina() + "?proximaAba=" + index + comp, situacaoAba, s);
70                      index++;
71          		}
72          		
73                  s.append("</td>")
74                   .append("</tr>")
75                   .append("</table>");
76          	}
77  
78              writer.print(s.toString());
79          } catch (Exception e) {
80        ;
81          }
82          return Tag.SKIP_BODY;
83  
84      }
85      
86  	/**
87  	 * Cria Aba.<br>
88  	 * 
89  	 * @author N/C
90  	 * @since N/C
91  	 * @version N/C
92  	 * @param String label
93  	 * @param String pagina
94  	 * @param String situacaoAba
95  	 * @param StringBuffer s
96  	 * @throws ECARException
97  	 */
98      private void criaAba(String label, String pagina, String situacaoAba, StringBuffer s) throws ECARException{
99          s.append("<table class=\"").append(situacaoAba).append("\">")
100          .append("<tr>")
101          .append("<td nowrap>");
102         
103         if(!"S".equals(getSemLinks())){
104         	s.append("<a href=\"").append(pagina).append("\">");
105         }
106 
107 		s.append(label);
108 		
109         if(!"S".equals(getSemLinks())){
110         	s.append("</a>");
111         }
112         
113         s.append("</td>")
114          .append("</tr>")
115          .append("</table>");            
116     }
117 
118     /**
119      * Encerra Tag.<br>
120      * 
121      * @author N/C
122 	 * @since N/C
123 	 * @version N/C
124 	 * @return int
125 	 * @throws JspException
126      */
127     public int doEndTag() throws JspException {
128         /* processa o restante da página jsp */
129         return Tag.EVAL_PAGE;
130     }
131 
132     /**
133      * Retorna String chamarPagina.<br>
134      * 
135      * @author N/C
136 	 * @since N/C
137 	 * @version N/C
138      * @return String
139      */
140     public String getChamarPagina() {
141 		return chamarPagina;
142 	}
143 
144     /**
145      * Atribui valor especificado para String chamarPagina.<br>
146      * 
147      * @author N/C
148 	 * @since N/C
149 	 * @version N/C
150      * @param String chamarPagina
151      */
152 	public void setChamarPagina(String chamarPagina) {
153 		this.chamarPagina = chamarPagina;
154 	}
155 
156 	/**
157 	 * Retorna int indexAtivo.<br>
158 	 * 
159 	 * @author N/C
160 	 * @since N/C
161 	 * @version N/C
162 	 * @return int
163 	 */
164 	public int getIndexAtivo() {
165 		return indexAtivo;
166 	}
167 
168 	/**
169 	 * Atribui valor especificado para int indexAtivo.<br>
170 	 * 
171 	 * @author N/C
172 	 * @since N/C
173 	 * @version N/C
174 	 * @param int indexAtivo
175 	 */
176 	public void setIndexAtivo(int indexAtivo) {
177 		this.indexAtivo = indexAtivo;
178 	}
179 
180 	/**
181 	 * Retorna List itensBarra.<br>
182 	 * 
183 	 * @author N/C
184 	 * @since N/C
185 	 * @version N/C
186 	 * @return List
187 	 */
188 	public List getItensBarra() {
189 		return itensBarra;
190 	}
191 
192 	/**
193 	 * Atribui valor especificado para List itensBarra.<br>
194 	 * 
195 	 * @author N/C
196 	 * @since N/C
197 	 * @version N/C
198 	 * @param List itensBarra
199 	 */
200 	public void setItensBarra(List itensBarra) {
201 		this.itensBarra = itensBarra;
202 	}
203 
204 	/**
205 	 * Retorna String complementoRequest
206 	 * 
207 	 * @author N/C
208 	 * @since N/C
209 	 * @version N/C
210 	 * @return String
211 	 */
212 	public String getComplementoRequest() {
213 		return complementoRequest;
214 	}
215 
216 	/**
217 	 * Atribui valor especificado para String complementoRequest.<br>
218 	 * 
219 	 * @author N/C
220 	 * @since N/C
221 	 * @version N/C
222 	 * @param String complementoRequest
223 	 */
224 	public void setComplementoRequest(String complementoRequest) {
225 		this.complementoRequest = complementoRequest;
226 	}
227 
228 	/**
229 	 * Retorna String semLinks.<br>
230 	 * 
231 	 * @author N/C
232 	 * @since N/C
233 	 * @version N/C
234 	 * @return String
235 	 */
236 	public String getSemLinks() {
237 		return semLinks;
238 	}
239 
240 	/**
241 	 * Atribui valor especificado para String semLinks.<br>
242 	 * 
243 	 * @author N/C
244 	 * @since N/C
245 	 * @version N/C
246 	 * @param String semLinks
247 	 */
248 	public void setSemLinks(String semLinks) {
249 		this.semLinks = semLinks;
250 	}
251 }