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

Side by Side Diff: chrome/browser/resources/print_preview/page_settings.js

Issue 7550022: Print Preview: Fixing behavior of event listeners. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing comments Created 9 years, 4 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
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 cr.define('print_preview', function() { 5 cr.define('print_preview', function() {
6 'use strict'; 6 'use strict';
7 7
8 /** 8 /**
9 * Creates a PageSettings object. This object encapsulates all settings and 9 * Creates a PageSettings object. This object encapsulates all settings and
10 * logic related to page selection. 10 * logic related to page selection.
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 */ 315 */
316 onSelectedPagesRadioButtonChecked_: function() { 316 onSelectedPagesRadioButtonChecked_: function() {
317 this.selectedPagesTextfield_.focus(); 317 this.selectedPagesTextfield_.focus();
318 }, 318 },
319 319
320 /** 320 /**
321 * Listener executing when an input event occurs in 321 * Listener executing when an input event occurs in
322 * |this.selectedPagesTextfield|. Ensures that 322 * |this.selectedPagesTextfield|. Ensures that
323 * |this.selectedPagesTextfield| is non-empty before checking 323 * |this.selectedPagesTextfield| is non-empty before checking
324 * |this.selectedPagesRadioButton|. 324 * |this.selectedPagesRadioButton|.
325 * @private
325 */ 326 */
326 onSelectedPagesTextfieldInput: function() { 327 onSelectedPagesTextfieldInput_: function() {
327 if (this.selectedPagesText.length) 328 if (this.selectedPagesText.length)
328 this.selectedPagesRadioButton.checked = true; 329 this.selectedPagesRadioButton.checked = true;
329 if (!hasPendingPreviewRequest) { 330 this.resetSelectedPagesTextfieldTimer_();
330 this.resetSelectedPagesTextfieldTimer_();
331 }
332 }, 331 },
333 332
334 /** 333 /**
335 * Adding listeners to all pages related controls. The listeners take care 334 * Adding listeners to all pages related controls. The listeners take care
336 * of altering their behavior depending on |hasPendingPreviewRequest|. 335 * of altering their behavior depending on |hasPendingPreviewRequest|.
337 */ 336 */
338 addEventListeners: function() { 337 addEventListeners: function() {
339 this.allPagesRadioButton.onclick = function() { 338 this.allPagesRadioButton.onclick =
340 if (hasPendingPreviewRequest) 339 this.onSelectedPagesMayHaveChanged_.bind(this);
341 cr.dispatchSimpleEvent(document, 'updatePrintButton'); 340 this.selectedPagesRadioButton.onclick =
342 else 341 this.onSelectedPagesMayHaveChanged_.bind(this);
343 this.onSelectedPagesMayHaveChanged_();
344 }.bind(this);
345
346 this.selectedPagesRadioButton.onclick = function() {
347 if (!hasPendingPreviewRequest)
348 this.onSelectedPagesMayHaveChanged_();
349 }.bind(this);
350
351 this.selectedPagesTextfield.oninput = 342 this.selectedPagesTextfield.oninput =
352 this.onSelectedPagesTextfieldInput.bind(this); 343 this.onSelectedPagesTextfieldInput_.bind(this);
353 344 this.selectedPagesTextfield.onfocus =
354 this.selectedPagesTextfield.onfocus = function() { 345 this.addTimerToSelectedPagesTextfield_.bind(this);
355 if (!hasPendingPreviewRequest)
356 this.addTimerToSelectedPagesTextfield_();
357 }.bind(this);
358 346
359 // Handler for the blur event on |this.selectedPagesTextfield|. Un-checks 347 // Handler for the blur event on |this.selectedPagesTextfield|. Un-checks
360 // |this.selectedPagesRadioButton| if the input field is empty. 348 // |this.selectedPagesRadioButton| if the input field is empty.
361 this.selectedPagesTextfield.onblur = function() { 349 this.selectedPagesTextfield.onblur = function() {
362 if (!this.selectedPagesText.length) 350 if (!this.selectedPagesText.length)
363 this.allPagesRadioButton_.checked = true; 351 this.allPagesRadioButton_.checked = true;
364 352
365 if (hasPendingPreviewRequest) { 353 clearTimeout(this.timerId_);
366 this.validateSelectedPages_(); 354 this.onSelectedPagesMayHaveChanged_();
367 cr.dispatchSimpleEvent(document, 'updatePrintButton');
368 } else {
369 clearTimeout(this.timerId_);
370 this.onSelectedPagesMayHaveChanged_();
371 }
372 }.bind(this); 355 }.bind(this);
373 } 356 }
374 }; 357 };
375 358
376 return { 359 return {
377 PageSettings: PageSettings, 360 PageSettings: PageSettings,
378 }; 361 };
379 }); 362 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/print_preview/layout_settings.js ('k') | chrome/browser/resources/print_preview/print_preview.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698