/** * 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.admin; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import br.gov.camara.edemocracia.portlets.guiadiscussao.CantFaseMoveDownException; import br.gov.camara.edemocracia.portlets.guiadiscussao.CantFaseMoveUpException; import br.gov.camara.edemocracia.portlets.guiadiscussao.model.Fase; import br.gov.camara.edemocracia.portlets.guiadiscussao.model.impl.FaseImpl; import br.gov.camara.edemocracia.portlets.guiadiscussao.service.AcaoLocalServiceUtil; import br.gov.camara.edemocracia.portlets.guiadiscussao.service.FaseLocalServiceUtil; import com.liferay.faces.portal.context.LiferayFacesContext; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; @ManagedBean(name = "faseAdminBean") @ViewScoped public class FaseAdminBean implements Serializable { private static final long serialVersionUID = -3787023870893069005L; private Fase fase; // Lista de fases e ações cadastradas private List<DadosFaseDisplay> dadosDisplay; private DadosFaseDisplay dadosFaseSelecionada; @ManagedProperty(value = "#{configuracaoAdminBean}") private ConfiguracaoAdminBean configuracaoAdminBean; private static final Log LOG = LogFactoryUtil.getLog(FaseAdminBean.class); public FaseAdminBean() { this.fase = new FaseImpl(); this.dadosDisplay = new ArrayList<DadosFaseDisplay>(); } @PostConstruct private void init() { atualizaFases(); } public void editarFase(long faseId) { try { this.fase = FaseLocalServiceUtil.getFase(faseId); } catch (PortalException e) { LOG.error("#{i18n['fase-nao-encontrada']}", e); LiferayFacesContext.getInstance().addGlobalErrorMessage( "#{i18n['fase-nao-encontrada']}"); } catch (SystemException e) { throw new RuntimeException(e); } } public void saveFase() { try { this.fase.setConfiguracaoId(configuracaoAdminBean.getConfig() .getConfiguracaoId()); if (fase.getFaseId() == 0) { FaseLocalServiceUtil.criaFase(this.fase); configuracaoAdminBean.atualizaConfiguracao(); } else { FaseLocalServiceUtil.updateFase(fase, true); } } catch (SystemException e) { throw new RuntimeException(e); } catch (PortalException e) { LiferayFacesContext.getInstance().addGlobalErrorMessage( "Ocorreu um erro ao gravar fase."); LOG.error("Ocorreu um erro ao gravar fase",e); } atualizaFases(); this.fase = new FaseImpl(); } public void moverParaCima(long faseId) throws SystemException { try { Fase fase = FaseLocalServiceUtil.getFase(faseId); if (fase != null) { FaseLocalServiceUtil.moverFaseParaCima(fase.getFaseId()); } else { LiferayFacesContext.getInstance().addGlobalErrorMessage( "#{i18n['fase-nao-encontrada']}"); } } catch (CantFaseMoveUpException e) { LiferayFacesContext.getInstance().addGlobalErrorMessage( "#{i18n['fase-nao-move-cima']}"); } catch (PortalException e) { LiferayFacesContext.getInstance().addGlobalErrorMessage( "#{i18n['fase-nao-encontrada']}"); } catch (SystemException e) { throw new RuntimeException(e); } atualizaFases(); } public void moverParaBaixo(long faseId) { try { Fase fase = FaseLocalServiceUtil.getFase(faseId); if (fase != null) { FaseLocalServiceUtil.moverFaseParaBaixo(faseId); } else { LiferayFacesContext.getInstance().addGlobalErrorMessage( "#{i18n['fase-nao-encontrada']}"); } } catch (CantFaseMoveDownException e) { LiferayFacesContext.getInstance().addGlobalErrorMessage( "#{i18n['fase-nao-move-baixo']}"); } catch (PortalException e) { LiferayFacesContext.getInstance().addGlobalErrorMessage( "#{i18n['fase-nao-encontrada']}"); } catch (SystemException e) { throw new RuntimeException(e); } atualizaFases(); } public void excluir(long faseId) { try { Fase fase = FaseLocalServiceUtil.getFase(faseId); if (fase != null) { FaseLocalServiceUtil.excluirFase(fase.getFaseId()); configuracaoAdminBean.atualizaConfiguracao(); } else { LiferayFacesContext.getInstance().addGlobalErrorMessage( "#{i18n['fase-nao-encontrada']}"); } } catch (PortalException e) { LiferayFacesContext.getInstance().addGlobalErrorMessage( "#{i18n['fase-nao-encontrada']}"); } catch (SystemException e) { throw new RuntimeException(e); } atualizaFases(); } public void atualizaFases() { dadosDisplay = new ArrayList<DadosFaseDisplay>(); try { List<Fase> fases = FaseLocalServiceUtil .getFasesByConfiguracaoId(configuracaoAdminBean.getConfig() .getConfiguracaoId()); for (Fase fase : fases) { dadosDisplay .add(new DadosFaseDisplay(fase, AcaoLocalServiceUtil .getAcoesByFaseId(fase.getFaseId()))); } } catch (SystemException e) { throw new RuntimeException(e); } } public Fase getFase() { return fase; } public void setFase(Fase fase) { this.fase = fase; } public List<DadosFaseDisplay> getDadosDisplay() { return dadosDisplay; } public void setDadosDisplay(List<DadosFaseDisplay> dadosDisplay) { this.dadosDisplay = dadosDisplay; } public ConfiguracaoAdminBean getConfiguracaoAdminBean() { return configuracaoAdminBean; } public void setConfiguracaoAdminBean( ConfiguracaoAdminBean configuracaoAdminBean) { this.configuracaoAdminBean = configuracaoAdminBean; } public DadosFaseDisplay getDadosFaseSelecionada() { return dadosFaseSelecionada; } public void setDadosFaseSelecionada(DadosFaseDisplay dadosFaseSelecionada) { this.dadosFaseSelecionada = dadosFaseSelecionada; } }