| Index: chrome/browser/resources/shared/js/cr/ui/table/table_list.js
|
| ===================================================================
|
| --- chrome/browser/resources/shared/js/cr/ui/table/table_list.js (revision 177292)
|
| +++ chrome/browser/resources/shared/js/cr/ui/table/table_list.js (working copy)
|
| @@ -1,198 +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 extends cr.ui.List for use in the table.
|
| - */
|
| -
|
| -cr.define('cr.ui.table', function() {
|
| - /** @const */ var List = cr.ui.List;
|
| - /** @const */ var TableRow = cr.ui.table.TableRow;
|
| - /** @const */ var ListItem = cr.ui.ListItem;
|
| -
|
| - /**
|
| - * Creates a new table list element.
|
| - * @param {Object=} opt_propertyBag Optional properties.
|
| - * @constructor
|
| - * @extends {cr.ui.List}
|
| - */
|
| - var TableList = cr.ui.define('list');
|
| -
|
| - TableList.prototype = {
|
| - __proto__: List.prototype,
|
| -
|
| - table_: null,
|
| -
|
| - /**
|
| - * Initializes the element.
|
| - */
|
| - decorate: function() {
|
| - List.prototype.decorate.apply(this);
|
| - this.className = 'list';
|
| - },
|
| -
|
| - /**
|
| - * Resizes columns. Called when column width changed.
|
| - */
|
| - resize: function() {
|
| - if (this.updateScrollbars_())
|
| - List.prototype.redraw.call(this); // Redraw items only.
|
| - this.resizeCells_();
|
| - },
|
| -
|
| - /**
|
| - * Updates width of cells.
|
| - */
|
| - resizeCells_: function() {
|
| - var cm = this.table_.columnModel;
|
| - for (var row = this.firstElementChild; row;
|
| - row = row.nextElementSibling) {
|
| - if (row.tagName != 'LI')
|
| - continue;
|
| -
|
| - for (var i = 0; i < cm.size; i++) {
|
| - row.children[i].style.width = cm.getWidth(i) + 'px';
|
| - }
|
| - row.style.width = cm.totalWidth + 'px';
|
| - }
|
| - this.afterFiller_.style.width = cm.totalWidth + 'px';
|
| - },
|
| -
|
| - /**
|
| - * Redraws the viewport.
|
| - */
|
| - redraw: function() {
|
| - if (this.batchCount_ != 0)
|
| - return;
|
| - this.updateScrollbars_();
|
| -
|
| - List.prototype.redraw.call(this);
|
| - this.resizeCells_();
|
| - },
|
| -
|
| - /**
|
| - * Returns the height of after filler in the list.
|
| - * @param {number} lastIndex The index of item past the last in viewport.
|
| - * @return {number} The height of after filler.
|
| - * @override
|
| - */
|
| - getAfterFillerHeight: function(lastIndex) {
|
| - // If the list is empty set height to 1 to show horizontal
|
| - // scroll bar.
|
| - return lastIndex == 0 ? 1 :
|
| - cr.ui.List.prototype.getAfterFillerHeight.call(this, lastIndex);
|
| - },
|
| -
|
| - /**
|
| - * Shows or hides vertical and horizontal scroll bars in the list.
|
| - * @return {boolean} True if horizontal scroll bar changed.
|
| - */
|
| - updateScrollbars_: function() {
|
| - var cm = this.table.columnModel;
|
| - var style = this.style;
|
| - if (!cm || cm.size == 0) {
|
| - if (style.overflow != 'hidden') {
|
| - style.overflow = 'hidden';
|
| - return true;
|
| - } else {
|
| - return false;
|
| - }
|
| - }
|
| -
|
| - var height = this.offsetHeight;
|
| - var changed = false;
|
| - var offsetWidth = this.offsetWidth;
|
| - if (cm.totalWidth > offsetWidth) {
|
| - if (style.overflowX != 'scroll') {
|
| - style.overflowX = 'scroll';
|
| - }
|
| - // Once we sure there will be horizontal
|
| - // scrollbar calculate with this height.
|
| - height = this.clientHeight;
|
| - }
|
| - if (this.areAllItemsVisible_(height)) {
|
| - if (cm.totalWidth <= offsetWidth && style.overflowX != 'hidden') {
|
| - style.overflowX = 'hidden';
|
| - }
|
| - changed = this.showVerticalScrollBar_(false);
|
| - } else {
|
| - changed = this.showVerticalScrollBar_(true);
|
| - var x = cm.totalWidth <= this.clientWidth ? 'hidden' : 'scroll';
|
| - if (style.overflowX != x) {
|
| - style.overflowX = x;
|
| - }
|
| - }
|
| - return changed;
|
| - },
|
| -
|
| - /**
|
| - * Shows or hides vertical scroll bar.
|
| - * @param {boolean} show True to show.
|
| - * @return {boolean} True if visibility changed.
|
| - */
|
| - showVerticalScrollBar_: function(show) {
|
| - var style = this.style;
|
| - if (show && style.overflowY == 'scroll')
|
| - return false;
|
| - if (!show && style.overflowY == 'hidden')
|
| - return false;
|
| - style.overflowY = show ? 'scroll' : 'hidden';
|
| - return true;
|
| - },
|
| -
|
| - /**
|
| - * @param {number} visibleHeight Height in pixels.
|
| - * @return {boolean} True if all rows could be accomodiated in
|
| - * visibleHeight pixels.
|
| - */
|
| - areAllItemsVisible_: function(visibleHeight) {
|
| - if (!this.dataModel || this.dataModel.length == 0)
|
| - return true;
|
| - return this.getItemTop(this.dataModel.length) <= visibleHeight;
|
| - },
|
| -
|
| - /**
|
| - * Creates a new list item.
|
| - * @param {*} dataItem The value to use for the item.
|
| - * @return {!ListItem} The newly created list item.
|
| - */
|
| - createItem: function(dataItem) {
|
| - return this.table_.getRenderFunction().call(null, dataItem, this.table_);
|
| - },
|
| -
|
| - renderFunction_: function(dataItem, table) {
|
| - // `This` must not be accessed here, since it may be anything, especially
|
| - // not a pointer to this object.
|
| -
|
| - var cm = table.columnModel;
|
| - var listItem = List.prototype.createItem.call(table.list, '');
|
| - listItem.className = 'table-row';
|
| -
|
| - for (var i = 0; i < cm.size; i++) {
|
| - var cell = table.ownerDocument.createElement('div');
|
| - cell.style.width = cm.getWidth(i) + 'px';
|
| - cell.className = 'table-row-cell';
|
| - if (cm.isEndAlign(i))
|
| - cell.style.textAlign = 'end';
|
| - cell.appendChild(
|
| - cm.getRenderFunction(i).call(null, dataItem, cm.getId(i), table));
|
| -
|
| - listItem.appendChild(cell);
|
| - }
|
| - listItem.style.width = cm.totalWidth + 'px';
|
| -
|
| - return listItem;
|
| - },
|
| - };
|
| -
|
| - /**
|
| - * The table associated with the list.
|
| - * @type {cr.ui.Table}
|
| - */
|
| - cr.defineProperty(TableList, 'table');
|
| -
|
| - return {
|
| - TableList: TableList
|
| - };
|
| -});
|
|
|