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

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

Issue 8273026: [Multi Profile] Double-clicking an item in the user list should edit that profile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add dblclick to list, remove from autofill Created 9 years, 2 months 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
« no previous file with comments | « chrome/browser/resources/options/personal_options_profile_list.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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: array_data_model.js 5 // require: array_data_model.js
6 // require: list_selection_model.js 6 // require: list_selection_model.js
7 // require: list_selection_controller.js 7 // require: list_selection_controller.js
8 // require: list_item.js 8 // require: list_item.js
9 9
10 /** 10 /**
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 this.beforeFiller_ = this.ownerDocument.createElement('div'); 341 this.beforeFiller_ = this.ownerDocument.createElement('div');
342 this.afterFiller_ = this.ownerDocument.createElement('div'); 342 this.afterFiller_ = this.ownerDocument.createElement('div');
343 this.beforeFiller_.className = 'spacer'; 343 this.beforeFiller_.className = 'spacer';
344 this.afterFiller_.className = 'spacer'; 344 this.afterFiller_.className = 'spacer';
345 this.appendChild(this.beforeFiller_); 345 this.appendChild(this.beforeFiller_);
346 this.appendChild(this.afterFiller_); 346 this.appendChild(this.afterFiller_);
347 347
348 var length = this.dataModel ? this.dataModel.length : 0; 348 var length = this.dataModel ? this.dataModel.length : 0;
349 this.selectionModel = new ListSelectionModel(length); 349 this.selectionModel = new ListSelectionModel(length);
350 350
351 this.addEventListener('dblclick', this.handleDoubleClick_);
351 this.addEventListener('mousedown', this.handleMouseDownUp_); 352 this.addEventListener('mousedown', this.handleMouseDownUp_);
352 this.addEventListener('mouseup', this.handleMouseDownUp_); 353 this.addEventListener('mouseup', this.handleMouseDownUp_);
353 this.addEventListener('keydown', this.handleKeyDown); 354 this.addEventListener('keydown', this.handleKeyDown);
354 this.addEventListener('focus', this.handleElementFocus_, true); 355 this.addEventListener('focus', this.handleElementFocus_, true);
355 this.addEventListener('blur', this.handleElementBlur_, true); 356 this.addEventListener('blur', this.handleElementBlur_, true);
356 this.addEventListener('scroll', this.redraw.bind(this)); 357 this.addEventListener('scroll', this.redraw.bind(this));
357 this.setAttribute('role', 'listbox'); 358 this.setAttribute('role', 'listbox');
358 359
359 // Make list focusable 360 // Make list focusable
360 if (!this.hasAttribute('tabindex')) 361 if (!this.hasAttribute('tabindex'))
(...skipping 22 matching lines...) Expand all
383 * @private 384 * @private
384 */ 385 */
385 getItemSize_: function() { 386 getItemSize_: function() {
386 if (!this.measured_ || !this.measured_.height) { 387 if (!this.measured_ || !this.measured_.height) {
387 this.measured_ = measureItem(this); 388 this.measured_ = measureItem(this);
388 } 389 }
389 return this.measured_; 390 return this.measured_;
390 }, 391 },
391 392
392 /** 393 /**
394 * Callback for the double click event.
395 * @param {Event} e The mouse event object.
396 * @private
397 */
398 handleDoubleClick_: function(e) {
399 if (this.disabled)
400 return;
401
402 var target = this.getListItemAncestor(e.target);
403 if (target)
404 this.activateItemAtIndex(this.getIndexOfListItem(target));
405 },
406
407 /**
393 * Callback for mousedown and mouseup events. 408 * Callback for mousedown and mouseup events.
394 * @param {Event} e The mouse event object. 409 * @param {Event} e The mouse event object.
395 * @private 410 * @private
396 */ 411 */
397 handleMouseDownUp_: function(e) { 412 handleMouseDownUp_: function(e) {
398 if (this.disabled) 413 if (this.disabled)
399 return; 414 return;
400 415
401 var target = e.target; 416 var target = e.target;
402 417
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 /** 938 /**
924 * Redraws a single item. 939 * Redraws a single item.
925 * @param {number} index The row index to redraw. 940 * @param {number} index The row index to redraw.
926 */ 941 */
927 redrawItem: function(index) { 942 redrawItem: function(index) {
928 if (index >= this.firstIndex_ && index < this.lastIndex_) { 943 if (index >= this.firstIndex_ && index < this.lastIndex_) {
929 delete this.cachedItems_[index]; 944 delete this.cachedItems_[index];
930 this.redraw(); 945 this.redraw();
931 } 946 }
932 }, 947 },
948
949 /**
950 * Called when a list item is activated, currently only by a double click
951 * event.
952 * @param {number} index The index of the activated item.
953 */
954 activateItemAtIndex: function(index) {
955 },
933 }; 956 };
934 957
935 cr.defineProperty(List, 'disabled', cr.PropertyKind.BOOL_ATTR); 958 cr.defineProperty(List, 'disabled', cr.PropertyKind.BOOL_ATTR);
936 959
937 /** 960 /**
938 * Whether the list or one of its descendents has focus. This is necessary 961 * Whether the list or one of its descendents has focus. This is necessary
939 * because list items can contain controls that can be focused, and for some 962 * because list items can contain controls that can be focused, and for some
940 * purposes (e.g., styling), the list can still be conceptually focused at 963 * purposes (e.g., styling), the list can still be conceptually focused at
941 * that point even though it doesn't actually have the page focus. 964 * that point even though it doesn't actually have the page focus.
942 */ 965 */
943 cr.defineProperty(List, 'hasElementFocus', cr.PropertyKind.BOOL_ATTR); 966 cr.defineProperty(List, 'hasElementFocus', cr.PropertyKind.BOOL_ATTR);
944 967
945 return { 968 return {
946 List: List 969 List: List
947 } 970 }
948 }); 971 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/personal_options_profile_list.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698