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.

Reply via email to