/** * 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.pages; import javax.portlet.PortletMode; import javax.portlet.PortletModeException; import javax.portlet.PortletPreferences; import javax.portlet.PortletURL; import javax.portlet.RenderResponse; 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.TextField; 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.priorizacao.ui.util.UIUtils; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; /** * @author p_7339 * */ public class EditPage extends WebPage { private static final Log LOG = LogFactoryUtil.getLog(EditPage.class); private FeedbackPanel feedback; private Form<?> form; private TextField<String> mensagem; private TextField<String> url; private Button voltar; private String viewUrl; public EditPage() { // Obtém a página de visualização RenderResponse rRes = UIUtils.getRenderResponse(); PortletURL pURL = rRes.createRenderURL(); try { pURL.setPortletMode(PortletMode.VIEW); } catch (PortletModeException e) { } viewUrl = pURL.toString(); PortletPreferences pp = UIUtils.getPortletPreferences(); initFeedbackPanel(); initForm(); initMensagem(pp); initUrl(pp); initVoltar(); } private void initFeedbackPanel() { feedback = new FeedbackPanel("feedback"); add(feedback); } private void initForm() { form = new Form<Void>("form") { @Override protected void onSubmit() { String txtMensagem = mensagem.getModelObject(); if (txtMensagem == null) txtMensagem = ""; else txtMensagem = txtMensagem.trim(); String txtUrl = url.getModelObject(); if (txtUrl == null) txtUrl = ""; else txtUrl = txtUrl.trim(); if (!txtUrl.isEmpty() && txtMensagem.isEmpty()) { error("Se informar a URL, é obrigatório informar a mensagem"); } else { PortletPreferences pp = UIUtils.getPortletPreferences(); try { pp.setValue("mensagem", mensagem.getModelObject()); pp.setValue("url", url.getModelObject()); pp.store(); getRequestCycle().setRequestTarget( new RedirectRequestTarget(viewUrl)); } catch (Exception e) { LOG.error("Erro gravando preferências", e); error("Erro ao gravar configurações. Por favor, tente mais tarde"); } } } }; add(form); } private void initMensagem(PortletPreferences pp) { mensagem = new TextField<String>("mensagem", Model.of(pp.getValue( "mensagem", ""))); form.add(mensagem); } private void initUrl(PortletPreferences pp) { url = new TextField<String>("url", Model.of(pp.getValue("url", ""))); form.add(url); } private void initVoltar() { voltar = new Button("voltar") { @Override public void onSubmit() { getRequestCycle().setRequestTarget( new RedirectRequestTarget(viewUrl)); } }; voltar.setDefaultFormProcessing(false); form.add(voltar); } }