Re: WiQuery disabling tabs

2012-01-17 Thread Marco Springer
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);

 CompoundPropertyModelWafer waferModel = new
 CompoundPropertyModelWafer(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


Re: WiQuery disabling tabs

2012-01-17 Thread Martin Grigorov
On Tue, Jan 17, 2012 at 9:15 AM, Marco Springer marcosprin...@gmail.com 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 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);

 CompoundPropertyModelWafer waferModel = new
 CompoundPropertyModelWafer(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: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: WiQuery disabling tabs

2012-01-17 Thread Marco Springer
Ah ofcourse! Tnx.

On 17 January 2012 09:19, Martin Grigorov mgrigo...@apache.org wrote:

 On Tue, Jan 17, 2012 at 9:15 AM, Marco Springer marcosprin...@gmail.com
 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 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);
 
  CompoundPropertyModelWafer waferModel = new
  CompoundPropertyModelWafer(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: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org




RE: WiQuery disabling tabs

2012-01-17 Thread Hielke Hoeve
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(ArrayItemOptionsIntegerItemOptions 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);

 CompoundPropertyModelWafer waferModel = new 
 CompoundPropertyModelWafer(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


Re: WiQuery disabling tabs

2012-01-17 Thread Marco Springer
Your suggestion:
if (((IModelWafer) getDefaultModel()).getObject().getId() == 0) {
  ArrayItemOptionsIntegerItemOptions options = new
ArrayItemOptionsIntegerItemOptions();
  for (int i = 1; i  6; i++) {
options.add(new IntegerItemOptions(i));
  }

  tabs.setDisabled(options);
}

My code sauce:
if (((IModelWafer) getDefaultModel()).getObject().getId() == 0) {
  tabs.add(new AbstractBehavior() {

@Override
public void renderHead(IHeaderResponse response) {
  super.renderHead(response);
  StringBuilder js = new StringBuilder();

  for (int i = 1; i  6; i++) {
js.append(tabs.disable(i).getStatement()).append(;);
  }

  response.renderOnDomReadyJavascript(js.toString());
}
  });
}

Yup I'm going for your suggestion.

Thanks Hielke.

Regards,
Marco

On 17 January 2012 15:05, Hielke Hoeve hielke.ho...@topicus.nl wrote:

 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(ArrayItemOptionsIntegerItemOptions 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);
 
  CompoundPropertyModelWafer waferModel = new
  CompoundPropertyModelWafer(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

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