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

pudupa edited comment on TRINIDAD-1015 at 5/9/08 7:01 PM:
-------------------------------------------------------------------

I'd like to see this fix soon, requesting a port of this fix on 1.2.7.1 branch. 
To make it easier, the attached file ' 
TRINIDAD-1015-Patch-For-Branch_1.2.7.1-branch.patch' is a patch for the same 
issue over '1.2.7.1-branch' based off revision #654982.

Note to Commiters: 
1. Please review both the patches and apply for both the branches the fix if 
found acceptable.
2. The file (UIXComponentELTag.java) where the relevant change has gone for 
this patch is not present in the 'trunk', hence the fix is not applicable and 
not required there.

      was (Author: pudupa):
    I'd like to see this fix soon, requesting a port of this fix on 1.2.7.1 
branch. To make it easier, the attached file is a patch for the same issue over 
'1.2.7.1-branch' based off revision #654982.

Note to Commiters: 
1. Please review both the patches and apply for both the branches the fix if 
found acceptable.
2. The file (UIXComponentELTag.java) where the relevant change has gone for 
this patch is not present in the 'trunk', hence the fix is not applicable and 
not required there.
  
> SessionChangeManager - Need support for applying changes to a different 
> component than the immediate target, need for supporting ChangeMarker
> ---------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TRINIDAD-1015
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1015
>             Project: MyFaces Trinidad
>          Issue Type: Improvement
>         Environment: Not applicable
>            Reporter: Prakash Udupa N
>         Attachments: TRINIDAD-1015-Patch-For-Branch_1.2.7.1-branch.patch, 
> TRINIDAD-1015-Patch-For-Branch_trunk_1.2.x.patch
>
>
> Component changes that are added to SessionChangeManager are applied while 
> the components are being created by the tag handlers. Specifically 
> UIXComponentELTag._applyChanges() and UIXComponentELTag.doEndTag() does this 
> job. Changes are applied only if the component was created newly during tag 
> execution. UIComponentELTag.getCreated() is consulted for this purpose.
> There are certain type of changes that are registered on a particular target 
> component, but actually need to be applied on a different component to make 
> the change effective.
> Consider example of a MoveComponentChange specialization that moves 
> components within the view tree. There are three participants in this change:
> 1. The component that is to be moved.
> 2. The parent at the destination of the move.
> 3. The neighboring sibling at the destination to be able to position the 
> component rightly after the move.
> At the outset this seems to be a change to be recorded against the component 
> that is to be moved (i.e. #1). However, this change needs to be applied 
> actually on the nearest common root parent of the tree that #1 and #2 belongs 
> to.
> During tag execution (createview/restoreview), the component for #1 gets 
> created, however the common root never gets created. 
> UIXComponentELTag.getCreated() returns false for the common root, as a 
> result, from the current behavior in UIXComponentELTag._applyChanges(), this 
> type of change never gets applied correctly.
> Proposal is to:
> a) Provide a ChangeMarker interface that clients could register against the 
> immediately apparent target component (In the above example it is component 
> in #1).
> b) Improve UIXComponentELTag such that upon applying changes, if a 
> ChangeMarker is encountered instead of a Change, do not apply any change, but 
> ask the ChangeMarker for actual target. Subsequently mark the tag for the new 
> target component as forcibly needing change. This ensures that the Change is 
> correctly applied on the actual target at later point in time.
> c) UIXComponentELTag, will consult getCreated() as well as check if a change 
> application is forced while applying change. 

-- 
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