package org.nocket.gen.page.element;
import gengui.domain.DomainObjectReference;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.model.IModel;
import org.jsoup.nodes.Element;
import org.nocket.gen.domain.element.MultivalueButtonElement;
import org.nocket.gen.domain.element.MultivalueColumnElement;
import org.nocket.gen.domain.element.MultivaluePropertyElement;
import org.nocket.gen.page.DMDWebGenPageContext;
import org.nocket.gen.page.element.synchronizer.GeneratedTableModel;
import org.nocket.gen.page.element.synchronizer.TableButtonCallback;
import org.nocket.gen.page.element.synchronizer.TableDownloadCallback;
import org.nocket.gen.page.visitor.PageElementVisitorI;
public class TableElement extends AbstractDomainPageElement<List<?>> {
private List<TableButtonCallback> buttonCallbacks;
private List<TableDownloadCallback> downloadCallbacks;
public TableElement(DMDWebGenPageContext context, Element element) {
super(context, element);
this.buttonCallbacks = new ArrayList<TableButtonCallback>();
this.downloadCallbacks = new ArrayList<TableDownloadCallback>();
for (MultivalueButtonElement<DomainObjectReference> buttonElement : getDomainElement().getButtonElements()) {
buttonCallbacks.add(new TableButtonCallback(getContext(), buttonElement));
}
for (MultivalueColumnElement<DomainObjectReference> downloadElement : getDomainElement().getDownloadColumnElements()) {
downloadCallbacks.add(new TableDownloadCallback(getContext(), downloadElement));
}
}
@Override
public MultivaluePropertyElement<DomainObjectReference> getDomainElement() {
return (MultivaluePropertyElement<DomainObjectReference>) super.getDomainElement();
}
public List<TableButtonCallback> getButtonCallbacks() {
return buttonCallbacks;
}
public List<TableDownloadCallback> getDownloadCallbacks() {
return downloadCallbacks;
}
@Override
public IModel<List<?>> innerGetModel() {
return new GeneratedTableModel(this);
}
@Override
public void accept(PageElementVisitorI visitor) {
visitor.visitTable(this);
}
}