com.google.gerrit.client.account.RegisterScreen.java Source code

Java tutorial

Introduction

Here is the source code for com.google.gerrit.client.account.RegisterScreen.java

Source

// Copyright (C) 2009 The Android Open Source Project
//
// 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 com.google.gerrit.client.account;

import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.ui.AccountScreen;
import com.google.gerrit.client.ui.InlineHyperlink;
import com.google.gerrit.client.ui.SmallHeading;
import com.google.gerrit.common.PageLinks;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Account.FieldName;
import com.google.gwt.i18n.client.LocaleInfo;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;

public class RegisterScreen extends AccountScreen {
    private final String nextToken;

    public RegisterScreen(final String next) {
        nextToken = next;
    }

    @Override
    protected void onLoad() {
        super.onLoad();
        display();
    }

    @Override
    protected void onInitUI() {
        super.onInitUI();
        setPageTitle(Util.C.welcomeToGerritCodeReview());

        final FlowPanel formBody = new FlowPanel();

        final FlowPanel contactGroup = new FlowPanel();
        contactGroup.setStyleName(Gerrit.RESOURCES.css().registerScreenSection());
        contactGroup.add(new SmallHeading(Util.C.welcomeReviewContact()));
        final HTML whereFrom = new HTML(Util.C.welcomeContactFrom());
        whereFrom.setStyleName(Gerrit.RESOURCES.css().registerScreenExplain());
        contactGroup.add(whereFrom);
        contactGroup.add(new ContactPanelShort() {
            @Override
            protected void display(final Account userAccount) {
                super.display(userAccount);

                if ("".equals(nameTxt.getText())) {
                    // No name? Encourage the user to provide us something.
                    //
                    nameTxt.setFocus(true);
                    save.setEnabled(true);
                }
            }
        });
        formBody.add(contactGroup);

        if (Gerrit.getUserAccount().getUserName() == null && Gerrit.getConfig().canEdit(FieldName.USER_NAME)) {
            final FlowPanel fp = new FlowPanel();
            fp.setStyleName(Gerrit.RESOURCES.css().registerScreenSection());
            fp.add(new SmallHeading(Util.C.welcomeUsernameHeading()));

            final Grid userInfo = new Grid(1, 2);
            final CellFormatter fmt = userInfo.getCellFormatter();
            userInfo.setStyleName(Gerrit.RESOURCES.css().infoBlock());
            userInfo.addStyleName(Gerrit.RESOURCES.css().accountInfoBlock());
            fp.add(userInfo);

            fmt.addStyleName(0, 0, Gerrit.RESOURCES.css().topmost());
            fmt.addStyleName(0, 1, Gerrit.RESOURCES.css().topmost());
            fmt.addStyleName(0, 0, Gerrit.RESOURCES.css().bottomheader());

            UsernameField field = new UsernameField();
            if (LocaleInfo.getCurrentLocale().isRTL()) {
                userInfo.setText(0, 1, Util.C.userName());
                userInfo.setWidget(0, 0, field);
                fmt.addStyleName(0, 1, Gerrit.RESOURCES.css().header());
            } else {
                userInfo.setText(0, 0, Util.C.userName());
                userInfo.setWidget(0, 1, field);
                fmt.addStyleName(0, 0, Gerrit.RESOURCES.css().header());
            }

            formBody.add(fp);
        }

        if (Gerrit.getConfig().getSshdAddress() != null) {
            final FlowPanel sshKeyGroup = new FlowPanel();
            sshKeyGroup.setStyleName(Gerrit.RESOURCES.css().registerScreenSection());
            sshKeyGroup.add(new SmallHeading(Util.C.welcomeSshKeyHeading()));
            final HTML whySshKey = new HTML(Util.C.welcomeSshKeyText());
            whySshKey.setStyleName(Gerrit.RESOURCES.css().registerScreenExplain());
            sshKeyGroup.add(whySshKey);
            sshKeyGroup.add(new SshPanel() {
                {
                    setKeyTableVisible(false);
                }
            });
            formBody.add(sshKeyGroup);
        }

        final FlowPanel choices = new FlowPanel();
        choices.setStyleName(Gerrit.RESOURCES.css().registerScreenNextLinks());
        if (Gerrit.getConfig().isUseContributorAgreements()) {
            final FlowPanel agreementGroup = new FlowPanel();
            agreementGroup.setStyleName(Gerrit.RESOURCES.css().registerScreenSection());
            agreementGroup.add(new SmallHeading(Util.C.welcomeAgreementHeading()));
            final HTML whyAgreement = new HTML(Util.C.welcomeAgreementText());
            whyAgreement.setStyleName(Gerrit.RESOURCES.css().registerScreenExplain());
            agreementGroup.add(whyAgreement);

            choices.add(new InlineHyperlink(Util.C.newAgreement(), PageLinks.SETTINGS_NEW_AGREEMENT));
            choices.add(new InlineHyperlink(Util.C.welcomeAgreementLater(), nextToken));
            formBody.add(agreementGroup);
        } else {
            choices.add(new InlineHyperlink(Util.C.welcomeContinue(), nextToken));
        }
        formBody.add(choices);

        final FormPanel form = new FormPanel();
        form.add(formBody);
        add(form);
    }
}