]
Ian Springer commented on RF-4218:
----------------------------------
Charles, here's a link to the updated class:
Update TreeNode api docs
-------------------------
Key: RF-4218
URL:
https://jira.jboss.org/jira/browse/RF-4218
Project: RichFaces
Issue Type: Bug
Components: docs updated
Affects Versions: 3.2.1
Environment: FF3, WinXP
Reporter: Charles Crouch
Assignee: Tsikhon Kuprevich
Fix For: 3.2.2
Right now the TreeNode api documentation:
http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/...
doesn't mention the fact that the Richfaces implementation will use the
'identifier' Object passed into the addChild method when it generates the id
attribute for html elements when rendering the tree. In most situations this usage is
probably not problematic however I've seen the rendered tree not open correctly when
using various odd strings for the 'identifier'.
For example this is some debug output when clicking on the (+) to the left of a node
(i.e. trying to open it). The node would not open until I refreshed the page, I'm
using ajax as the rendering type for the tree:
2008-08-15 17:24:27,906 DEBUG [org.ajax4jsf.renderkit.RendererBase] Finish encoding of
component j_id147:j_id148::JBossAS
Server:C_:\usr\apps\jboss\jbossesb-server-4.3.GA\server\default:JBossESB .esb
Package:jboss.esb_:deployment=jbossesb.esb:JBoss ESB
Services:jboss.esb_:category=MessageCounter,deployment=jbossesb.esb,service-name=InvokerService:JBoss
ESB Actions::j_id168 with class org.richfaces.component.html.HtmlTreeNode
and here's one that could be opened in the browser:
2008-08-15 17:25:35,703 DEBUG [org.ajax4jsf.renderkit.RendererBase] Finish encoding of
component j_id147:j_id148::JBossAS
Server:C_:\usr\apps\jboss\jbossesb-server-4.3.GA\server\default:Environment:JBoss AS
JVM::j_id162 with class org.richfaces.component.html.HtmlTreeNode
I couldn't find any significant difference between the two. Its not length related, I
tried using sets of 30digits for the 'identifier' and that worked fine generating
a component id of >400chars long.
For both of the above cases TidyParser complains
2008-08-15 17:25:35,734 DEBUG [org.ajax4jsf.webapp.tidy.TidyParser] Message for HTML
parsing : <table> attribute "id" has invalid value
"j_id147:j_id148::JBossAS
Server:C_:\usr\apps\jboss\jbossesb-server-4.3.GA\server\default:Environment:JBoss AS
JVM::j_id162"
2008-08-15 17:25:35,734 DEBUG [org.ajax4jsf.webapp.tidy.TidyParser] Message for HTML
parsing : <tr> attribute "id" has invalid value
"j_id147:j_id148::JBossAS
Server:C_:\usr\apps\jboss\jbossesb-server-4.3.GA\server\default:Environment:JBoss AS
JVM::j_id162:mainRow"
2008-08-15 17:25:35,734 DEBUG [org.ajax4jsf.webapp.tidy.TidyParser] Message for HTML
parsing : <td> attribute "id" has invalid value
"j_id147:j_id148::JBossAS
Server:C_:\usr\apps\jboss\jbossesb-server-4.3.GA\server\default:Environment:JBoss AS
JVM::j_id162:handles"
and
2008-08-15 17:24:27,921 DEBUG [org.ajax4jsf.webapp.tidy.TidyParser] Message for HTML
parsing : <table> attribute "id" has invalid value
"j_id147:j_id148::JBossAS
Server:C_:\usr\apps\jboss\jbossesb-server-4.3.GA\server\default:JBossESB .esb
Package:jboss.esb_:deployment=jbossesb.esb:JBoss ESB
Services:jboss.esb_:category=MessageCounter,deployment=jbossesb.esb,service-name=InvokerService:JBoss
ESB Actions::j_id168"
2008-08-15 17:24:27,921 DEBUG [org.ajax4jsf.webapp.tidy.TidyParser] Message for HTML
parsing : <tr> attribute "id" has invalid value
"j_id147:j_id148::JBossAS
Server:C_:\usr\apps\jboss\jbossesb-server-4.3.GA\server\default:JBossESB .esb
Package:jboss.esb_:deployment=jbossesb.esb:JBoss ESB
Services:jboss.esb_:category=MessageCounter,deployment=jbossesb.esb,service-name=InvokerService:JBoss
ESB Actions::j_id168:mainRow"
2008-08-15 17:24:27,921 DEBUG [org.ajax4jsf.webapp.tidy.TidyParser] Message for HTML
parsing : <td> attribute "id" has invalid value
"j_id147:j_id148::JBossAS
Server:C_:\usr\apps\jboss\jbossesb-server-4.3.GA\server\default:JBossESB .esb
Package:jboss.esb_:deployment=jbossesb.esb:JBoss ESB
Services:jboss.esb_:category=MessageCounter,deployment=jbossesb.esb,service-name=InvokerService:JBoss
ESB Actions::j_id168:handles"
but its only the latter one that actually fails to open in the browser.
I think the docs should be updated to indicate that you should be carefully about what
identifier.toString() will actually return because its going to be used in creating id
attributes, and the format of those appears to have some rules around it.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: