Class AbstractChangeTracker<T extends javafx.beans.Observable>
java.lang.Object
com.dlsc.gemsfx.binding.AbstractChangeTracker<T>
- Type Parameters:
T- the type of Observable elements in the list that is being tracked
- Direct Known Subclasses:
NestedListChangeTracker
This abstract class provides a framework for tracking changes in an ObservableList of Observable elements.
It encapsulates common logic for adding and removing change listeners to the observable elements
within the list and provides a mechanism to notify changes through a specified Consumer.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionAbstractChangeTracker(javafx.collections.ObservableList<T> source) Constructs an AbstractChangeTracker with the provided source list.AbstractChangeTracker(javafx.collections.ObservableList<T> source, Consumer<javafx.collections.ObservableList<T>> onChanged) Constructs an AbstractChangeTracker with the provided source list and change handler. -
Method Summary
Modifier and TypeMethodDescriptionvoiddispose()Disposes this tracker by removing all listeners from the source and nested lists.protected voidInitializes the listener for the outer list.protected voidprotected abstract voidsafeAddListener(T value) protected abstract voidsafeRemoveListener(T value) voidsetOnChanged(Consumer<javafx.collections.ObservableList<T>> onChanged) Sets the consumer that will be notified when changes occur.
-
Field Details
-
onChanged
-
-
Constructor Details
-
AbstractChangeTracker
Constructs an AbstractChangeTracker with the provided source list.- Parameters:
source- the observable list of elements that is being monitored
-
AbstractChangeTracker
public AbstractChangeTracker(javafx.collections.ObservableList<T> source, Consumer<javafx.collections.ObservableList<T>> onChanged) Constructs an AbstractChangeTracker with the provided source list and change handler.- Parameters:
source- the observable list of elements that is being monitoredonChanged- the consumer to handle change notifications
-
-
Method Details
-
initOuterListener
protected void initOuterListener()Initializes the listener for the outer list. This method should be called after subclass constructors have fully initialized any necessary fields to ensure that listeners interact with a fully initialized object. -
setOnChanged
-
notifyChange
protected void notifyChange() -
safeAddListener
-
safeRemoveListener
-
dispose
public void dispose()Disposes this tracker by removing all listeners from the source and nested lists. It is recommended to call this method when the tracker is no longer needed. Doing so helps ensure that resources are properly released and helps prevent potential memory leaks. Calling this method is particularly important in environments with limited resources or in applications that create and dispose many trackers over their lifetime.
-