Package it.freedomotic.gwtclient.client.widgets

Source Code of it.freedomotic.gwtclient.client.widgets.ContactInfoForm$Binder

/*
* Copyright 2010 Google Inc.
*
* 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 it.freedomotic.gwtclient.client.widgets;

import it.freedomotic.gwtclient.client.widgets.ContactDatabase.Category;
import it.freedomotic.gwtclient.client.widgets.ContactDatabase.ContactInfo;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.datepicker.client.DateBox;

/**
* A form used for editing contacts.
*/
public class ContactInfoForm extends Composite {

    private static Binder uiBinder = GWT.create(Binder.class);

    interface Binder extends UiBinder<Widget, ContactInfoForm> {
    }
    @UiField
    TextArea addressBox;
    @UiField
    DateBox birthdayBox;
    @UiField
    ListBox categoryBox;
    @UiField
    Button createButton;
    @UiField
    TextBox firstNameBox;
    @UiField
    TextBox lastNameBox;
    @UiField
    Button updateButton;
    private ContactInfo contactInfo;

    public ContactInfoForm() {
        initWidget(uiBinder.createAndBindUi(this));
        DateTimeFormat dateFormat = DateTimeFormat.getFormat(
                PredefinedFormat.DATE_LONG);
        birthdayBox.setFormat(new DateBox.DefaultFormat(dateFormat));

        // Add the categories to the category box.
        final Category[] categories = ContactDatabase.get().queryCategories();
        for (Category category : categories) {
            categoryBox.addItem(category.getDisplayName());
        }

        // Initialize the contact to null.
        setContact(null);

        // Handle events.
        updateButton.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                if (contactInfo == null) {
                    return;
                }

                // Update the contact.
                contactInfo.setFirstName(firstNameBox.getText());
                contactInfo.setLastName(lastNameBox.getText());
                contactInfo.setAddress(addressBox.getText());
                contactInfo.setBirthday(birthdayBox.getValue());
                int categoryIndex = categoryBox.getSelectedIndex();
                contactInfo.setCategory(categories[categoryIndex]);

                // Update the views.
                ContactDatabase.get().refreshDisplays();
            }
        });
        createButton.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                int categoryIndex = categoryBox.getSelectedIndex();
                Category category = categories[categoryIndex];
                contactInfo = new ContactInfo(category);
                contactInfo.setFirstName(firstNameBox.getText());
                contactInfo.setLastName(lastNameBox.getText());
                contactInfo.setAddress(addressBox.getText());
                contactInfo.setBirthday(birthdayBox.getValue());
                ContactDatabase.get().addContact(contactInfo);
                setContact(contactInfo);
            }
        });
    }

    public void setContact(ContactInfo contact) {
        this.contactInfo = contact;
        updateButton.setEnabled(contact != null);
        if (contact != null) {
            firstNameBox.setText(contact.getFirstName());
            lastNameBox.setText(contact.getLastName());
            addressBox.setText(contact.getAddress());
            birthdayBox.setValue(contact.getBirthday());
            Category category = contact.getCategory();
            Category[] categories = ContactDatabase.get().queryCategories();
            for (int i = 0; i < categories.length; i++) {
                if (category == categories[i]) {
                    categoryBox.setSelectedIndex(i);
                    break;
                }
            }
        }
    }
}
TOP

Related Classes of it.freedomotic.gwtclient.client.widgets.ContactInfoForm$Binder

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.