myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Robinson (JIRA)" <...@myfaces.apache.org>
Subject [jira] Updated: (TRINIDAD-1889) Issue with Trinidad UIXCollection class 'createCollectionModel' method
Date Mon, 23 Aug 2010 21:31:16 GMT

     [ https://issues.apache.org/jira/browse/TRINIDAD-1889?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andrew Robinson updated TRINIDAD-1889:
--------------------------------------

           Status: Resolved  (was: Patch Available)
    Fix Version/s: 2.0.0.3-core
       Resolution: Fixed

> Issue with Trinidad UIXCollection class 'createCollectionModel' method
> ----------------------------------------------------------------------
>
>                 Key: TRINIDAD-1889
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1889
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>          Components: Components
>    Affects Versions: 2.0.0.3-core
>         Environment: All
>            Reporter: Kamran Kashanian
>             Fix For: 2.0.0.3-core
>
>         Attachments: uixcollection1.patch
>
>
> The Trinidad UIXCollection class contains an abstract method called 'createCollectionModel'.
  Subclasses are supposed to override this method and use it to create a CollectionModel instance
for use by the component.
> Currently subclasses like UIXTable and UIXTree use 'createCollectionModel' to get the
component's 'value' attribute and wrap the object in the 'value' attribute in a CollectionModel/TreeModel
instance (if necessary) .
> UIXTable and UIXTree also perform other initializations in 'createCollectionModel.  For
example,  SelectedRowKeys and DisclosedRowKeys sets are initialized in 'createCollectionModel'.
> The issue with the current design is that the component's reference to the CollectionModel
is not fully initialized until 'createCollectionModel' returns a CollectionModel instance
and the resulting model is stored in the component's state by UIXCollection.
> So for example,  UIXTable and UIXTree should not be performing initialization of component's
attribute that depend on a fully initialized CollectionModel reference inside the 'createCollectionModel'.
 
> The SelectedRowKeys and DisclosedRowKeys sets require a fully initialized CollectionModel
before they should be referenced.  Otherwise if these attributes are EL-bound and a backing
bean logic references the CollectionModel in the getter method for SelectedRowKeys and DisclosedRowKeys,
 the backing bean may get an uninitialized CollectionModel reference.
> The proposal is to add the following method to UIXCollection:
>   /**
>    * Called after <code>createCollectionModel</code> when the model is fully
initialized
>    * Subclasses can use this method to perform initialization of component attributes

>    * that should occur only after the CollectionModel is fully initialized in 
>    * <code>createCollectionModel</code>
>    * This is a do nothing implementation to avoid breaking existing code
>    * * @see #createCollectionModel
>    * @param model
>    */
>   protected void postCreateCollectionModel(CollectionModel model)
>   {
>     // do nothing
>   }
> This method will be called by UIXCollection after 'createCollectionModel' returns and
the component's reference to the CollectionModel is fully initialized.  Any initialization
of model-dependent attributes can then occur in 'postCreateCollectionModel'

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message