package nl.topicus.onderwijs.dashboard.web.components.table;
import nl.topicus.onderwijs.dashboard.web.WicketApplication;
import org.apache.wicket.markup.html.IHeaderResponse;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.odlabs.wiquery.core.IWiQueryPlugin;
import org.odlabs.wiquery.core.javascript.JsQuery;
import org.odlabs.wiquery.core.javascript.JsStatement;
import org.odlabs.wiquery.core.options.Options;
import org.odlabs.wiquery.ui.commons.WiQueryUIPlugin;
import org.odlabs.wiquery.ui.widget.WidgetJavaScriptResourceReference;
@WiQueryUIPlugin
public class StackedTablesPanel extends Panel implements IWiQueryPlugin {
private static final long serialVersionUID = 1L;
private RepeatingView tables;
public StackedTablesPanel(String id) {
super(id);
tables = new RepeatingView("tables");
add(tables);
}
public String nextTableId() {
return tables.newChildId();
}
public void addTable(Panel table) {
tables.add(table);
}
@Override
public void renderHead(IHeaderResponse response) {
response.renderJavaScriptReference(WidgetJavaScriptResourceReference
.get());
response.renderJavaScriptReference(new JavaScriptResourceReference(
StackedTablesPanel.class, "jquery.ui.dashboardstackedtables.js"));
}
@Override
public JsStatement statement() {
Options options = new Options();
options.put("secondsBetweenSwitch", WicketApplication.get()
.isDevelopment() ? 30 : 60);
JsQuery jsq = new JsQuery(this);
return jsq.$().chain("dashboardStackedTables",
options.getJavaScriptOptions());
}
}