Chromium Code Reviews| Index: chrome/browser/resources/options/autofill_options_list.js |
| diff --git a/chrome/browser/resources/options/autofill_options_list.js b/chrome/browser/resources/options/autofill_options_list.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..01713e9d9b0da6dded0d05ad086c95d8429d460e |
| --- /dev/null |
| +++ b/chrome/browser/resources/options/autofill_options_list.js |
| @@ -0,0 +1,102 @@ |
| +// Copyright (c) 2010 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. |
| + |
| +cr.define('options.autoFillOptions', function() { |
| + const ArrayDataModel = cr.ui.ArrayDataModel; |
| + const DeletableItemList = options.DeletableItemList; |
| + const DeletableItem = options.DeletableItem; |
| + const List = cr.ui.List; |
| + |
| + /** |
| + * Creates a new AutoFill list item. |
| + * @param {Array} entry An array of the form [guid, label]. |
| + * @constructor |
| + * @extends {cr.ui.ListItem} |
| + */ |
| + function AutoFillListItem(entry) { |
| + var el = cr.doc.createElement('div'); |
| + el.dataItem = entry; |
|
arv (Not doing code reviews)
2010/12/22 18:14:07
How about storing guid and label simple value prop
James Hawkins
2010/12/22 21:22:31
Done.
|
| + el.__proto__ = AutoFillListItem.prototype; |
| + el.decorate(); |
| + |
| + return el; |
| + } |
| + |
| + AutoFillListItem.prototype = { |
| + __proto__: DeletableItem.prototype, |
| + |
| + /** @inheritDoc */ |
| + decorate: function() { |
| + DeletableItem.prototype.decorate.call(this); |
| + |
| + // The stored label. |
| + var label = this.ownerDocument.createElement('div'); |
| + label.className = 'autofill-list-item'; |
| + label.textContent = this.label; |
| + this.contentElement.appendChild(label); |
| + }, |
| + |
| + /** |
| + * Get and set the GUID for the entry. |
| + * @type {string} |
| + */ |
| + get guid() { |
| + return this.dataItem[0]; |
| + }, |
| + set guid(guid) { |
| + this.dataItem[0] = guid; |
| + }, |
| + |
| + /** |
| + * Get and set the label for the entry. |
| + * @type {string} |
| + */ |
| + get label() { |
| + return this.dataItem[1]; |
| + }, |
| + set label(label) { |
| + this.dataItem[1] = label; |
| + }, |
| + }; |
| + |
| + /** |
| + * Create a new AutoFill list. |
| + * @constructor |
| + * @extends {cr.ui.List} |
| + */ |
| + var AutoFillList = cr.ui.define('list'); |
| + |
| + AutoFillList.prototype = { |
| + __proto__: DeletableItemList.prototype, |
| + |
| + /** @inheritDoc */ |
| + createItem: function(entry) { |
| + return new AutoFillListItem(entry); |
| + }, |
| + |
| + /** @inheritDoc */ |
| + activateItemAtIndex: function(index) { |
| + var item = this.getListItemByIndex(index); |
|
arv (Not doing code reviews)
2010/12/22 18:14:07
Shouldn't this be going through the dataModel?
James Hawkins
2010/12/22 21:22:31
Done.
|
| + AutoFillOptions.loadProfileEditor(item.guid); |
| + }, |
| + |
| + /** @inheritDoc */ |
| + deleteItemAtIndex: function(index) { |
| + var item = this.getListItemByIndex(index); |
|
arv (Not doing code reviews)
2010/12/22 18:14:07
same here
James Hawkins
2010/12/22 21:22:31
Done.
|
| + AutoFillOptions.removeAutoFillProfile(item.guid); |
| + }, |
| + |
| + /** |
| + * The length of the list. |
| + */ |
| + get length() { |
|
arv (Not doing code reviews)
2010/12/22 18:14:07
What is this used for?
James Hawkins
2010/12/22 21:22:31
Copy/pasted from another implementation. Removed.
|
| + return this.dataModel.length; |
| + }, |
| + }; |
| + |
| + return { |
| + AutoFillListItem: AutoFillListItem, |
| + AutoFillList: AutoFillList, |
| + }; |
| +}); |