这是一个调整DataGrid表格列默认操作功能的实例:它将默认单击表格头打开表格列选择的功能关闭,并调整为表格列排序的功能。
public class DataGridListener extends GenericObjectListener<DataGrid> {
public boolean beforeInit(DataGrid grid) throws Exception {
return true;
}
public void onInit(DataGrid grid) throws Exception {
List<Column> columns = grid.getColumns();
for (Column column:columns){
if (column instanceof ColumnGroup){
List<Column> subColumns = ((ColumnGroup) column).getColumns();
for (Column subColumn:subColumns){
if (supportSort(subColumn)) attachSortEvent((DataColumn)subColumn);
}
}else{
if (supportSort(column)) attachSortEvent((DataColumn)column);
}
}
}
private void attachSortEvent(DataColumn column){
List<ClientEvent> listeners = column.getClientEventListeners("onHeaderClick");
if (listeners!=null && listeners.size()>=1){
//do nothing
}else{
String script = "var sortState = self.get('sortState');" +
"if (sortState=='asc'){"+
"self.get('grid').sort(self, true);"+
"}else{"+
"self.get('grid').sort(self, false);"+
"};";
column.addClientEventListener("onHeaderClick", new DefaultClientEvent(script));
}
}
private boolean supportSort(Column column){
return (column instanceof DataColumn) ;
}
}