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

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

Issue 7358002: Print Preview: Refactoring layout mode related logic to LayoutSettings class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moving more stuff within CopiesSettings Created 9 years, 5 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 CopiesSettings object. 9 * Creates a CopiesSettings object.
10 * @constructor 10 * @constructor
11 */ 11 */
12 function CopiesSettings() { 12 function CopiesSettings() {
13 this.copiesOption_ = $('copies-option');
13 this.textfield_ = $('copies'); 14 this.textfield_ = $('copies');
14 this.incrementButton_ = $('increment'); 15 this.incrementButton_ = $('increment');
15 this.decrementButton_ = $('decrement'); 16 this.decrementButton_ = $('decrement');
16 // Minimum allowed value for number of copies. 17 // Minimum allowed value for number of copies.
17 this.minValue_ = 1; 18 this.minValue_ = 1;
18 // Maximum allowed value for number of copies. 19 // Maximum allowed value for number of copies.
19 this.maxValue_ = 999; 20 this.maxValue_ = 999;
20 this.collateOption_ = $('collate-option'); 21 this.collateOption_ = $('collate-option');
22 this.collateCheckbox_ = $('collate');
21 this.hint_ = $('copies-hint'); 23 this.hint_ = $('copies-hint');
22 this.twoSidedCheckbox_ = $('two-sided'); 24 this.twoSidedCheckbox_ = $('two-sided');
23 } 25 }
24 26
25 cr.addSingletonGetter(CopiesSettings); 27 cr.addSingletonGetter(CopiesSettings);
26 28
27 CopiesSettings.prototype = { 29 CopiesSettings.prototype = {
28 /** 30 /**
29 * The number of copies represented by the contents of |this.textfield_|. 31 * The number of copies represented by the contents of |this.textfield_|.
30 * If the text is not valid returns |this.minValue_|. 32 * If the text is not valid returns |this.minValue_|.
(...skipping 16 matching lines...) Expand all
47 49
48 /** 50 /**
49 * Getter method for |twoSidedCheckbox_|. 51 * Getter method for |twoSidedCheckbox_|.
50 * @type {HTMLInputElement} 52 * @type {HTMLInputElement}
51 */ 53 */
52 get twoSidedCheckbox() { 54 get twoSidedCheckbox() {
53 return this.twoSidedCheckbox_; 55 return this.twoSidedCheckbox_;
54 }, 56 },
55 57
56 /** 58 /**
59 * Gets the duplex mode for printing.
60 * @return {number} duplex mode.
61 */
62 get duplexMode() {
63 // Constant values matches printing::DuplexMode enum. Not using const
64 // keyword because it is not allowed by JS strict mode.
65 var SIMPLEX = 0;
66 var LONG_EDGE = 1;
67 return !this.twoSidedCheckbox_.checked ? SIMPLEX : LONG_EDGE;
68 },
69
70 /**
57 * @return {boolean} true if |this.textfield_| is empty, or represents a 71 * @return {boolean} true if |this.textfield_| is empty, or represents a
58 * positive integer value. 72 * positive integer value.
59 */ 73 */
60 isValid: function() { 74 isValid: function() {
61 return !this.textfield_.value || isPositiveInteger(this.textfield_.value); 75 return !this.textfield_.value || isPositiveInteger(this.textfield_.value);
62 }, 76 },
63 77
64 /** 78 /**
79 * Checks whether the preview collate setting value is set or not.
80 *
Evan Stade 2011/07/15 19:47:21 remove blank line
81 * @return {boolean} true if collate option is enabled and checked.
82 */
83 isCollated: function() {
84 return !this.collateOption_.hidden && this.collateCheckbox_.checked;
85 },
86
87 /**
65 * Resets |this.textfield_| to |this.minValue_|. 88 * Resets |this.textfield_| to |this.minValue_|.
66 * @private 89 * @private
67 */ 90 */
68 reset_: function() { 91 reset_: function() {
69 this.textfield_.value = this.minValue_; 92 this.textfield_.value = this.minValue_;
70 }, 93 },
71 94
72 /** 95 /**
73 * Listener function to execute whenever the increment/decrement buttons are 96 * Listener function to execute whenever the increment/decrement buttons are
74 * clicked. 97 * clicked.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 addEventListeners: function() { 136 addEventListeners: function() {
114 this.textfield_.oninput = this.onTextfieldChanged_.bind(this); 137 this.textfield_.oninput = this.onTextfieldChanged_.bind(this);
115 this.incrementButton_.onclick = this.onIncrementButtonClicked_.bind(this); 138 this.incrementButton_.onclick = this.onIncrementButtonClicked_.bind(this);
116 this.decrementButton_.onclick = this.onDecrementButtonClicked_.bind(this); 139 this.decrementButton_.onclick = this.onDecrementButtonClicked_.bind(this);
117 this.twoSidedCheckbox_.onclick = function() { 140 this.twoSidedCheckbox_.onclick = function() {
118 if (!hasPendingPreviewRequest) 141 if (!hasPendingPreviewRequest)
119 updatePrintSummary(); 142 updatePrintSummary();
120 } 143 }
121 document.addEventListener('PDFLoaded', 144 document.addEventListener('PDFLoaded',
122 this.updateButtonsState_.bind(this)); 145 this.updateButtonsState_.bind(this));
146 document.addEventListener('printerCapabilitiesUpdated',
147 this.onPrinterCapabilitiesUpdated_.bind(this));
123 }, 148 },
124 149
125 /** 150 /**
151 * Listener triggered when a printerCapabilitiesUpdated event occurs.
152 * @private
153 */
154 onPrinterCapabilitiesUpdated_: function(e) {
155 if (e.printerCapabilities.disableCopiesOption) {
156 fadeOutElement(this.copiesOption_);
157 $('hr-before-copies').classList.remove('invisible');
158 } else {
159 fadeInElement(this.copiesOption_);
160 $('hr-before-copies').classList.add('invisible');
161 }
162 this.twoSidedCheckbox_.checked = e.printerCapabilities.setDuplexAsDefault;
163 },
164
165 /**
126 * Listener triggered when |incrementButton_| is clicked. 166 * Listener triggered when |incrementButton_| is clicked.
127 * @private 167 * @private
128 */ 168 */
129 onIncrementButtonClicked_: function() { 169 onIncrementButtonClicked_: function() {
130 this.onButtonClicked_(1); 170 this.onButtonClicked_(1);
131 }, 171 },
132 172
133 /** 173 /**
134 * Listener triggered when |decrementButton_| is clicked. 174 * Listener triggered when |decrementButton_| is clicked.
135 * @private 175 * @private
(...skipping 27 matching lines...) Expand all
163 this.decrementButton_.disabled = this.numberOfCopies == this.minValue_; 203 this.decrementButton_.disabled = this.numberOfCopies == this.minValue_;
164 fadeOutElement(this.hint_); 204 fadeOutElement(this.hint_);
165 } 205 }
166 } 206 }
167 }; 207 };
168 208
169 return { 209 return {
170 CopiesSettings: CopiesSettings, 210 CopiesSettings: CopiesSettings,
171 }; 211 };
172 }); 212 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698