summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrginda@chromium.org <rginda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-11 18:02:31 +0000
committerrginda@chromium.org <rginda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-11 18:02:31 +0000
commit1fcab2314704c86d67e5b5634142e811d5c7b561 (patch)
tree7a2ea1831e05ccb45563ca33900f2b24a293f4e8
parentd40b97365e77d489a58b3735dc3cabee62c2bbe0 (diff)
downloadchromium_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.css18
-rw-r--r--chrome/browser/resources/shared/images/treeDownTriangleBlack.pngbin3570 -> 0 bytes
-rw-r--r--chrome/browser/resources/shared/images/treeUpTriangleBlack.pngbin3584 -> 0 bytes
-rw-r--r--chrome/browser/resources/shared/js/cr/ui/table.js9
-rw-r--r--chrome/browser/resources/shared/js/cr/ui/table/table_data_model.js20
-rw-r--r--chrome/browser/resources/shared/js/cr/ui/table/table_selection_model.js5
-rw-r--r--chrome/browser/resources/shared/js/cr/ui/table/table_single_selection_model.js3
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
deleted file mode 100644
index 0821112..0000000
--- a/chrome/browser/resources/shared/images/treeDownTriangleBlack.png
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/shared/images/treeUpTriangleBlack.png b/chrome/browser/resources/shared/images/treeUpTriangleBlack.png
deleted file mode 100644
index ef69dbc..0000000
--- a/chrome/browser/resources/shared/images/treeUpTriangleBlack.png
+++ /dev/null
Binary files differ
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];