/** * 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 java.io.IOException; import javax.portlet.PortletMode; import javax.portlet.PortletModeException; import javax.portlet.PortletPreferences; import javax.portlet.PortletURL; import javax.portlet.ReadOnlyException; import javax.portlet.RenderResponse; import javax.portlet.ValidatorException; import org.apache.wicket.markup.html.JavascriptPackageResource; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextArea; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.internal.HtmlHeaderContainer; import org.apache.wicket.markup.html.link.ExternalLink; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.Model; import org.apache.wicket.request.target.basic.RedirectRequestTarget; import br.gov.camara.edemocracia.portlets.wikilegis.ui.util.UIUtils; import br.gov.camara.edemocracia.util.HtmlStripper; /** * Página de configuração do portlet - define o título do PL em discussão * * @author robson * */ public class ConfiguracaoPage extends WebPage { private String viewUrl; @Override protected void onInitialize() { super.onInitialize(); add(JavascriptPackageResource.getHeaderContribution("ckeditor/ckeditor.js")); buildViewUrl(); initMensagensFeedBack(); initForm(); initTituloProjetoLei(); initTituloDescricaoProjeto(); initDescricaoProjeto(); initHabilitaPlugins(); initHabilitaSugestoes(); initPaginaInicial(); } /** * URL para redirecionar para visualização */ private void buildViewUrl() { RenderResponse rRes = UIUtils.getRenderResponse(); PortletURL pURL = rRes.createRenderURL(); try { pURL.setPortletMode(PortletMode.VIEW); } catch (PortletModeException e) { } viewUrl = pURL.toString(); } @Override public void renderHead(HtmlHeaderContainer container) { super.renderHead(container); String configCkEditor="CKEDITOR.config.toolbar_Basic =[['Bold', 'Italic','Link','Unlink' ]]; CKEDITOR.config.toolbar = 'Basic';"; container.getHeaderResponse().renderOnDomReadyJavascript(configCkEditor); container.getHeaderResponse().renderOnDomReadyJavascript(String.format("CKEDITOR.replace('%s');", descricaoProjeto.getMarkupId())); } private Form<Void> form; private TextField<String> tituloProjetoLei; private TextField<String> tituloDescricaoProjeto; private TextArea<String> descricaoProjeto; private CheckBox habilitaPlugins; private CheckBox habilitaSugestoes; private FeedbackPanel mensagensFeedback; private ExternalLink paginaInicial; private void initForm() { form = new Form<Void>("form") { private static final long serialVersionUID = 1L; @Override protected void onSubmit() { PortletPreferences prefs = UIUtils.getPortletPreferences(); HtmlStripper htmlStripper = new HtmlStripper(); try { prefs.setValue("titulo", tituloProjetoLei.getModelObject()); prefs.setValue("tituloDescricao", tituloDescricaoProjeto.getModelObject()); prefs.setValue("descricaoProjeto", htmlStripper.strip(descricaoProjeto.getModelObject())); prefs.setValue("habilitaPlugins", habilitaPlugins.getModelObject().toString()); prefs.setValue("habilitaSugestoes", habilitaSugestoes.getModelObject().toString()); info("Alterações realizadas com sucesso!"); getRequestCycle().setRequestTarget(new RedirectRequestTarget(viewUrl)); } catch (ReadOnlyException e) { error("Erro ao gravar alterações"); return; } try { prefs.store(); } catch (ValidatorException e) { error("Erro ao gravar alterações"); } catch (IOException e) { error("Erro ao gravar alterações"); } } }; add(form); } private void initPaginaInicial() { paginaInicial = new ExternalLink("paginaInicial", viewUrl); form.add(paginaInicial); } private void initMensagensFeedBack() { mensagensFeedback = new FeedbackPanel("mensagensFeedback"); add(mensagensFeedback); } private void initTituloProjetoLei() { String pref = UIUtils.getPortletPreferences().getValue("titulo", "Título do projeto de lei em discussão"); tituloProjetoLei = new TextField<String>("tituloProjetoLei", Model.of(pref)); form.add(tituloProjetoLei); } private void initTituloDescricaoProjeto() { String pref = UIUtils.getPortletPreferences().getValue("tituloDescricao", "Breve Descricao"); tituloDescricaoProjeto = new TextField<String>("tituloDescricaoProjeto", Model.of(pref)); form.add(tituloDescricaoProjeto); } private void initDescricaoProjeto() { String pref = UIUtils.getPortletPreferences().getValue("descricaoProjeto", "Descricao..."); descricaoProjeto = new TextArea<String>("descricaoProjeto", Model.of(pref)); descricaoProjeto.setOutputMarkupId(true); form.add(descricaoProjeto); } private void initHabilitaPlugins(){ String pref = UIUtils.getPortletPreferences().getValue("habilitaPlugins", "true"); habilitaPlugins = new CheckBox("habilitaPlugins", Model.of(Boolean.parseBoolean(pref))); habilitaPlugins.setOutputMarkupId(true); form.add(habilitaPlugins); } private void initHabilitaSugestoes(){ String pref = UIUtils.getPortletPreferences().getValue("habilitaSugestoes", "true"); habilitaSugestoes = new CheckBox("habilitaSugestoes", Model.of(Boolean.parseBoolean(pref))); habilitaSugestoes.setOutputMarkupId(true); form.add(habilitaSugestoes); } }