[
https://issues.apache.org/jira/browse/TOMAHAWK-1540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Leonardo Uribe resolved TOMAHAWK-1540.
--------------------------------------
Fix Version/s: 1.1.10-SNAPSHOT
Resolution: Fixed
> t:tree2 navigation, expand and collapse image component manipulation does not
> work well with PSS on JSF 2
> ---------------------------------------------------------------------------------------------------------
>
> Key: TOMAHAWK-1540
> URL: https://issues.apache.org/jira/browse/TOMAHAWK-1540
> Project: MyFaces Tomahawk
> Issue Type: Bug
> Components: JSF2, Tree2
> Affects Versions: 1.1.9
> Reporter: Leonardo Uribe
> Assignee: Leonardo Uribe
> Fix For: 1.1.10-SNAPSHOT
>
>
> In JSF 1.2 and lower, HtmlTreeRenderer used a hack on expand, collapse and
> navigation images to force render ids for graphic images, because on client
> side mode they are required by javascript part. To do that, it was used a
> counter inside the renderer class.
> That previous hack worked well, because the ids are not required to save the
> component state.
> In JSF 2.0, Partial State Saving was introduced, and to work correctly it
> requires some stability on the ids generated. The problem is the ids for
> those components are changed on render response time. When state saving
> occur, the state is saved using those ids, but on a postback the view is
> built again, but since the ids are not changed on that time, it is not
> possible to restore the state correctly. This effect does not break myfaces
> core PSS, bug it breaks mojarra, because they use the ids even for save
> facets.
> The solution is create a facelet tag handler that changes the ids on the
> right time and remove the hack from the renderer.
> Other problem present is how the navigation images are rendered. For render
> them, an image component is created and then it is called setParent(), so
> when getClientId is called later the id will contain the parent container
> client id too. This component is never saved on the state, so it behaves like
> a transient one, but on PSS a listener is used to track tree changes, and
> since it is not marked to be transient, it is added to the list for being
> restored.
> The solution is mark this component as transient, calling setTransient(true).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.