Furthermore, now that i understand more about this, i tried again my
original version:

cResponse.getHeaderResponse().renderCSSReference(new
ResourceReference(MyPage.class, "style.css", getLocale(), getStyle()));

and it also works as expected.

Perhaps i was not expecting it to work because the generated HTML
referenced a file i didn't have, or who knows why.

Thanks again.

German


It seems that German Morales wrote:
> Hi again,
>
> With your solution, the generated HTML now looks this way:
>
> <link rel="stylesheet" type="text/css"
> href="resources/path.to.mypage.MyPage/style_mystyle_mylocale.css" />
>
> i don't have style_mystyle_mylocale.css, but only style_mystyle.css
>
> But it works!
>
> So it seems that wicket later (when the browser asks for the css) makes
> the corresponding look up.
>
> Thanks a lot!
>
> German
>
> PS: just for the record (if someone reads this later), there was a easy
> typo in the code below. It should be Application.get() and not
> Application.bind().
>
> It seems that Johan Compagner wrote:
>> no as i said before
>> you have to create the resourcereference with the locale and the style.
>> Those are not automatically picked up from the session. If you don't
>> give
>> them in the constructor
>> then both are just null
>>
>> What you could do is this:
>>
>> ResourceReference reference = new ResourceReference(MyPage.class,
>> "style.css",
>> locale,style);
>> reference.bind(Application.bind());
>> cResponse.getHeaderResponse().renderCSSReference(reference);
>> johan
>>
>>
>>
>> On Nov 9, 2007 1:55 PM, German Morales <[EMAIL PROTECTED]>
>> wrote:
>>
>>> version 1.3.0-beta4.
>>>
>>> I insist that the problem must be something different, perhaps in the
>>> way
>>> i pretend it to work. I know about the ResourceStreamLocator, and as i
>>> tell it works perfectly for the HTML. The difference is that from my
>>> class
>>> the framework looks automatically for the corresponding HTML, but how
>>> should it work for the CSS?
>>>
>>> Should i declare it in the code?
>>>
>>>   // on renderHead
>>>   cResponse.getHeaderResponse().renderCSSReference(new
>>> ResourceReference(MyPage.class, "style.css"));
>>>
>>> or how?
>>>
>>> What i'm doing is very simple... i'm forcing (for testing) a call to
>>> Session.setStyle("whatever"), then i have MyPage.html and
>>> MyPage_whatever.html (which works fine) and then style.css and
>>> style_whatever.css (which i expect to be used thanks to the code
>>> above).
>>>
>>> But when i see the generated html, it comes with the content of
>>> MyPage_whatever.html, but the header is generated this way:
>>>
>>> <link rel="stylesheet" type="text/css"
>>> href="resources/path.to.mypage.MyPage/style.css" />
>>>
>>> that is, not pointint to style_whatever.css as i expect.
>>>
>>> Thanks for the support,
>>>
>>> German
>>>
>>>
>>> It seems that Johan Compagner wrote:
>>> > it should fallback just fine..
>>> > what version of wicket are you using?
>>> >
>>> > Because in the ResourceStreamLocator we do now this:
>>> >
>>> > public IResourceStream locate(final Class clazz, String path, final
>>> String
>>> > style,
>>> >    final Locale locale, final String extension)
>>> >  {
>>> >   // Try the various combinations of style, locale and extension to
>>> find
>>> >   // the resource.
>>> >   ResourceNameIterator iter = new ResourceNameIterator(path, style,
>>> > locale,
>>> > extension);
>>> >   while (iter.hasNext())
>>> >   {
>>> >    String newPath = (String)iter.next();
>>> >    IResourceStream stream = locate(clazz, newPath);
>>> >    if (stream != null)
>>> >    {
>>> >     stream.setLocale(iter.getLocale());
>>> >     return stream;
>>> >    }
>>> >   }
>>> >   return null;
>>> >  }
>>> >
>>> > johan
>>> >
>>> >
>>> >
>>> > On Nov 9, 2007 1:11 PM, German Morales <[EMAIL PROTECTED]>
>>> > wrote:
>>> >
>>> >> Hi again,
>>> >>
>>> >> Also, the problem is not giving the parameters to the
>>> >> ResourceReferences,
>>> >> if i call the full constructor then the ResourceReference works, but
>>> the
>>> >> problem is that it does not make a look up to see what's available,
>>> it
>>> >> just goes for the full thing. So, if i call the constructor with the
>>> >> session locale and style, what it does is search for the file
>>> >> style_mystyle_mylocale.css. This is not my intention, what i want it
>>> >> that
>>> >> that the framework searches for the style_mystyle_mylocale.css, then
>>> if
>>> >> not found fall back to style_mystyle.css, style_mylocale.css,
>>> style.css
>>> >> and so on (i'm not sure of the exact order of look up). So,
>>> modifying
>>> >> the
>>> >> constructor or passing the full parameters is not the solution, i
>>> think.
>>> >>
>>> >>
>>> >> Regards,
>>> >>
>>> >> German
>>> >>
>>> >> It seems that Johan Compagner wrote:
>>> >>  > if you are creating your own ResourceReferences then you have to
>>> give
>>> >> the
>>> >> > style and locale to them
>>> >> > We could enhance the constructors that it does
>>> >> Session.get().getLocale()
>>> >> > and
>>> >> > Session.get().getStyle()
>>> >> > if you dont give them..
>>> >> >
>>> >> > johan
>>> >> >
>>> >> >
>>> >> >
>>> >> > On Nov 9, 2007 10:27 AM, German Morales
>>> <[EMAIL PROTECTED]>
>>> >> > wrote:
>>> >> >
>>> >> >> Hi,
>>> >> >>
>>> >> >> I was thinking (as a last hope) that if this works for the HTMLs,
>>> i
>>> >> >> could
>>> >> >> provide different HTMLs that point internally to different CSSs,
>>> and
>>> >> it
>>> >> >> should work. But that would be duplicating the HTML just to have
>>> the
>>> >> CSS
>>> >> >> changed, and then it's not a good idea.
>>> >> >>
>>> >> >> Perhaps someone can tell me an official way to have localized and
>>> >> styled
>>> >> >> CSSs, the wicket way?
>>> >> >>
>>> >> >> Thanks again,
>>> >> >>
>>> >> >> German
>>> >> >>
>>> >> >> It seems that German Morales wrote:
>>> >> >> > Hi,
>>> >> >> >
>>> >> >> > I use it inside a page.
>>> >> >> >
>>> >> >> > I've tried...
>>> >> >> >
>>> >> >> >    // inside the page constructor
>>> >> >> >    add(HeaderContributor.forCss(new
>>> ResourceReference(MyPage.class
>>> ,
>>> >> >> > "style.css")));
>>> >> >> >
>>> >> >> > and
>>> >> >> >
>>> >> >> >    // inside renderHead
>>> >> >> >    cResponse.getHeaderResponse().renderCSSReference(new
>>> >> >> > ResourceReference(MyPage.class, "style.css"));
>>> >> >> >
>>> >> >> >
>>> >> >> > And I don't want to set the style and locale explicitely. What
>>> i
>>> >> want
>>> >> >> is
>>> >> >> > to deliver the application to a customer, and, if he wants, he
>>> adds
>>> >> >> the
>>> >> >> > customized page for a locale or style by itself (he could set
>>> the
>>> >> >> style
>>> >> >> > with a parameter or whatever). And as far as i understand the
>>> >> wicket
>>> >> >> > approach, that's how it should work automatically. In fact it
>>> works
>>> >> >> > perfecly when i do it for the html of the same page. The
>>> difference
>>> >> is
>>> >> >> > that the html is handled in other way (the framework does it)
>>> and
>>> >> when
>>> >> >> i
>>> >> >> > try to do it for the CSS of the page i do it (and it doesn't
>>> work).
>>> >> So
>>> >> >> > there must be something i'm not doing properly.
>>> >> >> >
>>> >> >> > Or, how should be the way to provide styled CSSs, there is
>>> another
>>> >> >> > aproach?
>>> >> >> >
>>> >> >> > thanks and bye,
>>> >> >> >
>>> >> >> > German
>>> >> >> >
>>> >> >> > It seems that Eelco Hillenius wrote:
>>> >> >> >>> The problem is that the file is there... just that it doesn't
>>> >> seem
>>> >> >> to
>>> >> >> >>> be
>>> >> >> >>> looking for it.
>>> >> >> >>>
>>> >> >> >>> If i force the full constructor:
>>> >> >> >>>
>>> >> >> >>> new ResourceReference(MyPage.class, "style.css", getLocale(),
>>> >> >> >>> getStyle())
>>> >> >> >>>
>>> >> >> >>> all works, so the file is correcly found and the name is
>>> correct.
>>> >> >> >>>
>>> >> >> >>> The problem is when i don't set the locale and style
>>> explicitely
>>> >> (as
>>> >> >> it
>>> >> >> >>> is
>>> >> >> >>> supposed to be done):
>>> >> >> >>>
>>> >> >> >>> new ResourceReference(MyPage.class, "style.css")
>>> >> >> >>>
>>> >> >> >>> then it doesn't find the file. Actually i think it doesn't
>>> even
>>> >> try
>>> >> >> to
>>> >> >> >>> find it, since as i mention i put a breakpoint in
>>> >> >> >>> ResourceReference#setStyle() and nobody is calling it. So
>>> later
>>> >> >> >>> internal
>>> >> >> >>> code to load the resource uses style and locale with null
>>> values.
>>> >> >> >>
>>> >> >> >> How do you use the resource reference? I think the class was
>>> >> designed
>>> >> >> >> in such a way that the components that use it (Image for
>>> instance)
>>> >> >> are
>>> >> >> >> responsible for setting the appropriate locale/ style 'just in
>>> >> time',
>>> >> >> >> so that switching locales etc works.
>>> >> >> >>
>>> >> >> >> Eelco
>>> >> >> >>
>>> >> >> >>
>>> >> ---------------------------------------------------------------------
>>> >> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> >> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
>>> >> >> >>
>>> >> >> >>
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> ---------------------------------------------------------------------
>>> >> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> >> >> > For additional commands, e-mail: [EMAIL PROTECTED]
>>> >> >> >
>>> >> >> >
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> ---------------------------------------------------------------------
>>> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
>>> >> >>
>>> >> >>
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>>> >>
>>> >>
>>> >
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to