Yes I (and perhaps we) care. Unfortunately Google has decided that the WiQuery 
google group should die, leaving us with no mailinglist... Fortunately most of 
the WiQuery committers are also on this mailinglist.
Any suggestions you have will be taken into account during our ever lasting 
upgrade efforts for WiQuery.

Simply calling tab.disable(i); will not work as this function returns a jQuery 
statement. If you do not use that nothing changes :S You should use 
Tabs#setDisabled(ArrayItemOptions<IntegerItemOptions> disabled). This will 
disable all tabs that you specify upon first render. If you want to disable any 
tab after first render you should use an ajax call and call 
Tabs#disable(AjaxRequestTarget, int).

If there is a bug in WiQuery then please report it here: 
http://code.google.com/p/wiquery/issues/entry

Hielke Hoeve

-----Original Message-----
From: Marco Springer [mailto:marcosprin...@gmail.com] 
Sent: dinsdag 17 januari 2012 9:16
To: users@wicket.apache.org
Subject: Re: WiQuery & disabling tabs

If anyone cares, I found "a" solution...

I'm guessing the previous solution isn't working because the statement is 
probably output before the page is actually rendered.
Therefore i did the following:

tabs.add(new AbstractBehavior() {
  @Override
  public void renderHead(IHeaderResponse response) {
    super.renderHead(response);
    StringBuilder js = new StringBuilder();
    if (isNewObject) {
      for (int i = 1; i < 6; i++) {
        js.append(tabs.disable(i).getStatement()).append(";");
      }
    }
    response.renderOnDomReadyJavascript(js.toString());
  }
});

If anyone thinks this is faulty or has a better solution, I'd like to know!

Kind regards,
Marco

On 16 January 2012 17:20, Marco Springer <marcosprin...@gmail.com> wrote:

> Hi all,
>
> *The problem: *
> tabs not disabled on first render.
>
> *The source:*
> I'm adding the "Tabs" class from WiQuery 1.2.4 like so:
>
> tabs = new Tabs("tabs");
> tabs.setOutputMarkupId(true);
>
> CompoundPropertyModel<Wafer> waferModel = new 
> CompoundPropertyModel<Wafer>(getDefaultModel());
> tabs.add(new GeneralInfoPanel("general_info", waferModel)); 
> tabs.add(new MaterialSpecificationPanel("material_spec", waferModel)); 
> tabs.add(new LazyTabPanel("layers", waferModel, 
> LayersFragment.class)); tabs.add(new LazyTabPanel("batches", 
> waferModel, BatchFragment.class)); tabs.add(new 
> LazyTabPanel("logbook", waferModel, LogbookFragment.class)); 
> tabs.add(new DocumentsPanel("documents", waferModel));
>
> *// isNewObject set to true when the Wafer object contained in the 
> waferModel is a new Wafer.
> // When a new Wafer is show in this panel, disable the rest of the 
> tabs for now:* if (isNewObject) {  for (int i = 1; i < 6; i++)  
> tabs.disable(i); }
>
> add(tabs);
>
>
> *The question:*
> I thought this would be a proper way to disable those tabs, apparently 
> it isn't.
> If I call the disable function through ajax afterwards, like 
> "disable(target, 1)", it's fine.
>
> Anyone an idea how you would disable a single (or multiple) tabs on 
> the first initial render?
>
> Kind regards,
> Marco

Reply via email to