package fr.openwide.core.wicket.more.markup.repeater.table.builder.action.factory;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.IModel;
import fr.openwide.core.wicket.more.markup.html.action.IOneParameterAction;
import fr.openwide.core.wicket.more.markup.html.factory.IOneParameterComponentFactory;
public class ActionColumnActionFactory<T> implements IOneParameterComponentFactory<Link<T>, IModel<T>> {
private static final long serialVersionUID = 1L;
private final IOneParameterAction<? super IModel<T>> action;
public ActionColumnActionFactory(IOneParameterAction<? super IModel<T>> action) {
super();
this.action = action;
}
@Override
public Link<T> create(String wicketId, final IModel<T> parameter) {
return new Link<T>(wicketId, parameter) {
private static final long serialVersionUID = 1L;
@Override
public void onClick() {
action.execute(parameter);
}
};
}
@Override
public void detach() {
action.detach();
}
}