diff options
author | rginda@chromium.org <rginda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-11 18:02:31 +0000 |
---|---|---|
committer | rginda@chromium.org <rginda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-11 18:02:31 +0000 |
commit | 1fcab2314704c86d67e5b5634142e811d5c7b561 (patch) | |
tree | 7a2ea1831e05ccb45563ca33900f2b24a293f4e8 | |
parent | d40b97365e77d489a58b3735dc3cabee62c2bbe0 (diff) | |
download | chromium_src-1fcab2314704c86d67e5b5634142e811d5c7b561.zip chromium_src-1fcab2314704c86d67e5b5634142e811d5c7b561.tar.gz chromium_src-1fcab2314704c86d67e5b5634142e811d5c7b561.tar.bz2 |
Miscellaneous table changes
table.css: Use unicode characters rather than images, looks the same and doesn't require wiring up a content handler.
table.js: Add forwarded method scrollIndexIntoView
table_data_model.js: Add prepareSort hook so client code can fetch data required for the sort.
table_header.js: Add column specific class name to headers so that clients can apply column-number specific header styles.
table_selection_model.js: Adjust leadIndex after a sort.
table_single_selection_model.js: Adjust leadIndex after a sort.
BUG=none
TEST=manual testing of cros file dialogs
Review URL: http://codereview.chromium.org/6825029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81119 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/resources/shared/css/table.css | 18 | ||||
-rw-r--r-- | chrome/browser/resources/shared/images/treeDownTriangleBlack.png | bin | 3570 -> 0 bytes | |||
-rw-r--r-- | chrome/browser/resources/shared/images/treeUpTriangleBlack.png | bin | 3584 -> 0 bytes | |||
-rw-r--r-- | chrome/browser/resources/shared/js/cr/ui/table.js | 9 | ||||
-rw-r--r-- | chrome/browser/resources/shared/js/cr/ui/table/table_data_model.js | 20 | ||||
-rw-r--r-- | chrome/browser/resources/shared/js/cr/ui/table/table_selection_model.js | 5 | ||||
-rw-r--r-- | chrome/browser/resources/shared/js/cr/ui/table/table_single_selection_model.js | 3 |
7 files changed, 47 insertions, 8 deletions
diff --git a/chrome/browser/resources/shared/css/table.css b/chrome/browser/resources/shared/css/table.css index 776b8c7..96ce7b7 100644 --- a/chrome/browser/resources/shared/css/table.css +++ b/chrome/browser/resources/shared/css/table.css @@ -82,14 +82,20 @@ list > [selected]:hover { padding: 0 12px; } -.table-header-sort-image-desc { - background-image: url('../images/treeDownTriangleBlack.png'); - background-repeat: no-repeat; +.table-header-sort-image-desc:after { + position: relative; + top: -2px; + content: '\25be'; /* BLACK DOWN-POINTING SMALL TRIANGLE */ + -webkit-padding-start: 0.4em; + color: #888; } -.table-header-sort-image-asc { - background-image: url('../images/treeUpTriangleBlack.png'); - background-repeat: no-repeat; +.table-header-sort-image-asc:after { + position: relative; + top: -2px; + content: '\25b4'; /* BLACK UP-POINTING SMALL TRIANGLE */ + -webkit-padding-start: 0.4em; + color: #888; } .table-header-splitter { diff --git a/chrome/browser/resources/shared/images/treeDownTriangleBlack.png b/chrome/browser/resources/shared/images/treeDownTriangleBlack.png Binary files differdeleted file mode 100644 index 0821112..0000000 --- a/chrome/browser/resources/shared/images/treeDownTriangleBlack.png +++ /dev/null diff --git a/chrome/browser/resources/shared/images/treeUpTriangleBlack.png b/chrome/browser/resources/shared/images/treeUpTriangleBlack.png Binary files differdeleted file mode 100644 index ef69dbc..0000000 --- a/chrome/browser/resources/shared/images/treeUpTriangleBlack.png +++ /dev/null diff --git a/chrome/browser/resources/shared/js/cr/ui/table.js b/chrome/browser/resources/shared/js/cr/ui/table.js index 615027e..69723cc 100644 --- a/chrome/browser/resources/shared/js/cr/ui/table.js +++ b/chrome/browser/resources/shared/js/cr/ui/table.js @@ -148,6 +148,15 @@ cr.define('cr.ui', function() { }, /** + * Ensures that a given index is inside the viewport. + * @param {number} index The index of the item to scroll into view. + * @return {boolean} Whether any scrolling was needed. + */ + scrollIndexIntoView: function(i) { + this.list_.scrollIndexIntoView(i); + }, + + /** * Redraws the table. * This forces the list to remove all cached items. */ diff --git a/chrome/browser/resources/shared/js/cr/ui/table/table_data_model.js b/chrome/browser/resources/shared/js/cr/ui/table/table_data_model.js index 390125c..311fd67 100644 --- a/chrome/browser/resources/shared/js/cr/ui/table/table_data_model.js +++ b/chrome/browser/resources/shared/js/cr/ui/table/table_data_model.js @@ -161,14 +161,30 @@ cr.define('cr.ui.table', function() { }, /** + * Called before a sort happens so that you may fetch additional data + * required for the sort. + * + * @param {string} field Sort field. + * @param {function()} callback The function to invoke when preparation + * is complete. + */ + prepareSort: function(field, callback) { + callback(); + }, + + /** * Sorts data model according to given field and direction and dispathes * sorted event. * @param {string} field Sort field. * @param {string} direction Sort direction. */ sort: function(field, direction) { - var sortPermutation = this.doSort_(field, direction); - this.dispatchSortEvent_(sortPermutation); + var self = this; + + this.prepareSort(field, function() { + var sortPermutation = self.doSort_(field, direction); + self.dispatchSortEvent_(sortPermutation); + }); }, /** diff --git a/chrome/browser/resources/shared/js/cr/ui/table/table_selection_model.js b/chrome/browser/resources/shared/js/cr/ui/table/table_selection_model.js index 7dfea77..d4a197a 100644 --- a/chrome/browser/resources/shared/js/cr/ui/table/table_selection_model.js +++ b/chrome/browser/resources/shared/js/cr/ui/table/table_selection_model.js @@ -30,12 +30,17 @@ cr.define('cr.ui.table', function() { * @param {!Array.<number>} permutation The reordering permutation. */ adjustToReordering: function(permutation) { + var oldLeadIndex = this.leadIndex; + var oldSelectedIndexes = this.selectedIndexes; this.selectedIndexes = oldSelectedIndexes.map(function(oldIndex) { return permutation[oldIndex]; }).filter(function(index) { return index != -1; }); + + if (oldLeadIndex != -1) + this.leadIndex = permutation[oldLeadIndex]; }, /** diff --git a/chrome/browser/resources/shared/js/cr/ui/table/table_single_selection_model.js b/chrome/browser/resources/shared/js/cr/ui/table/table_single_selection_model.js index 181e6b8..c1da65f 100644 --- a/chrome/browser/resources/shared/js/cr/ui/table/table_single_selection_model.js +++ b/chrome/browser/resources/shared/js/cr/ui/table/table_single_selection_model.js @@ -30,6 +30,9 @@ cr.define('cr.ui.table', function() { * @param {!Array.<number>} permutation The reordering permutation. */ adjustToReordering: function(permutation) { + if (this.leadIndex != -1) + this.leadIndex = permutation[this.leadIndex]; + var oldSelectedIndex = this.selectedIndex; if (oldSelectedIndex != -1) { this.selectedIndex = permutation[oldSelectedIndex]; |