/** * 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.eixo; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.RefreshingView; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import br.gov.camara.edemocracia.portlets.priorizacao.model.Eixo; 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.ExcluirEixoLink; import br.gov.camara.edemocracia.portlets.priorizacao.ui.util.UIUtils; import com.google.common.collect.Iterators; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portlet.messageboards.model.MBCategory; public class GerenciarEixosPage extends WebPage { private RefreshingView<Eixo> eixos; private static final Log LOG = LogFactoryUtil.getLog(GerenciarEixosPage.class); private WebMarkupContainer eixosContainer; @Override protected void onInitialize() { super.onInitialize(); initMenuPriorizacao(); initAdicionarEixo(); initMensagensFeedback(); initEixosContainer(); initEixos(); } private void initMenuPriorizacao() { add(new PriorizacaoAdminMenuPanel("menuPriorizacao")); } private void initAdicionarEixo() { add(new Link<Void>("adicionarEixo"){ private static final long serialVersionUID = 1L; @Override public void onClick() { PageParameters parameters = new PageParameters(); // parameters.put("eixoId", ""); setResponsePage(EixoPage.class,parameters); } }); } private void initMensagensFeedback() { add( new FeedbackPanel("mensagensFeedback")); } private void initEixosContainer() { eixosContainer = new WebMarkupContainer("eixosContainer"); if(getEixosCount() != 0){ eixosContainer.setVisible(true); } else { eixosContainer.setVisible(false); warn("Nenhum eixo cadastrado."); } add(eixosContainer); } private void initEixos() { eixos = new RefreshingView<Eixo>("eixos") { private static final long serialVersionUID = 1L; @Override protected void populateItem(Item<Eixo> item) { item.add(new Label("titulo",Model.of(item.getModelObject().getTitulo()))); item.add(new Label("categoria",Model.of(getCategory(item.getModelObject().getCategoryId()).getName()))); item.add(new UpdateEixoLink("update", item.getModelObject().getEixoId())); item.add(new ExcluirEixoLink("excluir", item.getModelObject().getEixoId()){ private static final long serialVersionUID = 1L; @Override public void onClick() { super.onClick(); setResponsePage(GerenciarEixosPage.class); } }); } @Override protected Iterator<IModel<Eixo>> getItemModels() { return listarEixos(); } }; eixosContainer.add(eixos); } private Iterator<IModel<Eixo>>listarEixos(){ try{ List<Eixo> eixos = PriorizacaoServiceUtil.listarEixos(UIUtils.getScopeGroupId()); ArrayList<IModel<Eixo>> retorno = new ArrayList<IModel<Eixo>>(); for(Eixo eixo : eixos){ retorno.add(new Model<Eixo>(eixo)); } return retorno.iterator(); }catch(SystemException e){ return Iterators.emptyIterator(); } } private MBCategory getCategory(long categoryId){ return PriorizacaoServiceUtil.getMBCategory(categoryId); } private int getEixosCount(){ try { return PriorizacaoServiceUtil.getEixosCountByGroupId(UIUtils.getScopeGroupId()); } catch (SystemException e) { LOG.error("Erro ao obter quantidade de eixos"); } return 0; } class UpdateEixoLink extends Link<EixoPage> { private static final long serialVersionUID = 1L; private long eixoId; public UpdateEixoLink(String id,long eixoId) { super(id); this.eixoId = eixoId; } @Override public void onClick() { PageParameters parameters = new PageParameters(); parameters.put("eixoId", String.valueOf(eixoId)); setResponsePage(EixoPage.class,parameters); } } }