com.github.gwtbootstrap.showcase.client.Datepicker.java Source code

Java tutorial

Introduction

Here is the source code for com.github.gwtbootstrap.showcase.client.Datepicker.java

Source

/*
 *  Copyright 2012 GWT-Bootstrap
 *
 *  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.github.gwtbootstrap.showcase.client;

import java.util.Arrays;
import java.util.Date;

import com.github.gwtbootstrap.client.ui.CheckBox;
import com.github.gwtbootstrap.client.ui.ListBox;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.github.gwtbootstrap.client.ui.ValueListBox;
import com.github.gwtbootstrap.client.ui.event.HideEvent;
import com.github.gwtbootstrap.client.ui.event.ShowEvent;
import com.github.gwtbootstrap.datepicker.client.ui.DateBox;
import com.github.gwtbootstrap.datepicker.client.ui.base.HasStartView;
import com.github.gwtbootstrap.datepicker.client.ui.base.HasStartView.ViewMode;
import com.github.gwtbootstrap.showcase.client.util.EnumRenderer;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;

public class Datepicker extends Composite {

    @UiField
    DateBox datePicker;

    @UiField
    CheckBox autoClose;

    @UiField
    TextBox format;

    @UiField
    FlowPanel logViewer;

    @UiField
    ListBox weekStart;

    @UiField
    DateBox valueDate;

    @UiField(provided = true)
    ValueListBox<ViewMode> viewMode = new ValueListBox<HasStartView.ViewMode>(
            new EnumRenderer<ViewMode>("Choose it"));

    interface DatepickerUiBinder extends UiBinder<Widget, Datepicker> {
    }

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

    public Datepicker() {
        initWidget(uiBinder.createAndBindUi(this));

        viewMode.setValue(null);
        viewMode.setAcceptableValues(Arrays.asList(ViewMode.values()));
    }

    @UiHandler("showButton")
    public void onClickShowButton(ClickEvent e) {
        datePicker.show();
    }

    @UiHandler("hideButton")
    public void onClickHideButton(ClickEvent e) {
        datePicker.hide();
    }

    @UiHandler("autoClose")
    public void onClickAutoClose(ValueChangeEvent<Boolean> e) {
        datePicker.setAutoClose(e.getValue());
        datePicker.reconfigure();
    }

    @UiHandler("enabled")
    public void onClickEnabed(ValueChangeEvent<Boolean> e) {
        datePicker.setEnabled(e.getValue());
    }

    @UiHandler("format")
    public void onChangeFormat(ValueChangeEvent<String> e) {
        datePicker.setFormat(e.getValue());
        datePicker.reconfigure();
    }

    @UiHandler("language")
    public void onCHangeLanguage(ValueChangeEvent<String> e) {
        datePicker.setLanguage(e.getValue());
        datePicker.reconfigure();
    }

    @UiHandler("weekStart")
    public void onChangeWeekStart(ChangeEvent e) {
        datePicker.setWeekStart(Integer.parseInt(weekStart.getValue()));
        datePicker.reconfigure();
    }

    @UiHandler("startDate")
    public void onChangeStartDate(ValueChangeEvent<Date> e) {
        if (e.getValue() == null) {
            return;
        }

        datePicker.setStartDate_(e.getValue());
        datePicker.reconfigure();
    }

    @UiHandler("endDate")
    public void onChangeEndDate(ValueChangeEvent<Date> e) {
        if (e.getValue() == null) {
            return;
        }

        datePicker.setEndDate_(e.getValue());
        datePicker.reconfigure();
    }

    @UiHandler("viewMode")
    public void onChangeViewMode(ValueChangeEvent<ViewMode> e) {
        if (e.getValue() == null) {
            return;
        }

        datePicker.setStartView(e.getValue());
        datePicker.reconfigure();
    }

    @UiHandler("valueDate")
    public void onChangeValueDate(ValueChangeEvent<Date> e) {
        datePicker.setValue(e.getValue());
    }

    @UiHandler("datePicker")
    public void onShow(ShowEvent e) {
        addLog("fire show event");
    }

    @UiHandler("datePicker")
    public void onHide(HideEvent e) {
        addLog("fire hide event");
    }

    @UiHandler("datePicker")
    public void onValueChange(ValueChangeEvent<Date> e) {
        addLog("fire value change event   [value:" + e.getValue() + "]");
    }

    public void addLog(String log) {
        logViewer.insert(new Label(new Date() + " : " + log), 0);
    }

}