Module jfxtras.icalendaragenda
Class EditRecurrenceRuleVBox<T extends VDisplayable<T>>
java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.layout.Pane
javafx.scene.layout.VBox
jfxtras.internal.scene.control.skin.agenda.icalendar.base24hour.popup.EditRecurrenceRuleVBox<T>
- Type Parameters:
T- subclass ofVDisplayable
- All Implemented Interfaces:
javafx.css.Styleable,javafx.event.EventTarget
- Direct Known Subclasses:
EditRecurrenceRuleVEventVBox,EditRecurrenceRuleVJournalVBox,EditRecurrenceRuleVTodoVBox
public abstract class EditRecurrenceRuleVBox<T extends VDisplayable<T>>
extends javafx.scene.layout.VBox
VBox containing controls to edit the
RecurrenceRule in a VDisplayable.
Note: Only supports one Exception Date property (the iCalendar standard allows multiple Exception Date properties)
-
Property Summary
Properties inherited from class javafx.scene.layout.VBox
alignment, fillWidth, spacingProperties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, widthProperties inherited from class javafx.scene.Parent
needsLayoutProperties 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, 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
FieldsModifier and TypeFieldDescriptionprivate javafx.scene.control.Buttonprotected javafx.beans.property.ObjectProperty<Temporal>private javafx.beans.property.ObjectProperty<Temporal>private final javafx.beans.value.ChangeListener<? super Temporal>private javafx.scene.control.RadioButtonprivate javafx.beans.value.ChangeListener<? super Boolean>private final javafx.beans.value.ChangeListener<? super Boolean>(package private) final javafx.collections.ObservableList<DayOfWeek>private javafx.scene.control.RadioButtonstatic final Periodprivate javafx.scene.control.Spinner<Integer>private javafx.scene.control.RadioButtonprivate javafx.scene.control.ToggleGroupprivate javafx.scene.control.RadioButtonprivate javafx.scene.control.Labelstatic final intprivate javafx.scene.control.ComboBox<Temporal>private javafx.scene.control.ListView<Temporal>(package private) javafx.scene.control.ComboBox<FrequencyType>private javafx.scene.control.Labelprivate final javafx.beans.value.ChangeListener<? super FrequencyType>private javafx.scene.control.CheckBoxstatic final int(package private) javafx.scene.control.Spinner<Integer>private final javafx.beans.value.ChangeListener<? super Integer>private final javafx.beans.InvalidationListenerprivate javafx.scene.control.CheckBoxprivate javafx.scene.control.ToggleGroupprivate javafx.scene.control.Labelprivate javafx.scene.layout.VBoxprivate final javafx.beans.value.ChangeListener<? super Boolean>private RecurrenceRuleValueprivate javafx.beans.property.ObjectProperty<RecurrenceRuleValue>private javafx.scene.control.Buttonprivate javafx.scene.control.CheckBoxprivate javafx.scene.layout.GridPaneprivate javafx.scene.control.Labelprivate ResourceBundleprivate RecurrenceRuleValueprivate javafx.scene.control.CheckBox(package private) javafx.scene.control.DatePickerprivate javafx.scene.control.CheckBoxprivate javafx.scene.control.CheckBoxprivate javafx.scene.control.CheckBoxprivate javafx.scene.control.DatePickerprivate final javafx.beans.value.ChangeListener<? super LocalDate>private javafx.scene.control.RadioButtonprivate final javafx.beans.value.ChangeListener<? super Boolean>(package private) Tprivate javafx.scene.control.CheckBoxprivate javafx.scene.layout.HBoxprivate javafx.scene.control.Labelprivate final javafx.beans.value.ChangeListener<? super Temporal>Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZEFields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidprivate static StringbyDaySummary(ByDay byDay) Produces an easy to ready summary for ByDay rule with only one ByDayPair.private TemporalFinds closest recurrence, at least one recurrence past DTSTART, from initialUntilDateprivate DateTimeFormatterprivate voidprivate voidvoidprivate booleanisSupported(VDisplayable<?> vComponent) protected static voidprivate voidMake list of start date/times for exceptionComboBoxstatic StringmakeSummary(RecurrenceRuleValue rrule, Temporal startTemporal) Produce easy to read summary of repeat rule Is limited to producing strings for following repeat rules: Any individual Frequency (FREQ) COUNT and UNTIL properties MONTHLY and WEEKLY with ByDay Byxxx rule For example: RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=11;BYDAY=MO,WE,FR produces: "Every 2 weeks on Monday, Wednesday, Friday, 11 times"private static voidnotDateAlert(String exampleDate) private static voidprivate static voidnotOccurrenceDateAlert(Temporal temporal) private voidMake list of start date/times for exceptionComboBoxprivate voidprivate voidprivate voidsetDayOfWeek(RecurrenceRuleValue rRule) Set day of week properties if FREQ=WEEKLY and has BYDAY rule This method is called only during setupprivate voidprivate voidsetInitialValues(VDisplayable<?> vComponent) private voidsetIntervalText(int value) voidProvide necessary data to setup(package private) voidsynchStartDatePickerAndComponent(LocalDate oldValue, LocalDate newValue) Synch startDatePicker with DTSTART component.private static voidMethods inherited from class javafx.scene.layout.VBox
alignmentProperty, clearConstraints, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, fillWidthProperty, getAlignment, getClassCssMetaData, getContentBias, getCssMetaData, getMargin, getSpacing, getVgrow, isFillWidth, layoutChildren, requestLayout, setAlignment, setFillWidth, setMargin, setSpacing, setVgrow, spacingPropertyMethods inherited from class javafx.scene.layout.Pane
getChildrenMethods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, 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, widthPropertyMethods inherited from class javafx.scene.Parent
getBaselineOffset, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestParentLayout, setNeedsLayout, updateBoundsMethods 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, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, 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, 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, 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, visiblePropertyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface javafx.css.Styleable
getStyleableNode
-
Field Details
-
EXCEPTION_CHOICE_LIMIT
public static final int EXCEPTION_CHOICE_LIMIT- See Also:
-
INITIAL_COUNT
public static final int INITIAL_COUNT- See Also:
-
DEFAULT_UNTIL_PERIOD
-
vComponent
T extends VDisplayable<T> vComponent -
rrule
-
oldRRule
-
recurrenceRuleProperty
-
dateTimeStartRecurrenceNew
-
dateTimeStartProperty
-
resources
-
repeatableCheckBox
private javafx.scene.control.CheckBox repeatableCheckBox -
repeatableGridPane
private javafx.scene.layout.GridPane repeatableGridPane -
frequencyComboBox
javafx.scene.control.ComboBox<FrequencyType> frequencyComboBox -
intervalSpinner
javafx.scene.control.Spinner<Integer> intervalSpinner -
frequencyLabel
private javafx.scene.control.Label frequencyLabel -
eventLabel
private javafx.scene.control.Label eventLabel -
weeklyLabel
private javafx.scene.control.Label weeklyLabel -
weeklyHBox
private javafx.scene.layout.HBox weeklyHBox -
sundayCheckBox
private javafx.scene.control.CheckBox sundayCheckBox -
mondayCheckBox
private javafx.scene.control.CheckBox mondayCheckBox -
tuesdayCheckBox
private javafx.scene.control.CheckBox tuesdayCheckBox -
wednesdayCheckBox
private javafx.scene.control.CheckBox wednesdayCheckBox -
thursdayCheckBox
private javafx.scene.control.CheckBox thursdayCheckBox -
fridayCheckBox
private javafx.scene.control.CheckBox fridayCheckBox -
saturdayCheckBox
private javafx.scene.control.CheckBox saturdayCheckBox -
checkBoxDayOfWeekMap
-
dayOfWeekList
-
dayOfWeekCheckBoxMap
-
monthlyVBox
private javafx.scene.layout.VBox monthlyVBox -
monthlyLabel
private javafx.scene.control.Label monthlyLabel -
monthlyGroup
private javafx.scene.control.ToggleGroup monthlyGroup -
dayOfMonthRadioButton
private javafx.scene.control.RadioButton dayOfMonthRadioButton -
dayOfWeekRadioButton
private javafx.scene.control.RadioButton dayOfWeekRadioButton -
startDatePicker
javafx.scene.control.DatePicker startDatePicker -
endNeverRadioButton
private javafx.scene.control.RadioButton endNeverRadioButton -
endAfterRadioButton
private javafx.scene.control.RadioButton endAfterRadioButton -
untilRadioButton
private javafx.scene.control.RadioButton untilRadioButton -
endAfterEventsSpinner
-
untilDatePicker
private javafx.scene.control.DatePicker untilDatePicker -
endGroup
private javafx.scene.control.ToggleGroup endGroup -
repeatSummaryLabel
private javafx.scene.control.Label repeatSummaryLabel -
exceptionComboBox
-
addExceptionButton
private javafx.scene.control.Button addExceptionButton -
exceptionsListView
-
removeExceptionButton
private javafx.scene.control.Button removeExceptionButton -
exceptionMasterList
-
dayOfWeekCheckBoxListener
-
dayOfWeekButtonListener
-
makeExceptionDatesAndSummaryListener
private final javafx.beans.InvalidationListener makeExceptionDatesAndSummaryListener -
neverListener
-
weeklyRecurrenceListener
-
frequencyListener
-
intervalSpinnerListener
-
untilListener
-
untilRadioButtonListener
-
dateTimeStartToExceptionChangeListener
private final javafx.beans.value.ChangeListener<? super Temporal> dateTimeStartToExceptionChangeListener
-
-
Constructor Details
-
EditRecurrenceRuleVBox
public EditRecurrenceRuleVBox()
-
-
Method Details
-
getFormatter
-
refreshSummary
private void refreshSummary() -
setIntervalText
private void setIntervalText(int value) -
setFrequencyVisibility
-
findUntil
Finds closest recurrence, at least one recurrence past DTSTART, from initialUntilDate- Parameters:
initialUntilDate- - selected date from untilDatePicker- Returns:
- - best match for until
-
synchStartDatePickerAndComponent
Synch startDatePicker with DTSTART component. In subclass DTEND or DUE are synched too -
initialize
public void initialize() -
setupData
public void setupData(T vComponent, javafx.beans.property.ObjectProperty<Temporal> dateTimeStartRecurrenceNew) Provide necessary data to setup- Parameters:
vComponent- - component to be editeddateTimeStartRecurrenceNew- - reference to start date or date/time fromEditDecriptiveVBox
-
addListeners
private void addListeners() -
removeListeners
private void removeListeners() -
setInitialValues
-
setDayOfWeek
Set day of week properties if FREQ=WEEKLY and has BYDAY rule This method is called only during setup -
refreshExceptionDates
private void refreshExceptionDates()Make list of start date/times for exceptionComboBox -
makeExceptionDates
private void makeExceptionDates()Make list of start date/times for exceptionComboBox -
handleAddException
private void handleAddException() -
handleRemoveException
private void handleRemoveException() -
notNumberAlert
private static void notNumberAlert() -
tooEarlyDateAlert
-
notOccurrenceDateAlert
-
notDateAlert
-
makeSummary
Produce easy to read summary of repeat rule Is limited to producing strings for following repeat rules: Any individual Frequency (FREQ) COUNT and UNTIL properties MONTHLY and WEEKLY with ByDay Byxxx rule For example: RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=11;BYDAY=MO,WE,FR produces: "Every 2 weeks on Monday, Wednesday, Friday, 11 times"- Parameters:
startTemporal- LocalDate or LocalDateTime of start date/time (DTSTART)- Returns:
- Easy to read summary of repeat rule
-
isSupported
-
byDaySummary
Produces an easy to ready summary for ByDay rule with only one ByDayPair. Returns null for more than one ByDayPair. Example: third Monday- Returns:
- easy to read summary of rule
-
loadFxml
-