myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prakash Udupa (Commented) (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Commented] (TRINIDAD-2239) Improve the ancestor based change filtering mechanism by introducing a formal ComponentChangeFilter
Date Tue, 20 Mar 2012 14:23:38 GMT

    [ https://issues.apache.org/jira/browse/TRINIDAD-2239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13233432#comment-13233432
] 

Prakash Udupa commented on TRINIDAD-2239:
-----------------------------------------

The noted revision above was not for this issue, the right checkin for this issue is ASF revision
#1302846

                
> Improve the ancestor based change filtering mechanism by introducing a formal ComponentChangeFilter
> ---------------------------------------------------------------------------------------------------
>
>                 Key: TRINIDAD-2239
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-2239
>             Project: MyFaces Trinidad
>          Issue Type: Improvement
>          Components: Components
>    Affects Versions: 2.0.2-core
>            Reporter: Prakash Udupa
>            Assignee: Scott O'Bryan
>             Fix For: 2.0.2-core
>
>         Attachments: Change_Filter_TRINIDAD-2239_For_Trunk.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> TRINIDAD-2221 provided mechanism for ancestors to decide if ComponentChange targeting
one of its descendants should be added to ChangeManager.
> This one is asking for further improvement to this mechanism, by formalizing the contract
more. Proposal is to add the following API:
> 1. An abstract class 'org.apache.myfaces.trinidad.change.ComponentChangeFilter' that
clients / listeners can implement specializations to accept / reject certain changes on certain
components, and then add to the components.
> public abstract class ComponentChangeFilter
> {
>   public abstract Result accept(ComponentChange componentChange, UIComponent changeTargetComponent);
>   public enum Result
>   {
>      ACCEPT,
>      REJECT
>   }
> }
> 2. An abstract implementation 'org.apache.myfaces.trinidad.change.ComponentReferencingComponentChangeFilter'
to solve usecases where such a filter needs to hold component reference. 
> One such usecase is where ComponentChanges belonging to certain component subtree is
rejected, by keeping a reference to the subtree root component. We leverage on 'org.apache.myfaces.trinidad.util.ComponentReference'
for this implementation.
> 3. The following methods on UIXComponentBase to be able to attach / detach ComponentChangeFilters
to the components:
> public final void addComponentChangeFilter(ComponentChangeFilter componentChangeFilter)
> public final void removeComponentChangeFilter(ComponentChangeFilter componentChangeFilter)
> ------------
> Implementation:
> In implementation of UIXComponentBase.addComponentChange(UIComponent component, ComponentChange
change), we will not add a ComponentChange if any of the ComponentChangeFilters that is attached
to the target component itself or any of its ancestors rejects the ComponentChange.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message