Update TreeNode api docs 
-------------------------

                 Key: RF-4218
                 URL: https://jira.jboss.org/jira/browse/RF-4218
             Project: RichFaces
          Issue Type: Bug
    Affects Versions: 3.2.1
         Environment: FF3, WinXP
            Reporter: Charles Crouch


Right now the TreeNode api documentation:

http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/apidoc_framework/org/richfaces/model/TreeNode.html

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: 
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to