| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 * UI component that renders checkboxes for various print options. | 9 * UI component that renders checkboxes for various print options. |
| 10 * @param {!print_preview.PrintTicketStore} printTicketStore Used to monitor | 10 * @param {!print_preview.PrintTicketStore} printTicketStore Used to monitor |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 * @private | 56 * @private |
| 57 */ | 57 */ |
| 58 this.duplexContainer_ = null; | 58 this.duplexContainer_ = null; |
| 59 | 59 |
| 60 /** | 60 /** |
| 61 * Duplex checkbox. | 61 * Duplex checkbox. |
| 62 * @type {HTMLInputElement} | 62 * @type {HTMLInputElement} |
| 63 * @private | 63 * @private |
| 64 */ | 64 */ |
| 65 this.duplexCheckbox_ = null; | 65 this.duplexCheckbox_ = null; |
| 66 |
| 67 /** |
| 68 * Print CSS backgrounds container element. |
| 69 * @type {HTMLElement} |
| 70 * @private |
| 71 */ |
| 72 this.cssBackgroundContainer_ = null; |
| 73 |
| 74 /** |
| 75 * Print CSS backgrounds checkbox. |
| 76 * @type {HTMLInputElement} |
| 77 * @private |
| 78 */ |
| 79 this.cssBackgroundCheckbox_ = null; |
| 66 }; | 80 }; |
| 67 | 81 |
| 68 OtherOptionsSettings.prototype = { | 82 OtherOptionsSettings.prototype = { |
| 69 __proto__: print_preview.Component.prototype, | 83 __proto__: print_preview.Component.prototype, |
| 70 | 84 |
| 71 /** @param {boolean} isEnabled Whether the settings is enabled. */ | 85 /** @param {boolean} isEnabled Whether the settings is enabled. */ |
| 72 set isEnabled(isEnabled) { | 86 set isEnabled(isEnabled) { |
| 73 this.headerFooterCheckbox_.disabled = !isEnabled; | 87 this.headerFooterCheckbox_.disabled = !isEnabled; |
| 74 this.fitToPageCheckbox_.disabled = !isEnabled; | 88 this.fitToPageCheckbox_.disabled = !isEnabled; |
| 75 this.duplexCheckbox_.disabled = !isEnabled; | 89 this.duplexCheckbox_.disabled = !isEnabled; |
| 90 this.cssBackgroundCheckbox_.disabled = !isEnabled; |
| 76 }, | 91 }, |
| 77 | 92 |
| 78 /** @override */ | 93 /** @override */ |
| 79 enterDocument: function() { | 94 enterDocument: function() { |
| 80 print_preview.Component.prototype.enterDocument.call(this); | 95 print_preview.Component.prototype.enterDocument.call(this); |
| 81 this.tracker.add( | 96 this.tracker.add( |
| 82 this.headerFooterCheckbox_, | 97 this.headerFooterCheckbox_, |
| 83 'click', | 98 'click', |
| 84 this.onHeaderFooterCheckboxClick_.bind(this)); | 99 this.onHeaderFooterCheckboxClick_.bind(this)); |
| 85 this.tracker.add( | 100 this.tracker.add( |
| 86 this.fitToPageCheckbox_, | 101 this.fitToPageCheckbox_, |
| 87 'click', | 102 'click', |
| 88 this.onFitToPageCheckboxClick_.bind(this)); | 103 this.onFitToPageCheckboxClick_.bind(this)); |
| 89 this.tracker.add( | 104 this.tracker.add( |
| 90 this.duplexCheckbox_, | 105 this.duplexCheckbox_, |
| 91 'click', | 106 'click', |
| 92 this.onDuplexCheckboxClick_.bind(this)); | 107 this.onDuplexCheckboxClick_.bind(this)); |
| 93 this.tracker.add( | 108 this.tracker.add( |
| 109 this.cssBackgroundCheckbox_, |
| 110 'click', |
| 111 this.onCssBackgroundCheckboxClick_.bind(this)); |
| 112 this.tracker.add( |
| 94 this.printTicketStore_, | 113 this.printTicketStore_, |
| 95 print_preview.PrintTicketStore.EventType.INITIALIZE, | 114 print_preview.PrintTicketStore.EventType.INITIALIZE, |
| 96 this.onPrintTicketStoreChange_.bind(this)); | 115 this.onPrintTicketStoreChange_.bind(this)); |
| 97 this.tracker.add( | 116 this.tracker.add( |
| 98 this.printTicketStore_, | 117 this.printTicketStore_, |
| 99 print_preview.PrintTicketStore.EventType.DOCUMENT_CHANGE, | 118 print_preview.PrintTicketStore.EventType.DOCUMENT_CHANGE, |
| 100 this.onPrintTicketStoreChange_.bind(this)); | 119 this.onPrintTicketStoreChange_.bind(this)); |
| 101 this.tracker.add( | 120 this.tracker.add( |
| 102 this.printTicketStore_, | 121 this.printTicketStore_, |
| 103 print_preview.PrintTicketStore.EventType.CAPABILITIES_CHANGE, | 122 print_preview.PrintTicketStore.EventType.CAPABILITIES_CHANGE, |
| 104 this.onPrintTicketStoreChange_.bind(this)); | 123 this.onPrintTicketStoreChange_.bind(this)); |
| 105 this.tracker.add( | 124 this.tracker.add( |
| 106 this.printTicketStore_, | 125 this.printTicketStore_, |
| 107 print_preview.PrintTicketStore.EventType.TICKET_CHANGE, | 126 print_preview.PrintTicketStore.EventType.TICKET_CHANGE, |
| 108 this.onPrintTicketStoreChange_.bind(this)); | 127 this.onPrintTicketStoreChange_.bind(this)); |
| 109 }, | 128 }, |
| 110 | 129 |
| 111 /** @override */ | 130 /** @override */ |
| 112 exitDocument: function() { | 131 exitDocument: function() { |
| 113 print_preview.Component.prototype.exitDocument.call(this); | 132 print_preview.Component.prototype.exitDocument.call(this); |
| 114 this.headerFooterContainer_ = null; | 133 this.headerFooterContainer_ = null; |
| 115 this.headerFooterCheckbox_ = null; | 134 this.headerFooterCheckbox_ = null; |
| 116 this.fitToPageContainer_ = null; | 135 this.fitToPageContainer_ = null; |
| 117 this.fitToPageCheckbox_ = null; | 136 this.fitToPageCheckbox_ = null; |
| 118 this.duplexContainer_ = null; | 137 this.duplexContainer_ = null; |
| 119 this.duplexCheckbox_ = null; | 138 this.duplexCheckbox_ = null; |
| 139 this.cssBackgroundContainer_ = null; |
| 140 this.cssBackgroundCheckbox_ = null; |
| 120 }, | 141 }, |
| 121 | 142 |
| 122 /** @override */ | 143 /** @override */ |
| 123 decorateInternal: function() { | 144 decorateInternal: function() { |
| 124 this.headerFooterContainer_ = this.getElement().querySelector( | 145 this.headerFooterContainer_ = this.getElement().querySelector( |
| 125 '.header-footer-container'); | 146 '.header-footer-container'); |
| 126 this.headerFooterCheckbox_ = this.headerFooterContainer_.querySelector( | 147 this.headerFooterCheckbox_ = this.headerFooterContainer_.querySelector( |
| 127 '.header-footer-checkbox'); | 148 '.header-footer-checkbox'); |
| 128 this.fitToPageContainer_ = this.getElement().querySelector( | 149 this.fitToPageContainer_ = this.getElement().querySelector( |
| 129 '.fit-to-page-container'); | 150 '.fit-to-page-container'); |
| 130 this.fitToPageCheckbox_ = this.fitToPageContainer_.querySelector( | 151 this.fitToPageCheckbox_ = this.fitToPageContainer_.querySelector( |
| 131 '.fit-to-page-checkbox'); | 152 '.fit-to-page-checkbox'); |
| 132 this.duplexContainer_ = this.getElement().querySelector( | 153 this.duplexContainer_ = this.getElement().querySelector( |
| 133 '.duplex-container'); | 154 '.duplex-container'); |
| 134 this.duplexCheckbox_ = this.duplexContainer_.querySelector( | 155 this.duplexCheckbox_ = this.duplexContainer_.querySelector( |
| 135 '.duplex-checkbox'); | 156 '.duplex-checkbox'); |
| 157 this.cssBackgroundContainer_ = this.getElement().querySelector( |
| 158 '.css-background-container'); |
| 159 this.cssBackgroundCheckbox_ = this.cssBackgroundContainer_.querySelector( |
| 160 '.css-background-checkbox'); |
| 136 }, | 161 }, |
| 137 | 162 |
| 138 /** | 163 /** |
| 139 * Called when the header-footer checkbox is clicked. Updates the print | 164 * Called when the header-footer checkbox is clicked. Updates the print |
| 140 * ticket. | 165 * ticket. |
| 141 * @private | 166 * @private |
| 142 */ | 167 */ |
| 143 onHeaderFooterCheckboxClick_: function() { | 168 onHeaderFooterCheckboxClick_: function() { |
| 144 this.printTicketStore_.updateHeaderFooter( | 169 this.printTicketStore_.updateHeaderFooter( |
| 145 this.headerFooterCheckbox_.checked); | 170 this.headerFooterCheckbox_.checked); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 156 | 181 |
| 157 /** | 182 /** |
| 158 * Called when the duplex checkbox is clicked. Updates the print ticket. | 183 * Called when the duplex checkbox is clicked. Updates the print ticket. |
| 159 * @private | 184 * @private |
| 160 */ | 185 */ |
| 161 onDuplexCheckboxClick_: function() { | 186 onDuplexCheckboxClick_: function() { |
| 162 this.printTicketStore_.updateDuplex(this.duplexCheckbox_.checked); | 187 this.printTicketStore_.updateDuplex(this.duplexCheckbox_.checked); |
| 163 }, | 188 }, |
| 164 | 189 |
| 165 /** | 190 /** |
| 191 * Called when the print CSS backgrounds checkbox is clicked. Updates the |
| 192 * print ticket store. |
| 193 * @private |
| 194 */ |
| 195 onCssBackgroundCheckboxClick_: function() { |
| 196 this.printTicketStore_.updateCssBackground( |
| 197 this.cssBackgroundCheckbox_.checked); |
| 198 }, |
| 199 |
| 200 /** |
| 166 * Called when the print ticket store has changed. Hides or shows the | 201 * Called when the print ticket store has changed. Hides or shows the |
| 167 * setting. | 202 * settings. |
| 168 * @private | 203 * @private |
| 169 */ | 204 */ |
| 170 onPrintTicketStoreChange_: function() { | 205 onPrintTicketStoreChange_: function() { |
| 171 setIsVisible(this.headerFooterContainer_, | 206 setIsVisible(this.headerFooterContainer_, |
| 172 this.printTicketStore_.hasHeaderFooterCapability()); | 207 this.printTicketStore_.hasHeaderFooterCapability()); |
| 173 this.headerFooterCheckbox_.checked = | 208 this.headerFooterCheckbox_.checked = |
| 174 this.printTicketStore_.isHeaderFooterEnabled(); | 209 this.printTicketStore_.isHeaderFooterEnabled(); |
| 175 | 210 |
| 176 setIsVisible(this.fitToPageContainer_, | 211 setIsVisible(this.fitToPageContainer_, |
| 177 this.printTicketStore_.hasFitToPageCapability()); | 212 this.printTicketStore_.hasFitToPageCapability()); |
| 178 this.fitToPageCheckbox_.checked = | 213 this.fitToPageCheckbox_.checked = |
| 179 this.printTicketStore_.isFitToPageEnabled(); | 214 this.printTicketStore_.isFitToPageEnabled(); |
| 180 | 215 |
| 181 setIsVisible(this.duplexContainer_, | 216 setIsVisible(this.duplexContainer_, |
| 182 this.printTicketStore_.hasDuplexCapability()); | 217 this.printTicketStore_.hasDuplexCapability()); |
| 183 this.duplexCheckbox_.checked = this.printTicketStore_.isDuplexEnabled(); | 218 this.duplexCheckbox_.checked = this.printTicketStore_.isDuplexEnabled(); |
| 184 | 219 |
| 220 setIsVisible(this.cssBackgroundContainer_, |
| 221 this.printTicketStore_.hasCssBackgroundCapability()); |
| 222 this.cssBackgroundCheckbox_.checked = |
| 223 this.printTicketStore_.isCssBackgroundEnabled(); |
| 224 |
| 185 if (this.printTicketStore_.hasHeaderFooterCapability() || | 225 if (this.printTicketStore_.hasHeaderFooterCapability() || |
| 186 this.printTicketStore_.hasFitToPageCapability() || | 226 this.printTicketStore_.hasFitToPageCapability() || |
| 187 this.printTicketStore_.hasDuplexCapability()) { | 227 this.printTicketStore_.hasDuplexCapability() || |
| 228 this.printTicketStore_.hasCssBackgroundCapability()) { |
| 188 fadeInOption(this.getElement()); | 229 fadeInOption(this.getElement()); |
| 189 } else { | 230 } else { |
| 190 fadeOutOption(this.getElement()); | 231 fadeOutOption(this.getElement()); |
| 191 } | 232 } |
| 192 } | 233 } |
| 193 }; | 234 }; |
| 194 | 235 |
| 195 // Export | 236 // Export |
| 196 return { | 237 return { |
| 197 OtherOptionsSettings: OtherOptionsSettings | 238 OtherOptionsSettings: OtherOptionsSettings |
| 198 }; | 239 }; |
| 199 }); | 240 }); |
| OLD | NEW |