History | Log In     View a printable version of the current page. Get help!  
Issue Details (XML | Word)

Key: JBSEAM-2782
Type: Feature Request Feature Request
Status: Closed Closed
Resolution: Done
Priority: Major Major
Assignee: Pete Muir
Reporter: paolo di tommaso
Votes: 3
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Seam

Wicket application should support conversation propagation for all built components

Created: 26/Mar/08 06:32 PM   Updated: 14/May/08 09:50 AM
Component/s: Wicket
Affects Version/s: 2.1.0.A1
Fix Version/s: 2.1.0.BETA1

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
File Attachments: 1. Java Source File SeamWebApplication.java (5 kb)



 Description  « Hide
The Seam Wicket integration is very interesting. But currently the conversation propagation is limited to form submit action and SeamLink component.

This limitation prevents to use it in a real world application where page navigation can be implemented with several different components: button, link, submit link, ajax events.

Among all it would be really useful that the conversation propagation would be supported by the AjaxEventBehavior component that implements Ajax interaction in Wicket and where it is expected to bring the most important benefits (no more detached entities and LazyInitializationException on loading proxyed objects).

Regards,
// Paolo Di Tommaso

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order:
paolo di tommaso [02/Apr/08 11:47 AM]
I've found a nice trick that seams to fix teh above problem. Here it is the patch:

7d6
< import org.apache.wicket.behavior.IBehaviorListener;
9,10d7
< import org.apache.wicket.markup.html.form.IOnChangeListener;
< import org.apache.wicket.markup.html.link.ILinkListener;
75c72
< String name = requestTarget.getRequestListenerInterface().getName();
---
> if (IFormSubmitListener.INTERFACE.getName().equals(requestTarget.getRequestListenerInterface().getName()))
76,80d72
<
< if ( name.equals(IFormSubmitListener.INTERFACE.getName()) ||
< name.equals(ILinkListener.INTERFACE.getName()) ||
< name.equals(IBehaviorListener.INTERFACE.getName()) ||
< name.equals(IOnChangeListener.INTERFACE.getName()) )

Pete Muir [13/May/08 04:31 PM]
Could you post that patch in unified diff format, preferably using svn diff against trunk?

paolo di tommaso [14/May/08 07:28 AM]
Pete. I cannot manage the diff as you are requiring. I've attached the modified source.

Anyway my patch is really simple. I've just added all the ListenerInterface that should propagate the conversionId

:
if ( name.equals(IFormSubmitListener.INTERFACE.getName()) ||
     name.equals(ILinkListener.INTERFACE.getName()) ||
     name.equals(IBehaviorListener.INTERFACE.getName()) ||
     name.equals(IOnChangeListener.INTERFACE.getName()) )
{
   :
}

Pete Muir [14/May/08 09:50 AM]
Thanks Paolo - that works well!