Package solysombra.client.views

Source Code of solysombra.client.views.ViewDatePicker

package solysombra.client.views;

import java.util.HashMap;

import com.google.gwt.dom.client.Document;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.datepicker.client.DateBox;

public class ViewDatePicker extends Composite {

  private final VerticalPanel mainPanel;

  public ViewDatePicker(HashMap<String, Integer> params) {

    mainPanel = new VerticalPanel();
    initWidget(mainPanel);

    mainPanel.getElement().addClassName("panelPicker");

    Label labelBox = new Label("Elija una fecha:");
    Label labelBox2 = new Label("Y una hora:");
    final ListBox horaText = new ListBox();
    horaText.getElement().addClassName("selectorHora");
    labelBox.getElement().addClassName("labelDatePicker");
    labelBox2.getElement().addClassName("labelDatePicker");
    PredefinedFormat format = DateTimeFormat.PredefinedFormat.DATE_LONG;
    DateTimeFormat dateTimeFormat = DateTimeFormat.getFormat(format);
    final DateBox dateBox = new DateBox();
    dateBox.setFormat(new DateBox.DefaultFormat(dateTimeFormat));

    HorizontalPanel horas = new HorizontalPanel();
    Label horasLabel = new Label("24 horas");
    horasLabel.getElement().addClassName("labelHoras");
    horas.add(horaText);
    horas.add(horasLabel);
    mainPanel.add(labelBox);
    mainPanel.add(dateBox);
    mainPanel.add(labelBox2);
    mainPanel.add(horas);
    horaText.clear();
    for (int i = 0; i < 24; i++) {
      if (i < 10) {
        horaText.addItem("0" + i, String.valueOf(i));
      } else {
        horaText.addItem(String.valueOf(i));
      }
    }

    TextBox aux = dateBox.getTextBox();

    aux.addValueChangeHandler(new ValueChangeHandler<String>() {

      @Override
      public void onValueChange(ValueChangeEvent<String> event) {
        if (!(dateBox.getTextBox().getText().isEmpty())) {
          String[] fecha = dateBox.getTextBox().getText().split(" ");
          Integer dia = new Integer(fecha[2]);
          System.out.println(dia);
          Document.get().getElementById("dia")
              .setPropertyInt("value", dia);

        }

      }
    });
    ValueChangeHandler vHandler = new ValueChangeHandler<String>() {

      @Override
      public void onValueChange(ValueChangeEvent<String> event) {
        if (!(dateBox.getTextBox().getText().isEmpty())) {
          String[] fecha = dateBox.getTextBox().getText().split(" ");
          Integer dia = new Integer(fecha[2]);
          System.out.println(dia);
          Document.get().getElementById("dia")
              .setPropertyInt("value", dia);
          Document.get().getElementById("mes")
              .setPropertyInt("value", traduceMes(fecha[1]));
        }

      }

    };
    dateBox.addValueChangeHandler(vHandler);

    horaText.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {

        Integer aux = new Integer(horaText.getValue(horaText
            .getSelectedIndex()));
        Document.get().getElementById("hora")
            .setPropertyInt("value", aux);

      }

    });

  }

  private int traduceMes(String string) {
    int res = -1;
    switch (string) {
    case "January":
      res = 1;
      break;
    case "February":
      res = 2;
      break;
    case "March":
      res = 3;
      break;
    case "April":
      res = 4;
      break;
    case "May":
      res = 5;
      break;
    case "June":
      res = 6;
      break;
    case "July":
      res = 7;
      break;
    case "August":
      res = 8;
      break;
    case "September":
      res = 9;
      break;
    case "October":
      res = 10;
      break;
    case "November":
      res = 11;
      break;
    case "December":
      res = 12;
      break;
    }
    if (res == -1) {
      throw new IllegalArgumentException("Mes no encontrado!");
    }
    return res;
  }

}
TOP

Related Classes of solysombra.client.views.ViewDatePicker

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.