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

Java tutorial

Introduction

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

Source

// Copyright (C) 2008 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.OnEditEnabler;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.ContactInformation;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwtexpui.globalkey.client.NpTextArea;
import com.google.gwtexpui.globalkey.client.NpTextBox;

import java.sql.Timestamp;
import java.util.Date;

class ContactPanelFull extends ContactPanelShort {
    private Label hasContact;
    private NpTextArea addressTxt;
    private NpTextBox countryTxt;
    private NpTextBox phoneTxt;
    private NpTextBox faxTxt;

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

        addressTxt = new NpTextArea();
        addressTxt.setVisibleLines(4);
        addressTxt.setCharacterWidth(60);

        countryTxt = new NpTextBox();
        countryTxt.setVisibleLength(40);
        countryTxt.setMaxLength(40);

        phoneTxt = new NpTextBox();
        phoneTxt.setVisibleLength(30);
        phoneTxt.setMaxLength(30);

        faxTxt = new NpTextBox();
        faxTxt.setVisibleLength(30);
        faxTxt.setMaxLength(30);

        final Grid infoSecure = new Grid(4, 2);
        infoSecure.setStyleName(Gerrit.RESOURCES.css().infoBlock());
        infoSecure.addStyleName(Gerrit.RESOURCES.css().accountInfoBlock());

        final HTML privhtml = new HTML(Util.C.contactPrivacyDetailsHtml());
        privhtml.setStyleName(Gerrit.RESOURCES.css().accountContactPrivacyDetails());

        hasContact = new Label();
        hasContact.setStyleName(Gerrit.RESOURCES.css().accountContactOnFile());
        hasContact.setVisible(false);

        if (Gerrit.getConfig().isUseContactInfo()) {
            body.add(privhtml);
            body.add(hasContact);
            body.add(infoSecure);
        }

        row(infoSecure, 0, Util.C.contactFieldAddress(), addressTxt);
        row(infoSecure, 1, Util.C.contactFieldCountry(), countryTxt);
        row(infoSecure, 2, Util.C.contactFieldPhone(), phoneTxt);
        row(infoSecure, 3, Util.C.contactFieldFax(), faxTxt);

        infoSecure.getCellFormatter().addStyleName(0, 0, Gerrit.RESOURCES.css().topmost());
        infoSecure.getCellFormatter().addStyleName(0, 1, Gerrit.RESOURCES.css().topmost());
        infoSecure.getCellFormatter().addStyleName(3, 0, Gerrit.RESOURCES.css().bottomheader());

        final OnEditEnabler sbl = new OnEditEnabler(save);
        sbl.listenTo(addressTxt);
        sbl.listenTo(countryTxt);
        sbl.listenTo(phoneTxt);
        sbl.listenTo(faxTxt);
    }

    @Override
    protected void display(final Account userAccount) {
        super.display(userAccount);
        displayHasContact(userAccount);
        addressTxt.setText("");
        countryTxt.setText("");
        phoneTxt.setText("");
        faxTxt.setText("");
    }

    private void displayHasContact(final Account userAccount) {
        if (userAccount.isContactFiled()) {
            final Timestamp dt = userAccount.getContactFiledOn();
            hasContact.setText(Util.M.contactOnFile(new Date(dt.getTime())));
            hasContact.setVisible(true);
        } else {
            hasContact.setVisible(false);
        }
    }

    @Override
    void onSaveSuccess(final Account userAccount) {
        super.onSaveSuccess(userAccount);
        displayHasContact(userAccount);
    }

    @Override
    ContactInformation toContactInformation() {
        final ContactInformation info;
        if (Gerrit.getConfig().isUseContactInfo()) {
            info = new ContactInformation();
            info.setAddress(addressTxt.getText());
            info.setCountry(countryTxt.getText());
            info.setPhoneNumber(phoneTxt.getText());
            info.setFaxNumber(faxTxt.getText());
        } else {
            info = null;
        }
        return info;
    }
}