Re: Will renderHead method be invoked when a component is rendered via wicket events?

2015-03-10 Thread Martin Grigorov
On Tue, Mar 10, 2015 at 3:11 AM, MadasamySankarapandian 
madas...@mcruncher.com wrote:

 On Mon, Mar 9, 2015 at 3:03 PM, Martin Grigorov mgrigo...@apache.org
 wrote:

  Hi,
 
  If a component is rendered then its #renderHead() should be called!
 
  On Mon, Mar 9, 2015 at 4:08 AM, MadasamySankarapandian 
  madas...@mcruncher.com wrote:
 
I am using bootstrap-timepicker.js in a single page
 application
  .
   Time picker is added in a panel which is then embedded in the page.
 When
   the entire page is reloaded, the timepicker is working fine. However,
  when
   the respective panel is displayed via Wicket events, the time picker is
  not
   rendered. I am using Component#onEvent(Ievent) method to display the
  panel.
   The javascript resource reference for timepicker is added in renderHead
   method. I would like to know if a panel is reloaded during onEvent
 call,
   will rendeHead method be invoked or not?
  
  
   Here are few code snippets to help you all understand what I am trying?
  
   public class BasePage
   {
  
   public void renderHead(IHeaderResponse response)
  
 
  Call super.renderHead(response) too.
 
  Is this a method in the page or in SelectionPanel ?!
 
This method is in BasePage.

 
   {
 response.render(JavaScriHeaderItem.forReference(new
   JavaScriptResourceReference(bootstrap-timepicker.js)));
 response.render(JavaScriHeaderItem.forReference(new
   JavaScriptResourceReference(common.js)));
   }
  
   //event is received to display panel
public void onEvent(IEvent ievent)
{
   super.onEvent(ievent)
   if(event.getPayLoad() instance of Notification)
   {
   Notification notification = (Notification) event.getPayload();
 PageParameters parameters = notification.getPageParameters()
 Panel selectedPanel = getSelectedPanel(parameters,
   notification.getPanelClass);
 BasePage.this.selectedPanel.replaceWith(selectedPanel);
  
 
  There is no Ajax here, so the whole page is re-rendered and
 #renderHead()
  should be called for all visible components.
 
Sorry here ajax is involved. In the sample code i forgot to
 add.
selectedPanel.setOutputMarkupId(true);
notification.getTarget().add(selectedPanel);


In that case only selectedPanel's #renderHead() will be called.
BasePage#renderHead() won't be called because the page is not re-rendered
with the Ajax response.

Martin Grigorov
Funemployed! Available for hire!
Wicket Training and Consulting
https://twitter.com/mtgrigorov



 
 }
 }
   }
  
  
   --
   Thanks and regards
Madasamy
  
 



 --
 Thanks and regards
  Madasamy



Re: Will renderHead method be invoked when a component is rendered via wicket events?

2015-03-09 Thread MadasamySankarapandian
On Mon, Mar 9, 2015 at 3:03 PM, Martin Grigorov mgrigo...@apache.org
wrote:

 Hi,

 If a component is rendered then its #renderHead() should be called!

 On Mon, Mar 9, 2015 at 4:08 AM, MadasamySankarapandian 
 madas...@mcruncher.com wrote:

   I am using bootstrap-timepicker.js in a single page application
 .
  Time picker is added in a panel which is then embedded in the page. When
  the entire page is reloaded, the timepicker is working fine. However,
 when
  the respective panel is displayed via Wicket events, the time picker is
 not
  rendered. I am using Component#onEvent(Ievent) method to display the
 panel.
  The javascript resource reference for timepicker is added in renderHead
  method. I would like to know if a panel is reloaded during onEvent call,
  will rendeHead method be invoked or not?
 
 
  Here are few code snippets to help you all understand what I am trying?
 
  public class BasePage
  {
 
  public void renderHead(IHeaderResponse response)
 

 Call super.renderHead(response) too.

 Is this a method in the page or in SelectionPanel ?!

   This method is in BasePage.


  {
response.render(JavaScriHeaderItem.forReference(new
  JavaScriptResourceReference(bootstrap-timepicker.js)));
response.render(JavaScriHeaderItem.forReference(new
  JavaScriptResourceReference(common.js)));
  }
 
  //event is received to display panel
   public void onEvent(IEvent ievent)
   {
  super.onEvent(ievent)
  if(event.getPayLoad() instance of Notification)
  {
  Notification notification = (Notification) event.getPayload();
PageParameters parameters = notification.getPageParameters()
Panel selectedPanel = getSelectedPanel(parameters,
  notification.getPanelClass);
BasePage.this.selectedPanel.replaceWith(selectedPanel);
 

 There is no Ajax here, so the whole page is re-rendered and #renderHead()
 should be called for all visible components.

   Sorry here ajax is involved. In the sample code i forgot to
add.
   selectedPanel.setOutputMarkupId(true);
   notification.getTarget().add(selectedPanel);


}
}
  }
 
 
  --
  Thanks and regards
   Madasamy
 




-- 
Thanks and regards
 Madasamy


Re: Will renderHead method be invoked when a component is rendered via wicket events?

2015-03-09 Thread Martin Grigorov
Hi,

If a component is rendered then its #renderHead() should be called!

On Mon, Mar 9, 2015 at 4:08 AM, MadasamySankarapandian 
madas...@mcruncher.com wrote:

  I am using bootstrap-timepicker.js in a single page application .
 Time picker is added in a panel which is then embedded in the page. When
 the entire page is reloaded, the timepicker is working fine. However, when
 the respective panel is displayed via Wicket events, the time picker is not
 rendered. I am using Component#onEvent(Ievent) method to display the panel.
 The javascript resource reference for timepicker is added in renderHead
 method. I would like to know if a panel is reloaded during onEvent call,
 will rendeHead method be invoked or not?


 Here are few code snippets to help you all understand what I am trying?

 public class BasePage
 {

 public void renderHead(IHeaderResponse response)


Call super.renderHead(response) too.

Is this a method in the page or in SelectionPanel ?!


 {
   response.render(JavaScriHeaderItem.forReference(new
 JavaScriptResourceReference(bootstrap-timepicker.js)));
   response.render(JavaScriHeaderItem.forReference(new
 JavaScriptResourceReference(common.js)));
 }

 //event is received to display panel
  public void onEvent(IEvent ievent)
  {
 super.onEvent(ievent)
 if(event.getPayLoad() instance of Notification)
 {
 Notification notification = (Notification) event.getPayload();
   PageParameters parameters = notification.getPageParameters()
   Panel selectedPanel = getSelectedPanel(parameters,
 notification.getPanelClass);
   BasePage.this.selectedPanel.replaceWith(selectedPanel);


There is no Ajax here, so the whole page is re-rendered and #renderHead()
should be called for all visible components.


   }
   }
 }


 --
 Thanks and regards
  Madasamy



Will renderHead method be invoked when a component is rendered via wicket events?

2015-03-08 Thread MadasamySankarapandian
 I am using bootstrap-timepicker.js in a single page application .
Time picker is added in a panel which is then embedded in the page. When
the entire page is reloaded, the timepicker is working fine. However, when
the respective panel is displayed via Wicket events, the time picker is not
rendered. I am using Component#onEvent(Ievent) method to display the panel.
The javascript resource reference for timepicker is added in renderHead
method. I would like to know if a panel is reloaded during onEvent call,
will rendeHead method be invoked or not?


Here are few code snippets to help you all understand what I am trying?

public class BasePage
{

public void renderHead(IHeaderResponse response)
{
  response.render(JavaScriHeaderItem.forReference(new
JavaScriptResourceReference(bootstrap-timepicker.js)));
  response.render(JavaScriHeaderItem.forReference(new
JavaScriptResourceReference(common.js)));
}

//event is received to display panel
 public void onEvent(IEvent ievent)
 {
super.onEvent(ievent)
if(event.getPayLoad() instance of Notification)
{
Notification notification = (Notification) event.getPayload();
  PageParameters parameters = notification.getPageParameters()
  Panel selectedPanel = getSelectedPanel(parameters,
notification.getPanelClass);
  BasePage.this.selectedPanel.replaceWith(selectedPanel);
  }
  }
}


-- 
Thanks and regards
 Madasamy