package de.alpharogroup.js.behaviors.simple.alert; import java.util.HashMap; import java.util.Map; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.OnLoadHeaderItem; import org.apache.wicket.util.template.PackageTextTemplate; import org.apache.wicket.util.template.TextTemplate; public class WicketAlertJsBehavior extends Behavior { private static final long serialVersionUID = 1L; private final TextTemplate wicketAlertTemplate = new PackageTextTemplate( WicketAlertJsBehavior.class, "wicket-alert.js"); private Component component; @Override public void bind(final Component component) { super.bind(component); this.component = component; this.component.setOutputMarkupId(true); } protected String generateJS(final TextTemplate textTemplate) { final Map<String, Object> variables = new HashMap<String, Object>(); variables.put("message", "Hello from wicket behavior."); textTemplate.interpolate(variables); return textTemplate.asString(); } /** * Replace the created map with the variables in the method * {@link WicketAlertJsBehavior#generateJS(TextTemplate)} with in the js-template * 'wicket-alert.js'. */ @Override public void renderHead(Component c, final IHeaderResponse response) { response.render(OnLoadHeaderItem.forScript(generateJS(wicketAlertTemplate))); } }