Package org.ugate.gui.components

Source Code of org.ugate.gui.components.SimpleCalendar

package org.ugate.gui.components;

import java.util.Date;

import javafx.beans.property.ObjectProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Point2D;
import javafx.scene.Parent;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Popup;

/**
* A simple calendar to pick up a date.
*/
public class SimpleCalendar extends VBox {

  private Popup popup;
  final DatePicker datePicker;
 
  public SimpleCalendar() {
    popup = new Popup();
    popup.setAutoHide(true);
    popup.setAutoFix(true);
    popup.setHideOnEscape(true);

    datePicker = new DatePicker();
    datePicker.dateProperty().addListener(new ChangeListener<Date>() {

      @Override
      public void changed(ObservableValue<? extends Date> ov,
          Date oldDate, Date newDate) {
        if (popup.isShowing())
          popup.hide();
       
      }
    });
    popup.getContent().add(datePicker);

    final Button calenderButton = new Button();
    calenderButton.setId("CalenderButton");
    calenderButton.setOnAction(new EventHandler<ActionEvent>() {

      @Override
      public void handle(ActionEvent ae) {
        Parent parent = SimpleCalendar.this.getParent();
        // Popup will be shown at upper left corner of calenderbutton
        Point2D point = calenderButton.localToScene(0, 0);
        final double layoutX = parent.getScene().getWindow().getX() + parent.getScene().getX() + point.getX();
        final double layoutY = parent.getScene().getWindow().getY() + parent.getScene().getY() + point.getY();
        popup.show(SimpleCalendar.this, layoutX, layoutY);

      }
    });
   
    getChildren().add(calenderButton);
  }
 
  /**
   * @return a string bean property to bind the date information to a desired node
   */
  public ObjectProperty<Date> dateProperty() {
    return datePicker.dateProperty();
  }
 
}
TOP

Related Classes of org.ugate.gui.components.SimpleCalendar

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.