package fr.openwide.core.wicket.more.markup.html.template.flash.zeroclipboard; import org.apache.wicket.AttributeModifier; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; public class ZeroClipboardDataAttributeModifier extends Behavior { private static final long serialVersionUID = 2564881748188747597L; public static final String DATA_CLIPBOARD = "data-clipboard"; public static final String DATA_CLIPBOARD_TEXT = "data-clipboard-text"; private IModel<Boolean> dataClipboardModel; private IModel<String> dataClipboardTextModel; public ZeroClipboardDataAttributeModifier(IModel<String> dataClipboardTextModel) { this(Model.of(true), dataClipboardTextModel); } public ZeroClipboardDataAttributeModifier(IModel<Boolean> dataClipboardModel, IModel<String> dataClipboardTextModel) { this.dataClipboardModel = dataClipboardModel; this.dataClipboardTextModel = dataClipboardTextModel; } @Override public void onConfigure(Component component) { super.onConfigure(component); component.add(new AttributeModifier(DATA_CLIPBOARD, dataClipboardModel)); component.add(new AttributeModifier(DATA_CLIPBOARD_TEXT, dataClipboardTextModel)); } @Override public void detach(Component component) { if (dataClipboardModel != null) { dataClipboardModel.detach(); } if (dataClipboardTextModel != null) { dataClipboardTextModel.detach(); } super.detach(component); } }