| // 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); |
| } |
| } |