1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 cr
.define('print_preview', function() {
9 * Print options section to control printer advanced options.
10 * @param {!print_preview.ticket_item.VendorItems} ticketItem Ticket item to
11 * check settings availability.
12 * @param {!print_preview.DestinationStore} destinationStore Used to determine
13 * the selected destination.
15 * @extends {print_preview.SettingsSection}
17 function AdvancedOptionsSettings(ticketItem
, destinationStore
) {
18 print_preview
.SettingsSection
.call(this);
21 * Ticket item to check settings availability.
22 * @private {!print_preview.ticket_items.VendorItems}
24 this.ticketItem_
= ticketItem
;
27 * Used to determine the selected destination.
28 * @private {!print_preview.DestinationStore}
30 this.destinationStore_
= destinationStore
;
34 * Event types dispatched by the component.
37 AdvancedOptionsSettings
.EventType
= {
38 BUTTON_ACTIVATED
: 'print_preview.AdvancedOptionsSettings.BUTTON_ACTIVATED'
41 AdvancedOptionsSettings
.prototype = {
42 __proto__
: print_preview
.SettingsSection
.prototype,
45 isAvailable: function() {
46 return this.ticketItem_
.isCapabilityAvailable();
50 hasCollapsibleContent: function() {
51 return this.isAvailable();
54 /** @param {boolean} isEnabled Whether the component is enabled. */
55 set isEnabled(isEnabled
) {
56 this.getButton_().disabled
= !isEnabled
;
60 enterDocument: function() {
61 print_preview
.SettingsSection
.prototype.enterDocument
.call(this);
64 this.getButton_(), 'click', function() {
65 cr
.dispatchSimpleEvent(
66 this, AdvancedOptionsSettings
.EventType
.BUTTON_ACTIVATED
);
69 this.destinationStore_
,
70 print_preview
.DestinationStore
.EventType
.DESTINATION_SELECT
,
71 this.onDestinationChanged_
.bind(this));
73 this.destinationStore_
,
74 print_preview
.DestinationStore
.EventType
.
75 SELECTED_DESTINATION_CAPABILITIES_READY
,
76 this.onDestinationChanged_
.bind(this));
80 * @return {HTMLElement}
83 getButton_: function() {
84 return this.getChildElement('.advanced-options-settings-button');
88 * Called when the destination selection has changed. Updates UI elements.
91 onDestinationChanged_: function() {
92 this.updateUiStateInternal();
98 AdvancedOptionsSettings
: AdvancedOptionsSettings