Class Timeline

All Implemented Interfaces:
Styleable, EventTarget, Skinnable

public class Timeline
extends FlexGanttFXControl
The timeline control is a container for the Dateline and the Eventline. It is displayed above the GraphicsBase and provides several methods for scrolling and zooming, both of which can be done in an animated way (default) or not.

 

Timeline
Since:
1.0
See Also:
GanttChartBase.getTimeline(), setMoveAnimated(boolean), setZoomAnimated(boolean)
  • Property Details

    • zoneIdVisible

      public final BooleanProperty zoneIdVisibleProperty
      A property used to control the visibility of the time zone name. The timeline is capable of displaying the time zone that it represented inside the Dateline in its upper right corner.
      Since:
      1.0
      See Also:
      isZoneIdVisible(), setZoneIdVisible(boolean)
    • offset

      public final DoubleProperty offsetProperty
      Determines an optional offset added to time calculations and timeline layout that might be required if for example the graphics area below the timeline does not align properly with the timeline.
      Since:
      11.11.0
      See Also:
      getOffset(), setOffset(double)
    • scrollDragEnabled

      public final BooleanProperty scrollDragEnabledProperty
      A property used to control whether the user is allowed to perform a horizontal scroll by dragging the timeline. Normally a drag gesture triggers the selection of a time interval used for zooming into time.
      Since:
      1.0
      See Also:
      isScrollDragEnabled(), setScrollDragEnabled(boolean)
    • visibleStartTime

      public final ReadOnlyObjectProperty<Instant> visibleStartTimeProperty
      A read-only object property storing an Instant that represents the first visible time point (on the left edge) inside the timeline.
      Since:
      1.0
      See Also:
      getVisibleStartTime()
    • visibleEndTime

      public final ReadOnlyObjectProperty<Instant> visibleEndTimeProperty
      A read-only object property storing an Instant that represents the last visible time point (on the right edge) inside the timeline.
      Since:
      1.0
      See Also:
      getVisibleEndTime()
    • visibleTimeInterval

      public final ReadOnlyObjectProperty<TimeInterval> visibleTimeIntervalProperty
      Stores the currently visible time interval. This is an important property if an application wants to implement a lazy loading strategy.
      Since:
      11.12.0
      See Also:
      getVisibleTimeInterval()
    • moveDuration

      public final ObjectProperty<Duration> moveDurationProperty
      An object property used to store the duration used for the animation of a "move" inside the timeline. Moving means that the timeline moves from one visible start time to another.
      Since:
      1.0
      See Also:
      getMoveDuration(), setMoveDuration(Duration)
    • moveAnimated

      public final BooleanProperty moveAnimatedProperty
      A boolean property used to control whether moving from one time to another will happen animated or not.
      Since:
      1.0
      See Also:
      isMoveAnimated(), setMoveAnimated(boolean)
    • model

      public final ObjectProperty<TimelineModel<?>> modelProperty
      Stores the timeline model to be used by the timeline.
      Since:
      1.0
      See Also:
      getModel(), setModel(TimelineModel)
    • zoomDuration

      public final ObjectProperty<Duration> zoomDurationProperty
      An object property used to store the duration used for the animation of a "zoom" inside the timeline. Zooming means that the timeline changes the currently visible time window (bigger, smaller).
      See Also:
      getZoomDuration(), setZoomDuration(Duration)
    • zoomAnimated

      public final BooleanProperty zoomAnimatedProperty
      A property used to determine if any zoom operation should be done in an animated fashion or not. Animation happens by not directly switching to the new time interval but by gradually changing the interval until the new interval has been reached.
      Since:
      1.0
      See Also:
      isZoomAnimated(), setZoomAnimated(boolean)
    • zoomMode

      public final ObjectProperty<Timeline.ZoomMode> zoomModeProperty
      Stores the way a zoom in or out will be executed. Zooming can keep the current start time, the current end time, or the time shown in the center of the timeline inside the visible area. Based on this setting the currently shown activities on the left or the right might be pushed out of the visible area when zooming in or more of them might show up either on the left, the right, or both sides.
      Since:
      1.0
      See Also:
      getZoomMode(), setZoomMode(Timeline.ZoomMode)
    • zoomFactor

      public final DoubleProperty zoomFactorProperty
      A property used to store the zoom factor that will be applied every time the user performs a zoom in or zoom out. The default value of this property is .5, which means that the user will see 50% more or less time inside the visible area.
      Since:
      1.0
      See Also:
      getZoomFactor(), setZoomFactor(double)
  • Constructor Details

    • Timeline

      public Timeline()
      Constructs a new timeline control that is using the ChronoUnitTimelineModel.
      Since:
      1.0
  • Method Details

    • createDefaultSkin

      protected Skin<?> createDefaultSkin()
      Overrides:
      createDefaultSkin in class Control
    • getUserAgentStylesheet

      public String getUserAgentStylesheet()
      Overrides:
      getUserAgentStylesheet in class Region
    • zoneIdVisibleProperty

      public final BooleanProperty zoneIdVisibleProperty()
      A property used to control the visibility of the time zone name. The timeline is capable of displaying the time zone that it represented inside the Dateline in its upper right corner.
      Since:
      1.0
      See Also:
      isZoneIdVisible(), setZoneIdVisible(boolean)
    • isZoneIdVisible

      public final boolean isZoneIdVisible()
      Returns the value of the zoneIdVisibleProperty().
      Returns:
      true if the time zone ID shall be shown to the user
      Since:
      1.0
    • setZoneIdVisible

      public final void setZoneIdVisible​(boolean visible)
      Sets the value of the zoneIdVisibleProperty().
      Parameters:
      visible - true if the time zone ID shall be shown to the user
      Since:
      1.0
    • offsetProperty

      public final DoubleProperty offsetProperty()
      Determines an optional offset added to time calculations and timeline layout that might be required if for example the graphics area below the timeline does not align properly with the timeline.
      Since:
      11.11.0
      See Also:
      getOffset(), setOffset(double)
    • getOffset

      public final double getOffset()
      Gets the value of the property offset.
      Property description:
      Determines an optional offset added to time calculations and timeline layout that might be required if for example the graphics area below the timeline does not align properly with the timeline.
      Since:
      11.11.0
    • setOffset

      public final void setOffset​(double offset)
      Sets the value of the property offset.
      Property description:
      Determines an optional offset added to time calculations and timeline layout that might be required if for example the graphics area below the timeline does not align properly with the timeline.
      Since:
      11.11.0
    • getDateline

      public final Dateline getDateline()
      Returns the dateline contained within the timeline. The timeline is a container that consists of a dateline and an eventline.
      Returns:
      the dateline
      Since:
      1.0
    • getEventline

      public final Eventline getEventline()
      Returns the eventline contained within the timeline. The timeline is a container that consists of a dateline and an eventline.
      Returns:
      the dateline
      Since:
      1.0
    • scrollDragEnabledProperty

      public final BooleanProperty scrollDragEnabledProperty()
      A property used to control whether the user is allowed to perform a horizontal scroll by dragging the timeline. Normally a drag gesture triggers the selection of a time interval used for zooming into time.
      Since:
      1.0
      See Also:
      isScrollDragEnabled(), setScrollDragEnabled(boolean)
    • isScrollDragEnabled

      public final boolean isScrollDragEnabled()
      Returns the value of scrollDragEnabledProperty().
      Returns:
      true if the user can trigger horizontal scrolling by dragging the timeline
      Since:
      1.0
    • setScrollDragEnabled

      public final void setScrollDragEnabled​(boolean enabled)
      Sets the value of scrollDragEnabledProperty().
      Parameters:
      enabled - if true the user can trigger horizontal scrolling by dragging the timeline
      Since:
      1.0
    • visibleStartTimeProperty

      public final ReadOnlyObjectProperty<Instant> visibleStartTimeProperty()
      A read-only object property storing an Instant that represents the first visible time point (on the left edge) inside the timeline.
      Since:
      1.0
      See Also:
      getVisibleStartTime()
    • getVisibleStartTime

      public final Instant getVisibleStartTime()
      Returns the value of visibleStartTimeProperty().
      Returns:
      the value of #visibleStartTimeProperty
      Since:
      1.0
    • visibleEndTimeProperty

      public final ReadOnlyObjectProperty<Instant> visibleEndTimeProperty()
      A read-only object property storing an Instant that represents the last visible time point (on the right edge) inside the timeline.
      Since:
      1.0
      See Also:
      getVisibleEndTime()
    • getVisibleEndTime

      public final Instant getVisibleEndTime()
      Returns the value of visibleEndTimeProperty().
      Returns:
      the value of #visibleEndTimeProperty
      Since:
      1.0
    • getVisibleDuration

      public final Duration getVisibleDuration()
      Calculates and returns the duration of the visible time interval inside the timeline. The duration is the time difference between the visibleStartTimeProperty() and the visibleEndTimeProperty().
      Returns:
      the visible duration
      Since:
      1.0
    • visibleTimeIntervalProperty

      public final ReadOnlyObjectProperty<TimeInterval> visibleTimeIntervalProperty()
      Stores the currently visible time interval. This is an important property if an application wants to implement a lazy loading strategy.
      Since:
      11.12.0
      See Also:
      getVisibleTimeInterval()
    • getVisibleTimeInterval

      public final TimeInterval getVisibleTimeInterval()
      Gets the value of the property visibleTimeInterval.
      Property description:
      Stores the currently visible time interval. This is an important property if an application wants to implement a lazy loading strategy.
      Since:
      11.12.0
    • moveDurationProperty

      public final ObjectProperty<Duration> moveDurationProperty()
      An object property used to store the duration used for the animation of a "move" inside the timeline. Moving means that the timeline moves from one visible start time to another.
      Since:
      1.0
      See Also:
      getMoveDuration(), setMoveDuration(Duration)
    • getMoveDuration

      public final Duration getMoveDuration()
      Returns the value of moveDurationProperty().
      Returns:
      the time used for animating a move inside the timeline
      Since:
      1.0
    • setMoveDuration

      public final void setMoveDuration​(Duration duration)
      Sets the value of moveDurationProperty().
      Parameters:
      duration - the time used for animating a move inside the timeline
      Since:
      1.0
    • moveAnimatedProperty

      public final BooleanProperty moveAnimatedProperty()
      A boolean property used to control whether moving from one time to another will happen animated or not.
      Since:
      1.0
      See Also:
      isMoveAnimated(), setMoveAnimated(boolean)
    • isMoveAnimated

      public final boolean isMoveAnimated()
      Returns the value of moveAnimatedProperty().
      Returns:
      true if moving in time will be animated
    • setMoveAnimated

      public final void setMoveAnimated​(boolean animated)
      Sets the value of moveAnimatedProperty().
      Parameters:
      animated - if true the change from one time to another will be animated
    • showNow

      public final void showNow()
      Makes the timeline scroll to the time point that is currently considered "now". This time point will be shown in the center of the timeline.
      Since:
      1.0
      See Also:
      showNow(boolean), showTime(Instant), showTime(Instant, boolean)
    • showNow

      public final void showNow​(boolean center)
      Makes the timeline scroll to the time point that is currently considered "now". This time point will be shown in the center of the timeline.
      Parameters:
      center - determines if the time will be shown in the center or on the left-edge of the timeline
      Since:
      1.0
      See Also:
      showNow(), showTime(Instant), showTime(Instant, boolean)
    • showTime

      public final void showTime​(LocalDate date)
      Makes the timeline scroll to the beginning of the given date. The date will appear on the left-hand side of the timeline.
      Parameters:
      date - the date to scroll to
      Since:
      11.12.3
      See Also:
      showTime(Instant)
    • showTime

      public final void showTime​(LocalDate date, boolean center)
      Makes the timeline scroll to the beginning of the given date. The date will appear on the left-hand side of the timeline or in the center depending on the value passed to the center argument.
      Parameters:
      date - the date to scroll to
      center - determines where to show the given date
      Since:
      11.12.3
      See Also:
      showTime(Instant)
    • showTime

      public final void showTime​(ZonedDateTime time)
      Makes the timeline scroll to the beginning of the given time. The date will appear on the left-hand side of the timeline.
      Parameters:
      time - the time to scroll to
      Since:
      11.12.3
      See Also:
      showTime(Instant)
    • showTime

      public final void showTime​(ZonedDateTime time, boolean center)
      Makes the timeline scroll to the beginning of the given time. The time will appear on the left-hand side of the timeline or in the center depending on the value passed to the center argument.
      Parameters:
      time - the time to scroll to
      center - determines where to show the given time
      Since:
      11.12.3
      See Also:
      showTime(Instant)
    • showTime

      public final void showTime​(Instant time)
      Makes the timeline scroll to the time point passed to the method. This time point will be shown on the left edge of the timeline.
      Parameters:
      time - the time to show
      Since:
      1.0
      See Also:
      showNow(), showNow(boolean), showTime(Instant, boolean)
    • showTime

      public final void showTime​(Instant time, boolean center)
      Makes the timeline scroll to the time point passed to the method.
      Parameters:
      time - the time to show
      center - if true the time will be centered within the timeline
      Since:
      1.0
      See Also:
      showNow(), showNow(boolean), showTime(Instant)
    • showTemporalUnit

      public final void showTemporalUnit​(TemporalUnit temporalUnit, double width)
      Submits a request to the timeline to show the given temporal unit (e.g. ChronoUnit.DAYS at the given width (e.g. 50px). This is a convenient way to make the Gantt chart show up with a good initial zoom.
      Parameters:
      temporalUnit - the temporal unit to show
      width - the number of pixels to use for each unit (e.g. for one day)
      Since:
      1.0
    • modelProperty

      public final ObjectProperty<TimelineModel<?>> modelProperty()
      Stores the timeline model to be used by the timeline.
      Since:
      1.0
      See Also:
      getModel(), setModel(TimelineModel)
    • getModel

      public final TimelineModel<?> getModel()
      Returns the value of modelProperty().
      Returns:
      the timeline model
      Since:
      1.0
    • setModel

      public final void setModel​(TimelineModel<?> model)
      Sets the value of modelProperty().
      Parameters:
      model - the timeline model
      Since:
      1.0
    • zoomDurationProperty

      public final ObjectProperty<Duration> zoomDurationProperty()
      An object property used to store the duration used for the animation of a "zoom" inside the timeline. Zooming means that the timeline changes the currently visible time window (bigger, smaller).
      See Also:
      getZoomDuration(), setZoomDuration(Duration)
    • getZoomDuration

      public final Duration getZoomDuration()
      Returns the value of zoomDurationProperty().
      Returns:
      the duration of the zoom animation
      Since:
      1.0
    • setZoomDuration

      public final void setZoomDuration​(Duration duration)
      Sets the value of zoomDurationProperty().
      Parameters:
      duration - the duration of the zoom animation
      Since:
      1.0
    • zoomAnimatedProperty

      public final BooleanProperty zoomAnimatedProperty()
      A property used to determine if any zoom operation should be done in an animated fashion or not. Animation happens by not directly switching to the new time interval but by gradually changing the interval until the new interval has been reached.
      Since:
      1.0
      See Also:
      isZoomAnimated(), setZoomAnimated(boolean)
    • isZoomAnimated

      public final boolean isZoomAnimated()
      Returns the value of zoomAnimatedProperty().
      Returns:
      true if the zoom in / out operations will be visualized in an animated way
      Since:
      1.0
    • setZoomAnimated

      public final void setZoomAnimated​(boolean animated)
      Sets the value of zoomAnimatedProperty().
      Parameters:
      animated - if true the zoom in / out operations will be visualized in an animated way
      Since:
      1.0
    • zoomModeProperty

      public final ObjectProperty<Timeline.ZoomMode> zoomModeProperty()
      Stores the way a zoom in or out will be executed. Zooming can keep the current start time, the current end time, or the time shown in the center of the timeline inside the visible area. Based on this setting the currently shown activities on the left or the right might be pushed out of the visible area when zooming in or more of them might show up either on the left, the right, or both sides.
      Since:
      1.0
      See Also:
      getZoomMode(), setZoomMode(Timeline.ZoomMode)
    • getZoomMode

      public final Timeline.ZoomMode getZoomMode()
      Returns the value of zoomModeProperty().
      Returns:
      the currently used zoom mode (center zoom, keep start time, keep end time)
      Since:
      1.0
    • setZoomMode

      public final void setZoomMode​(Timeline.ZoomMode mode)
      Sets the value of zoomModeProperty().
      Parameters:
      mode - the new zoom mode (center zoom, keep start time, keep end time)
      Since:
      1.0
    • zoomFactorProperty

      public final DoubleProperty zoomFactorProperty()
      A property used to store the zoom factor that will be applied every time the user performs a zoom in or zoom out. The default value of this property is .5, which means that the user will see 50% more or less time inside the visible area.
      Since:
      1.0
      See Also:
      getZoomFactor(), setZoomFactor(double)
    • getZoomFactor

      public final double getZoomFactor()
      Returns the value of the zoomFactorProperty().
      Returns:
      the zoom factor
      Since:
      1.0
    • setZoomFactor

      public final void setZoomFactor​(double zoomFactor)
      Sets the value of the zoomFactorProperty().
      Parameters:
      zoomFactor - the new zoom factor
      Since:
      1.0
    • zoomIn

      public final void zoomIn()
      Requests that the timeline performs a zoom in operation.
      Since:
      1.0
      See Also:
      zoomOut(), zoom(double, boolean, Instant), zoomFactorProperty(), zoomModeProperty()
    • zoomOut

      public final void zoomOut()
      Requests that the timeline performs a zoom out operation.
      Since:
      1.0
      See Also:
      zoomOut(), zoom(double, boolean, Instant), zoomFactorProperty(), zoomModeProperty()
    • zoom

      public final void zoom​(double factor, boolean zoomIn, Instant frozenTime)
      Requests that the timeline performs a zoom operation.
      Parameters:
      factor - the zoom factor (default is .5)
      zoomIn - if true the zoom will show less time
      frozenTime - the point in time that will stay where it was before (use case: pinch zoom)
      Since:
      1.0
      See Also:
      zoomIn(), zoomOut(), zoomFactorProperty(), zoomModeProperty()
    • showRange

      public final void showRange​(Instant startTime, Duration duration)
      Requests that the given time interval will be completely visible within the timeline.
      Parameters:
      startTime - the start time of the requested interval
      duration - the duration of the requested interval
      Since:
      1.0
      See Also:
      showRange(TimeInterval), showRange(Instant, Instant)
    • showRange

      public final void showRange​(TimeInterval interval)
      Requests that the given time interval will be completely visible within the timeline.
      Parameters:
      interval - the requested interval
      Since:
      1.0
      See Also:
      showRange(Instant, java.time.Duration), showRange(Instant, Instant)
    • showRange

      public final boolean showRange​(Instant startTime, Instant endTime)
      Requests that the given time interval will be completely visible within the timeline.
      Parameters:
      startTime - the start time of the requested interval
      endTime - the end time of the requested interval
      Returns:
      true if the operation reached the minimum or maximum millis per second supported by the timeline
      Since:
      1.0
      See Also:
      showRange(Instant, java.time.Duration), showRange(TimeInterval)
    • scrollRight

      public final void scrollRight()
      Performs a right scroll inside the timeline, meaning that later times will become visible.
      Since:
      1.0
      See Also:
      scrollRightFast(), scrollLeft(), scrollLeftFast()
    • scrollRightFast

      public final void scrollRightFast()
      Performs a fast right scroll inside the timeline, meaning that later times will become visible.
      Since:
      1.0
      See Also:
      scrollRight(), scrollLeft(), scrollLeftFast()
    • scrollLeft

      public final void scrollLeft()
      Performs a left scroll inside the timeline, meaning that earlier times will become visible.
      Since:
      1.0
      See Also:
      scrollLeftFast(), scrollRightFast(), scrollRight()
    • scrollLeftFast

      public final void scrollLeftFast()
      Performs a fast left scroll inside the timeline, meaning that earlier times will become visible.
      Since:
      1.0
      See Also:
      scrollLeft(), scrollRightFast(), scrollRight()