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

Leonardo Uribe reopened MYFACES-3619:
-------------------------------------


Checking some code I notice an small bug introduced in this improvement. In 
UIComponentBase.saveState one line should be changed to restore full state 
properly. Fortunately the fix is very simple to do, just update one number.
                
> Define a special property to specify when a component is created by facelets  
> ( oam.vf.addedByHandler )
> -------------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3619
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3619
>             Project: MyFaces Core
>          Issue Type: Improvement
>          Components: JSR-314
>            Reporter: Leonardo Uribe
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.16, 2.1.10
>
>
> I have notice the need to define a special property or attribute to indicate 
> PSS algorithm when a component has been created by facelets. In practice we 
> use the following fragment in DefaultFaceletsStateManagementStrategy:
>                 if (!isRefreshOnTransientBuildPreserveState() &&
>                     
> FaceletCompositionContext.getCurrentInstance(_facesContext) != null &&
>                     
> (component.getAttributes().containsKey(ComponentSupport.MARK_CREATED) ||
>                      
> component.getAttributes().containsKey(ComponentSupport.FACET_CREATED_UIPANEL_MARKER))
>  ||
>                      (component.getId() != null && component.getId().length() 
> > 16 && 
>                       
> component.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX) && 
>                       component.getId().endsWith("__f_cc_facet") )
>                     )
> It is a complex check for something that should be simple. The idea is reduce 
> that to something like this:
>                 if (!isRefreshOnTransientBuildPreserveState() &&
>                     
> FaceletCompositionContext.getCurrentInstance(_facesContext) != null &&
>                     
> (component.getAttributes().containsKey(ComponentSupport.MARK_CREATED) ||
>                      
> component.getAttributes().containsKey(ComponentSupport.COMPONENT_ADDED_BY_HANDLER_MARKER))
>                     )
> and create oam.vf.addedByHandler as special facelets attribute just like 
> oam.vf.MARK_ID or MARK_CREATED is, to make facelets refreshTransientBuild 
> faster.
> It is required to do some changes in some locations, specially when 
> ComponentSupport.FACET_CREATED_UIPANEL_MARKER is used, to set that one and 
> ComponentSupport.COMPONENT_ADDED_BY_HANDLER_MARKER together. It is not 
> conveniento to mix both because both are used in different situations.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to