Leonardo Uribe created MYFACES-3619:
---------------------------------------

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


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