On Tue, Jan 17, 2012 at 9:15 AM, Marco Springer <[email protected]> wrote:
> 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());
Move this line inside the "if". No need to render empty JS.


>  }
> });
>
> 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 <[email protected]> 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



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to