package fr.openwide.core.wicket.more.markup.html.template.flash.zeroclipboard; 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.JavaScriptReferenceHeaderItem; import org.apache.wicket.markup.head.OnDomReadyHeaderItem; import org.apache.wicket.util.collections.MiniMap; import org.apache.wicket.util.template.PackageTextTemplate; import org.apache.wicket.util.template.TextTemplate; import fr.openwide.core.wicket.more.link.descriptor.IResourceLinkDescriptor; import fr.openwide.core.wicket.more.link.descriptor.builder.LinkDescriptorBuilder; public class ZeroClipboardBehavior extends Behavior { private static final long serialVersionUID = 2935399893580511345L; private static final String ZERO_CLIPBOARD_LINK_JS = "ZeroClipboardLink.js"; private static final String ZERO_CLIPBOARD_FLASH_URL = "zeroClipboardFlashUrl"; public static IResourceLinkDescriptor linkZeroClipboardFlash() { return LinkDescriptorBuilder.start() .resource(ZeroClipboardFlashResourceReference.get()); } @Override public void renderHead(Component component, IHeaderResponse response) { response.render(JavaScriptReferenceHeaderItem.forReference(ZeroClipboardJavascriptResourceReference.get())); response.render(OnDomReadyHeaderItem.forScript(getTemplate().asString(getVariables()))); } private static TextTemplate getTemplate() { return new PackageTextTemplate(ZeroClipboardBehavior.class, ZERO_CLIPBOARD_LINK_JS); } private static Map<String, Object> getVariables() { Map<String, Object> variables = new MiniMap<String, Object>(1); variables.put(ZERO_CLIPBOARD_FLASH_URL, ZeroClipboardBehavior.linkZeroClipboardFlash().fullUrl()); return variables; } }