Package org.appfuse.webapp

Source Code of org.appfuse.webapp.AbstractWebPage

package org.appfuse.webapp;

import de.agilecoders.wicket.core.Bootstrap;
import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationMessage;
import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.IRequestParameters;
import org.apache.wicket.util.time.Duration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.ServletContext;

/**
* Abstract WebPage for every page in a project.
*
* @author Marcin ZajÄ…czkowski, 2011-02-07
*/
public abstract class AbstractWebPage extends WebPage {

    private static final String LOCALE_REQUEST_PARAMETER_NAME = "locale";

    protected final Logger log = LoggerFactory.getLogger(getClass());

    protected ServletContext getServletContext() {
        return ((WebApplication)getApplication()).getServletContext();
    }

    protected NotificationPanel createFeedbackPanel() {
        return new NotificationPanel("feedback");
    }

    @Override
    public void renderHead(IHeaderResponse response) {
        super.renderHead(response);
        Bootstrap.renderHead(response);
        addCommonStyles(response);
        addCommonScripts(response);
    }

    private void addCommonStyles(IHeaderResponse response) {
        response.render(CssHeaderItem.forUrl("styles/style.css"));
    }

    private void addCommonScripts(IHeaderResponse response) {
        response.render(JavaScriptHeaderItem.forUrl("scripts/script.js"));
    }

    @Override
    protected void onConfigure() {
        super.onConfigure();
        changeLocaleIfRequestedByRequestParameter();
    }

    private void changeLocaleIfRequestedByRequestParameter() {
        IRequestParameters queryParameters = getRequest().getQueryParameters();
        if (queryParameters.getParameterNames().contains(LOCALE_REQUEST_PARAMETER_NAME)) {
            //with "locale" GET parameter available LocaleFilter overrides getLocale() for request with that value
            getSession().setLocale(getRequest().getLocale());
        }
    }

    protected NotificationMessage createDefaultInfoNotificationMessage(IModel<String> messageModel) {
        return new NotificationMessage(messageModel)
                .hideAfter(Duration.seconds(5));
    }

    protected Label createPageTitleTag(String resourceKey) {
        return new Label("pageTitle", new ResourceModel(resourceKey));
    }

    protected Label createPageHeading(String resourceKey) {
        return new Label("pageHeading", new ResourceModel(resourceKey));
    }

    protected Label createPageMessage(String resourceKey) {
        return new Label("pageMessage", new ResourceModel(resourceKey));
    }


}
TOP

Related Classes of org.appfuse.webapp.AbstractWebPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.