public final class ThresholdList<E> extends RangeList<E>
EventList
that shows a range of the elements of the source
EventList
. Each element in the source EventList
is assigned
an integer value via an ThresholdList.Evaluator
. This integer is used
to determine whether the element fits in the ThresholdList
s range.
By modifying the upper and lower thresholds in the range, the list can be filtered in a simple and powerful way.
The ThresholdList
lends itself to use with a slider widget for
manipulating one of the range's endpoints.
One use case for ThresholdList
is in a media player application.
By creating a ThresholdList.Evaluator
for a song's bitrate, the user could
limit results to MP3 files between 192 and 320kbps.
Note that the elements in the ThresholdList
will be presented in
order sorted by their ThresholdList.Evaluator
value.
This EventList
supports all write operations.
Warning: This class
breaks the contract required by List
. See EventList
for an example.
Warning: This class is
thread ready but not thread safe. See EventList
for an example
of thread safe code.
EventList Overview | |
Writable: | yes |
Concurrency: | thread ready, not thread safe |
Performance: | reads: O(log N), writes O(log N), change threshold O(log N) |
Memory: | 72 bytes per element |
Unit Tests: | N/A |
Issues: | 47 137 217 218 246 277 |
Modifier and Type | Class and Description |
---|---|
static interface |
ThresholdList.Evaluator<E>
Provide an integer value for a given
Object in a
ThresholdList . |
source
publisher, readWriteLock, updates
Constructor and Description |
---|
ThresholdList(EventList<E> source,
java.lang.String propertyName)
Creates a
ThresholdList that provides range-filtering based on the
specified EventList based on the specified integer JavaBean property. |
ThresholdList(EventList<E> source,
ThresholdList.Evaluator<E> evaluator)
Creates a
ThresholdList that provides range-filtering on the
specified EventList using the specified ThresholdList.Evaluator . |
Modifier and Type | Method and Description |
---|---|
boolean |
contains(java.lang.Object object)
Returns true if this list contains the specified element.
|
void |
dispose()
Releases the resources consumed by this
TransformedList so that it
may eventually be garbage collected. |
int |
getEndIndex()
|
ThresholdList.Evaluator<E> |
getEvaluator()
A convenience method to allow access to the
ThresholdList.Evaluator
that was provided on construction. |
int |
getLowerThreshold()
Gets the lower threshold for this list
|
int |
getStartIndex()
|
int |
getUpperThreshold()
Gets the upper threshold for this list
|
int |
indexOf(java.lang.Object object)
Returns the index in this list of the first occurrence of the specified
element, or -1 if this list does not contain this element.
|
int |
lastIndexOf(java.lang.Object object)
Returns the index in this list of the last occurrence of the specified
element, or -1 if this list does not contain this element.
|
void |
setLowerThreshold(E object)
Sets the lower threshold for this list to be the result of calling
evaluate() on the given object. |
void |
setLowerThreshold(int lowerThreshold)
Sets the lower threshold for this list.
|
void |
setRange(int startIndex,
int endIndex)
Set the range of values displayed by this
RangeList . |
void |
setTailRange(int startIndex,
int endIndex)
Set the range to include the specified indices, offset from the end of
the source
EventList . |
void |
setUpperThreshold(E object)
Sets the upper threshold for this list to be the result of calling
evaluate() on the given object. |
void |
setUpperThreshold(int upperThreshold)
Sets the upper threshold for this list.
|
adjustRange, getSourceIndex, isWritable, listChanged, setHeadRange, setMiddleRange, size
add, addAll, clear, get, remove, removeAll, retainAll, set
add, addAll, addListEventListener, containsAll, equals, getPublisher, getReadWriteLock, hashCode, isEmpty, iterator, listIterator, listIterator, remove, removeListEventListener, subList, toArray, toArray, toString
public ThresholdList(EventList<E> source, java.lang.String propertyName)
ThresholdList
that provides range-filtering based on the
specified EventList
based on the specified integer JavaBean property.public ThresholdList(EventList<E> source, ThresholdList.Evaluator<E> evaluator)
ThresholdList
that provides range-filtering on the
specified EventList
using the specified ThresholdList.Evaluator
.public void setLowerThreshold(E object)
evaluate()
on the given object.
This list can be used programmatically rather than hooking it up to a UI component. Calling this method directly while this list is connected to a particular widget could result in errors.
Warning: This method is
thread ready but not thread safe. See EventList
for an example
of thread safe code.
public void setLowerThreshold(int lowerThreshold)
This list can be used programmatically rather than hooking it up to a UI component. Calling this method directly while this list is connected to a particular widget could result in errors.
Warning: This method is
thread ready but not thread safe. See EventList
for an example
of thread safe code.
public int getLowerThreshold()
public void setUpperThreshold(E object)
evaluate()
on the given object.
This list can be used programmatically rather than hooking it up to a UI component. Calling this method directly while this list is connected to a particular widget could result in errors.
Warning: This method is
thread ready but not thread safe. See EventList
for an example
of thread safe code.
public void setUpperThreshold(int upperThreshold)
Warning: This method is
thread ready but not thread safe. See EventList
for an example
of thread safe code.
public int getUpperThreshold()
public ThresholdList.Evaluator<E> getEvaluator()
ThresholdList.Evaluator
that was provided on construction.public boolean contains(java.lang.Object object)
contains
in interface java.util.Collection<E>
contains
in interface java.util.List<E>
contains
in class AbstractEventList<E>
object
- element whose presence in this list is to be tested.public int indexOf(java.lang.Object object)
indexOf
in interface java.util.List<E>
indexOf
in class AbstractEventList<E>
object
- element to search for.public int lastIndexOf(java.lang.Object object)
lastIndexOf
in interface java.util.List<E>
lastIndexOf
in class AbstractEventList<E>
object
- element to search for.public void setRange(int startIndex, int endIndex)
RangeList
.public void setTailRange(int startIndex, int endIndex)
EventList
. For example, to show the last five values, use:
RangeList.setTailRange(5, 0);
To include the 3rd last and 2nd last values, use:
RangeList.setTailRange(3, 1);
.
setTailRange
in class RangeList<E>
public int getStartIndex()
getStartIndex
in class RangeList<E>
public int getEndIndex()
getEndIndex
in class RangeList<E>
public void dispose()
TransformedList
so that it
may eventually be garbage collected.
A TransformedList
will be garbage collected without a call to
TransformedList.dispose()
, but not before its source EventList
is garbage
collected. By calling TransformedList.dispose()
, you allow the TransformedList
to be garbage collected before its source EventList
. This is
necessary for situations where a TransformedList
is short-lived but
its source EventList
is long-lived.
Warning: It is an error
to call any method on a TransformedList
after it has been disposed.
Glazed Lists, Copyright © 2003 publicobject.com, O'Dell Engineering.
Documentation build by pbuilder at 2016-02-14 0:54