You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by "Burton, Tom F (DOR)" <to...@alaska.gov> on 2012/04/04 21:18:03 UTC

TextTemplateResourceReference problem

Hello,

  I have a component(It displays a menu common across the pages of my
application.)

All the WebPages in my application inherit from BasePage which includes
the menu.

 

BasePage includes a component MainMenu, which creates a List of
Lists(that contain page links)

The Lists of lists are then wrapped inside of jQuerySlideMenu.

 

jQuerySlideMenu has the following method defined

renderHead(IHeaderResponse response) 

{

    super.renderHead(response);

    response

                .renderCSSReference(new
PackageResourceReference(AppBasePage.class,

 
"includes/css/jqueryslidemenu.css"));

    response

                .renderCSSReference(new
PackageResourceReference(AppBasePage.class,

 
"includes/css/printjqueryslidemenu.css"), "print");

    

    Map<String, Object> arrows = new HashMap<String, Object>(2);

 

    /*

     * TODO: look into Meta-inf staticing the resources (faster)

     * uses MetaInfStaticResourceReference

     * requires the files to be mounted under

     * /META-INF/resources in the final jar

     */

    //TODO: look at finding a way to make sure it gets redone for every
page

    PackageResourceReference down =

           new PackageResourceReference(AppBasePage.class,

                                        "includes/menu_down.gif");

    PackageResourceReference right =

               new PackageResourceReference(AppBasePage.class,

                                            "includes/menu_right.gif");

      

   arrows.put("menu_down", urlFor(down, null));

   arrows.put("menu_right",   urlFor(right, null));

 

    /* this works 

    String prefix = getRequest().getContextPath() + "/";

    arrows.put("menu_down", prefix + urlFor(down, null));

    arrows.put("menu_right", prefix + urlFor(right, null));

   */

 

    //arrow model just implements IModel to pass arrows for getObject()

    arrowModel model = new arrowModel(arrows); 

    response.renderJavaScriptReference(

      new TextTemplateResourceReference(AppBasePage.class,

 
"includes/javascript/jqueryslidemenu.js", model));

}

  

When I initially login it works great for /home,  or other
/mountedPageName pages, but if I follow a link to
/wicket/bookmarkable/full.class.name/?stuffhere  the images will not
display.  

 

It works if I prefix contextPath/ infront of the url.  But some of my
sites are behind a proxy, and I would like this to work there as well.

 

Thank you for any help,

Tom Burton

 

 


RE: TextTemplateResourceReference problem

Posted by "Burton, Tom F (DOR)" <to...@alaska.gov>.
I'm not doing anything special to renderHead so it's getting called whatever the default is. 
(I thought every page, now I'm not so sure.)


arrowModel is just a private class on the Panel that looks like this:

private class arrowModel implements IModel<Map<String, Object>>
  {
      private Map<String, Object> map;

      arrowModel(Map<String, Object> map) { this.map = map; }

      /**
       * Gets the model object.
       *
       * @return The model object
       */
      public Map<String, Object> getObject() { return map; }

      /** Sets the model object.
       * @param object The model object
       */
      public void setObject(Map<String, Object> object) { }

      /**
       * Detaches model after use. This is generally used to null out transient
       * references that can be
       * re-attached later.
       */
      public void detach() { }
  }

I should probably mention I'm using Wicket 1.5.5

Thanks,
Tom Burton

-----Original Message-----
From: Martin Grigorov [mailto:mgrigorov@apache.org] 
Sent: Wednesday, April 04, 2012 11:48 AM
To: users@wicket.apache.org
Subject: Re: TextTemplateResourceReference problem

Hi Tom,

Is ArrowModel and the TTRR recreated for for every page ? I guess the answer is YES but I need to ask.
Please create a quickstart and attach it to Jira so we can take a look.

On Wed, Apr 4, 2012 at 9:18 PM, Burton, Tom F (DOR) <to...@alaska.gov> wrote:
> Hello,
>
>  I have a component(It displays a menu common across the pages of my
> application.)
>
> All the WebPages in my application inherit from BasePage which 
> includes the menu.
>
>
>
> BasePage includes a component MainMenu, which creates a List of 
> Lists(that contain page links)
>
> The Lists of lists are then wrapped inside of jQuerySlideMenu.
>
>
>
> jQuerySlideMenu has the following method defined
>
> renderHead(IHeaderResponse response)
>
> {
>
>    super.renderHead(response);
>
>    response
>
>                .renderCSSReference(new 
> PackageResourceReference(AppBasePage.class,
>
>
> "includes/css/jqueryslidemenu.css"));
>
>    response
>
>                .renderCSSReference(new 
> PackageResourceReference(AppBasePage.class,
>
>
> "includes/css/printjqueryslidemenu.css"), "print");
>
>
>
>    Map<String, Object> arrows = new HashMap<String, Object>(2);
>
>
>
>    /*
>
>     * TODO: look into Meta-inf staticing the resources (faster)
>
>     * uses MetaInfStaticResourceReference
>
>     * requires the files to be mounted under
>
>     * /META-INF/resources in the final jar
>
>     */
>
>    //TODO: look at finding a way to make sure it gets redone for every 
> page
>
>    PackageResourceReference down =
>
>           new PackageResourceReference(AppBasePage.class,
>
>                                        "includes/menu_down.gif");
>
>    PackageResourceReference right =
>
>               new PackageResourceReference(AppBasePage.class,
>
>                                            "includes/menu_right.gif");
>
>
>
>   arrows.put("menu_down", urlFor(down, null));
>
>   arrows.put("menu_right",   urlFor(right, null));
>
>
>
>    /* this works
>
>    String prefix = getRequest().getContextPath() + "/";
>
>    arrows.put("menu_down", prefix + urlFor(down, null));
>
>    arrows.put("menu_right", prefix + urlFor(right, null));
>
>   */
>
>
>
>    //arrow model just implements IModel to pass arrows for getObject()
>
>    arrowModel model = new arrowModel(arrows);
>
>    response.renderJavaScriptReference(
>
>      new TextTemplateResourceReference(AppBasePage.class,
>
>
> "includes/javascript/jqueryslidemenu.js", model));
>
> }
>
>
>
> When I initially login it works great for /home,  or other 
> /mountedPageName pages, but if I follow a link to 
> /wicket/bookmarkable/full.class.name/?stuffhere  the images will not 
> display.
>
>
>
> It works if I prefix contextPath/ infront of the url.  But some of my 
> sites are behind a proxy, and I would like this to work there as well.
>
>
>
> Thank you for any help,
>
> Tom Burton
>
>
>
>
>



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


RE: TextTemplateResourceReference problem

Posted by "Burton, Tom F (DOR)" <to...@alaska.gov>.
Per you're instructions I've opened a ticket in JIRA.

WICKET-4487

-----Original Message-----
From: Martin Grigorov [mailto:mgrigorov@apache.org] 
Sent: Wednesday, April 04, 2012 11:48 AM
To: users@wicket.apache.org
Subject: Re: TextTemplateResourceReference problem

Hi Tom,

Is ArrowModel and the TTRR recreated for for every page ? I guess the answer is YES but I need to ask.
Please create a quickstart and attach it to Jira so we can take a look.

On Wed, Apr 4, 2012 at 9:18 PM, Burton, Tom F (DOR) <to...@alaska.gov> wrote:
> Hello,
>
>  I have a component(It displays a menu common across the pages of my
> application.)
>
> All the WebPages in my application inherit from BasePage which 
> includes the menu.
>
>
>
> BasePage includes a component MainMenu, which creates a List of 
> Lists(that contain page links)
>
> The Lists of lists are then wrapped inside of jQuerySlideMenu.
>
>
>
> jQuerySlideMenu has the following method defined
>
> renderHead(IHeaderResponse response)
>
> {
>
>    super.renderHead(response);
>
>    response
>
>                .renderCSSReference(new 
> PackageResourceReference(AppBasePage.class,
>
>
> "includes/css/jqueryslidemenu.css"));
>
>    response
>
>                .renderCSSReference(new 
> PackageResourceReference(AppBasePage.class,
>
>
> "includes/css/printjqueryslidemenu.css"), "print");
>
>
>
>    Map<String, Object> arrows = new HashMap<String, Object>(2);
>
>
>
>    /*
>
>     * TODO: look into Meta-inf staticing the resources (faster)
>
>     * uses MetaInfStaticResourceReference
>
>     * requires the files to be mounted under
>
>     * /META-INF/resources in the final jar
>
>     */
>
>    //TODO: look at finding a way to make sure it gets redone for every 
> page
>
>    PackageResourceReference down =
>
>           new PackageResourceReference(AppBasePage.class,
>
>                                        "includes/menu_down.gif");
>
>    PackageResourceReference right =
>
>               new PackageResourceReference(AppBasePage.class,
>
>                                            "includes/menu_right.gif");
>
>
>
>   arrows.put("menu_down", urlFor(down, null));
>
>   arrows.put("menu_right",   urlFor(right, null));
>
>
>
>    /* this works
>
>    String prefix = getRequest().getContextPath() + "/";
>
>    arrows.put("menu_down", prefix + urlFor(down, null));
>
>    arrows.put("menu_right", prefix + urlFor(right, null));
>
>   */
>
>
>
>    //arrow model just implements IModel to pass arrows for getObject()
>
>    arrowModel model = new arrowModel(arrows);
>
>    response.renderJavaScriptReference(
>
>      new TextTemplateResourceReference(AppBasePage.class,
>
>
> "includes/javascript/jqueryslidemenu.js", model));
>
> }
>
>
>
> When I initially login it works great for /home,  or other 
> /mountedPageName pages, but if I follow a link to 
> /wicket/bookmarkable/full.class.name/?stuffhere  the images will not 
> display.
>
>
>
> It works if I prefix contextPath/ infront of the url.  But some of my 
> sites are behind a proxy, and I would like this to work there as well.
>
>
>
> Thank you for any help,
>
> Tom Burton
>
>
>
>
>



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


Re: TextTemplateResourceReference problem

Posted by Martin Grigorov <mg...@apache.org>.
Hi Tom,

Is ArrowModel and the TTRR recreated for for every page ? I guess the
answer is YES but I need to ask.
Please create a quickstart and attach it to Jira so we can take a look.

On Wed, Apr 4, 2012 at 9:18 PM, Burton, Tom F (DOR)
<to...@alaska.gov> wrote:
> Hello,
>
>  I have a component(It displays a menu common across the pages of my
> application.)
>
> All the WebPages in my application inherit from BasePage which includes
> the menu.
>
>
>
> BasePage includes a component MainMenu, which creates a List of
> Lists(that contain page links)
>
> The Lists of lists are then wrapped inside of jQuerySlideMenu.
>
>
>
> jQuerySlideMenu has the following method defined
>
> renderHead(IHeaderResponse response)
>
> {
>
>    super.renderHead(response);
>
>    response
>
>                .renderCSSReference(new
> PackageResourceReference(AppBasePage.class,
>
>
> "includes/css/jqueryslidemenu.css"));
>
>    response
>
>                .renderCSSReference(new
> PackageResourceReference(AppBasePage.class,
>
>
> "includes/css/printjqueryslidemenu.css"), "print");
>
>
>
>    Map<String, Object> arrows = new HashMap<String, Object>(2);
>
>
>
>    /*
>
>     * TODO: look into Meta-inf staticing the resources (faster)
>
>     * uses MetaInfStaticResourceReference
>
>     * requires the files to be mounted under
>
>     * /META-INF/resources in the final jar
>
>     */
>
>    //TODO: look at finding a way to make sure it gets redone for every
> page
>
>    PackageResourceReference down =
>
>           new PackageResourceReference(AppBasePage.class,
>
>                                        "includes/menu_down.gif");
>
>    PackageResourceReference right =
>
>               new PackageResourceReference(AppBasePage.class,
>
>                                            "includes/menu_right.gif");
>
>
>
>   arrows.put("menu_down", urlFor(down, null));
>
>   arrows.put("menu_right",   urlFor(right, null));
>
>
>
>    /* this works
>
>    String prefix = getRequest().getContextPath() + "/";
>
>    arrows.put("menu_down", prefix + urlFor(down, null));
>
>    arrows.put("menu_right", prefix + urlFor(right, null));
>
>   */
>
>
>
>    //arrow model just implements IModel to pass arrows for getObject()
>
>    arrowModel model = new arrowModel(arrows);
>
>    response.renderJavaScriptReference(
>
>      new TextTemplateResourceReference(AppBasePage.class,
>
>
> "includes/javascript/jqueryslidemenu.js", model));
>
> }
>
>
>
> When I initially login it works great for /home,  or other
> /mountedPageName pages, but if I follow a link to
> /wicket/bookmarkable/full.class.name/?stuffhere  the images will not
> display.
>
>
>
> It works if I prefix contextPath/ infront of the url.  But some of my
> sites are behind a proxy, and I would like this to work there as well.
>
>
>
> Thank you for any help,
>
> Tom Burton
>
>
>
>
>



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

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