Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(530)

Side by Side Diff: chrome/browser/resources/shared/js/cr/ui/list.js

Issue 6034005: DOMUI: Implement the new-style Autofill options page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review fixes. Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // require: listselectionmodel.js 5 // require: listselectionmodel.js
6 6
7 /** 7 /**
8 * @fileoverview This implements a list control. 8 * @fileoverview This implements a list control.
9 */ 9 */
10 10
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 this.beforeFiller_ = this.ownerDocument.createElement('div'); 262 this.beforeFiller_ = this.ownerDocument.createElement('div');
263 this.afterFiller_ = this.ownerDocument.createElement('div'); 263 this.afterFiller_ = this.ownerDocument.createElement('div');
264 this.beforeFiller_.className = 'spacer'; 264 this.beforeFiller_.className = 'spacer';
265 this.afterFiller_.className = 'spacer'; 265 this.afterFiller_.className = 'spacer';
266 this.appendChild(this.beforeFiller_); 266 this.appendChild(this.beforeFiller_);
267 this.appendChild(this.afterFiller_); 267 this.appendChild(this.afterFiller_);
268 268
269 var length = this.dataModel ? this.dataModel.length : 0; 269 var length = this.dataModel ? this.dataModel.length : 0;
270 this.selectionModel = new ListSelectionModel(length); 270 this.selectionModel = new ListSelectionModel(length);
271 271
272 this.addEventListener('dblclick', this.handleDoubleClick_);
272 this.addEventListener('mousedown', this.handleMouseDownUp_); 273 this.addEventListener('mousedown', this.handleMouseDownUp_);
273 this.addEventListener('mouseup', this.handleMouseDownUp_); 274 this.addEventListener('mouseup', this.handleMouseDownUp_);
274 this.addEventListener('keydown', this.handleKeyDown); 275 this.addEventListener('keydown', this.handleKeyDown);
275 this.addEventListener('scroll', this.redraw.bind(this)); 276 this.addEventListener('scroll', this.redraw.bind(this));
276 277
277 // Make list focusable 278 // Make list focusable
278 if (!this.hasAttribute('tabindex')) 279 if (!this.hasAttribute('tabindex'))
279 this.tabIndex = 0; 280 this.tabIndex = 0;
280 }, 281 },
281 282
282 /** 283 /**
283 * Returns the height of an item, measuring it if necessary. 284 * Returns the height of an item, measuring it if necessary.
284 * @private 285 * @private
285 */ 286 */
286 getItemHeight_: function() { 287 getItemHeight_: function() {
287 if (!this.itemHeight_) 288 if (!this.itemHeight_)
288 this.itemHeight_ = measureItem(this); 289 this.itemHeight_ = measureItem(this);
289 return this.itemHeight_; 290 return this.itemHeight_;
290 }, 291 },
291 292
292 /** 293 /**
294 * Callback for the double click event.
295 * @param {Event} e The mouse event object.
296 * @private
297 */
298 handleDoubleClick_: function(e) {
299 if (this.disabled)
300 return;
301
302 var target = e.target;
303
304 // If the target was this element we need to make sure that the user did
305 // not click on a border or a scrollbar.
306 if (target == this && !inViewport(target, e))
arv (Not doing code reviews) 2010/12/22 18:14:07 In this case I think you can skip this check since
James Hawkins 2010/12/22 21:22:31 Done.
307 return;
308
309 target = this.getListItemAncestor(target);
310
311 var index = target ? this.getIndexOfListItem(target) : -1;
312 this.activateItemAtIndex(index);
arv (Not doing code reviews) 2010/12/22 18:14:07 Now the question arise if we should allow Enter (a
James Hawkins 2010/12/22 21:22:31 We should allow Enter to activate the item as well
313 },
314
315 /**
293 * Callback for mousedown and mouseup events. 316 * Callback for mousedown and mouseup events.
294 * @param {Event} e The mouse event object. 317 * @param {Event} e The mouse event object.
295 * @private 318 * @private
296 */ 319 */
297 handleMouseDownUp_: function(e) { 320 handleMouseDownUp_: function(e) {
298 if (this.disabled) 321 if (this.disabled)
299 return; 322 return;
300 323
301 var target = e.target; 324 var target = e.target;
302 325
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 } 616 }
594 }, 617 },
595 }; 618 };
596 619
597 cr.defineProperty(List, 'disabled', cr.PropertyKind.BOOL_ATTR); 620 cr.defineProperty(List, 'disabled', cr.PropertyKind.BOOL_ATTR);
598 621
599 return { 622 return {
600 List: List 623 List: List
601 } 624 }
602 }); 625 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698