288 |
288 |
}
|
289 |
289 |
|
290 |
290 |
};
|
291 |
|
celltable.addColumn(nameColumn, nameHeader = new SortableHeader("Name"));
|
|
291 |
celltable.addColumn(nameColumn, nameHeader = new SortableHeader("Name", "name"));
|
292 |
292 |
allHeaders.add(nameHeader);
|
293 |
|
nameHeader.setUpdater(new FileValueUpdater(nameHeader, "name"));
|
|
293 |
nameHeader.setUpdater(new FileValueUpdater(nameHeader));
|
|
294 |
nameHeader.setSorted(true);
|
|
295 |
nameHeader.setReverseSort(true);
|
294 |
296 |
|
295 |
297 |
celltable.redrawHeaders();
|
296 |
298 |
|
297 |
299 |
Column<File,String> aColumn = new Column<File,String>(new TextCell()) {
|
298 |
300 |
@Override
|
299 |
301 |
public String getValue(File object) {
|
300 |
|
// TODO Auto-generated method stub
|
301 |
302 |
return object.getSizeAsString();
|
302 |
303 |
}
|
303 |
304 |
};
|
304 |
|
SortableHeader aheader = new SortableHeader("Size");
|
|
305 |
SortableHeader aheader = new SortableHeader("Size", "size");
|
305 |
306 |
celltable.addColumn(aColumn, aheader);
|
306 |
307 |
allHeaders.add(aheader);
|
307 |
|
aheader.setUpdater(new FileValueUpdater(aheader, "size"));
|
|
308 |
aheader.setUpdater(new FileValueUpdater(aheader));
|
308 |
309 |
|
309 |
310 |
aColumn = new Column<File,String>(new TextCell()) {
|
310 |
311 |
@Override
|
... | ... | |
312 |
313 |
return object.getLastModified() != null ? formatter.format(object.getLastModified()) : "";
|
313 |
314 |
}
|
314 |
315 |
};
|
315 |
|
aheader = new SortableHeader("Last Modified");
|
|
316 |
aheader = new SortableHeader("Last Modified", "date");
|
316 |
317 |
celltable.addColumn(aColumn, aheader);
|
317 |
318 |
allHeaders.add(aheader);
|
318 |
|
aheader.setUpdater(new FileValueUpdater(aheader, "date"));
|
|
319 |
aheader.setUpdater(new FileValueUpdater(aheader));
|
319 |
320 |
|
320 |
321 |
provider.addDataDisplay(celltable);
|
321 |
322 |
|
... | ... | |
470 |
471 |
files.add(fres);
|
471 |
472 |
}
|
472 |
473 |
|
473 |
|
Collections.sort(files, new Comparator<File>() {
|
474 |
|
|
475 |
|
@Override
|
476 |
|
public int compare(File arg0, File arg1) {
|
477 |
|
return arg0.getName().compareTo(arg1.getName());
|
478 |
|
}
|
479 |
|
|
480 |
|
});
|
481 |
474 |
folderFileCount = files.size();
|
482 |
475 |
|
483 |
|
nameHeader.setSorted(true);
|
484 |
|
nameHeader.toggleReverseSort();
|
485 |
|
for (SortableHeader otherHeader : allHeaders) {
|
486 |
|
if (otherHeader != nameHeader) {
|
487 |
|
otherHeader.setSorted(false);
|
488 |
|
otherHeader.setReverseSort(true);
|
489 |
|
}
|
490 |
|
}
|
491 |
|
|
|
476 |
for (SortableHeader header : allHeaders) {
|
|
477 |
if (header.isSorted())
|
|
478 |
sortFiles(header.getProperty(), header.getReverseSort());
|
|
479 |
}
|
|
480 |
|
492 |
481 |
List<File> previousSelection = getSelectedFiles(); //Keep the previous selection
|
493 |
482 |
|
494 |
483 |
provider.getList().clear();
|
... | ... | |
584 |
573 |
}
|
585 |
574 |
|
586 |
575 |
final class FileValueUpdater implements ValueUpdater<String>{
|
587 |
|
private String property;
|
588 |
576 |
private SortableHeader header;
|
589 |
577 |
/**
|
590 |
578 |
*
|
591 |
579 |
*/
|
592 |
|
public FileValueUpdater(SortableHeader header,String property) {
|
593 |
|
this.property=property;
|
|
580 |
public FileValueUpdater(SortableHeader header) {
|
594 |
581 |
this.header=header;
|
595 |
582 |
}
|
596 |
583 |
@Override
|
... | ... | |
605 |
592 |
}
|
606 |
593 |
}
|
607 |
594 |
celltable.redrawHeaders();
|
608 |
|
sortFiles(property, header.getReverseSort());
|
|
595 |
sortFiles(header.getProperty(), header.getReverseSort());
|
609 |
596 |
FileList.this.update();
|
610 |
597 |
}
|
611 |
598 |
|