I started implementing a solution for this but reverted it as I felt like I was attacking too much at once.
If you did something like this it would probably solve the problem: -) Don't change Form's method of generating unique id. (it already uses the global IRequestCycle IdAllocator + special logic for portlets. -) Initialize the FormSupportImpl IdAllocator instance with a namespace value of the Form's clientId/name . -) Create a new reserved hidden input field parameter to store the unique form id in so that you can properly initialize the IdAllocator in FormSupport during rewind. -) Your factory idea for FormSupport sounds good to me. On 11/14/06, andyhot <[EMAIL PROTECTED]> wrote:
Recent updates on clientId generation look quite good so far! http://issues.apache.org/jira/browse/TAPESTRY-1131 "Hidden Component (maybe all FormComonents?) don't get ids assigned on a page basis" still occurs. It's the case where a page has many forms, and since every form item gets a name and id that is unique inside each form, we don't yet guarantee that it is also unique per page (we don't use the page idAllocator) So, apart from prefixing ids with the form clientId (as i had suggested), is there any other solution? Also, i find it odd that each Form creates its own FormSupport in protected FormSupport newFormSupport(IMarkupWriter writer, IRequestCycle cycle) This doesn't allow me to 'inject' a custom FormSupportImpl. I'd prefer having the Form delegating the process to a FormSupportFactory service that i can easily override. -- Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr Tapestry / Tacos developer Open Source / J2EE Consulting --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Jesse Kuhnert Tapestry/Dojo/(and a dash of TestNG), team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
