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) * Creates a ColorSettings object. This object encapsulates all settings and 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * logic related to color selection (color/bw). 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @param {!print_preview.ticket_item.Color} colorTicketItem Used for writing 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * and reading color value. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @constructor 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @extends {print_preview.Component} 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) function ColorSettings(colorTicketItem) { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_preview.Component.call(this); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Used for reading/writing the color value. 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @type {!print_preview.ticket_items.Color} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.colorTicketItem_ = colorTicketItem; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ColorSettings.prototype = { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __proto__: print_preview.Component.prototype, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set isEnabled(isEnabled) { 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.getChildElement('.color-option').disabled = !isEnabled; 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.getChildElement('.bw-option').disabled = !isEnabled; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** @override */ 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enterDocument: function() { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_preview.Component.prototype.enterDocument.call(this); 38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fadeOutOption(this.getElement(), true); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.tracker.add( 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.getChildElement('.color-option'), 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'click', 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.colorTicketItem_.updateValue.bind(this.colorTicketItem_, true)); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.tracker.add( 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.getChildElement('.bw-option'), 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'click', 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.colorTicketItem_.updateValue.bind(this.colorTicketItem_, false)); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.tracker.add( 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.colorTicketItem_, 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) print_preview.ticket_items.TicketItem.EventType.CHANGE, 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.updateState_.bind(this)); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Updates state of the widget. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) updateState_: function() { 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var isColorCapAvailable = this.colorTicketItem_.isCapabilityAvailable(); 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (isColorCapAvailable) { 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fadeInOption(this.getElement()); 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var isColorEnabled = this.colorTicketItem_.getValue(); 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.getChildElement('.color-option').checked = isColorEnabled; 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.getChildElement('.bw-option').checked = !isColorEnabled; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fadeOutOption(this.getElement()); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) this.getElement().setAttribute('aria-hidden', !isColorCapAvailable); 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Export 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return { 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ColorSettings: ColorSettings 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 76