Class TimeTracker

java.lang.Object
java.lang.Thread
com.flexganttfx.view.timeline.TimeTracker
All Implemented Interfaces:
Runnable

public class TimeTracker
extends Thread
A time tracker can be used to update the property TimelineModel.nowProperty(). In most cases the time "now" will be equivalent to the system time but in simulations this might not be the case. The time tracker can be used in combination with the TimelineModel by binding the TimelineModel.nowProperty() to the timeProperty().
Since:
1.0
  • Property Details

  • Constructor Details

    • TimeTracker

      public TimeTracker()
      Constructs a new tracker.
      Since:
      1.0
  • Method Details

    • timeProperty

      public final ReadOnlyObjectProperty<Instant> timeProperty()
      See Also:
      getTime()
    • getTime

      public final Instant getTime()
      Gets the value of the property time.
      Property description:
    • getDelay

      public final long getDelay()
      Returns the delay in milliseconds between updates of TimelineModel.nowProperty(). The default is 1000 millis.
      Returns:
      the default delay between update calls
      Since:
      1.0
    • setDelay

      public final void setDelay​(long millis)
      Sets the delay between updates of TimelineModel.nowProperty(). The default is 1000 millis.
      Parameters:
      millis - the new delay
      Throws:
      IllegalArgumentException - if the delay is zero or smaller
      Since:
      1.0
    • startTracking

      public final void startTracking()
      Starts the tracking of the time.
      Since:
      1.0
    • run

      public void run()
      Specified by:
      run in interface Runnable
      Overrides:
      run in class Thread
    • stopTracking

      public final void stopTracking()
      Stops the tracking of the time.
      Since:
      1.0
    • getNow

      protected Instant getNow()
      Override to return the instant that will be set as "now" on the timeline model. The default implementation uses Instant.now().
      Returns:
      the "now" instant
      See Also:
      TimelineModel.setNow(Instant)