Robert, I've got to say that you gave me the answer that I feared most.

Hehe, REALLY thanks for your tips, I knew already that sooner or later I had
to hack into tapestry.js

Cheers!


Robert Zeigler wrote:
> 
> 
> On Apr 8, 2010, at 4/81:48 PM , Juan Isern wrote:
> 
>> What I would like to do is to trigger an "addRow" event by executing  
>> some
>> javascript (that will be invoked when an upload finishes). I thought  
>> of
>> simulating a click event on an invisible "add row" link but I'm sure  
>> there's
>> a prettier solution out there.
>>
> 
> There are other ways to do it, although I'm not sure I would call them  
> "prettier". :)
> AjaxFormLoop places an "AjaxFormLoopContext" object into the  
> environment when it renders.
> You can access this object and add a call to "addAddRowTrigger".  That  
> part is pretty. The main issue (for you) is that tapestry then assumes  
> that the trigger is going to be invoked on the "click" action, which  
> isn't what you want in this case.
> There's a way around it, and that's where things get uglier. You can  
> monkey patch tapestry.js to override  
> Tapestry.Initializer.ajaxFormLoop, and make it behave how you want.  
> This is typically how I've implemented custom "add row" functionality.
> 
> It might be a nifty change to enable a second form of the  
> "addAddRowTrigger" that takes, say, a js callback name as a 2nd  
> argument.  Or perhaps some flag triggering whether the first argument  
> is an id or a callback.  In any event, the initializer could then  
> check for the appropriate condition, and if the condition is met, the  
> initializer would delegate the setup to the callback, passing in the  
> row injector, rather than assuming a click.  If there's enough  
> interest in something like this, I would be willing to do the work to  
> add it to the framework (the exact api would need to be worked out,  
> though).
> 
> 
>> The same question could apply to any client-side ajax behavior, like
>> refreshing zones. Is there any way to do it programmatically via  
>> javascript?
>>
> 
> The best answer here is to take a look for yourself through (mainly)  
> the tapestry.js file.
> But, yes, you can refresh zones in non-default ways; the trick (as  
> with AjaxFormLoop above) is getting a handle to the runtime js objects.
> 
>> Another thing: the javascript effect displayed when a row is added/ 
>> removed
>> behaves in a somewhat weird fashion. Can be this effect be disabled or
>> configured?
>>
> 
> http://tapestry.apache.org/tapestry5.1/tapestry-core/ref/org/apache/tapestry5/corelib/components/AjaxFormLoop.html
> Check out the "show" parameter.
> 
>> Thanks a lot!
>> -- 
>> View this message in context:
>> http://old.nabble.com/Tweaking-an-AjaxFormLoop-tp28182870p28182870.html
>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Tweaking-an-AjaxFormLoop-tp28182870p28186610.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to