package org.nocket.component.table;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
import org.nocket.component.table.columns.AjaxSubmitActionIconColumn;
import org.nocket.gen.page.element.synchronizer.TableButtonCallback;
public class GeneratedAjaxSubmitActionIconColumn<T> extends AjaxSubmitActionIconColumn<T> {
protected final TableButtonCallback tableButton;
protected final Form<?> form;
protected transient Component headerComponent;
public GeneratedAjaxSubmitActionIconColumn(IModel<String> headerLabel, Form form,
String enabledIconPropertyKey, String disabledIconPropertyKey, TableButtonCallback tableButton) {
super(headerLabel, form, enabledIconPropertyKey, disabledIconPropertyKey);
this.tableButton = tableButton;
this.form = form;
}
@Override
protected void onSubmit(IModel<T> model, AjaxRequestTarget target) {
tableButton.onSubmit(target, model);
tableButton.updateAllForms(target);
}
@Override
protected void onError(IModel<T> model, AjaxRequestTarget target) {
tableButton.updateAllForms(target);
}
@Override
protected boolean isEnabled(IModel<T> model) {
return tableButton.isEnabled(model.getObject());
}
@Override
protected boolean isVisible(IModel<T> model) {
return true;
}
@Override
public boolean isForced(IModel<T> model) {
return tableButton.isForced(model.getObject());
}
@Override
protected String getTooltip(IModel<T> model) {
return tableButton.getTooltip(model.getObject());
}
@Override
protected String getIconResourceName(IModel<T> model, Component c) {
return tableButton.getIconResourceName(model.getObject());
}
@Override
public Component getHeader(String componentId) {
if (headerComponent == null) {
headerComponent = super.getHeader(componentId);
}
return headerComponent;
}
}