/** * Copyright (c) 2009-2014 Câmara dos Deputados. Todos os direitos reservados. * * e-Democracia é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro * dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do * Software Livre (FSF); na versão 2.1 da Licença, ou (na sua opinião) qualquer versão. * * Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA; * sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. * Veja a Licença Pública Geral Menor GNU para maiores detalhes. */ package br.gov.camara.edemocracia.portlets.guiadiscussao.beans.view; import java.util.Collections; import java.util.HashMap; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import br.gov.camara.edemocracia.portlets.guiadiscussao.model.Acao; import br.gov.camara.edemocracia.portlets.guiadiscussao.model.Configuracao; import br.gov.camara.edemocracia.portlets.guiadiscussao.model.Fase; import br.gov.camara.edemocracia.portlets.guiadiscussao.service.AcaoLocalServiceUtil; import br.gov.camara.edemocracia.portlets.guiadiscussao.service.ConfiguracaoLocalServiceUtil; import br.gov.camara.edemocracia.portlets.guiadiscussao.service.FaseLocalServiceUtil; import br.gov.camara.edemocracia.portlets.guiadiscussao.util.BibliotecaImagensUtil; import br.gov.camara.edemocracia.portlets.guiadiscussao.util.URLUtil; import com.liferay.faces.portal.context.LiferayFacesContext; import com.liferay.portal.kernel.exception.SystemException; @ManagedBean(name = "guiaDiscussaoBean") @RequestScoped public class GuiaDiscussaoBean { private Configuracao config; private List<Fase> fases; private Fase faseAtual; private HashMap<Long, List<Acao>> acoesPorFase; @PostConstruct public void carregaFases() { long groupId = LiferayFacesContext.getInstance().getScopeGroupId(); try { config = ConfiguracaoLocalServiceUtil.getByGroupId(groupId); fases = FaseLocalServiceUtil.getFasesByConfiguracaoId(config .getConfiguracaoId()); recuperaFaseAtual(); recuperaAcoesDasFasesCarregadas(); } catch (SystemException e) { fases = null; throw new RuntimeException(e); } } private void recuperaFaseAtual() { for (Fase fase : fases) { if (fase.getFaseId() == config.getFaseAtualId()) { faseAtual = fase; break; } } } private void recuperaAcoesDasFasesCarregadas() throws SystemException { acoesPorFase = new HashMap<Long, List<Acao>>(); for (Fase fase : fases) { long faseId = fase.getFaseId(); acoesPorFase.put(faseId, AcaoLocalServiceUtil.getAcoesByFaseId(faseId)); } } public List<Fase> getFases() { return fases; } public String tipoFase(Fase fase) { if (faseAtual == null || fase.getOrdem() > faseAtual.getOrdem()) return "Fase futura"; else if (fase.getOrdem() == faseAtual.getOrdem()) return "Fase atual"; else return "Fase encerrada"; } public String classeFase(Fase fase) { // String tipo; // if (faseAtual == null || fase.getOrdem() > faseAtual.getOrdem()) // tipo = "futura"; // else if (fase.getOrdem() == faseAtual.getOrdem()) // tipo = "atual"; // else // tipo = "encerrada"; // // if (fases.size() == 1) { // tipo = tipo + " " + tipo + "Unica"; // } // // if (fase.equals(fases.get(0))) // tipo = tipo + " " + tipo + "Inicio"; // if (fase.equals(fases.get(fases.size() - 1))) // tipo = tipo + " " + tipo + "Fim"; if(fase == faseAtual) return "atual selecionada"; else return ""; } public int getIndexFaseAtual(){ if(faseAtual != null) return faseAtual.getOrdem(); else return 1; } public boolean isFaseSelecionada(Fase fase) { return (faseAtual != null) && (fase.getFaseId() == faseAtual.getFaseId()); } public List<Acao> getAcoesPorFase(Fase fase) { if (fase == null) { return Collections.emptyList(); } long faseId = fase.getFaseId(); if (!acoesPorFase.containsKey(faseId)) return Collections.emptyList(); else return Collections.unmodifiableList(acoesPorFase.get(faseId)); } public String urlImagem(Acao acao) { return BibliotecaImagensUtil.getUrlImagem(acao.getIconeId()); } public String constroiUrlAcao(Acao acao) { String url = acao.getUrlLink(); boolean urlExterna = acao.isUrlExterna(); return URLUtil.construirURL(url, urlExterna); } }