Revision 7cca8bf1

b/src/gr/grnet/pithos/web/client/FileList.java
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
		
b/src/gr/grnet/pithos/web/client/SortableHeader.java
90 90
  private boolean reverseSort = false;
91 91
  private boolean sorted = false;
92 92
  private String text;
93
  private String property;
93 94

  
94
  SortableHeader(String text) {
95
  SortableHeader(String text, String property) {
95 96
    super(new ClickableTextCell());
96 97
    if (template == null) {
97 98
      template = GWT.create(Template.class);
98 99
    }
99 100
    this.text = text;
101
    this.property = property;
100 102
  }
101 103

  
102 104
  public boolean getReverseSort() {
......
121 123
    this.reverseSort = reverseSort;
122 124
  }
123 125

  
126
  public boolean isSorted() {
127
	  return sorted;
128
  }
129
  
124 130
  public void setSorted(boolean sorted) {
125 131
    this.sorted = sorted;
126 132
  }
......
128 134
  public void toggleReverseSort() {
129 135
    this.reverseSort = !this.reverseSort;
130 136
  }
137

  
138
public String getProperty() {
139
	return property;
140
}
131 141
}
b/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java
239 239
                    public void execute() {
240 240
                        dataProvider.getList().clear();
241 241
                        dataProvider.getList().addAll(_result.getSubfolders());
242
//                        app.getFolderTreeView().updateChildren(f);
243 242
                        if (callback != null)
244 243
                        	callback.execute();
245 244
                    }

Also available in: Unified diff