cros: Remove default pinned apps trial.
[chromium-blink-merge.git] / chrome / browser / resources / app_list / recommended_apps.js
blobd5fe706776dfd0682d8c0ba513d70e7700f40180
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /**
6  * @fileoverview Implement the recommended apps card in the launcher start page.
7  */
9 cr.define('appList.startPage', function() {
10   'use strict';
12   /**
13    * Create a view with icon and label for the given app data.
14    * @constructor
15    * @extends {HTMLDivElement}
16    */
17   var AppItemView = cr.ui.define('div');
19   AppItemView.prototype = {
20     __proto__: HTMLDivElement.prototype,
22     /**
23      * The app id of the app displayed by this view. Used to launch
24      * the app when the view is clicked.
25      * @type {string}
26      */
27     appId: '',
29     /**
30      * Sets the icon URL to display the app icon.
31      * @type {string}
32      */
33     set iconUrl(url) {
34       this.style.backgroundImage = 'url(' + url + ')';
35     },
37     /**
38      * Sets the text title.
39      * @type {string}
40      */
41     set textTitle(title) {
42       this.textContent = title;
43     },
45     /** @override */
46     decorate: function() {
47       this.className = 'app';
48       this.addEventListener('click', this.handleClick_.bind(this));
49     },
51     /**
52      * Handles 'click' event.
53      * @private
54      */
55     handleClick_: function() {
56       assert(this.appId);
57       chrome.send('launchApp', [this.appId]);
58     }
59   };
61   /**
62    * Create recommended apps card.
63    * @constructor
64    * @extends {HTMLDivElement}
65    */
66   var RecommendedApps = cr.ui.define('div');
68   RecommendedApps.prototype = {
69     __proto__: HTMLDivElement.prototype,
71     /** @override */
72     decorate: function() {
73       this.className = 'recommended-apps';
74     },
76     /**
77      * Sets the apps to be displayed in this card.
78      */
79     setApps: function(apps) {
80       this.textContent = '';
81       for (var i = 0; i < apps.length; ++i) {
82         this.appendChild(new AppItemView(apps[i]));
83       }
84     }
85   };
87   return {
88     RecommendedApps: RecommendedApps
89   };
90 });