Index: chrome/browser/resources/ntp_search/tile_page.js |
diff --git a/chrome/browser/resources/ntp_search/tile_page.js b/chrome/browser/resources/ntp_search/tile_page.js |
index fb82d8efcdd13e93322e77a50b90ebe904ee43bd..97a9c97e3d18f65b17e02f7bb52d6a90b7df3fd8 100644 |
--- a/chrome/browser/resources/ntp_search/tile_page.js |
+++ b/chrome/browser/resources/ntp_search/tile_page.js |
@@ -29,9 +29,8 @@ cr.define('ntp', function() { |
* subclass implemented too (e.g. MostVisitedPage contains MostVisited |
* tiles, and MostVisited is a Tile subclass). |
* @constructor |
- * @param {Object} config TilePage configuration object. |
*/ |
- function Tile(config) { |
+ function Tile() { |
console.error('Tile is a virtual class and is not supposed to be ' + |
'instantiated'); |
} |
@@ -63,9 +62,8 @@ cr.define('ntp', function() { |
/** |
* Initializes a Tile. |
- * @param {Object} config TilePage configuration object. |
*/ |
- initialize: function(config) { |
+ initialize: function() { |
this.classList.add('tile'); |
this.reset(); |
}, |
@@ -77,10 +75,10 @@ cr.define('ntp', function() { |
}, |
/** |
- * Update the appearance of this tile according to |data|. |
+ * The data for this Tile. |
* @param {Object} data A dictionary of relevant data for the page. |
*/ |
- setData: function(data) { |
+ set data(data) { |
// TODO(pedrosimonetti): Remove data.filler usage everywhere. |
if (!data || data.filler) { |
if (this.data_) |
@@ -89,7 +87,7 @@ cr.define('ntp', function() { |
} |
this.data_ = data; |
- } |
+ }, |
}; |
var TileGetters = { |
@@ -109,14 +107,6 @@ cr.define('ntp', function() { |
assert(this.tileCell); |
return this.tileCell.index; |
}, |
- |
- /** |
- * Tile data object. |
- * @type {Object} |
- */ |
- 'data': function() { |
- return this.data_; |
- } |
}; |
//---------------------------------------------------------------------------- |
@@ -165,7 +155,15 @@ cr.define('ntp', function() { |
*/ |
get index() { |
return Array.prototype.indexOf.call(this.tilePage.tiles_, |
- this.firstChild); |
+ this.tile); |
+ }, |
+ |
+ /** |
+ * The Tile associated to this TileCell. |
+ * @type {Tile} |
+ */ |
+ get tile() { |
+ return this.firstElementChild; |
}, |
/** |
@@ -181,8 +179,8 @@ cr.define('ntp', function() { |
* @type {TilePage} |
*/ |
assign: function(tile) { |
- if (this.firstChild) |
- this.replaceChild(tile, this.firstChild); |
+ if (this.tile) |
+ this.replaceChild(tile, this.tile); |
else |
this.appendChild(tile); |
}, |
@@ -192,10 +190,7 @@ cr.define('ntp', function() { |
* @param {boolean=} opt_animate Whether the animation should be animated. |
*/ |
doRemove: function(opt_animate) { |
- if (opt_animate) |
- this.firstChild.classList.add('removing-tile-contents'); |
- else |
- this.tilePage.removeTile(this, false); |
+ this.tilePage.removeTile(this.tile, false); |
}, |
}; |
@@ -451,16 +446,24 @@ cr.define('ntp', function() { |
}, |
/** |
+ * Create a blank tile. |
+ * @protected |
+ */ |
+ createTile_: function() { |
+ return new this.TileClass(this.config); |
+ }, |
+ |
+ /** |
* Create blank tiles. |
- * @private |
- * @param {number} count The number of Tiles to be created. |
+ * @param {number} count The desired number of Tiles to be created. If this |
+ * value the maximum value defined in |config.maxTileCount|, the maximum |
+ * value will be used instead. |
+ * @protected |
*/ |
createTiles_: function(count) { |
- var Class = this.TileClass; |
- var config = this.config; |
- count = Math.min(count, config.maxTileCount); |
+ count = Math.min(count, this.config.maxTileCount); |
for (var i = 0; i < count; i++) { |
- this.appendTile(new Class(config)); |
+ this.appendTile(this.createTile_()); |
} |
}, |
@@ -482,7 +485,7 @@ cr.define('ntp', function() { |
if (i >= dataList.length) |
tile.reset(); |
else |
- tile.setData(data); |
+ tile.data = data; |
} |
}, |
@@ -599,12 +602,9 @@ cr.define('ntp', function() { |
var tiles = this.tiles_; |
var tileCount = tiles.length; |
- var numOfVisibleRows = this.numOfVisibleRows_; |
var rowCount = Math.ceil(tileCount / colCount); |
var tileRows = tileGridContent.getElementsByClassName('tile-row'); |
- var pageOffset = this.pageOffset_; |
- |
for (var tile = 0, row = 0; row < rowCount; row++) { |
var tileRow = tileRows[row]; |
@@ -640,16 +640,16 @@ cr.define('ntp', function() { |
if (tile < tileCount) { |
tileCell.classList.remove('filler'); |
tileElement = tiles[tile]; |
- if (!tileCell.firstChild) |
+ if (!tileCell.tile) |
tileCell.appendChild(tileElement); |
- else if (tileElement != tileCell.firstChild) |
- tileCell.replaceChild(tileElement, tileCell.firstChild); |
+ else if (tileElement != tileCell.tile) |
+ tileCell.replaceChild(tileElement, tileCell.tile); |
} else if (!tileCell.classList.contains('filler')) { |
tileCell.classList.add('filler'); |
tileElement = cr.doc.createElement('span'); |
tileElement.className = 'tile'; |
- if (tileCell.firstChild) |
- tileCell.replaceChild(tileElement, tileCell.firstChild); |
+ if (tileCell.tile) |
+ tileCell.replaceChild(tileElement, tileCell.tile); |
else |
tileCell.appendChild(tileElement); |
} |
@@ -858,7 +858,7 @@ cr.define('ntp', function() { |
var tileBeingRestored = createTile(this, restoredData); |
tileCells[index].appendChild(tileBeingRestored); |
- var extraTile = extraCell.firstChild; |
+ var extraTile = extraCell.tile; |
this.executeRepositioningAnimation_(tileBeingRestored, extraTile, |
repositioningStartIndex, repositioningEndIndex, false); |
@@ -1076,7 +1076,7 @@ cr.define('ntp', function() { |
if (opt_data) { |
// If there's data, the new tile will be a real one (not a filler). |
tile = new tilePage.TileClass(tilePage.config); |
- tile.setData(opt_data); |
+ tile.data = opt_data; |
} else { |
// Otherwise, it will be a fake filler tile. |
tile = cr.doc.createElement('span'); |