In case anyone needs to do the same thing, I managed to do it the following
way:
[i know it's kinda sucky... there's probably a better way to do this, but at
least i get what i need]
class MyAjaxFallbackDefaultDataTable extends DataTable {
private static final long serialVersionUID = 1L;
public MyAjaxFallbackDefaultDataTable(String id, final
List<AbstractColumn> columns,
ISortableDataProvider dataProvider, int rowsPerPage) {
this(id, (IColumn[])columns.toArray(new IColumn[columns.size()]),
dataProvider, rowsPerPage);
}
public MyAjaxFallbackDefaultDataTable(String id, final IColumn[] columns,
ISortableDataProvider dataProvider, int rowsPerPage)
{
super(id, columns, dataProvider, rowsPerPage);
setOutputMarkupId(true);
setVersioned(false);
final IAjaxCallDecorator ajaxCallDecorator = new IAjaxCallDecorator() {
private static final long serialVersionUID = -4668216748325275868L;
@Override
public CharSequence decorateOnFailureScript(CharSequence script) {
return script + "sweetTitles.tipOut(); sweetTitles.init();";
}
@Override
public CharSequence decorateOnSuccessScript(
CharSequence script) {
return script + "sweetTitles.tipOut(); sweetTitles.init();";
}
@Override
public CharSequence decorateScript(CharSequence script) {
return script + "sweetTitles.tipOut(); sweetTitles.init();";
}
};
AjaxNavigationToolbar ant = new AjaxNavigationToolbar(this) {
private static final long serialVersionUID = -1343468065894409925L;
protected PagingNavigator newPagingNavigator(String navigatorId, final
DataTable table) {
return new AjaxPagingNavigator(navigatorId, table) {
private static final long serialVersionUID = 1L;
@Override
protected void onAjaxEvent(AjaxRequestTarget target) {
target.addComponent(table);
}
@Override
protected Link newPagingNavigationLink(String id, IPageable pageable,
int pageNumber) {
AjaxPagingNavigationLink link = new AjaxPagingNavigationLink(id,
pageable, pageNumber);
link.add(new AjaxPagingNavigationBehavior(link, pageable, "onclick"){
private static final long serialVersionUID = 4139026546933752257L;
@Override
protected IAjaxCallDecorator getAjaxCallDecorator() {
return ajaxCallDecorator;
}
});
return link;
}
@Override
protected Link newPagingNavigationIncrementLink(String id, IPageable
pageable, int increment) {
AjaxPagingNavigationIncrementLink link = new
AjaxPagingNavigationIncrementLink(id, pageable, increment);
link.add(new AjaxPagingNavigationBehavior(link, pageable, "onclick"){
private static final long serialVersionUID = 4139026546933752257L;
@Override
protected IAjaxCallDecorator getAjaxCallDecorator() {
return ajaxCallDecorator;
}
});
return link;
}
@Override
protected PagingNavigation newNavigation(final IPageable pageable,
final IPagingLabelProvider labelProvider) {
return new AjaxPagingNavigation("navigation", pageable,
labelProvider) {
private static final long serialVersionUID = 1456846335814294449L;
protected PagingNavigationLink newPagingNavigationLink(String id,
IPageable pageable, int pageIndex) {
AjaxPagingNavigationLink link = new AjaxPagingNavigationLink(id,
pageable, pageIndex);
link.add(new AjaxPagingNavigationBehavior(link, pageable,
"onclick"){
private static final long serialVersionUID = 4139026546933752257L;
@Override
protected IAjaxCallDecorator getAjaxCallDecorator() {
return ajaxCallDecorator;
}
});
return link;
}
};
}
};
}
};
addTopToolbar(ant);
addTopToolbar(new AjaxFallbackHeadersToolbar(this, dataProvider));
addBottomToolbar(new NoRecordsToolbar(this));
}
protected Item newRowItem(String id, int index, IModel model) {
return new OddEvenItem(id, index, model);
}
}
----- Original Message -----
From: Cristi Manole
To: [email protected]
Sent: Tuesday, October 23, 2007 11:23 PM
Subject: Javascript call on AjaxFallbackDefaultDataTable
Hello,
I am wondering how I could make a javascript call each time the
AjaxFallbackDefaultDataTable is refreshed.
Thanks in advance.