diff options
Diffstat (limited to 'chrome/browser/resources/print_preview/copies_settings.js')
-rw-r--r-- | chrome/browser/resources/print_preview/copies_settings.js | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/chrome/browser/resources/print_preview/copies_settings.js b/chrome/browser/resources/print_preview/copies_settings.js deleted file mode 100644 index b5b94e9..0000000 --- a/chrome/browser/resources/print_preview/copies_settings.js +++ /dev/null @@ -1,248 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -cr.define('print_preview', function() { - 'use strict'; - - /** - * Creates a CopiesSettings object. - * @constructor - */ - function CopiesSettings() { - this.copiesOption_ = $('copies-option'); - this.textfield_ = $('copies'); - this.incrementButton_ = $('increment'); - this.decrementButton_ = $('decrement'); - // Minimum allowed value for number of copies. - this.minValue_ = 1; - // Maximum allowed value for number of copies. - this.maxValue_ = 999; - this.collateOption_ = $('collate-option'); - this.collateCheckbox_ = $('collate'); - this.hint_ = $('copies-hint'); - this.twoSidedCheckbox_ = $('two-sided'); - this.twoSidedOption_ = $('two-sided-option'); - - this.previousDuplexMode_ = CopiesSettings.UNKNOWN_DUPLEX_MODE; - this.addEventListeners_(); - } - - // Constant values matches printing::DuplexMode enum. - CopiesSettings.SIMPLEX = 0; - CopiesSettings.LONG_EDGE = 1; - CopiesSettings.UNKNOWN_DUPLEX_MODE = -1; - - cr.addSingletonGetter(CopiesSettings); - - CopiesSettings.prototype = { - /** - * The number of copies represented by the contents of |this.textfield_|. - * If the text is not valid returns |this.minValue_|. - * @type {number} - */ - get numberOfCopies() { - var value = parseInt(this.textfield_.value, 10); - if (!value || value <= this.minValue_) - value = this.minValue_; - return value; - }, - - /** - * Getter method for |collateOption_|. - * @type {HTMLElement} - */ - get collateOption() { - return this.collateOption_; - }, - - /** - * Getter method for |twoSidedCheckbox_|. - * @type {HTMLInputElement} - */ - get twoSidedCheckbox() { - return this.twoSidedCheckbox_; - }, - - /** - * Gets the duplex mode information for printing. - * @return {number} duplex mode. - */ - get duplexMode() { - if (this.twoSidedOption_.hidden) - return CopiesSettings.UNKNOWN_DUPLEX_MODE; - else if (this.twoSidedCheckbox_.checked) - return CopiesSettings.LONG_EDGE; - else - return CopiesSettings.SIMPLEX; - }, - - set previousDuplexMode(duplexMode) { - this.previousDuplexMode_ = duplexMode; - }, - - /** - * @return {boolean} true if |this.textfield_| is empty, or represents a - * positive integer value. - */ - isValid: function() { - return !this.textfield_.value || isPositiveInteger(this.textfield_.value); - }, - - /** - * Checks whether the preview collate setting value is set or not. - * @return {boolean} true if collate option is enabled and checked. - */ - isCollated: function() { - return !this.collateOption_.hidden && this.collateCheckbox_.checked; - }, - - /** - * Resets |this.textfield_| to |this.minValue_|. - * @private - */ - reset_: function() { - this.textfield_.value = this.minValue_; - }, - - /** - * Listener function to execute whenever the increment/decrement buttons are - * clicked. - * @private - * @param {int} sign Must be 1 for an increment button click and -1 for a - * decrement button click. - */ - onButtonClicked_: function(sign) { - if (!this.isValid()) { - this.reset_(); - } else { - var newValue = this.numberOfCopies + sign; - this.textfield_.value = newValue; - } - this.updateButtonsState_(); - this.showHideCollateOption_(); - - if (!hasPendingPreviewRequest) { - cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY); - cr.dispatchSimpleEvent(document, customEvents.UPDATE_PRINT_BUTTON); - } - }, - - /** - * Listener function to execute whenever a change occurs in |textfield_| - * textfield. - * @private - */ - onTextfieldChanged_: function() { - this.updateButtonsState_(); - this.showHideCollateOption_(); - if (!hasPendingPreviewRequest) { - cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY); - cr.dispatchSimpleEvent(document, customEvents.UPDATE_PRINT_BUTTON); - } - }, - - /** - * Adding listeners to all copies related controls. The listeners take care - * of altering their behavior depending on |hasPendingPreviewRequest|. - * @private - */ - addEventListeners_: function() { - this.textfield_.oninput = this.onTextfieldChanged_.bind(this); - this.incrementButton_.onclick = this.onIncrementButtonClicked_.bind(this); - this.decrementButton_.onclick = this.onDecrementButtonClicked_.bind(this); - this.twoSidedCheckbox_.onclick = function() { - if (!hasPendingPreviewRequest) - cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY); - } - document.addEventListener(customEvents.PDF_LOADED, - this.updateButtonsState_.bind(this)); - document.addEventListener(customEvents.PRINTER_CAPABILITIES_UPDATED, - this.onPrinterCapabilitiesUpdated_.bind(this)); - }, - - /** - * Executes when a |customEvents.PRINTER_CAPABILITIES_UPDATED| event occurs. - * @private - */ - onPrinterCapabilitiesUpdated_: function(e) { - var duplexValue = e.printerCapabilities.printerDefaultDuplexValue; - if (duplexValue != CopiesSettings.UNKNOWN_DUPLEX_MODE && - this.previousDuplexMode_ != CopiesSettings.UNKNOWN_DUPLEX_MODE) { - duplexValue = this.previousDuplexMode_; - } - this.updateTwoSidedOption_(duplexValue); - e.printerCapabilities.disableCopiesOption ? - fadeOutOption(this.copiesOption_) : - fadeInOption(this.copiesOption_); - }, - - /** - * Listener triggered when |incrementButton_| is clicked. - * @private - */ - onIncrementButtonClicked_: function() { - this.onButtonClicked_(1); - }, - - /** - * Listener triggered when |decrementButton_| is clicked. - * @private - */ - onDecrementButtonClicked_: function() { - this.onButtonClicked_(-1); - }, - - /** - * Takes care of showing/hiding the collate option. - * @private - */ - showHideCollateOption_: function() { - this.collateOption_.hidden = this.numberOfCopies <= 1; - }, - - /* - * Takes care of showing/hiding the two sided option. - * @param {number} defaultDuplexValue Specifies the default duplex value. - * @private - */ - updateTwoSidedOption_: function(defaultDuplexValue) { - // On Windows, some printers don't specify their duplex values in the - // printer schema. If the printer duplex value is UNKNOWN_DUPLEX_MODE, - // hide the two sided option in preview tab UI. - // Ref bug: http://crbug.com/89204 - this.twoSidedOption_.hidden = - (defaultDuplexValue == CopiesSettings.UNKNOWN_DUPLEX_MODE); - - if (!this.twoSidedOption_.hidden) { - this.twoSidedCheckbox_.checked = !!defaultDuplexValue; - if (pageSettings.totalPageCount) - cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY); - } - }, - - /** - * Updates the state of the increment/decrement buttons based on the current - * |textfield_| value. - * @private - */ - updateButtonsState_: function() { - if (!this.isValid()) { - this.textfield_.classList.add('invalid'); - this.incrementButton_.disabled = false; - this.decrementButton_.disabled = false; - fadeInElement(this.hint_); - } else { - this.textfield_.classList.remove('invalid'); - this.incrementButton_.disabled = this.numberOfCopies == this.maxValue_; - this.decrementButton_.disabled = this.numberOfCopies == this.minValue_; - fadeOutElement(this.hint_); - } - this.hint_.setAttribute('aria-hidden', this.isValid()); - } - }; - - return { - CopiesSettings: CopiesSettings - }; -}); |