Class ListContentsChangeManager<T>
java.lang.Object
com.amalgamasimulation.desktop.binding.ListContentsChangeManager<T>
- Type Parameters:
T- - дженерик типа объектов листа
Класс, схожий по принципу работы с ObservableList, но решающий задачу отслеживания изменений в более сложных структурах данных, например, во внутренних полях всех объектов листа.
Пример использования:
1. Вызов конструктора с указанием листа объектов
2. Добавление отслеживаемых полей посредством вызова методов addStructuralFeature
3. Регистрация колбеков - listeners
4. Вызов метода initialize
После завершения работы менеджера или при удалении класса-овнера, необходимо вручную вызвать метод dispose
- Author:
- Aleksey
-
Constructor Summary
ConstructorsConstructorDescriptionListContentsChangeManager(org.eclipse.core.databinding.observable.list.IObservableList<T> observableList) Базовый конструктор классаListContentsChangeManager(org.eclipse.core.databinding.observable.value.IObservableValue<?> observableValue, org.eclipse.emf.databinding.FeaturePath featurePath) -
Method Summary
Modifier and TypeMethodDescriptionaddFeaturePath(org.eclipse.emf.databinding.FeaturePath featurePath) addFeaturePath(org.eclipse.emf.databinding.FeaturePath featurePath, Predicate<T> predicate) addFeaturePaths(org.eclipse.emf.databinding.FeaturePath... featurePaths) addStructuralFeature(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature, Predicate<T> predicate, org.eclipse.emf.ecore.EStructuralFeature... additionalFeatures) Расширенный регистратор отслеживаемых полей, имеющий возможность отфильтровать исходную коллекцию по заданному predicateaddStructuralFeature(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature, org.eclipse.emf.ecore.EStructuralFeature... additionalFeatures) Регистрирует отслеживаемое полеaddStructuralFeatures(org.eclipse.emf.ecore.EStructuralFeature... eStructuralFeatures) voiddispose()voidbooleanisPaused()voidsetPaused(boolean paused) Используется для решения проблем производительности при выполнении больших групповых операций.
-
Constructor Details
-
ListContentsChangeManager
public ListContentsChangeManager(org.eclipse.core.databinding.observable.list.IObservableList<T> observableList) Базовый конструктор класса- Parameters:
observableList- - лист, изменения которого требуется отслеживать
-
ListContentsChangeManager
public ListContentsChangeManager(org.eclipse.core.databinding.observable.value.IObservableValue<?> observableValue, org.eclipse.emf.databinding.FeaturePath featurePath)
-
-
Method Details
-
addStructuralFeatures
public ListContentsChangeManager<T> addStructuralFeatures(org.eclipse.emf.ecore.EStructuralFeature... eStructuralFeatures) -
addStructuralFeature
public ListContentsChangeManager<T> addStructuralFeature(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature, org.eclipse.emf.ecore.EStructuralFeature... additionalFeatures) Регистрирует отслеживаемое поле- Parameters:
eStructuralFeature- - поле объекта, изменение которого требует отслеживанияadditionalFeatures- - дополнительные дескрипторы полей, которые используются, если поле объекта является листом, а каждый объект этого листа имеет свой список отслеживаемых полей. Например, если объектом базовой коллекции являются расписания, а отслеживанию подвергаются изменения коллекции строк расписаний (=eStructuralFeature) с точки зрения их внутренних полей (=additionalFeatures) Применяется только в случае, если первый параметр (eStructuralFeature) имеет тип list!- Returns:
- this
-
addStructuralFeature
public ListContentsChangeManager<T> addStructuralFeature(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature, Predicate<T> predicate, org.eclipse.emf.ecore.EStructuralFeature... additionalFeatures) Расширенный регистратор отслеживаемых полей, имеющий возможность отфильтровать исходную коллекцию по заданному predicate- Parameters:
eStructuralFeature-predicate- - используется для фильтрацииadditionalFeatures-- Returns:
-
addFeaturePath
public ListContentsChangeManager<T> addFeaturePath(org.eclipse.emf.databinding.FeaturePath featurePath) -
addFeaturePaths
public ListContentsChangeManager<T> addFeaturePaths(org.eclipse.emf.databinding.FeaturePath... featurePaths) -
addFeaturePath
public ListContentsChangeManager<T> addFeaturePath(org.eclipse.emf.databinding.FeaturePath featurePath, Predicate<T> predicate) -
addListContentStateChangeListener
public ListContentsChangeManager<T> addListContentStateChangeListener(Consumer<ListContentStateChangeEvent> listener) -
addListContentsChangeListener
public ListContentsChangeManager<T> addListContentsChangeListener(Consumer<ListContentsChangeEvent<T>> listener) -
addChildListContentsChangeListeners
public ListContentsChangeManager<T> addChildListContentsChangeListeners(Consumer<ChildListContentsChangeEvent<T, ?>> listener) -
clearListeners
-
invalidateSource
public void invalidateSource() -
setPaused
public void setPaused(boolean paused) Используется для решения проблем производительности при выполнении больших групповых операций. Отключает/включает все колбеки- Parameters:
paused-
-
isPaused
public boolean isPaused() -
initialize
-
dispose
public void dispose()
-