local_parsers.js revision 5821806d5e7f356e8fa4b058a389a808ea183019
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) /** Namespace that contains a method to parse local print destinations. */ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function LocalDestinationParser() {}; 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Parses a local print destination. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {!Object} destinationInfo Information describing a local print 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * destination. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return {!print_preview.Destination} Parsed local print destination. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LocalDestinationParser.parse = function(destinationInfo) { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return new print_preview.Destination( 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destinationInfo.deviceName, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_preview.Destination.Type.LOCAL, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destinationInfo.printerName, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false /*isRecent*/, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_preview.Destination.ConnectionStatus.ONLINE); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** Namespace that contains a method to parse local print capabilities. */ 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function LocalCapabilitiesParser() {}; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Parses local print capabilities. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {!Object} settingsInfo Object that describes local print 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * capabilities. 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return {!print_preview.ChromiumCapabilities} Parsed local print 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * capabilities. 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LocalCapabilitiesParser.parse = function(settingsInfo) { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var hasColorCapability = false; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var defaultIsColorEnabled = false; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (hasColorCapability = !settingsInfo['disableColorOption']) { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defaultIsColorEnabled = settingsInfo['setColorAsDefault']; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var hasDuplexCapability = false; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var defaultIsDuplexEnabled = false; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // On Windows, some printers don't specify their duplex values in the 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // printer schema. If the printer duplex value is UNKNOWN_DUPLEX_MODE, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // hide the two sided option in preview tab UI. 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Ref bug: http://crbug.com/89204 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (hasDuplexCapability = 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settingsInfo['printerDefaultDuplexValue'] != 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_preview.NativeLayer.DuplexMode.UNKNOWN_DUPLEX_MODE) { 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defaultIsDuplexEnabled = settingsInfo['setDuplexAsDefault'] || false; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return new print_preview.ChromiumCapabilities( 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !settingsInfo['disableCopiesOption'] /*hasCopiesCapability*/, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '1' /*defaultCopiesStr*/, 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) true /*hasCollateCapability*/, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) true /*defaultIsCollateEnabled*/, 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hasDuplexCapability, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defaultIsDuplexEnabled, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !settingsInfo['disableLandscapeOption'] /*hasOrientationCapability*/, 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false /*defaultIsLandscapeEnabled*/, 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hasColorCapability, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defaultIsColorEnabled); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Export 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return { 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LocalCapabilitiesParser: LocalCapabilitiesParser, 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LocalDestinationParser: LocalDestinationParser 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 74