I probably wasn't clear enough.

Here's my case:

BasePage.renderHead() adds veil.js as javascript resource reference.

All my pages inherit from BasePage. But veil.js is only useful when a page
has wicket ajax.

If I declare that veil.js has a dependency on jquery then the result is
that all pages get both veil.js and jquery. What I want is that pages that
don't have ajax (i.e. no Wicket-Ajax or Wicket-Event libraries) don't
include veil.js. I could do it on a per component basis but this would be
cumbersome and error prone. So instead I used Martin's solution and
conditionally render veil.js only if the headerResponse renders
Wicket-Event.


On Thu, Nov 14, 2013 at 5:09 PM, Nick Pratt <nbpr...@gmail.com> wrote:

> Then you're doing something odd :-)
>
> If you have dependencies like this:
>
> CustomComponent --> Custom JS Reference (and this is added in the public
> void renderHead( Component component, IHeaderResponse response ) method)
> --> Wicket's JQuery JS Reference
>
> Page A (no Ajax components or components depending on Wicket's jquery ref)
> Page B --> CustomComponent  (Page B being a copy of Page with a single
> instance of your CustomComponent)
>
> When you load Page A, the JS will not be loaded.
> When you load Page B, both the Wicket JS and the custom JS will be added to
> the page.
>
> If you are seeing Jquery being loaded in Page A then some component on that
> page requires the Wicket JS libraries and is causing it to be added.
>
> N
>
>
>
> On Thu, Nov 14, 2013 at 8:56 AM, Marios Skounakis <msc...@gmail.com>
> wrote:
>
> > Thanks Martin, this worked well.
> >
> > Sebastien and Nick, I tried the solution with
> JQueryPluginResourceReference
> > but this indeed caused JQuery to be loaded in non ajax pages.
> >
> >
> > On Thu, Nov 14, 2013 at 3:04 PM, Martin Grigorov <mgrigo...@apache.org
> > >wrote:
> >
> > > Hi,
> > >
> > > You can create custom IHeaderResponseDecorator and by using custom
> > > IHeaderResponse you can check for contributions
> > > of org.apache.wicket.ajax.WicketAjaxJQueryResourceReference
> > > See
> > >
> >
> http://www.wicket-library.com/wicket-examples-6.0.x/resourceaggregation/?0
> > >  and http://wicketinaction.com/2012/07/wicket-6-resource-management/
> > >
> > >
> > > On Thu, Nov 14, 2013 at 2:59 PM, Marios Skounakis <msc...@gmail.com>
> > > wrote:
> > >
> > > > If I'm not mistaken this will cause JQuery to be included whenever my
> > js
> > > > reference is included. Effectively this will cause non-ajax pages to
> > load
> > > > javascript which applies only to ajax requests.
> > > >
> > > > What I want is the opposite: to not include my js reference when the
> > page
> > > > does not have any ajax.
> > > >
> > > >
> > > > On Thu, Nov 14, 2013 at 2:04 PM, Sebastien <seb...@gmail.com> wrote:
> > > >
> > > > > Hi Marios,
> > > > >
> > > > > IMO the best way IMO is to make your js reference extending
> > > > > JQueryPluginResourceReference (wicket 6)
> > > > >
> > > > > Best regards,
> > > > > Sebastien.
> > > > >
> > > > >
> > > > > On Thu, Nov 14, 2013 at 12:20 PM, Marios Skounakis <
> msc...@gmail.com
> > >
> > > > > wrote:
> > > > >
> > > > > > Hi all,
> > > > > >
> > > > > > I have a base page from which all my pages inherit. I want to
> > > > > conditionally
> > > > > > include a javascript reference (header item) if the page contains
> > an
> > > > ajax
> > > > > > component. The reference is a veil implementation based on
> BlockUI
> > > > which
> > > > > is
> > > > > > redundant (and also causes a javascript error) if the page has
> not
> > > ajax
> > > > > > (and hence JQuery is not loaded).
> > > > > >
> > > > > > Any suggestions?
> > > > > >
> > > > > > Thanks
> > > > > > Marios
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to