E
- the type of the List
elementpublic abstract class ListBinding<E> extends ListExpression<E> implements Binding<ObservableList<E>>
Binding
of an ObservableList
.
ListBinding
provides a simple invalidation-scheme. An extending
class can register dependencies by calling bind(Observable...)
.
If one of the registered dependencies becomes invalid, this
ListBinding
is marked as invalid. With
unbind(Observable...)
listening to dependencies can be stopped.
To provide a concrete implementation of this class, the method
computeValue()
has to be implemented to calculate the value of this
binding based on the current state of the dependencies. It is called when
get()
is called for an invalid binding.
See DoubleBinding
for an example how this base class can be extended.
Binding
,
ListExpression
Type | Property and Description |
---|---|
ReadOnlyBooleanProperty |
empty
A boolean property that is
true , if the list is empty. |
ReadOnlyIntegerProperty |
size
An integer property that represents the size of the list.
|
Constructor and Description |
---|
ListBinding() |
Modifier and Type | Method and Description |
---|---|
void |
addListener(ChangeListener<? super ObservableList<E>> listener)
Adds a
ChangeListener which will be notified whenever the value
of the ObservableValue changes. |
void |
addListener(InvalidationListener listener)
Adds an
InvalidationListener which will be notified whenever the
Observable becomes invalid. |
void |
addListener(ListChangeListener<? super E> listener)
Add a listener to this observable list.
|
protected void |
bind(Observable... dependencies)
Start observing the dependencies for changes.
|
protected abstract ObservableList<E> |
computeValue()
Calculates the current value of this binding.
|
void |
dispose()
A default implementation of
dispose() that is empty. |
ReadOnlyBooleanProperty |
emptyProperty()
A boolean property that is
true , if the list is empty. |
ObservableList<E> |
get()
Returns the result of
computeValue() . |
ObservableList<?> |
getDependencies()
A default implementation of
getDependencies() that returns an
empty ObservableList . |
void |
invalidate()
Mark a binding as invalid.
|
boolean |
isValid()
Checks if a binding is valid.
|
protected void |
onInvalidating()
The method onInvalidating() can be overridden by extending classes to
react, if this binding becomes invalid.
|
void |
removeListener(ChangeListener<? super ObservableList<E>> listener)
Removes the given listener from the list of listeners, that are notified
whenever the value of the
ObservableValue changes. |
void |
removeListener(InvalidationListener listener)
Removes the given listener from the list of listeners, that are notified
whenever the value of the
Observable becomes invalid. |
void |
removeListener(ListChangeListener<? super E> listener)
Tries to removed a listener from this observable list.
|
ReadOnlyIntegerProperty |
sizeProperty()
An integer property that represents the size of the list.
|
String |
toString()
Returns a string representation of this
ListBinding object. |
protected void |
unbind(Observable... dependencies)
Stop observing the dependencies for changes.
|
add, add, addAll, addAll, addAll, asString, clear, contains, containsAll, get, getSize, getValue, indexOf, isEmpty, isEqualTo, isNotEqualTo, isNotNull, isNull, iterator, lastIndexOf, listExpression, listIterator, listIterator, remove, remove, remove, removeAll, removeAll, retainAll, retainAll, set, setAll, setAll, size, subList, toArray, toArray, valueAt, valueAt
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getValue
filtered, sorted, sorted
equals, hashCode, replaceAll, sort, spliterator
parallelStream, removeIf, stream
public ReadOnlyIntegerProperty sizeProperty
sizeProperty
in class ListExpression<E>
public ReadOnlyBooleanProperty emptyProperty
emptyProperty
in class ListExpression<E>
public ReadOnlyIntegerProperty sizeProperty()
ListExpression
sizeProperty
in class ListExpression<E>
public ReadOnlyBooleanProperty emptyProperty()
ListExpression
true
, if the list is empty.emptyProperty
in class ListExpression<E>
public void addListener(InvalidationListener listener)
Observable
InvalidationListener
which will be notified whenever the
Observable
becomes invalid. If the same
listener is added more than once, then it will be notified more than
once. That is, no check is made to ensure uniqueness.
Note that the same actual InvalidationListener
instance may be
safely registered for different Observables
.
The Observable
stores a strong reference to the listener
which will prevent the listener from being garbage collected and may
result in a memory leak. It is recommended to either unregister a
listener by calling removeListener
after use or to use an instance of
WeakInvalidationListener
avoid this situation.
addListener
in interface Observable
listener
- The listener to registerObservable.removeListener(InvalidationListener)
public void removeListener(InvalidationListener listener)
Observable
Observable
becomes invalid.
If the given listener has not been previously registered (i.e. it was never added) then this method call is a no-op. If it had been previously added then it will be removed. If it had been added more than once, then only the first occurrence will be removed.
removeListener
in interface Observable
listener
- The listener to removeObservable.addListener(InvalidationListener)
public void addListener(ChangeListener<? super ObservableList<E>> listener)
ObservableValue
ChangeListener
which will be notified whenever the value
of the ObservableValue
changes. If the same listener is added
more than once, then it will be notified more than once. That is, no
check is made to ensure uniqueness.
Note that the same actual ChangeListener
instance may be safely
registered for different ObservableValues
.
The ObservableValue
stores a strong reference to the listener
which will prevent the listener from being garbage collected and may
result in a memory leak. It is recommended to either unregister a
listener by calling removeListener
after use or to use an instance of
WeakChangeListener
avoid this situation.
addListener
in interface ObservableValue<ObservableList<E>>
listener
- The listener to registerObservableValue.removeListener(ChangeListener)
public void removeListener(ChangeListener<? super ObservableList<E>> listener)
ObservableValue
ObservableValue
changes.
If the given listener has not been previously registered (i.e. it was never added) then this method call is a no-op. If it had been previously added then it will be removed. If it had been added more than once, then only the first occurrence will be removed.
removeListener
in interface ObservableValue<ObservableList<E>>
listener
- The listener to removeObservableValue.addListener(ChangeListener)
public void addListener(ListChangeListener<? super E> listener)
ObservableList
addListener
in interface ObservableList<E>
listener
- the listener for listening to the list changespublic void removeListener(ListChangeListener<? super E> listener)
ObservableList
removeListener
in interface ObservableList<E>
listener
- a listener to removeprotected final void bind(Observable... dependencies)
dependencies
- the dependencies to observeprotected final void unbind(Observable... dependencies)
dependencies
- the dependencies to stop observingpublic void dispose()
dispose()
that is empty.dispose
in interface Binding<ObservableList<E>>
public ObservableList<?> getDependencies()
getDependencies()
that returns an
empty ObservableList
.getDependencies
in interface Binding<ObservableList<E>>
ObservableList
public final ObservableList<E> get()
computeValue()
. The method
computeValue()
is only called if the binding is invalid. The
result is cached and returned if the binding did not become invalid since
the last call of get()
.get
in interface ObservableObjectValue<ObservableList<E>>
protected void onInvalidating()
public final void invalidate()
Binding
Binding
next time it is request.invalidate
in interface Binding<ObservableList<E>>
public final boolean isValid()
Binding
isValid
in interface Binding<ObservableList<E>>
true
if the Binding
is valid, false
otherwiseprotected abstract ObservableList<E> computeValue()
Classes extending ListBinding
have to provide an implementation
of computeValue
.
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 2008, 2017, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.