RowKeyPropertyModel and RowKeyPropertyTreeModel
-----------------------------------------------
Key: TRINIDAD-1938
URL: https://issues.apache.org/jira/browse/TRINIDAD-1938
Project: MyFaces Trinidad
Issue Type: Improvement
Components: Components
Affects Versions: 2.0.0.3-core
Environment: All
Reporter: Kamran Kashanian
By default, when Java Lists/Arrays are used as models in Trinidad
table/tree/treeTable components, they are wrapped in a SortableModel instance.
The problem with SortableModel is that it uses row indexes as row keys. This
makes SortableModel immutable and insert/delete operations in the underlying
List/array can cause problems. For example, indexes shift after insert/delete
operations and can cause problems if the component is holding on to row keys in
SelectedRowKey/DisclosedRowKey sets.
The proposal is to add row key based CollectionModel/TreeModels which avoid
using indexes as row keys.
Attaching a patch for a RowKeyPropertyModel and a RowKeyPropertyTreeModel.
RowKeyPropertyModel takes a rowKeyProperty name which identifies the unique row
key in each model row by name. The setRowKey/getRowKey etc APIs use the
rowKeyProperty to reference the row key attribute.
One drawback with the default implementation of setRowKey API in
RowKeyPropertyModel is that it is inefficient and does a linear search through
the model to find the row with the given row key. The search can be optimized
in subclasses for specific model implementations.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.