Class CalendarPicker

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.ComboBoxBase<LocalDate>
com.dlsc.gemsfx.CustomComboBox<LocalDate>
com.dlsc.gemsfx.CalendarPicker
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

public class CalendarPicker extends CustomComboBox<LocalDate>
A control for selecting a date that replaces the default DatePicker that ships with JavaFX. The month view that the user can bring up by clicking on the button on the right-hand side of this control is an instance of CalendarView, which is more powerful than the normal view used by DatePicker. The CalendarView allows the user to directly jump to a specific month or year.
  • Nested Class Summary

    Nested classes/interfaces inherited from class CustomComboBox

    CustomComboBox.ButtonDisplay
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<LocalDate>>
    A converter used to translate a text into a YearMonth object and vice versa.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<LocalDate, Boolean>>
    A property to define a filter for determining which dates in the calendar can be selected.

    Properties inherited from class CustomComboBox

    buttonDisplay

    Properties inherited from class javafx.scene.control.ComboBoxBase

    armed, editable, onAction, onHidden, onHiding, onShowing, onShown, promptText, showing, value

    Properties inherited from class javafx.scene.control.Control

    contextMenu, skin, tooltip

    Properties inherited from class javafx.scene.layout.Region

    background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width

    Properties inherited from class javafx.scene.Parent

    needsLayout

    Properties inherited from class javafx.scene.Node

    accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
  • Field Summary

    Fields inherited from class javafx.scene.control.ComboBoxBase

    ON_HIDDEN, ON_HIDING, ON_SHOWING, ON_SHOWN

    Fields inherited from class javafx.scene.layout.Region

    USE_COMPUTED_SIZE, USE_PREF_SIZE

    Fields inherited from class javafx.scene.Node

    BASELINE_OFFSET_SAME_AS_HEIGHT
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new calendar picker.
  • Method Summary

    Modifier and Type
    Method
    Description
    final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<LocalDate>>
    A converter used to translate a text into a YearMonth object and vice versa.
    protected javafx.scene.control.Skin<?>
     
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<LocalDate, Boolean>>
    A property to define a filter for determining which dates in the calendar can be selected.
    Returns the view used to display dates when the picker is opening up.
    final javafx.util.StringConverter<LocalDate>
    Gets the value of the converter property.
    final javafx.util.Callback<LocalDate, Boolean>
    Gets the value of the dateFilter property.
    final javafx.scene.control.TextField
    Returns the text field control used for manual input.
     
    final void
    setConverter(javafx.util.StringConverter<LocalDate> converter)
    Sets the value of the converter property.
    final void
    setDateFilter(javafx.util.Callback<LocalDate, Boolean> dateFilter)
    Sets the value of the dateFilter property.

    Methods inherited from class javafx.scene.control.ComboBoxBase

    arm, armedProperty, disarm, editableProperty, executeAccessibleAction, getOnAction, getOnHidden, getOnHiding, getOnShowing, getOnShown, getPromptText, getValue, hide, isArmed, isEditable, isShowing, onActionProperty, onHiddenProperty, onHidingProperty, onShowingProperty, onShownProperty, promptTextProperty, queryAccessibleAttribute, setEditable, setOnAction, setOnHidden, setOnHiding, setOnShowing, setOnShown, setPromptText, setValue, show, showingProperty, valueProperty

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty

    Methods inherited from class javafx.scene.layout.Region

    backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty

    Methods inherited from class javafx.scene.Parent

    getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds

    Methods inherited from class javafx.scene.Node

    accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, requestFocusTraversal, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface javafx.css.Styleable

    getStyleableNode
  • Property Details

    • converter

      public final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<LocalDate>> converterProperty
      A converter used to translate a text into a YearMonth object and vice versa.
      See Also:
    • dateFilter

      public final javafx.beans.property.ObjectProperty<javafx.util.Callback<LocalDate, Boolean>> dateFilterProperty
      A property to define a filter for determining which dates in the calendar can be selected. This filter is applied to each date displayed in the calendar. If the filter returns true for a given date, that date will be selectable (i.e., it passes the filter). If the filter returns false, the date will be disabled and cannot be selected. This property is particularly useful for scenarios where only specific dates should be available for selection based on custom logic, such as business rules, holidays, or availability.

      When SelectionMode is CalendarView.SelectionModel.SelectionMode.DATE_RANGE, disabled dates can be included within the selected range. However, disabled dates cannot be used as either the starting or ending point of the range.

      See Also:
  • Constructor Details

    • CalendarPicker

      public CalendarPicker()
      Constructs a new calendar picker.
  • Method Details

    • createDefaultSkin

      protected javafx.scene.control.Skin<?> createDefaultSkin()
      Overrides:
      createDefaultSkin in class javafx.scene.control.Control
    • getUserAgentStylesheet

      public String getUserAgentStylesheet()
      Overrides:
      getUserAgentStylesheet in class javafx.scene.layout.Region
    • getCalendarView

      public CalendarView getCalendarView()
      Returns the view used to display dates when the picker is opening up. This method can be overridden to return a customized version of a CalendarView.
      Returns:
      the calendar view for picking a date
    • getEditor

      public final javafx.scene.control.TextField getEditor()
      Returns the text field control used for manual input.
      Returns:
      the editor / text field
    • getConverter

      public final javafx.util.StringConverter<LocalDate> getConverter()
      Gets the value of the converter property.
      Property description:
      A converter used to translate a text into a YearMonth object and vice versa.
      Returns:
      the value of the converter property
      See Also:
    • converterProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<LocalDate>> converterProperty()
      A converter used to translate a text into a YearMonth object and vice versa.
      Returns:
      the converter object
      See Also:
    • setConverter

      public final void setConverter(javafx.util.StringConverter<LocalDate> converter)
      Sets the value of the converter property.
      Property description:
      A converter used to translate a text into a YearMonth object and vice versa.
      Parameters:
      converter - the value for the converter property
      See Also:
    • getDateFilter

      public final javafx.util.Callback<LocalDate, Boolean> getDateFilter()
      Gets the value of the dateFilter property.
      Property description:
      A property to define a filter for determining which dates in the calendar can be selected. This filter is applied to each date displayed in the calendar. If the filter returns true for a given date, that date will be selectable (i.e., it passes the filter). If the filter returns false, the date will be disabled and cannot be selected. This property is particularly useful for scenarios where only specific dates should be available for selection based on custom logic, such as business rules, holidays, or availability.

      When SelectionMode is CalendarView.SelectionModel.SelectionMode.DATE_RANGE, disabled dates can be included within the selected range. However, disabled dates cannot be used as either the starting or ending point of the range.

      Returns:
      the value of the dateFilter property
      See Also:
    • dateFilterProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.Callback<LocalDate, Boolean>> dateFilterProperty()
      A property to define a filter for determining which dates in the calendar can be selected. This filter is applied to each date displayed in the calendar. If the filter returns true for a given date, that date will be selectable (i.e., it passes the filter). If the filter returns false, the date will be disabled and cannot be selected. This property is particularly useful for scenarios where only specific dates should be available for selection based on custom logic, such as business rules, holidays, or availability.

      When SelectionMode is CalendarView.SelectionModel.SelectionMode.DATE_RANGE, disabled dates can be included within the selected range. However, disabled dates cannot be used as either the starting or ending point of the range.

      Returns:
      a callback that determines the selection ability of each date based on custom criteria.
      See Also:
    • setDateFilter

      public final void setDateFilter(javafx.util.Callback<LocalDate, Boolean> dateFilter)
      Sets the value of the dateFilter property.
      Property description:
      A property to define a filter for determining which dates in the calendar can be selected. This filter is applied to each date displayed in the calendar. If the filter returns true for a given date, that date will be selectable (i.e., it passes the filter). If the filter returns false, the date will be disabled and cannot be selected. This property is particularly useful for scenarios where only specific dates should be available for selection based on custom logic, such as business rules, holidays, or availability.

      When SelectionMode is CalendarView.SelectionModel.SelectionMode.DATE_RANGE, disabled dates can be included within the selected range. However, disabled dates cannot be used as either the starting or ending point of the range.

      Parameters:
      dateFilter - the value for the dateFilter property
      See Also: