Package org.wicketstuff.openlayers3.examples.base

Source Code of org.wicketstuff.openlayers3.examples.base.BasePage

package org.wicketstuff.openlayers3.examples.base;

import de.agilecoders.wicket.core.markup.html.bootstrap.behavior.BootstrapBaseBehavior;
import de.agilecoders.wicket.core.markup.html.bootstrap.html.ChromeFrameMetaTag;
import de.agilecoders.wicket.core.markup.html.bootstrap.html.HtmlTag;
import de.agilecoders.wicket.core.markup.html.bootstrap.html.MetaTag;
import de.agilecoders.wicket.core.markup.html.bootstrap.html.OptimizedMobileViewportMetaTag;
import de.agilecoders.wicket.core.markup.html.bootstrap.navbar.Navbar;
import org.apache.wicket.Component;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
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.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.request.resource.CssResourceReference;

import java.util.Locale;

/**
* Provides a basic web page that other application pages may extend.
*/
public class BasePage extends WebPage {

    /**
     * Title of this page.
     */
    protected static final String RESKEY_PAGE_TITLE = "page.title";

    /**
     * Short title for this page.
     */
    protected static final String RESKEY_TITLE_SHORT = "page.title.short";

    /**
     * Description of this page.
     */
    protected static final String RESKEY_DESCRIPTION = "page.description";

    /**
     * Author of this page.
     */
    protected static final String RESKEY_AUTHOR = "page.author";

    /*
     * Component IDs.
     */
    private static final String CID_TITLE = "title";
    private static final String CID_PAGE_TITLE = "titleShort";
    private static final String CID_HEADER = "header";

    /*
     * Components.
     */
    private Component debugBar;

    @Override
    protected void onInitialize() {
        super.onInitialize();

        // add HTML declaration
        add(new HtmlTag("html", Locale.ENGLISH));

        // add Bootstrap
        add(new BootstrapBaseBehavior());
        add(new OptimizedMobileViewportMetaTag("viewport"));
        add(new ChromeFrameMetaTag("chrome-frame"));
        add(new MetaTag("description", Model.of("description"), getPageDescriptionModel()));
        add(new MetaTag("author", Model.of("author"), getPageAuthorModel()));
        add(new Label(CID_TITLE, getPageTitleModel()));

        // add page components
        add(getHeaderNavBar(CID_HEADER).setVisibilityAllowed(isShowHeader()));
        add((new Label(CID_PAGE_TITLE, getPageShortTitleModel())).setVisibilityAllowed(isShowPageTitle()));
    }

    /**
     * Returns the page title model.
     *
     * @return model for the page title
     */
    protected IModel<String> getPageTitleModel() {
        return new ResourceModel(RESKEY_PAGE_TITLE);
    }

    /**
     * Returns the short page title model.
     *
     * @return model for the short page title
     */
    protected IModel<String> getPageShortTitleModel() {
        return new ResourceModel(RESKEY_TITLE_SHORT);
    }

    /**
     * Returns the page description model.
     *
     * @return model for the page description
     */
    protected IModel<String> getPageDescriptionModel() {
        return new StringResourceModel(RESKEY_DESCRIPTION, this, null);
    }

    /**
     * Returns the page author model.
     *
     * @return model for the page author
     */
    protected IModel<String> getPageAuthorModel() {
        return new StringResourceModel(RESKEY_AUTHOR, this, null);
    }

    /**
     * Returns the setTitleModel navigation bar for the page.
     *
     * @param cid Wicket component ID for the setTitleModel navigation bar
     * @return The navigation bar for the setTitleModel
     */
    protected Navbar getHeaderNavBar(final String cid) {
        return new AppNavBar(cid);
    }

    /**
     * Override to disable setTitleModel.
     *
     * @return show (true) or hide (false) setTitleModel
     */
    protected boolean isShowHeader() {
        return true;
    }

    /**
     * Override to hide the page title.
     *
     * @return show (true) or hide (false) the page title
     */
    protected boolean isShowPageTitle() {
        return true;
    }

    @Override
    public void renderHead(final IHeaderResponse response) {
        response.render(CssHeaderItem.forReference(new CssResourceReference(BasePage.class, "BasePage.css")));
    }
}
TOP

Related Classes of org.wicketstuff.openlayers3.examples.base.BasePage

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.