Yes, if you need to reuse it then put it in a Behavior!

Martin Grigorov
Freelancer, available for hire!
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Tue, Mar 17, 2015 at 12:38 PM, David Kaufman <david.kauf...@gmx.de>
wrote:

> Hi Martin,
>
> is it also eligible to put the body inside a behavior, i.e.:
>
>  protected void addJavaScriptFile() {
>         add( new Behavior() {
>             @Override
>             public void renderHead( final Component component, final
> IHeaderResponse response ) {
>                 super.renderHead( component, response );
>                 PackageTextTemplate template = new
> PackageTextTemplate(ClassName.class,"filename.js");
>                 Map<String, Object> variables = ....
>                 response.render(OnDomReadyHeaderItem.
> forScript(template.asString(variables)));
>
> The problem I'm facing is that the function addJavaScriptFile is accessable
> from subclasses which either call the function or not, i.e. only in a few
> cases the header should be actually added.
>
> Thanks,
> David
>
>
> 2015-03-16 15:16 GMT+01:00 Martin Grigorov <mgrigo...@apache.org>:
>
> > Hi,
> >
> > #renderHead(IHeaderResponse response) {
> >   super.renderHead(response);
> >
> >   PackageTextTemplate template = new PackageTextTemplate(ClassName.class,
> > "filename.js");
> >   Map<String, Object> variables = ....
> >   ...
> >
> >
> >
> response.render(OnDomReadyHeaderItem.forScript(template.asString(variables)));
> > }
> >
> > Martin Grigorov
> > Freelancer, available for hire!
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Mon, Mar 16, 2015 at 2:14 PM, David Kaufman <david.kauf...@gmx.de>
> > wrote:
> >
> > > Hello,
> > >
> > > I'm currently migrating a code snippet from version 1.4 to version 6:
> > >
> > >
> > > add( TextTemplateHeaderContributor.forJavaScript( ClassName.class,
> > >                 "filename.js", new LoadableDetachableModel<Map<String,
> > > Object>>() {
> > >                     @Override
> > >                     protected Map<String, Object> load() {
> > >                         final Map<String, Object> result = new
> > > HashMap<String, Object>();
> > >                         result.put( "id", "static string ...." );
> > >                         // more parameters here
> > >                         return result;
> > >                     }
> > >                 } ) );
> > >
> > > The migration documentation (
> > >
> > >
> >
> https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+1.5#MigrationtoWicket1.5-RemovedTextTemplateHeaderContributor/StringHeaderContributor
> > > ) suggests using a custom template, e.g.
> > > private TextTemplate template = CssTemplate(new MyTextTemplate());
> > >
> > > Unfortunately, I can't find a TextTemplate which mimics the behavior in
> > my
> > > 1.4 code snippet. I found a JavaScriptTemplate, but I was unable to
> find
> > a
> > > way to use it, as it needs a TextTemplate instance in its constructor.
> > >
> > > Thanks,
> > > David
> > >
> >
>

Reply via email to