de.tudarmstadt.ukp.csniper.webapp.WicketApplication.java Source code

Java tutorial

Introduction

Here is the source code for de.tudarmstadt.ukp.csniper.webapp.WicketApplication.java

Source

/*******************************************************************************
 * Copyright 2013
 * Ubiquitous Knowledge Processing (UKP) Lab
 * Technische Universitt Darmstadt
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package de.tudarmstadt.ukp.csniper.webapp;

import org.apache.wicket.Page;
import org.apache.wicket.authorization.strategies.CompoundAuthorizationStrategy;
import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication;
import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
import org.apache.wicket.authroles.authorization.strategies.role.annotations.AnnotationsRoleAuthorizationStrategy;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.request.resource.CssResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
import org.apache.wicket.util.time.Duration;
import org.odlabs.wiquery.ui.themes.WiQueryCoreThemeResourceReference;

import de.tudarmstadt.ukp.csniper.webapp.analysis.page.AnalysisPage;
import de.tudarmstadt.ukp.csniper.webapp.evaluation.page.EvaluationPage;
import de.tudarmstadt.ukp.csniper.webapp.page.login.LoginPage;
import de.tudarmstadt.ukp.csniper.webapp.page.welcome.WelcomePage;
import de.tudarmstadt.ukp.csniper.webapp.project.page.AnnotationTypePage;
import de.tudarmstadt.ukp.csniper.webapp.project.page.ProjectPage;
import de.tudarmstadt.ukp.csniper.webapp.search.page.SearchPage;
import de.tudarmstadt.ukp.csniper.webapp.security.SpringAuthenticatedWebSession;
import de.tudarmstadt.ukp.csniper.webapp.security.page.ManageUsersPage;
import de.tudarmstadt.ukp.csniper.webapp.statistics.page.StatisticsPage;
import de.tudarmstadt.ukp.csniper.webapp.statistics.page.StatisticsPage2;

/**
 * Application object for your web application. If you want to run this application without
 * deploying, run the Start class.
 */
public class WicketApplication extends AuthenticatedWebApplication {
    boolean isInitialized = false;

    private ResourceReference theme;

    public WicketApplication() {
        // theme = new WiQueryCoreThemeResourceReference("redlion");
        // cannot use above line, because it uses jquery-ui-1.8.24, for which we don't have redlion
        theme = new CssResourceReference(WiQueryCoreThemeResourceReference.class,
                "redlion" + "/jquery-ui-1.8.16.custom.css");
    }

    @Override
    public void init() {
        addResourceReplacement(WiQueryCoreThemeResourceReference.get(), theme);

        if (!isInitialized) {
            super.init();

            getRequestCycleSettings().setTimeout(Duration.minutes(10));

            getComponentInstantiationListeners().add(new SpringComponentInjector(this));

            CompoundAuthorizationStrategy autr = new CompoundAuthorizationStrategy();
            autr.add(new AnnotationsRoleAuthorizationStrategy(this));
            autr.add(new MetaDataRoleAuthorizationStrategy(this));
            getSecuritySettings().setAuthorizationStrategy(autr);

            mountPage("/login.html", getSignInPageClass());
            mountPage("/analysis.html", AnalysisPage.class);
            mountPage("/evaluation.html", EvaluationPage.class);
            mountPage("/project.html", ProjectPage.class);
            mountPage("/type.html", AnnotationTypePage.class);
            mountPage("/statistics.html", StatisticsPage.class);
            mountPage("/statistics2.html", StatisticsPage2.class);
            //         mountPage("/export.html", ExportPage.class);
            mountPage("/search.html", SearchPage.class);
            mountPage("/welcome.html", getHomePage());
            //         mountPage("/exportHtml.html", ExportHtmlPage.class);
            mountPage("/users.html", ManageUsersPage.class);

            isInitialized = true;
        }
    }

    /**
     * @see org.apache.wicket.Application#getHomePage()
     */
    @Override
    public Class<? extends Page> getHomePage() {
        return WelcomePage.class;
    }

    @Override
    public Class<? extends WebPage> getSignInPageClass() {
        return LoginPage.class;
    }

    @Override
    protected Class<? extends AuthenticatedWebSession> getWebSessionClass() {
        return SpringAuthenticatedWebSession.class;
    }
}