{
filesCellTable_.addColumnSortHandler(new Handler() {
@Override
public void onColumnSort(ColumnSortEvent event)
{
ColumnSortList sortList = event.getColumnSortList();
// insert the default initial sort order for size and modified
if (!applyingProgrammaticSort_)
{
if (event.getColumn().equals(sizeColumn_) &&
forceSizeSortDescending)
{
forceSizeSortDescending = false;
forceModifiedSortDescending = true;
sortList.insert(0,
new com.google.gwt.user.cellview.client.ColumnSortList.ColumnSortInfo(event.getColumn(), false));
}
else if (event.getColumn().equals(modifiedColumn_) &&
forceModifiedSortDescending)
{
forceModifiedSortDescending = false;
forceSizeSortDescending = true;
sortList.insert(0,
new com.google.gwt.user.cellview.client.ColumnSortList.ColumnSortInfo(event.getColumn(), false));
}
else
{
forceModifiedSortDescending = true;
forceSizeSortDescending = true;
}
}
// record sort order and fire event to observer
JsArray<ColumnSortInfo> sortOrder = newSortOrderArray();
for (int i=0; i<sortList.size(); i++)
{
// match the column index
com.google.gwt.user.cellview.client.ColumnSortList.ColumnSortInfo sortInfo = sortList.get(i);
Object column = sortInfo.getColumn();
for (int c=0; c<filesCellTable_.getColumnCount(); c++)
{
if (filesCellTable_.getColumn(c).equals(column))