/** * 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.priorizacao.ui.admin.pages.proposta; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.panel.FeedbackPanel; import br.gov.camara.edemocracia.portlets.priorizacao.service.PriorizacaoServiceUtil; import br.gov.camara.edemocracia.portlets.priorizacao.ui.admin.panels.PriorizacaoAdminMenuPanel; import br.gov.camara.edemocracia.portlets.priorizacao.ui.components.EixosDropDown; import br.gov.camara.edemocracia.portlets.priorizacao.ui.components.PropostasRefreshingView; import br.gov.camara.edemocracia.portlets.priorizacao.ui.util.UIUtils; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; public class GerenciarPropostasPage extends WebPage { private static final Log LOG = LogFactoryUtil .getLog(GerenciarPropostasPage.class); private Link<Void> adicionarProposta; private EixosDropDown eixos; private PropostasRefreshingView propostas; private WebMarkupContainer propostasContainer; private WebMarkupContainer propostaVazia; @Override protected void onInitialize() { super.onInitialize(); initMenuPriorizacao(); initAdicionarProposta(); initMensagensFeedBack(); initEixos(); initPropostasContainer(); initPropostas(); initPropostaVazia(); } private void initMenuPriorizacao() { add(new PriorizacaoAdminMenuPanel("menuPriorizacao")); } private void initMensagensFeedBack() { add(new FeedbackPanel("mensagensFeedback")); } private void initAdicionarProposta() { adicionarProposta = new Link<Void>("adicionarProposta") { private static final long serialVersionUID = 1L; @Override public void onClick() { setResponsePage(PropostaPage.class); } }; add(adicionarProposta); } private void initEixos() { eixos = new EixosDropDown("eixos", UIUtils.getScopeGroupId(),null); eixos.add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { long eixoId = (eixos.getModelObject() != null) ? eixos .getModelObject().getEixoId() : 0l; propostas.recarregarPropostas(eixoId); propostas.setVisible(getPropostasCount(eixoId) != 0); propostaVazia.setVisible(!propostas.isVisible()); if (target != null) { target.addComponent(propostaVazia); target.addComponent(propostasContainer); } } }); add(eixos); } private void initPropostasContainer() { propostasContainer = new WebMarkupContainer("propostasContainer"); propostasContainer.setOutputMarkupId(true); add(propostasContainer); } private void initPropostas() { propostas = new PropostasRefreshingView("propostas", 0l); propostas.setVisible(propostas.getDefaultModelObject() != null); propostas.setOutputMarkupId(true); propostasContainer.add(propostas); } private void initPropostaVazia() { propostaVazia = new WebMarkupContainer("propostaVazia"); propostaVazia.setOutputMarkupPlaceholderTag(true); propostaVazia.setOutputMarkupId(true); add(propostaVazia); } private int getPropostasCount(long eixoId) { try { return PriorizacaoServiceUtil.getPropostasCountByEixoId(eixoId); } catch (SystemException e) { LOG.error("Erro ao obter quantidade de propostas "); } return 0; } }