Package org.openengsb.ui.admin.loginPage

Source Code of org.openengsb.ui.admin.loginPage.LoginPage$DefaultImprintPanel

/**
* Licensed to the Austrian Association for Software Tool Integration (AASTI)
* under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright
* ownership. The AASTI licenses this file to you 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 org.openengsb.ui.admin.loginPage;

import java.util.Locale;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
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.form.Form;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.RequiredTextField;
import org.apache.wicket.markup.html.image.Image;
import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.openengsb.ui.admin.model.UsernamePassword;
import org.openengsb.ui.common.OpenEngSBPage;
import org.openengsb.ui.common.imprint.ImprintPanel;
import org.openengsb.ui.common.resources.css.CommonCssLocator;
import org.openengsb.ui.common.resources.images.CommonPictureLocator;
import org.openengsb.ui.common.resources.js.CommonJsLocator;
import org.ops4j.pax.wicket.api.PaxWicketMountPoint;

@PaxWicketMountPoint(mountPoint = "login")
public class LoginPage extends OpenEngSBPage {

    private static final long serialVersionUID = 4704550987311760491L;

    private final UsernamePassword user = new UsernamePassword();

    public final class DefaultImprintPanel extends ImprintPanel {

        private static final long serialVersionUID = 1L;

        public DefaultImprintPanel(String id) {
            super(id);
        }
    }

    public LoginPage() {
        initContent();
    }

    public LoginPage(PageParameters parameters) {
        super(parameters);
    }

    @Override
    public void renderHead(IHeaderResponse response) {
        response.render(CssHeaderItem.forReference(CommonCssLocator.getGridsCss()));
        response.render(CssHeaderItem.forReference(CommonCssLocator.getLoginPageCss()));
        response.render(CssHeaderItem.forReference(CommonCssLocator.getJqueryUiCss()));
        response.render(JavaScriptHeaderItem.forReference(CommonJsLocator.getJqueryJs()));
        response.render(JavaScriptHeaderItem.forReference(CommonJsLocator.getJqueryUi()));
        response.render(JavaScriptHeaderItem.forReference(CommonJsLocator.getJqueryHelper()));

        // Javascript code to set the focus on the unsername input field. Only necessary for loginpage,
        // therefore injected directly
        response.render(JavaScriptHeaderItem.forScript(""
                + "$(function() {"
                + "  $(\"#username\").focus();"
                + "});"
            + "", "setFocusOnload", "loginfocus"));
    }

    private void initContent() {
        @SuppressWarnings("serial")
        Form<UsernamePassword> loginForm = new Form<UsernamePassword>("loginForm") {
            @Override
            protected void onSubmit() {
                AuthenticatedWebSession session = AuthenticatedWebSession.get();
                if (session.signIn(user.getUsername(), user.getPassword())) {
                    setDefaultResponsePageIfNecessary();
                } else {
                    error(new StringResourceModel("error", this, null).getString());
                }
            }

            private void setDefaultResponsePageIfNecessary() {
                continueToOriginalDestination();
                setResponsePage(getApplication().getHomePage());
            }
        };
        loginForm.setModel(new CompoundPropertyModel<UsernamePassword>(user));
        add(loginForm);
        loginForm.add(new RequiredTextField<String>("username"));
        loginForm.add(new PasswordTextField("password"));

        FeedbackPanel feedbackPanel = new FeedbackPanel("feedback");
        feedbackPanel.setOutputMarkupId(true);
        add(feedbackPanel);

        add(new Image("topImage", CommonPictureLocator.getGreyscaleLogoBig()));

        Panel imprintDialogue = new DefaultImprintPanel("imprintDialogue");
        imprintDialogue.setOutputMarkupId(true);
        add(imprintDialogue);

        ExternalLink addUserLink = new ExternalLink("imprint", "#");
        addUserLink.add(AttributeModifier.replace("onClick",
            "showModalButtonCloseDialogue('" + imprintDialogue.getMarkupId() + "'"
                    + ",'" + getLocalizer().getString("imprint", this) + "',false,false,550,450)"));
        loginForm.add(addUserLink);

        add(new Link<Object>("lang.en") {

            private static final long serialVersionUID = -2740581767694866689L;

            @Override
            public void onClick() {
                getSession().setLocale(Locale.ENGLISH);
                setResponsePage(this.getPage());
            }
        });

        add(new Link<Object>("lang.de") {

            private static final long serialVersionUID = -6858440905643185661L;

            @Override
            public void onClick() {
                getSession().setLocale(Locale.GERMAN);
                setResponsePage(this.getPage());
            }
        });
    }
}
TOP

Related Classes of org.openengsb.ui.admin.loginPage.LoginPage$DefaultImprintPanel

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.