/** * 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.wikilegis.ui.pages; import javax.servlet.http.HttpServletRequest; import org.apache.wicket.RequestCycle; import org.apache.wicket.RestartResponseException; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextArea; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.model.Model; import org.apache.wicket.protocol.http.WebRequest; import br.gov.camara.edemocracia.portlets.wikilegis.service.WikiLegisServiceUtil; import br.gov.camara.edemocracia.portlets.wikilegis.ui.model.PosicaoArtigo; import br.gov.camara.edemocracia.portlets.wikilegis.ui.panels.PosicaoArtigoPanel; import br.gov.camara.edemocracia.portlets.wikilegis.ui.panels.WikiLegisMenuPanel; import br.gov.camara.edemocracia.portlets.wikilegis.ui.util.UIUtils; 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; import com.liferay.portal.kernel.util.WebKeys; import com.liferay.portal.security.permission.ActionKeys; import com.liferay.portal.theme.ThemeDisplay; /** * @author rpdmiranda * */ public class NovoArtigoPage extends WebPage { private Form<Void> form; private TextArea<String> textoArtigo; private TextArea<String> legislacaoVigente; private PosicaoArtigoPanel posicaoArtigo; private static final Log LOG = LogFactoryUtil.getLog(NovoArtigoPage.class); public NovoArtigoPage() { // Verifica se pode editar if (!UIUtils.possuiPermissoes(ActionKeys.CONFIGURATION)) throw new RestartResponseException(HomePage.class); init(); } private void init() { initMenuWikilegis(); initForm(); initTextoTextArea(); initLegislacaoVigente(); initPosicaoArtigo(); initEnviarButton(); initCancelarButton(); } private void initMenuWikilegis() { add(new WikiLegisMenuPanel("menuWikilegis")); } private void initForm() { form = new Form<Void>("form") { /** * Realizar validações */ @Override protected void onSubmit() { gravaAlteracoes(); } }; add(form); } private void initTextoTextArea() { textoArtigo = new TextArea<String>("textoArtigo", Model.of("")); textoArtigo.setOutputMarkupId(true); form.add(textoArtigo); } private void initLegislacaoVigente() { legislacaoVigente = new TextArea<String>("legislacaoVigente", Model.of("")); legislacaoVigente.setOutputMarkupId(true); form.add(legislacaoVigente); } private void initPosicaoArtigo() { posicaoArtigo = new PosicaoArtigoPanel("posicao", new Model<PosicaoArtigo>()); form.add(posicaoArtigo); } private void initEnviarButton() { form.add(new Button("enviar")); } private void initCancelarButton() { form.add(new BookmarkablePageLink<HomePage>("cancelar", HomePage.class)); } // ////////////////////////////// // // ////////////////////////////// private void gravaAlteracoes() { HttpServletRequest req = ((WebRequest) RequestCycle.get().getRequest()) .getHttpServletRequest(); ThemeDisplay td = (ThemeDisplay) req .getAttribute(WebKeys.THEME_DISPLAY); String texto = textoArtigo.getModelObject(); String emVigor = legislacaoVigente.getModelObject(); PosicaoArtigo posicao = posicaoArtigo.getModelObject(); try { WikiLegisServiceUtil.criaArtigo(td.getScopeGroupId(), posicao.getEstruturaPaiId(), posicao.getArtigoAnteriorId(), texto, emVigor); } catch (SystemException e) { LOG.error("Erro ao criar novo artigo.",e); } catch (PortalException e) { LOG.error("Erro ao criar novo artigo.",e); } setResponsePage(HomePage.class); setRedirect(true); } }