I have a workaround and it goes a little something like this:

<script type="text/javascript">Wicket.replaceOuterHtml=function(element,
text) {


 new $(element.id).fade({ duration: 0.4, afterFinish: function(effect) {

 if (Wicket.Browser.isIE()) {

Wicket.replaceOuterHtmlIE(element, text);

    } else if (Wicket.Browser.isSafari() || Wicket.Browser.isOpera()) {

    Wicket.replaceOuterHtmlSafari(element, text);

    } else /* GECKO */ {

    // create range and fragment

        var range = element.ownerDocument.createRange();

        range.selectNode(element);

var fragment = range.createContextualFragment(text);

         element.parentNode.replaceChild(fragment, element);

    }

 $(element.id).appear({ duration: 0.4});

}});

 }


</script>

Putting that at the top of the html overrides the wicket function, adds in a
javascript effect, then using the onFinish hook, runs the original Wicket
code, the precedes with another effect. This makes the effects run
immediately after the ajax call has completed...

This adds a fade transition every time wicket replaces a dom element. A
better version would allow you to do it with some hooks, passing in your
transition functions.

2009/7/28 Antony Stubbs <antony.stu...@gmail.com>

> (sorry, sent to wrong list before)
> Is it possible to override certain methods in wicketajax.js ? In order to
> modify the behaviour of one of the methods.
>
> but i'd prefer not to run a patched wicket, or have to run on a copy of the
> whole wicketajax.js file - but i will if i have to :/
>
> what i want to do is add pre and post hooks
> processComponent#Wicket.replaceOuterHtml function - as this will solve what
> I want to do - i.e. run an animation on the element to be replaced, after
> the ajax call completes, but before the element is replaced.
>
> p.s. martijn, is there any info available on the plan for the new ajax
> system?
>
> I just found - there is a post animation hook in Scriptaculous, which I
> have working to run the ajax request in, however this doesn't quite get
> there, as there's is of course the delay between when the animation
> finishes, and when the ajax request actually completes - which is too long.
>
> Update:
> I've tried overriding the js functions like this:
>
> <script type="text/javascript">
>
> function newProcessComponent: function(steps, node) {
> alert('replaced!');
> }
>
> Wicket.Ajax.Call.prototype.processComponent = newProcessComponent
>
> </script>
> <script type="text/javascript">Wicket.replaceOuterHtml=function() {alert(
> 'replaceOuterHtml');}</script>
> <script type="text/javascript">Wicket.Ajax.Call.prototype.processComponent:
> function(steps, node) {{alert('processComponent');}</script>
>
> but only the replaceOuterHtml functions works, i think because the there's
> a difference because processComponent is  a member of an object...
> I need to replace processComponent so that I can have access to the
>
> Cheers,
> Antony Stubbs,
>
> sharca.com
>
> On 27/07/2009, at 9:31 PM, Martijn Dashorst wrote:
>
> Not 100% sure if it's already done, but I've bugged Matej with this
>
> request for 1.5's new Ajax implementation.
>
>
> Martijn
>
>
> On Mon, Jul 27, 2009 at 9:40 AM, Antony Stubbs<antony.stu...@gmail.com>
> wrote:
>
> Was this ever implemented / solved?:
>
>
>
>
> Nov 21, 2006; 07:09am Re: Using Javascript Effects Before An Ajax Call
>
> This is possible to do with wicket, however it would require minor
>
> enhancement of the ajax processing code.
>
>
> We already have infrastructure for asynchronously postponing processing
>
> steps.
>
>
> However, I can't do that right now. Maybe in a week or so. So if anyone
>
> really needs to pause between executing scripts from "prependJavascript"
>
> and replacing the elements (which is I understand right this is all
>
> about), keep bugging me, I will eventually implement that. :)
>
>
> -Matej
>
>
> cygnusx2112 wrote:
>
>
> Thanks for the clarification Igor. I ended up achieving the desired affect
>
> by
>
> using an AjaxCallDecarator in combination with a server side pause.
>
> Basically I was trying to do the following:
>
>
>   1) Run animation effect on element
>
>   2) Use Ajax request to replace element
>
>   3) Run another animation effect on the element
>
>
> As you noticed, I needed a way to block so that #2 and #3 would not step
>
> on
>
> #1. As a non-Javascript guru I was unable to find a way to block the
>
> Javascript "thread" without some kind of CPU beating hack loop. However,
>
> the
>
> solution I am using seems to work well.
>
>
> In my efforts to accomplish this I have built some pretty interesting
>
> subclasses of AjaxEventBehavior that might be worth contributing. They
>
> basically allow you to cleanly add pre/post visual effects to components
>
> around an Ajax event.
>
>
> Regards,
>
>
> -MT
>
>
>
>
>
> igor.vaynberg wrote:
>
>
> ....the effect is clearly executed asynchronously from the rest of the
>
> javascript "thread" so you need to find a way to block until the effect
>
> is
>
> complete.
>
>
> -igor
>
>
>
> ... [show rest of quote]
>
>
>
> -------------------------------------------------------------------------
>
> Take Surveys. Earn Cash. Influence the Future of IT
>
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
>
> opinions on IT & business topics through brief surveys - and earn cash
>
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
> _______________________________________________
>
> Wicket-user mailing list
>
> wicket-u...@...
>
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
>
>
> Cheers,
>
> Antony Stubbs,
>
>
> sharca.com
>
>
>
>
>
>
> --
>
> Become a Wicket expert, learn from the best: http://wicketinaction.com
>
> Apache Wicket 1.3.5 is released
>
> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.
>
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>
>
>


-- 
___________________________
http://stubbisms.wordpress.com/

Reply via email to