15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cr.define('print_preview', function() {
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  'use strict';
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * UI component that renders checkboxes for various print options.
1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)   * @param {!print_preview.ticket_items.Duplex} duplex Duplex ticket item.
1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)   * @param {!print_preview.ticket_items.FitToPage} fitToPage Fit-to-page ticket
1290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)   *     item.
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)   * @param {!print_preview.ticket_items.CssBackground} cssBackground CSS
1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)   *     background ticket item.
1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)   * @param {!print_preview.ticket_items.SelectionOnly} selectionOnly Selection
1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)   *     only ticket item.
1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)   * @param {!print_preview.ticket_items.HeaderFooter} headerFooter Header
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)   *     footer ticket item.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @constructor
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @extends {print_preview.Component}
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  function OtherOptionsSettings(
2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      duplex, fitToPage, cssBackground, selectionOnly, headerFooter) {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    print_preview.Component.call(this);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * Duplex ticket item, used to read/write the duplex selection.
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @type {!print_preview.ticket_items.Duplex}
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @private
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     */
3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    this.duplexTicketItem_ = duplex;
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    /**
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * Fit-to-page ticket item, used to read/write the fit-to-page selection.
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @type {!print_preview.ticket_items.FitToPage}
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @private
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     */
3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    this.fitToPageTicketItem_ = fitToPage;
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    /**
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * Enable CSS backgrounds ticket item, used to read/write.
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @type {!print_preview.ticket_items.CssBackground}
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @private
44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     */
4590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    this.cssBackgroundTicketItem_ = cssBackground;
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    /**
48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * Print selection only ticket item, used to read/write.
49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @type {!print_preview.ticket_items.SelectionOnly}
50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @private
51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     */
5290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    this.selectionOnlyTicketItem_ = selectionOnly;
53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    /**
5590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     * Header-footer ticket item, used to read/write.
5690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     * @type {!print_preview.ticket_items.HeaderFooter}
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
5990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    this.headerFooterTicketItem_ = headerFooter;
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Header footer container element.
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @type {HTMLElement}
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    this.headerFooterContainer_ = null;
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Header footer checkbox.
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @type {HTMLInputElement}
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    this.headerFooterCheckbox_ = null;
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Fit-to-page container element.
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @type {HTMLElement}
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    this.fitToPageContainer_ = null;
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Fit-to-page checkbox.
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @type {HTMLInputElement}
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    this.fitToPageCheckbox_ = null;
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Duplex container element.
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @type {HTMLElement}
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    this.duplexContainer_ = null;
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Duplex checkbox.
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @type {HTMLInputElement}
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    this.duplexCheckbox_ = null;
1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Print CSS backgrounds container element.
1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @type {HTMLElement}
1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @private
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    this.cssBackgroundContainer_ = null;
1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Print CSS backgrounds checkbox.
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @type {HTMLInputElement}
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @private
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    this.cssBackgroundCheckbox_ = null;
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Print selection only container element.
1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @type {HTMLElement}
1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @private
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    this.selectionOnlyContainer_ = null;
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Print selection only checkbox.
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @type {HTMLInputElement}
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @private
1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    this.selectionOnlyCheckbox_ = null;
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OtherOptionsSettings.prototype = {
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    __proto__: print_preview.Component.prototype,
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /** @param {boolean} isEnabled Whether the settings is enabled. */
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    set isEnabled(isEnabled) {
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.headerFooterCheckbox_.disabled = !isEnabled;
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.fitToPageCheckbox_.disabled = !isEnabled;
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.duplexCheckbox_.disabled = !isEnabled;
1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.cssBackgroundCheckbox_.disabled = !isEnabled;
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /** @override */
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    enterDocument: function() {
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      print_preview.Component.prototype.enterDocument.call(this);
146a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      fadeOutOption(this.getElement(), true);
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.tracker.add(
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          this.headerFooterCheckbox_,
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'click',
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          this.onHeaderFooterCheckboxClick_.bind(this));
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.tracker.add(
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          this.fitToPageCheckbox_,
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'click',
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          this.onFitToPageCheckboxClick_.bind(this));
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.tracker.add(
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          this.duplexCheckbox_,
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'click',
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          this.onDuplexCheckboxClick_.bind(this));
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.tracker.add(
1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          this.cssBackgroundCheckbox_,
1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          'click',
1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          this.onCssBackgroundCheckboxClick_.bind(this));
1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.tracker.add(
1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          this.selectionOnlyCheckbox_,
1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          'click',
1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          this.onSelectionOnlyCheckboxClick_.bind(this));
1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.tracker.add(
168c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.duplexTicketItem_,
169c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          print_preview.ticket_items.TicketItem.EventType.CHANGE,
170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.onDuplexChange_.bind(this));
171c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.tracker.add(
172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.fitToPageTicketItem_,
173c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          print_preview.ticket_items.TicketItem.EventType.CHANGE,
174c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.onFitToPageChange_.bind(this));
175c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.tracker.add(
176c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.cssBackgroundTicketItem_,
177c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          print_preview.ticket_items.TicketItem.EventType.CHANGE,
178c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.onCssBackgroundChange_.bind(this));
179c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.tracker.add(
180c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.selectionOnlyTicketItem_,
181c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          print_preview.ticket_items.TicketItem.EventType.CHANGE,
182c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.onSelectionOnlyChange_.bind(this));
18390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      this.tracker.add(
18490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)          this.headerFooterTicketItem_,
18590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)          print_preview.ticket_items.TicketItem.EventType.CHANGE,
18690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)          this.onHeaderFooterChange_.bind(this));
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /** @override */
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exitDocument: function() {
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      print_preview.Component.prototype.exitDocument.call(this);
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.headerFooterContainer_ = null;
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.headerFooterCheckbox_ = null;
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.fitToPageContainer_ = null;
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.fitToPageCheckbox_ = null;
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.duplexContainer_ = null;
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.duplexCheckbox_ = null;
1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.cssBackgroundContainer_ = null;
1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.cssBackgroundCheckbox_ = null;
2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.selectionOnlyContainer_ = null;
2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.selectionOnlyCheckbox_ = null;
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /** @override */
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    decorateInternal: function() {
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.headerFooterContainer_ = this.getElement().querySelector(
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          '.header-footer-container');
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.headerFooterCheckbox_ = this.headerFooterContainer_.querySelector(
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          '.header-footer-checkbox');
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.fitToPageContainer_ = this.getElement().querySelector(
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          '.fit-to-page-container');
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.fitToPageCheckbox_ = this.fitToPageContainer_.querySelector(
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          '.fit-to-page-checkbox');
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.duplexContainer_ = this.getElement().querySelector(
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          '.duplex-container');
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.duplexCheckbox_ = this.duplexContainer_.querySelector(
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          '.duplex-checkbox');
2182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.cssBackgroundContainer_ = this.getElement().querySelector(
2192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          '.css-background-container');
2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.cssBackgroundCheckbox_ = this.cssBackgroundContainer_.querySelector(
2212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          '.css-background-checkbox');
2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.selectionOnlyContainer_ = this.getElement().querySelector(
2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          '.selection-only-container');
2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.selectionOnlyCheckbox_ = this.selectionOnlyContainer_.querySelector(
2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          '.selection-only-checkbox');
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
229c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * Updates the state of the entire other options settings area.
230c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @private
231c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     */
232c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    updateContainerState_: function() {
23390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      if (this.headerFooterTicketItem_.isCapabilityAvailable() ||
234c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.fitToPageTicketItem_.isCapabilityAvailable() ||
235c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.duplexTicketItem_.isCapabilityAvailable() ||
236c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.cssBackgroundTicketItem_.isCapabilityAvailable() ||
237c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.selectionOnlyTicketItem_.isCapabilityAvailable()) {
238cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        setIsVisible(this.headerFooterContainer_,
239cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                     this.headerFooterTicketItem_.isCapabilityAvailable());
240cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        setIsVisible(this.fitToPageContainer_,
241cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                     this.fitToPageTicketItem_.isCapabilityAvailable());
242cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        setIsVisible(this.duplexContainer_,
243cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                     this.duplexTicketItem_.isCapabilityAvailable());
244cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        setIsVisible(this.cssBackgroundContainer_,
245cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                     this.cssBackgroundTicketItem_.isCapabilityAvailable());
246cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        setIsVisible(this.selectionOnlyContainer_,
247cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                     this.selectionOnlyTicketItem_.isCapabilityAvailable());
248c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        fadeInOption(this.getElement());
249c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      } else {
250c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        fadeOutOption(this.getElement());
251c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      }
252c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    },
253c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
254c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    /**
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Called when the header-footer checkbox is clicked. Updates the print
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * ticket.
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    onHeaderFooterCheckboxClick_: function() {
26090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      this.headerFooterTicketItem_.updateValue(
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          this.headerFooterCheckbox_.checked);
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Called when the fit-to-page checkbox is clicked. Updates the print
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * ticket.
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    onFitToPageCheckboxClick_: function() {
270c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.fitToPageTicketItem_.updateValue(this.fitToPageCheckbox_.checked);
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Called when the duplex checkbox is clicked. Updates the print ticket.
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    onDuplexCheckboxClick_: function() {
278c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.duplexTicketItem_.updateValue(this.duplexCheckbox_.checked);
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
2822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Called when the print CSS backgrounds checkbox is clicked. Updates the
2832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * print ticket store.
2842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @private
2852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
2862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    onCssBackgroundCheckboxClick_: function() {
287c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.cssBackgroundTicketItem_.updateValue(
2882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          this.cssBackgroundCheckbox_.checked);
2892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    },
2902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
2922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Called when the print selection only is clicked. Updates the
2932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * print ticket store.
2942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @private
2952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
2962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    onSelectionOnlyCheckboxClick_: function() {
297c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.selectionOnlyTicketItem_.updateValue(
2982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          this.selectionOnlyCheckbox_.checked);
2992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    },
3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
302c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * Called when the duplex ticket item has changed. Updates the duplex
303c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * checkbox.
304c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @private
305c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     */
306c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    onDuplexChange_: function() {
307c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.duplexCheckbox_.checked = this.duplexTicketItem_.getValue();
308c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.updateContainerState_();
309c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    },
310c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
311c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    /**
312c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * Called when the fit-to-page ticket item has changed. Updates the
313c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * fit-to-page checkbox.
314c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @private
315c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     */
316c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    onFitToPageChange_: function() {
317c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.fitToPageCheckbox_.checked = this.fitToPageTicketItem_.getValue();
318c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.updateContainerState_();
319c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    },
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
321c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    /**
322c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * Called when the CSS background ticket item has changed. Updates the
323c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * CSS background checkbox.
324c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @private
325c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     */
326c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    onCssBackgroundChange_: function() {
3272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.cssBackgroundCheckbox_.checked =
328c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.cssBackgroundTicketItem_.getValue();
329c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.updateContainerState_();
330c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    },
3312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
332c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    /**
333c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * Called when the print selection only ticket item has changed. Updates the
334c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * CSS background checkbox.
335c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     * @private
336c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)     */
337c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    onSelectionOnlyChange_: function() {
3382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this.selectionOnlyCheckbox_.checked =
339c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          this.selectionOnlyTicketItem_.getValue();
340c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      this.updateContainerState_();
34190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    },
34290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
34390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    /**
34490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     * Called when the header-footer ticket item has changed. Updates the
34590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     * header-footer checkbox.
34690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     * @private
34790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     */
34890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    onHeaderFooterChange_: function() {
34990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      this.headerFooterCheckbox_.checked =
35090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)          this.headerFooterTicketItem_.getValue();
35190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      this.updateContainerState_();
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Export
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return {
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    OtherOptionsSettings: OtherOptionsSettings
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)});
360