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

Unified Diff: chrome/browser/resources/shared/js/cr/ui/table/table_column_model.js

Issue 11280253: Fixing column widths in tables. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Code review fixes. Created 8 years 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: chrome/browser/resources/shared/js/cr/ui/table/table_column_model.js
diff --git a/chrome/browser/resources/shared/js/cr/ui/table/table_column_model.js b/chrome/browser/resources/shared/js/cr/ui/table/table_column_model.js
index a727dd82adece8513792f447185f308d71ef1104..9792f601ae9529825d20633fca959291a34f1c3f 100644
--- a/chrome/browser/resources/shared/js/cr/ui/table/table_column_model.js
+++ b/chrome/browser/resources/shared/js/cr/ui/table/table_column_model.js
@@ -21,9 +21,10 @@ cr.define('cr.ui.table', function() {
for (var i = 0; i < tableColumns.length; i++) {
this.columns_.push(tableColumns[i].clone());
}
- this.normalizeWidths_();
}
+ var MIMIMAL_WIDTH = 10;
+
TableColumnModel.prototype = {
__proto__: EventTarget.prototype,
@@ -72,7 +73,7 @@ cr.define('cr.ui.table', function() {
/**
* Returns width (in percent) of column at the given index.
* @param {number} index The index of the column.
- * @return {string} Column width.
+ * @return {string} Column width in pixels.
*/
getWidth: function(index) {
return this.columns_[index].width;
@@ -96,23 +97,11 @@ cr.define('cr.ui.table', function() {
if (index < 0 || index >= this.columns_.size - 1)
return;
- var minWidth = 3;
- var currentPlusNextWidth = this.columns_[index + 1].width +
- this.columns_[index].width;
- var nextWidth = currentPlusNextWidth - width;
- if (width < minWidth) {
- width = minWidth;
- nextWidth = currentPlusNextWidth - minWidth;
- }
- if (nextWidth < minWidth) {
- width = currentPlusNextWidth - minWidth;
- nextWidth = minWidth;
- }
+ width = Math.max(width, MIMIMAL_WIDTH);
if (width == this.columns_[index].width)
return;
this.columns_[index].width = width;
- this.columns_[index + 1].width = nextWidth;
cr.dispatchSimpleEvent(this, 'resize');
},
@@ -155,20 +144,21 @@ cr.define('cr.ui.table', function() {
* @type {number}
*/
get totalWidth() {
- return this.totalWidth_;
+ var total = 0;
+ for (var i = 0; i < this.size; i++) {
+ total += this.columns_[i].width;
+ }
+ return total;
},
/**
* Normalizes widths to make their sum 100%.
*/
- normalizeWidths_: function() {
- var total = 0;
- for (var i = 0; i < this.size; i++) {
- total += this.columns_[i].width;
- }
- for (var i = 0; i < this.size; i++) {
- this.columns_[i].width = this.columns_[i].width * 100 / total;
- }
+ normalizeWidths: function(contentWidth) {
+ if (this.size == 0)
+ return;
+ var c = this.columns_[0];
+ c.width = Math.max(10, c.width - this.totalWidth + contentWidth);
},
/**
« no previous file with comments | « chrome/browser/resources/shared/js/cr/ui/table.js ('k') | chrome/browser/resources/shared/js/cr/ui/table/table_header.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698