Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(363)

Unified Diff: runtime/bin/vmservice/client/lib/src/app/view_model.dart

Issue 342513004: Visual refresh of allocation profile page (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/bin/vmservice/client/lib/src/app/view_model.dart
diff --git a/runtime/bin/vmservice/client/lib/src/app/view_model.dart b/runtime/bin/vmservice/client/lib/src/app/view_model.dart
index 0b90a993b6ce476d1cf305c2a60e4e2129c9e6b8..fcdb4254a6354d89a06a5ea9b6087b5bc32507c0 100644
--- a/runtime/bin/vmservice/client/lib/src/app/view_model.dart
+++ b/runtime/bin/vmservice/client/lib/src/app/view_model.dart
@@ -131,7 +131,7 @@ class SortedTableRow {
class SortedTable extends Observable {
final List<SortedTableColumn> columns;
final List<SortedTableRow> rows = new List<SortedTableRow>();
- final List<int> _sortedRows = [];
+ final List<int> sortedRows = [];
SortedTable(this.columns);
@@ -144,42 +144,57 @@ class SortedTable extends Observable {
}
int get sortColumnIndex => _sortColumnIndex;
bool _sortDescending = true;
+ bool get sortDescending => _sortDescending;
+ set sortDescending(var descending) {
+ _sortDescending = descending;
+ notifyPropertyChange(#getColumnLabel, 0, 1);
+ }
+
+
+ dynamic getSortKeyFor(int row, int col) {
+ return rows[row].values[col];
+ }
+
+ int _sortFuncDescending(int i, int j) {
+ var a = getSortKeyFor(i, _sortColumnIndex);
+ var b = getSortKeyFor(j, _sortColumnIndex);
+ return b.compareTo(a);
+ }
+
+ int _sortFuncAscending(int i, int j) {
+ var a = getSortKeyFor(i, _sortColumnIndex);
+ var b = getSortKeyFor(j, _sortColumnIndex);
+ return a.compareTo(b);
+ }
void sort() {
+ Stopwatch sw = new Stopwatch()..start();
assert(_sortColumnIndex >= 0);
assert(_sortColumnIndex < columns.length);
- _sortedRows.sort((i, j) {
- var a = rows[i].values[_sortColumnIndex];
- var b = rows[j].values[_sortColumnIndex];
- if (_sortDescending) {
- return b.compareTo(a);
- } else {
- return a.compareTo(b);
- }
- });
- notifyPropertyChange(#sortedRows, 0, 1);
+ if (_sortDescending) {
+ sortedRows.sort(_sortFuncDescending);
+ } else {
+ sortedRows.sort(_sortFuncAscending);
+ }
}
- @observable List<int> get sortedRows => _sortedRows;
-
void clearRows() {
rows.clear();
- _sortedRows.clear();
+ sortedRows.clear();
}
void addRow(SortedTableRow row) {
- _sortedRows.add(rows.length);
+ sortedRows.add(rows.length);
rows.add(row);
- notifyPropertyChange(#sortedRows, 0, 1);
}
- @reflectable String getFormattedValue(int row, int column) {
+ String getFormattedValue(int row, int column) {
var value = getValue(row, column);
var formatter = columns[column].formatter;
return formatter(value);
}
- @reflectable String getColumnLabel(int column) {
+ @observable String getColumnLabel(int column) {
assert(column >= 0);
assert(column < columns.length);
// TODO(johnmccutchan): Move expander display decisions into html once
@@ -192,7 +207,7 @@ class SortedTable extends Observable {
return columns[column].label + (_sortDescending ? arrowUp : arrowDown);
}
- @reflectable dynamic getValue(int row, int column) {
+ dynamic getValue(int row, int column) {
return rows[row].values[column];
}
}
« no previous file with comments | « runtime/bin/vmservice/client/lib/src/app/utils.dart ('k') | runtime/bin/vmservice/client/lib/src/elements/action_link.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698