Glazed Lists 0.9 is a major release of Glazed Lists. This release is smaller, easier to use and more flexible than previous releases. It has a new concurrency model and a stable API.
Glazed Lists is an application of the Decorator and Observer patterns over Java Lists. It provides transforming views of a source list that respond to changes as they occur. These views can be layered to provide simple and powerful manipulation of the source data.
It includes transforming views for the following tasks:
SortedList
presents a sorted view of a source list
AbstractFilterList
presents a filtered list containing a subset of a source list
UniqueList
presents a unique view of a source list
TransformedList
presents a starting point for building custom transformations of a source list
Glazed Lists also provides Swing widgets that automatically update when the data changes. Included widgets are:
EventTableModel
models a source list for a JTable with sophisticated sorting support
EventListModel
models a source list for a JList
EventComboBoxModel
models a source list for a JComboBox.
EventSelectionModel
models a JTable or JList's selection as a event list.
www/tutorial
folder of the source release. A
tutorial with up-to-date classnames and usage should be available on https://glazedlists.dev.java.net
before July 1, 2004.
migrationkit
for migrating from Glazed Lists 0.8.
ID | Description |
---|---|
25 | CompositeList not thread-safe |
39 | Sorting clears selection |
Glazed Lists 0.9 is provided with no warranty under a BSD license.
In order to make Glazed Lists as developer-friendly as possible, we decided to break compatibility between versions 0.8 and 0.9. This change brings a more robust concurrency model, a naming scheme more consistent with J2SE, and fewer public classes.
A special Javadoc API
with the migration support package, ca.odell.glazedlists.migrationkit
is available. The migration
kit is a set of classes that will not be available in future releases of Glazed Lists. This package is designed
to ease developers' transition to Glazed Lists 0.9. The classes in the migration kit have been removed from
Glazed Lists because they have been replaced or they are beyond the scope of Glazed Lists.
Version 0.8 | Version 0.9 |
---|---|
com.odellengineeringltd.glazedlists |
ca.odell.glazedlists |
ListTable |
EventTableModel |
EventJList |
EventListModel |
Filterable |
TextFilterable |
Filterator |
TextFilterator |
CaseInsensitiveFilterList |
TextFilterList |
TableFormat.getFieldCount() |
TableFormat.getColumnCount() |
TableFormat.getFieldName() |
TableFormat.getColumnName() |
TableFormat.getFieldValue() |
TableFormat.getColumnValue() |
WritableTableFormat.isFieldEditable() |
WritableTableFormat.isColumnEditable() |
WritableTableFormat.setFieldValue() |
WritableTableFormat.setColumnValue() |
synchronized(getRootList()) { |
getReadWriteLock().writeLock().lock(); |
ListChangeEvent |
ListEvent |
ListChangeBlock.INSERT |
ListEvent.INSERT |
ListChangeBlock.UPDATE |
ListEvent.UPDATE |
ListChangeBlock.DELETE |
ListEvent.DELETE |
ListChangeListener |
ListEventListener |
ListChangeListener.notifyListChanges(ListEvent listChanges); |
ListEventListener.listChanged(ListEvent listChanges); |
ListChangeSequence() |
ListEventAssember(EventList sourceList) |
ListChangeSequence.appendChange(int index, int type) |
ListEventAssembler.addChange(int type, int index) |
ListChangeSequence.appendChange(int index, int startIndex, int endIndex) |
ListEventAssembler.addChange(int type, int startIndex, int endIndex) |
ListChangeListenerEventThreadProxy |
EventThreadProxy |
ListChangeListenerWeakReferenceProxy |
WeakReferenceProxy |
CharacteristicList |
TransformationList |
QueryList |
UniqueList.replaceAll() |