Module com.flexganttfx.model
Package com.flexganttfx.model.repository
Class IntervalTreeActivityRepository<A extends Activity>
java.lang.Object
com.flexganttfx.model.repository.ActivityRepositoryBase<A>
com.flexganttfx.model.repository.MutableActivityRepositoryBase<A>
com.flexganttfx.model.repository.IntervalTreeActivityRepository<A>
- Type Parameters:
A- the activity type
- All Implemented Interfaces:
ActivityRepository<A>,MutableActivityRepository<A>,EventTarget
public class IntervalTreeActivityRepository<A extends Activity> extends MutableActivityRepositoryBase<A>
A repository implementation that utilizes binary interval trees to store its
activities. A binary tree provides the best performance when searching for
activities within a given time interval when the total number of activities is
very large. The repository manages one binary tree per layer.
- Since:
- 1.0
- See Also:
Row.setRepository(ActivityRepository)
-
Constructor Summary
Constructors Constructor Description IntervalTreeActivityRepository() -
Method Summary
Modifier and Type Method Description voidaddActivity(ActivityRef<A> activityRef)Adds the given activity to the repository.voidclearActivities()Removes all activities from all layers from the repository.voidclearActivities(Layer layer)Removes the activities on the given layer from the repository.Iterator<A>getActivities(Layer layer, Instant startTime, Instant endTime, TemporalUnit temporalUnit, ZoneId zoneId)Returns an iterator for iterating over all activities found for the given layer and time interval.List<A>getAllActivities()Returns all activities for all layers.InstantgetEarliestTimeUsed()Returns the earliest time used by the activities stored in this repository / on this row.InstantgetLatestTimeUsed()Returns the latest time used by the activities stored in this repository / on this row.voidremoveActivity(ActivityRef<A> activityRef)Removes the given activity from the repository.Methods inherited from class com.flexganttfx.model.repository.ActivityRepositoryBase
addEventHandler, buildEventDispatchChain, fireEvent, removeEventHandlerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.flexganttfx.model.ActivityRepository
addEventHandler, removeEventHandlerMethods inherited from interface javafx.event.EventTarget
buildEventDispatchChain
-
Constructor Details
-
IntervalTreeActivityRepository
public IntervalTreeActivityRepository()
-
-
Method Details
-
addActivity
Description copied from interface:MutableActivityRepositoryAdds the given activity to the repository.- Parameters:
activityRef- the activity
-
removeActivity
Description copied from interface:MutableActivityRepositoryRemoves the given activity from the repository.- Parameters:
activityRef- the activity
-
clearActivities
public final void clearActivities()Description copied from interface:MutableActivityRepositoryRemoves all activities from all layers from the repository. -
clearActivities
Description copied from interface:MutableActivityRepositoryRemoves the activities on the given layer from the repository.- Parameters:
layer- the layer to clear
-
getEarliestTimeUsed
Description copied from interface:ActivityRepositoryReturns the earliest time used by the activities stored in this repository / on this row. This method gets used for navigation (e.g. "scroll to earliest time used in the Gantt chart", "zoom out to show all activities").- Specified by:
getEarliestTimeUsedin interfaceActivityRepository<A extends Activity>- Overrides:
getEarliestTimeUsedin classActivityRepositoryBase<A extends Activity>- Returns:
- the earliest time used by the activities in this repository / row (null if no activities found)
-
getLatestTimeUsed
Description copied from interface:ActivityRepositoryReturns the latest time used by the activities stored in this repository / on this row. This method gets used for navigation (e.g. "scroll to latest time used in the Gantt chart", "zoom out to show all activities").- Specified by:
getLatestTimeUsedin interfaceActivityRepository<A extends Activity>- Overrides:
getLatestTimeUsedin classActivityRepositoryBase<A extends Activity>- Returns:
- the latest time used by the activities in this repository / row (null if no activities found)
-
getActivities
public final Iterator<A> getActivities(Layer layer, Instant startTime, Instant endTime, TemporalUnit temporalUnit, ZoneId zoneId)Description copied from interface:ActivityRepositoryReturns an iterator for iterating over all activities found for the given layer and time interval. This method has to return very fast as it gets called many times during rendering of the chart. A slow implementation will have a direct impact on scrolling / rendering performance.- Parameters:
layer- the layer for which to return the activitiesstartTime- the start time of the time interval for which to return the activitiesendTime- the end time of the time interval for which to return the activitiestemporalUnit- the temporal unit currently displayed in the datelinezoneId- the timezone currently displayed in the dateline- Returns:
- the activities on the given layer and in the given time interval
-
getAllActivities
Returns all activities for all layers.- Returns:
- all activities
- Since:
- 1.0
-