Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 cr.define('print_preview', function() { | 5 cr.define('print_preview', function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 // TODO(rltoscano): Maybe clear print ticket when destination changes. Or | 8 // TODO(rltoscano): Maybe clear print ticket when destination changes. Or |
| 9 // better yet, carry over any print ticket state that is possible. I.e. if | 9 // better yet, carry over any print ticket state that is possible. I.e. if |
| 10 // destination changes, the new destination might not support duplex anymore, | 10 // destination changes, the new destination might not support duplex anymore, |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 52 * @private | 52 * @private |
| 53 */ | 53 */ |
| 54 this.capabilitiesHolder_ = new print_preview.CapabilitiesHolder(); | 54 this.capabilitiesHolder_ = new print_preview.CapabilitiesHolder(); |
| 55 | 55 |
| 56 /** | 56 /** |
| 57 * Current measurement system. Used to work with margin measurements. | 57 * Current measurement system. Used to work with margin measurements. |
| 58 * @type {!print_preview.MeasurementSystem} | 58 * @type {!print_preview.MeasurementSystem} |
| 59 * @private | 59 * @private |
| 60 */ | 60 */ |
| 61 this.measurementSystem_ = new print_preview.MeasurementSystem( | 61 this.measurementSystem_ = new print_preview.MeasurementSystem( |
| 62 ',', '.', print_preview.MeasurementSystem.UnitType.IMPERIAL); | 62 ',', '.', print_preview.MeasurementSystemUnitType.IMPERIAL); |
| 63 | 63 |
| 64 /** | 64 /** |
| 65 * Collate ticket item. | 65 * Collate ticket item. |
| 66 * @type {!print_preview.ticket_items.Collate} | 66 * @type {!print_preview.ticket_items.Collate} |
| 67 * @private | 67 * @private |
| 68 */ | 68 */ |
| 69 this.collate_ = new print_preview.ticket_items.Collate( | 69 this.collate_ = new print_preview.ticket_items.Collate( |
| 70 this.appState_, this.destinationStore_); | 70 this.appState_, this.destinationStore_); |
| 71 | 71 |
| 72 /** | 72 /** |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 218 this.tracker_ = new EventTracker(); | 218 this.tracker_ = new EventTracker(); |
| 219 | 219 |
| 220 /** | 220 /** |
| 221 * Whether the print preview has been initialized. | 221 * Whether the print preview has been initialized. |
| 222 * @type {boolean} | 222 * @type {boolean} |
| 223 * @private | 223 * @private |
| 224 */ | 224 */ |
| 225 this.isInitialized_ = false; | 225 this.isInitialized_ = false; |
| 226 | 226 |
| 227 this.addEventListeners_(); | 227 this.addEventListeners_(); |
| 228 }; | 228 } |
| 229 | 229 |
| 230 /** | 230 /** |
| 231 * Event types dispatched by the print ticket store. | 231 * Event types dispatched by the print ticket store. |
| 232 * @enum {string} | 232 * @enum {string} |
| 233 */ | 233 */ |
| 234 PrintTicketStore.EventType = { | 234 PrintTicketStore.EventType = { |
| 235 CAPABILITIES_CHANGE: 'print_preview.PrintTicketStore.CAPABILITIES_CHANGE', | 235 CAPABILITIES_CHANGE: 'print_preview.PrintTicketStore.CAPABILITIES_CHANGE', |
| 236 DOCUMENT_CHANGE: 'print_preview.PrintTicketStore.DOCUMENT_CHANGE', | 236 DOCUMENT_CHANGE: 'print_preview.PrintTicketStore.DOCUMENT_CHANGE', |
| 237 INITIALIZE: 'print_preview.PrintTicketStore.INITIALIZE', | 237 INITIALIZE: 'print_preview.PrintTicketStore.INITIALIZE', |
| 238 TICKET_CHANGE: 'print_preview.PrintTicketStore.TICKET_CHANGE' | 238 TICKET_CHANGE: 'print_preview.PrintTicketStore.TICKET_CHANGE' |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 322 * local system. | 322 * local system. |
| 323 */ | 323 */ |
| 324 get measurementSystem() { | 324 get measurementSystem() { |
| 325 return this.measurementSystem_; | 325 return this.measurementSystem_; |
| 326 }, | 326 }, |
| 327 | 327 |
| 328 /** | 328 /** |
| 329 * Initializes the print ticket store. Dispatches an INITIALIZE event. | 329 * Initializes the print ticket store. Dispatches an INITIALIZE event. |
| 330 * @param {string} thousandsDelimeter Delimeter of the thousands place. | 330 * @param {string} thousandsDelimeter Delimeter of the thousands place. |
| 331 * @param {string} decimalDelimeter Delimeter of the decimal point. | 331 * @param {string} decimalDelimeter Delimeter of the decimal point. |
| 332 * @param {!print_preview.MeasurementSystem.UnitType} unitType Type of unit | 332 * @param {!print_preview.MeasurementSystemUnitType} unitType Type of unit |
| 333 * of the local measurement system. | 333 * of the local measurement system. |
| 334 * @param {boolean} selectionOnly Whether only selected content should be | 334 * @param {boolean} selectionOnly Whether only selected content should be |
| 335 * printed. | 335 * printed. |
| 336 */ | 336 */ |
| 337 init: function( | 337 init: function( |
| 338 thousandsDelimeter, decimalDelimeter, unitType, selectionOnly) { | 338 thousandsDelimeter, decimalDelimeter, unitType, selectionOnly) { |
| 339 this.measurementSystem_.setSystem(thousandsDelimeter, decimalDelimeter, | 339 this.measurementSystem_.setSystem(thousandsDelimeter, decimalDelimeter, |
| 340 unitType); | 340 unitType); |
| 341 this.selectionOnly_.updateValue(selectionOnly); | 341 this.selectionOnly_.updateValue(selectionOnly); |
| 342 | 342 |
| 343 // Initialize ticket with user's previous values. | 343 // Initialize ticket with user's previous values. |
| 344 if (this.appState_.hasField( | 344 if (this.appState_.hasField( |
| 345 print_preview.AppState.Field.IS_COLOR_ENABLED)) { | 345 print_preview.AppStateField.IS_COLOR_ENABLED)) { |
| 346 this.color_.updateValue( | 346 this.color_.updateValue( |
| 347 /** @type {!Object} */(this.appState_.getField( | 347 /** @type {!Object} */(this.appState_.getField( |
| 348 print_preview.AppState.Field.IS_COLOR_ENABLED))); | 348 print_preview.AppStateField.IS_COLOR_ENABLED))); |
| 349 } | 349 } |
| 350 if (this.appState_.hasField(print_preview.AppState.Field.DPI)) { | 350 if (this.appState_.hasField(print_preview.AppStateField.DPI)) { |
| 351 this.dpi_.updateValue( | 351 this.dpi_.updateValue( |
| 352 /** @type {!Object} */(this.appState_.getField( | 352 /** @type {!Object} */(this.appState_.getField( |
| 353 print_preview.AppState.Field.DPI))); | 353 print_preview.AppStateField.DPI))); |
| 354 } | 354 } |
| 355 if (this.appState_.hasField( | 355 if (this.appState_.hasField( |
| 356 print_preview.AppState.Field.IS_DUPLEX_ENABLED)) { | 356 print_preview.AppStateField.IS_DUPLEX_ENABLED)) { |
| 357 this.duplex_.updateValue( | 357 this.duplex_.updateValue( |
| 358 /** @type {!Object} */(this.appState_.getField( | 358 /** @type {!Object} */(this.appState_.getField( |
| 359 print_preview.AppState.Field.IS_DUPLEX_ENABLED))); | 359 print_preview.AppStateField.IS_DUPLEX_ENABLED))); |
| 360 } | 360 } |
| 361 if (this.appState_.hasField(print_preview.AppState.Field.MEDIA_SIZE)) { | 361 if (this.appState_.hasField(print_preview.AppStateField.MEDIA_SIZE)) { |
| 362 this.mediaSize_.updateValue( | 362 this.mediaSize_.updateValue( |
| 363 /** @type {!Object} */(this.appState_.getField( | 363 /** @type {!Object} */(this.appState_.getField( |
| 364 print_preview.AppState.Field.MEDIA_SIZE))); | 364 print_preview.AppStateField.MEDIA_SIZE))); |
| 365 } | 365 } |
| 366 if (this.appState_.hasField( | 366 if (this.appState_.hasField( |
| 367 print_preview.AppState.Field.IS_LANDSCAPE_ENABLED)) { | 367 print_preview.AppStateField.IS_LANDSCAPE_ENABLED)) { |
| 368 this.landscape_.updateValue( | 368 this.landscape_.updateValue( |
| 369 /** @type {!Object} */(this.appState_.getField( | 369 /** @type {!Object} */(this.appState_.getField( |
| 370 print_preview.AppState.Field.IS_LANDSCAPE_ENABLED))); | 370 print_preview.AppStateField.IS_LANDSCAPE_ENABLED))); |
| 371 } | 371 } |
| 372 // Initialize margins after landscape because landscape may reset margins. | 372 // Initialize margins after landscape because landscape may reset margins. |
| 373 if (this.appState_.hasField(print_preview.AppState.Field.MARGINS_TYPE)) { | 373 if (this.appState_.hasField(print_preview.AppStateField.MARGINS_TYPE)) { |
| 374 this.marginsType_.updateValue( | 374 this.marginsType_.updateValue( |
| 375 /** @type {!Object} */(this.appState_.getField( | 375 /** @type {!Object} */(this.appState_.getField( |
| 376 print_preview.AppState.Field.MARGINS_TYPE))); | 376 print_preview.AppStateField.MARGINS_TYPE))); |
| 377 } | 377 } |
| 378 if (this.appState_.hasField( | 378 if (this.appState_.hasField( |
| 379 print_preview.AppState.Field.CUSTOM_MARGINS)) { | 379 print_preview.AppStateField.CUSTOM_MARGINS)) { |
| 380 this.customMargins_.updateValue( | 380 this.customMargins_.updateValue( |
| 381 /** @type {!Object} */(this.appState_.getField( | 381 /** @type {!Object} */(this.appState_.getField( |
| 382 print_preview.AppState.Field.CUSTOM_MARGINS))); | 382 print_preview.AppStateField.CUSTOM_MARGINS))); |
| 383 } | 383 } |
| 384 if (this.appState_.hasField( | 384 if (this.appState_.hasField( |
| 385 print_preview.AppState.Field.IS_HEADER_FOOTER_ENABLED)) { | 385 print_preview.AppStateField.IS_HEADER_FOOTER_ENABLED)) { |
| 386 this.headerFooter_.updateValue( | 386 this.headerFooter_.updateValue( |
| 387 /** @type {!Object} */(this.appState_.getField( | 387 /** @type {!Object} */(this.appState_.getField( |
| 388 print_preview.AppState.Field.IS_HEADER_FOOTER_ENABLED))); | 388 print_preview.AppStateField.IS_HEADER_FOOTER_ENABLED))); |
| 389 } | 389 } |
| 390 if (this.appState_.hasField( | 390 if (this.appState_.hasField( |
| 391 print_preview.AppState.Field.IS_COLLATE_ENABLED)) { | 391 print_preview.AppStateField.IS_COLLATE_ENABLED)) { |
| 392 this.collate_.updateValue( | 392 this.collate_.updateValue( |
| 393 /** @type {!Object} */(this.appState_.getField( | 393 /** @type {!Object} */(this.appState_.getField( |
| 394 print_preview.AppState.Field.IS_COLLATE_ENABLED))); | 394 print_preview.AppStateField.IS_COLLATE_ENABLED))); |
| 395 } | 395 } |
| 396 if (this.appState_.hasField( | 396 if (this.appState_.hasField( |
| 397 print_preview.AppState.Field.IS_FIT_TO_PAGE_ENABLED)) { | 397 print_preview.AppStateField.IS_FIT_TO_PAGE_ENABLED)) { |
| 398 this.fitToPage_.updateValue( | 398 this.fitToPage_.updateValue( |
| 399 /** @type {!Object} */(this.appState_.getField( | 399 /** @type {!Object} */(this.appState_.getField( |
| 400 print_preview.AppState.Field.IS_FIT_TO_PAGE_ENABLED))); | 400 print_preview.AppStateField.IS_FIT_TO_PAGE_ENABLED))); |
| 401 } | 401 } |
| 402 if (this.appState_.hasField( | 402 if (this.appState_.hasField( |
| 403 print_preview.AppState.Field.SCALING)) { | 403 print_preview.AppStateField.SCALING)) { |
| 404 this.scaling_.updateValue( | 404 this.scaling_.updateValue( |
| 405 /** @type {!Object} */(this.appState_.getField( | 405 /** @type {!Object} */(this.appState_.getField( |
| 406 print_preview.AppState.Field.SCALING))); | 406 print_preview.AppStateField.SCALING))); |
| 407 } | 407 } |
| 408 if (this.appState_.hasField( | 408 if (this.appState_.hasField( |
| 409 print_preview.AppState.Field.IS_CSS_BACKGROUND_ENABLED)) { | 409 print_preview.AppStateField.IS_CSS_BACKGROUND_ENABLED)) { |
| 410 this.cssBackground_.updateValue( | 410 this.cssBackground_.updateValue( |
| 411 /** @type {!Object} */(this.appState_.getField( | 411 /** @type {!Object} */(this.appState_.getField( |
| 412 print_preview.AppState.Field.IS_CSS_BACKGROUND_ENABLED))); | 412 print_preview.AppStateField.IS_CSS_BACKGROUND_ENABLED))); |
| 413 } | 413 } |
| 414 if (this.appState_.hasField( | 414 if (this.appState_.hasField( |
| 415 print_preview.AppState.Field.VENDOR_OPTIONS)) { | 415 print_preview.AppStateField.VENDOR_OPTIONS)) { |
| 416 this.vendorItems_.updateValue( | 416 this.vendorItems_.updateValue( |
| 417 /** @type {!Object<string>} */(this.appState_.getField( | 417 /** @type {!Object<string>} */(this.appState_.getField( |
| 418 print_preview.AppState.Field.VENDOR_OPTIONS))); | 418 print_preview.AppStateField.VENDOR_OPTIONS))); |
| 419 } | 419 } |
| 420 }, | 420 }, |
| 421 | 421 |
| 422 /** | 422 /** |
| 423 * @return {boolean} {@code true} if the stored print ticket is valid, | 423 * @return {boolean} {@code true} if the stored print ticket is valid, |
| 424 * {@code false} otherwise. | 424 * {@code false} otherwise. |
| 425 */ | 425 */ |
| 426 isTicketValid: function() { | 426 isTicketValid: function() { |
| 427 return this.isTicketValidForPreview() && | 427 return this.isTicketValidForPreview() && |
| 428 (!this.copies_.isCapabilityAvailable() || this.copies_.isValid()) && | 428 (!this.copies_.isCapabilityAvailable() || this.copies_.isValid()) && |
| 429 (!this.pageRange_.isCapabilityAvailable() || | 429 (!this.pageRange_.isCapabilityAvailable() || |
| 430 this.pageRange_.isValid()); | 430 this.pageRange_.isValid()); |
| 431 }, | 431 }, |
| 432 | 432 |
| 433 /** @return {boolean} Whether the ticket is valid for preview generation. */ | 433 /** @return {boolean} Whether the ticket is valid for preview generation. */ |
| 434 isTicketValidForPreview: function() { | 434 isTicketValidForPreview: function() { |
| 435 return (!this.marginsType_.isCapabilityAvailable() || | 435 return (!this.marginsType_.isCapabilityAvailable() || |
| 436 !this.marginsType_.isValueEqual( | 436 !this.marginsType_.isValueEqual( |
| 437 print_preview.ticket_items.MarginsTypeValue.CUSTOM) || | 437 print_preview.ticket_items.MarginsTypeValue.CUSTOM) || |
| 438 this.customMargins_.isValid()); | 438 this.customMargins_.isValid()); |
| 439 }, | 439 }, |
| 440 | 440 |
| 441 /** | 441 /** |
| 442 * Creates an object that represents a Google Cloud Print print ticket. | 442 * Creates an object that represents a Google Cloud Print print ticket. |
| 443 * @param {!print_preview.Destination} destination Destination to print to. | 443 * @param {!print_preview.Destination} destination Destination to print to. |
| 444 * @return {!Object} Google Cloud Print print ticket. | 444 * @return {!string} Google Cloud Print print ticket. |
|
dpapad
2017/05/05 17:32:50
Nit: "!" is implied for strings (same for number a
rbpotter
2017/05/05 18:25:46
Done.
| |
| 445 */ | 445 */ |
| 446 createPrintTicket: function(destination) { | 446 createPrintTicket: function(destination) { |
| 447 assert(!destination.isLocal || | 447 assert(!destination.isLocal || |
| 448 destination.isPrivet || destination.isExtension, | 448 destination.isPrivet || destination.isExtension, |
| 449 'Trying to create a Google Cloud Print print ticket for a local ' + | 449 'Trying to create a Google Cloud Print print ticket for a local ' + |
| 450 ' non-privet and non-extension destination'); | 450 ' non-privet and non-extension destination'); |
| 451 | 451 |
| 452 assert(destination.capabilities, | 452 assert(destination.capabilities, |
| 453 'Trying to create a Google Cloud Print print ticket for a ' + | 453 'Trying to create a Google Cloud Print print ticket for a ' + |
| 454 'destination with no print capabilities'); | 454 'destination with no print capabilities'); |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 593 onDocumentInfoChange_: function() { | 593 onDocumentInfoChange_: function() { |
| 594 cr.dispatchSimpleEvent(this, PrintTicketStore.EventType.DOCUMENT_CHANGE); | 594 cr.dispatchSimpleEvent(this, PrintTicketStore.EventType.DOCUMENT_CHANGE); |
| 595 }, | 595 }, |
| 596 }; | 596 }; |
| 597 | 597 |
| 598 // Export | 598 // Export |
| 599 return { | 599 return { |
| 600 PrintTicketStore: PrintTicketStore | 600 PrintTicketStore: PrintTicketStore |
| 601 }; | 601 }; |
| 602 }); | 602 }); |
| OLD | NEW |