Index: chrome/browser/resources/shared/js/cr/ui/table/table_column_model.js |
=================================================================== |
--- chrome/browser/resources/shared/js/cr/ui/table/table_column_model.js (revision 177292) |
+++ chrome/browser/resources/shared/js/cr/ui/table/table_column_model.js (working copy) |
@@ -1,190 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-/** |
- * @fileoverview This is a table column model |
- */ |
-cr.define('cr.ui.table', function() { |
- /** @const */ var EventTarget = cr.EventTarget; |
- /** @const */ var Event = cr.Event; |
- |
- /** |
- * A table column model that wraps table columns array |
- * This implementation supports widths in percents. |
- * @param {!Array<cr.ui.table.TableColumn>} columnIds Array of table columns. |
- * @constructor |
- * @extends {EventTarget} |
- */ |
- function TableColumnModel(tableColumns) { |
- this.columns_ = []; |
- for (var i = 0; i < tableColumns.length; i++) { |
- this.columns_.push(tableColumns[i].clone()); |
- } |
- } |
- |
- var MIMIMAL_WIDTH = 10; |
- |
- TableColumnModel.prototype = { |
- __proto__: EventTarget.prototype, |
- |
- /** |
- * The number of the columns. |
- * @type {number} |
- */ |
- get size() { |
- return this.columns_.length; |
- }, |
- |
- /** |
- * Returns id of column at the given index. |
- * @param {number} index The index of the column. |
- * @return {string} Column id. |
- */ |
- getId: function(index) { |
- return this.columns_[index].id; |
- }, |
- |
- /** |
- * Returns name of column at the given index. Name is used as column header |
- * label. |
- * @param {number} index The index of the column. |
- * @return {string} Column name. |
- */ |
- getName: function(index) { |
- return this.columns_[index].name; |
- }, |
- |
- /** |
- * Sets name of column at the given index. |
- * @param {number} index The index of the column. |
- * @param {string} Column name. |
- */ |
- setName: function(index, name) { |
- if (index < 0 || index >= this.columns_.size - 1) |
- return; |
- if (name != this.columns_[index].name) |
- return; |
- |
- this.columns_[index].name = name; |
- cr.dispatchSimpleEvent(this, 'change'); |
- }, |
- |
- /** |
- * Returns width (in percent) of column at the given index. |
- * @param {number} index The index of the column. |
- * @return {string} Column width in pixels. |
- */ |
- getWidth: function(index) { |
- return this.columns_[index].width; |
- }, |
- |
- /** |
- * Check if the column at the given index should align to the end. |
- * @param {number} index The index of the column. |
- * @return {boolean} True if the column is aligned to end. |
- */ |
- isEndAlign: function(index) { |
- return this.columns_[index].endAlign; |
- }, |
- |
- /** |
- * Sets width of column at the given index. |
- * @param {number} index The index of the column. |
- * @param {number} Column width. |
- */ |
- setWidth: function(index, width) { |
- if (index < 0 || index >= this.columns_.size - 1) |
- return; |
- |
- width = Math.max(width, MIMIMAL_WIDTH); |
- if (width == this.columns_[index].width) |
- return; |
- |
- this.columns_[index].width = width; |
- cr.dispatchSimpleEvent(this, 'resize'); |
- }, |
- |
- /** |
- * Returns render function for the column at the given index. |
- * @param {number} index The index of the column. |
- * @return {Function(*, string, cr.ui.Table): HTMLElement} Render function. |
- */ |
- getRenderFunction: function(index) { |
- return this.columns_[index].renderFunction; |
- }, |
- |
- /** |
- * Sets render function for the column at the given index. |
- * @param {number} index The index of the column. |
- * @param {Function(*, string, cr.ui.Table): HTMLElement} Render function. |
- */ |
- setRenderFunction: function(index, renderFunction) { |
- if (index < 0 || index >= this.columns_.size - 1) |
- return; |
- if (renderFunction !== this.columns_[index].renderFunction) |
- return; |
- |
- this.columns_[index].renderFunction = renderFunction; |
- cr.dispatchSimpleEvent(this, 'change'); |
- }, |
- |
- /** |
- * Render the column header. |
- * @param {number} index The index of the column. |
- * @param {cr.ui.Table} Owner table. |
- */ |
- renderHeader: function(index, table) { |
- var c = this.columns_[index]; |
- return c.headerRenderFunction.call(c, table); |
- }, |
- |
- /** |
- * The total width of the columns. |
- * @type {number} |
- */ |
- get 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(contentWidth) { |
- if (this.size == 0) |
- return; |
- var c = this.columns_[0]; |
- c.width = Math.max(10, c.width - this.totalWidth + contentWidth); |
- }, |
- |
- /** |
- * Returns default sorting order for the column at the given index. |
- * @param {number} index The index of the column. |
- * @return {string} 'asc' or 'desc'. |
- */ |
- getDefaultOrder: function(index) { |
- return this.columns_[index].defaultOrder; |
- }, |
- |
- /** |
- * Returns index of the column with given id. |
- * @param {string} id The id to find. |
- * @return {number} The index of column with given id or -1 if not found. |
- */ |
- indexOf: function(id) { |
- for (var i = 0; i < this.size; i++) { |
- if (element.id == id) |
- return i; |
- } |
- return -1; |
- }, |
- }; |
- |
- return { |
- TableColumnModel: TableColumnModel |
- }; |
-}); |