Package com.projectplace.gwt.relhello.client

Source Code of com.projectplace.gwt.relhello.client.RelativeHello

package com.projectplace.gwt.relhello.client;

import java.util.Date;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.projectplace.gwt.reltime.client.RelativeTime;

/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class RelativeHello implements EntryPoint {
    private final DateTimeFormat dateTimeFormat = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss ZZZZ");
    /**
     * This is the entry point method.
     */
    public void onModuleLoad() {
        final Button addButton = new Button("Add");
        final Button updateButton = new Button("Update all");
        final TextBox dateField = new TextBox();

        dateField.setText(dateTimeFormat.format(new Date()));
        final Label errorLabel = new Label();
        errorLabel.addStyleName("serverResponseLabelError");

        addButton.addStyleName("tryButton");
       
        updateButton.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                RelativeTime.updateAllTended();
            }
        });
        RootPanel.get("dateFieldContainer").add(dateField);
        RootPanel.get("tryButtonContainer").add(addButton);
        RootPanel.get("tryButtonContainer").add(updateButton);
        RootPanel.get("errorLabelContainer").add(errorLabel);

        dateField.setFocus(true);
        dateField.selectAll();

        // Create a handler for the sendButton and dateField
        class MyHandler implements ClickHandler, KeyUpHandler {
            /**
             * Fired when the user clicks on the sendButton.
             */
            public void onClick(ClickEvent event) {
                addDate();
            }

            /**
             * Fired when the user types in the dateField.
             */
            public void onKeyUp(KeyUpEvent event) {
                if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                    addDate();
                }
            }

            /**
             * Convert the date using @link RelativeTime.
             */
            private void addDate() {
                errorLabel.setText("");
                String dateString = dateField.getText();
                final Label resultLabel = new Label();
                RootPanel.get("resultLabelContainer").insert(resultLabel, 0);
                final RelativeTime relativeFormatter = new RelativeTime();
                try {
                    Date date = dateTimeFormat.parse(dateString);
                    relativeFormatter.tend(resultLabel, date);
                }
                catch (IllegalArgumentException e) {
                    resultLabel.setText("");
                    errorLabel.setText("Error parsing that date: " + e.getMessage());
                }
            }
        }

        MyHandler handler = new MyHandler();
        addButton.addClickHandler(handler);
        dateField.addKeyUpHandler(handler);
    }
}
TOP

Related Classes of com.projectplace.gwt.relhello.client.RelativeHello

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.