View Javadoc

1   /*
2    * Created on 11/07/2005
3    *
4    */
5   package ecar.portal;
6   
7   import java.util.ArrayList;
8   import java.util.Iterator;
9   import java.util.List;
10  
11  import javax.servlet.http.HttpServletRequest;
12  
13  import comum.util.Data;
14  import comum.util.Util;
15  
16  import ecar.dao.AgendaOcorrenciaDao;
17  import ecar.dao.DestaqueSubAreaDao;
18  import ecar.dao.SegmentoItemDao;
19  import ecar.exception.ECARException;
20  import ecar.pojo.AgendaOcorrenciaAgeo;
21  import ecar.pojo.DestaqueSubAreaDtqsa;
22  import ecar.pojo.SegmentoItemLeiauteSgtil;
23  import ecar.pojo.SegmentoItemSgti;
24  import ecar.portal.bean.InformacaoBean;
25  import ecar.portal.bean.SecaoBean;
26  
27  /**
28   * Classe que carrega informações para serem exibidas na tela principal do portal.<br>
29   * @author cristiano
30   */
31  
32  public class CapaPrincipal extends Portal {
33  	
34  	private static final String ID_SECAO_SUPER_DESTAQUE = "SECAO_SUPER_DESTAQUE"; 
35  	private static final String ID_SECAO_MAIS_ARTIGOS = "SECAO_MAIS_ARTIGOS"; 
36  	private static final String ID_SECAO_AGENDA = "SECAO_AGENDA"; 
37  	private static final String ID_SECAO_TAXACAO_CLIP = "SECAO_TAXACAO_CLIP"; 
38  	private static final String ID_SECAO_SUB_AREA_DESTAQUE = "SECAO_SUB_AREA_DESTAQUE"; 
39  
40  	// DAOs acessados pela classe
41  	private SegmentoItemDao segmentoItemDao = null;
42  	private AgendaOcorrenciaDao agendaOcorrenciaDao = null;
43  
44  	/**
45       * Construtor.<br>
46       * 
47       * @author N/C
48       * @since N/C
49       * @version N/C
50       * @param HttpServletRequest request
51       * @throws ECARException
52       */
53  	public CapaPrincipal(HttpServletRequest request) throws ECARException {
54  		super(request);
55  
56  		this.segmentoItemDao = new SegmentoItemDao(null);
57  		
58  		this.carregarMenuNavegacao();
59  		this.carregarSuperDestaqueArtigos();
60  		this.carregarMaisArtigos();
61  		this.carregarAgenda();
62  		this.carregarTaxacaoClip();
63  		this.carregarAreaSubAreaDestaque();
64  	}
65      
66      
67      /**
68       * Método para retornar o DAO da tabela SegmentoItem.<br>
69       * 
70       * @author N/C
71       * @since N/C
72       * @version N/C
73       * @return SegmentoItemDao
74       */
75  	private SegmentoItemDao getSegmentoItemDao() {
76  		return segmentoItemDao;
77  	}
78  
79  	/**
80       * Método para popular a seção de MENU DE NAVEGAÇÃO do PortalBean.<br>
81       * 
82       * @author N/C
83       * @since N/C
84       * @version N/C
85       * @throws ECARException
86       */
87  	private void carregarMenuNavegacao() throws ECARException {
88  		// falta programar (mesma idéia do método carregarSuperDestaqueArtigos())
89  	}
90      
91      /**
92       * Método para popular a seção de SUPER-DESTAQUE ARTIGOS do PortalBean.<br>
93       * 
94       * @author N/C
95       * @since N/C
96       * @version N/C
97       * @throws ECARException
98       */
99  	private void carregarSuperDestaqueArtigos() throws ECARException {
100 		SegmentoItemSgti seg = this.getSegmentoItemDao().getSegmentoItemSuperDestaque(
101 				this.getRequest().getSession().getServletContext());
102 		
103 		if(seg != null) {
104 			SecaoBean secaoBean = new SecaoBean();
105 			
106 			secaoBean.setId(ID_SECAO_SUPER_DESTAQUE);
107 			secaoBean.setTitulo(seg.getTituloSgti());
108 			
109 			ArrayList list = new ArrayList();
110 			
111 			InformacaoBean info = new InformacaoBean();
112 			info.setDataHora(Data.parseDate(seg.getDataItemSgti()));
113 			info.setDescricao(seg.getLinhaApoioSgti());
114 			info.setImagem(new ecar.dao.ConfiguracaoDao(null).getConfiguracao().getRaizUpload() + seg.getImagemCapaSgti());
115 			info.setLink(seg.getSegmentoItemLeiauteSgtil().getLinkSgtil());
116 			info.setLinkMais("ctrl_artigos.jsp");
117 			info.setTitulo(seg.getLegendaImagCapaSgti());
118 			info.setCodSgti(seg.getCodSgti());
119 			info.setFonte(seg.getSegmentoItemFonteSgtif().getDescricaoSgtif());
120 			
121 			list.add(info);
122 			
123 			secaoBean.setInformacaoBean(list);
124 
125 			this.portalBean.adicionarElementoNoSecaoBean(secaoBean);
126 		}
127 	}
128 
129     /**
130      * Método para popular a seção de MAIS ARTIGOS do PortalBean.<br>
131      * 
132      * @author N/C
133      * @since N/C
134      * @version N/C
135      * @throws ECARException
136      */
137 	private void carregarMaisArtigos() throws ECARException {
138 		List list = this.getSegmentoItemDao().getSegmentoItemMaisArtigos(
139 				this.getRequest().getSession().getServletContext(),((ecar.login.SegurancaECAR)this.getRequest().getSession().getAttribute("seguranca")).getUsuario());
140 		
141 		Iterator it = list.iterator();
142 		
143 		SecaoBean secaoBean = new SecaoBean();		
144 		secaoBean.setId(ID_SECAO_MAIS_ARTIGOS);
145 		
146 		ArrayList aList = new ArrayList();
147 		
148 		while(it.hasNext()) {
149 			SegmentoItemSgti seg = (SegmentoItemSgti)it.next();
150 						
151 			InformacaoBean info = new InformacaoBean();
152 			info.setDataHora(Data.parseDate(seg.getDataItemSgti()));
153 			
154 			String linha = seg.getLinhaApoioSgti();
155 			
156 			if (linha.length() >= 50){
157 				for (int i = 50; i > 0; i--) {
158 					if (linha.charAt(i)==' ') {
159 						linha = Util.substring(linha, 0, i)+"...";
160 						break;
161 					}
162 				}				
163 			}						
164 			info.setDescricao(linha);			
165 			info.setTitulo(seg.getTituloSgti());
166 			info.setDataHora(Data.parseDate(seg.getDataItemSgti()));
167 			info.setCodSgti(seg.getCodSgti());
168 			info.setLink(seg.getSegmentoItemLeiauteSgtil().getLinkSgtil());
169 			
170 			aList.add(info);			
171 		}
172 		secaoBean.setInformacaoBean(aList);
173 
174 		this.portalBean.adicionarElementoNoSecaoBean(secaoBean);
175 	}
176 
177 	/**
178      * Método para popular a seção de AGENDA do PortalBean.<br>
179      * 
180      * @author N/C
181      * @since N/C
182      * @version N/C
183      * @throws ECARException
184      */
185 	private void carregarAgenda() throws ECARException {
186 				
187 		agendaOcorrenciaDao = new AgendaOcorrenciaDao(this.getRequest());
188 		
189 		String strNow = Data.parseDate(Data.getDataAtual()); 
190 		
191 		this.getRequest().setAttribute("dataDe", strNow);
192 		this.getRequest().setAttribute("ativo", "S");
193 		
194 		List list = agendaOcorrenciaDao.pesquisar(this.getRequest());
195 		Iterator it = list.iterator();
196 
197 		ArrayList aList = new ArrayList();
198 		SecaoBean secaoBean = new SecaoBean();
199 		secaoBean.setId(ID_SECAO_AGENDA);
200 		
201 		while(it.hasNext()) {
202 			AgendaOcorrenciaAgeo agendaOc = (AgendaOcorrenciaAgeo)it.next();
203 						
204 			InformacaoBean info = new InformacaoBean();
205 						
206 			String sHora = String.valueOf(agendaOc.getHoraEventoAgeo());
207 			if (sHora.length()==1) sHora = "0"+sHora;
208 			
209 			String sMin = String.valueOf(agendaOc.getMinutoEventoAgeo());
210 			if (sMin.length()==1) sMin = "0"+sMin;
211 			
212 			info.setDataHora(Data.parseDate(agendaOc.getDataEventoAgeo())+" - "+sHora+":"+sMin);
213 			info.setTitulo(agendaOc.getAgendaAge().getEventoAge());
214 			info.setCodSgti(agendaOc.getCodAgeo());
215 			info.setLink("ctrl_agenda.jsp");  //TODO: link?			
216 			
217 			aList.add(info);			
218 		}		
219 		secaoBean.setInformacaoBean(aList);
220 		this.portalBean.adicionarElementoNoSecaoBean(secaoBean);
221 	}
222 
223     /**
224      * Método para popular a seção de TAXACAO/CLIPS do PortalBean.<br>
225      * 
226      * @author N/C
227      * @since N/C
228      * @version N/C
229      * @throws ECARException
230      */
231 	private void carregarTaxacaoClip() throws ECARException {
232 					
233 			List list = this.getSegmentoItemDao().getTaxacaoClip(
234 					this.getRequest().getSession().getServletContext());
235 			
236 			Iterator it = list.iterator();
237 			
238 			SecaoBean secaoBean = new SecaoBean();			
239 			secaoBean.setId(ID_SECAO_TAXACAO_CLIP);
240 			
241 			ArrayList aList = new ArrayList();
242 			
243 			while(it.hasNext()) {
244 				SegmentoItemSgti seg = (SegmentoItemSgti)it.next();
245 							
246 				InformacaoBean info = new InformacaoBean();
247 				info.setDataHora(Data.parseDate(seg.getDataItemSgti()));
248 				info.setDescricao(seg.getSegmentoItemFonteSgtif().getDescricaoSgtif());
249 				info.setTitulo(seg.getTituloSgti());
250 				SegmentoItemLeiauteSgtil leiaute = seg.getSegmentoItemLeiauteSgtil();
251 				info.setLink(leiaute!=null?leiaute.getLinkSgtil():"ctrl_taxacao.jsp"); //TODO: retirar ctrl_taxacao.jsp
252 				info.setCodSgti(seg.getCodSgti());
253 				
254 				aList.add(info);			
255 			}			
256 			secaoBean.setInformacaoBean(aList);
257 
258 			this.portalBean.adicionarElementoNoSecaoBean(secaoBean);
259 	}
260 
261     /**
262      * Método para popular a seção de SUB-AREAS DESTAQUE do PortalBean.<br>
263      * 
264      * @author N/C
265      * @since N/C
266      * @version N/C
267      * @throws ECARException
268      */
269 	private void carregarAreaSubAreaDestaque() throws ECARException {
270 		
271 		DestaqueSubAreaDao dDAO = new DestaqueSubAreaDao(this.getRequest());
272 		
273 		List list = dDAO.getSubAreaCapa();
274 		
275 		SecaoBean secaoBean = new SecaoBean();		
276 		secaoBean.setId(ID_SECAO_SUB_AREA_DESTAQUE);
277 		
278 		List aList = new ArrayList();
279 		
280 		if ((list != null)&&(list.size()>0)){			
281 			Iterator it = list.iterator();			
282 			while(it.hasNext()) {
283 				DestaqueSubAreaDtqsa destDtqsa = (DestaqueSubAreaDtqsa)it.next();
284 				
285 				InformacaoBean info = new InformacaoBean();
286 				info.setDataHora(Data.parseDate(destDtqsa.getDestaqueAreaDtqa().getDataInclusaoDtqa()));
287 				info.setDescricao(destDtqsa.getDestaqueAreaDtqa().getDescricaoDtqa());
288 				info.setTitulo(destDtqsa.getDestaqueAreaDtqa().getIdentificacaoDtqa());
289 				
290 				aList.add(info);
291 			}			
292 		}
293 		secaoBean.setInformacaoBean(aList);
294 	}
295 	
296 
297     /**
298      * Método para recuperar a seção de SUPER-DESTAQUE ARTIGOS do PortalBean.<br>
299      * 
300      * @author N/C
301      * @since N/C
302      * @version N/C
303      * @return SecaoBean
304      * @throws ECARException
305      */
306 	public SecaoBean getSuperDestaqueArtigos() throws ECARException {
307 		if(this.getPortalBean().getSecaoBean() != null) {
308 			Iterator it = this.getPortalBean().getSecaoBean().iterator();
309 	
310 			while(it.hasNext()) {
311 				SecaoBean secao = (SecaoBean)it.next();
312 				
313 				if(ID_SECAO_SUPER_DESTAQUE.equals(secao.getId())) {
314 					return secao;
315 				}
316 			}
317 		}
318 		return null;
319 	}
320 	
321 	/**
322      * Método para recuperar a seção de MAIS ARTIGOS do PortalBean.<br>
323      * 
324      * @author N/C
325      * @since N/C
326      * @version N/C
327      * @return SecaoBean
328      * @throws ECARException
329      */
330 	public SecaoBean getMaisArtigos() throws ECARException {
331 		if(this.getPortalBean().getSecaoBean() != null) {
332 			Iterator it = this.getPortalBean().getSecaoBean().iterator();
333 	
334 			while(it.hasNext()) {
335 				SecaoBean secao = (SecaoBean)it.next();
336 				
337 				if(ID_SECAO_MAIS_ARTIGOS.equals(secao.getId())) {
338 					return secao;
339 				}
340 			}
341 		}
342 		return null;
343 	}
344 	
345 	/**
346      * Método para recuperar a seção da AGENDA do PortalBean.<br>
347      * 
348      * @author N/C
349      * @since N/C
350      * @version N/C
351      * @return SecaoBean 
352      * @throws ECARException
353      */
354 	public SecaoBean getAgenda() throws ECARException {
355 		if(this.getPortalBean().getSecaoBean() != null) {
356 			Iterator it = this.getPortalBean().getSecaoBean().iterator();
357 	
358 			while(it.hasNext()) {
359 				SecaoBean secao = (SecaoBean)it.next();
360 				
361 				if(ID_SECAO_AGENDA.equals(secao.getId())) {
362 					return secao;
363 				}
364 			}
365 		}
366 		return null;
367 	}
368 	
369 	/**
370      * Método para recuperar a seção da TAXACAO/CLIPS do PortalBean.<br>
371      * 
372      * @author N/C
373      * @since N/C
374      * @version N/C
375      * @return SecaoBean 
376      * @throws ECARException
377      */
378 	public SecaoBean getTaxacaoClips() throws ECARException {
379 		if(this.getPortalBean().getSecaoBean() != null) {
380 			Iterator it = this.getPortalBean().getSecaoBean().iterator();
381 	
382 			while(it.hasNext()) {
383 				SecaoBean secao = (SecaoBean)it.next();
384 				
385 				if(ID_SECAO_TAXACAO_CLIP.equals(secao.getId())) {
386 					return secao;
387 				}
388 			}
389 		}
390 		return null;
391 	}
392 	
393 	/**
394      * Método para recuperar a seção da SUB-ÁREAS DE DESTAQUE do PortalBean.<br>
395      * 
396      * @author N/C
397      * @since N/C
398      * @version N/C
399      * @return SecaoBean 
400      * @throws ECARException
401      */
402 	public SecaoBean getSubAreaDestaque() throws ECARException {
403 		if(this.getPortalBean().getSecaoBean() != null) {
404 			Iterator it = this.getPortalBean().getSecaoBean().iterator();
405 	
406 			while(it.hasNext()) {
407 				SecaoBean secao = (SecaoBean)it.next();
408 				
409 				if(ID_SECAO_SUB_AREA_DESTAQUE.equals(secao.getId())) {
410 					return secao;
411 				}
412 			}
413 		}
414 		return null;
415 	}
416 }