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