| 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 // TODO(rltoscano): Move data/* into print_preview.data namespace | 5 // TODO(rltoscano): Move data/* into print_preview.data namespace |
| 6 | 6 |
| 7 // <include src="component.js"> | 7 // <include src="component.js"> |
| 8 // <include src="print_preview_focus_manager.js"> | 8 // <include src="print_preview_focus_manager.js"> |
| 9 // | 9 // |
| 10 | 10 |
| 11 cr.exportPath('print_preview'); | 11 cr.exportPath('print_preview'); |
| 12 | 12 |
| 13 /** | 13 /** |
| 14 * States of the print preview. | 14 * States of the print preview. |
| 15 * @enum {string} | 15 * @enum {string} |
| 16 * @private | 16 * @private |
| 17 */ | 17 */ |
| 18 print_preview.PrintPreviewUiState_ = { | 18 print_preview.PrintPreviewUiState_ = { |
| 19 INITIALIZING: 'initializing', | 19 INITIALIZING: 'initializing', |
| 20 READY: 'ready', | 20 READY: 'ready', |
| 21 OPENING_PDF_PREVIEW: 'opening-pdf-preview', | 21 OPENING_PDF_PREVIEW: 'opening-pdf-preview', |
| 22 OPENING_NATIVE_PRINT_DIALOG: 'opening-native-print-dialog', | 22 OPENING_NATIVE_PRINT_DIALOG: 'opening-native-print-dialog', |
| 23 PRINTING: 'printing', | 23 PRINTING: 'printing', |
| 24 FILE_SELECTION: 'file-selection', | 24 FILE_SELECTION: 'file-selection', |
| 25 CLOSING: 'closing', | 25 CLOSING: 'closing', |
| 26 ERROR: 'error' | 26 ERROR: 'error' |
| 27 }; | 27 }; |
| 28 | 28 |
| 29 /** |
| 30 * What can happen when print preview tries to print. |
| 31 * @enum {string} |
| 32 * @private |
| 33 */ |
| 34 print_preview.PrintAttemptResult_ = { |
| 35 NOT_READY: 'not-ready', |
| 36 PRINTED: 'printed', |
| 37 READY_WAITING_FOR_PREVIEW: 'ready-waiting-for-preview' |
| 38 }; |
| 29 | 39 |
| 30 cr.define('print_preview', function() { | 40 cr.define('print_preview', function() { |
| 31 'use strict'; | 41 'use strict'; |
| 32 | 42 |
| 33 var PrintPreviewUiState_ = print_preview.PrintPreviewUiState_; | 43 var PrintPreviewUiState_ = print_preview.PrintPreviewUiState_; |
| 34 | 44 |
| 35 /** | 45 /** |
| 36 * Container class for Chromium's print preview. | 46 * Container class for Chromium's print preview. |
| 37 * @constructor | 47 * @constructor |
| 38 * @extends {print_preview.Component} | 48 * @extends {print_preview.Component} |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 this.isPreviewGenerationInProgress_ = true; | 315 this.isPreviewGenerationInProgress_ = true; |
| 306 | 316 |
| 307 /** | 317 /** |
| 308 * Whether to show system dialog before next printing. | 318 * Whether to show system dialog before next printing. |
| 309 * @type {boolean} | 319 * @type {boolean} |
| 310 * @private | 320 * @private |
| 311 */ | 321 */ |
| 312 this.showSystemDialogBeforeNextPrint_ = false; | 322 this.showSystemDialogBeforeNextPrint_ = false; |
| 313 } | 323 } |
| 314 | 324 |
| 315 /** | |
| 316 * What can happen when print preview tries to print. | |
| 317 * @enum {string} | |
| 318 * @private | |
| 319 */ | |
| 320 PrintPreview.PrintAttemptResult_ = { | |
| 321 NOT_READY: 'not-ready', | |
| 322 PRINTED: 'printed', | |
| 323 READY_WAITING_FOR_PREVIEW: 'ready-waiting-for-preview' | |
| 324 }; | |
| 325 | |
| 326 PrintPreview.prototype = { | 325 PrintPreview.prototype = { |
| 327 __proto__: print_preview.Component.prototype, | 326 __proto__: print_preview.Component.prototype, |
| 328 | 327 |
| 329 /** Sets up the page and print preview by getting the printer list. */ | 328 /** Sets up the page and print preview by getting the printer list. */ |
| 330 initialize: function() { | 329 initialize: function() { |
| 331 this.decorate($('print-preview')); | 330 this.decorate($('print-preview')); |
| 332 if (!this.previewArea_.hasCompatiblePlugin) { | 331 if (!this.previewArea_.hasCompatiblePlugin) { |
| 333 this.setIsEnabled_(false); | 332 this.setIsEnabled_(false); |
| 334 } | 333 } |
| 335 this.nativeLayer_.startGetInitialSettings(); | 334 this.nativeLayer_.startGetInitialSettings(); |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 542 this.uiState_ = PrintPreviewUiState_.OPENING_PDF_PREVIEW; | 541 this.uiState_ = PrintPreviewUiState_.OPENING_PDF_PREVIEW; |
| 543 } else if (this.destinationStore_.selectedDestination.id == | 542 } else if (this.destinationStore_.selectedDestination.id == |
| 544 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) { | 543 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) { |
| 545 this.uiState_ = PrintPreviewUiState_.FILE_SELECTION; | 544 this.uiState_ = PrintPreviewUiState_.FILE_SELECTION; |
| 546 } else { | 545 } else { |
| 547 this.uiState_ = PrintPreviewUiState_.PRINTING; | 546 this.uiState_ = PrintPreviewUiState_.PRINTING; |
| 548 } | 547 } |
| 549 this.setIsEnabled_(false); | 548 this.setIsEnabled_(false); |
| 550 this.printHeader_.isCancelButtonEnabled = true; | 549 this.printHeader_.isCancelButtonEnabled = true; |
| 551 var printAttemptResult = this.printIfReady_(); | 550 var printAttemptResult = this.printIfReady_(); |
| 552 if (printAttemptResult == PrintPreview.PrintAttemptResult_.PRINTED || | 551 if (printAttemptResult == print_preview.PrintAttemptResult_.PRINTED || |
| 553 printAttemptResult == | 552 printAttemptResult == |
| 554 PrintPreview.PrintAttemptResult_.READY_WAITING_FOR_PREVIEW) { | 553 print_preview.PrintAttemptResult_.READY_WAITING_FOR_PREVIEW) { |
| 555 if ((this.destinationStore_.selectedDestination.isLocal && | 554 if ((this.destinationStore_.selectedDestination.isLocal && |
| 556 !this.destinationStore_.selectedDestination.isPrivet && | 555 !this.destinationStore_.selectedDestination.isPrivet && |
| 557 !this.destinationStore_.selectedDestination.isExtension && | 556 !this.destinationStore_.selectedDestination.isExtension && |
| 558 this.destinationStore_.selectedDestination.id != | 557 this.destinationStore_.selectedDestination.id != |
| 559 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) || | 558 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) || |
| 560 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW) { | 559 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW) { |
| 561 // Hide the dialog for now. The actual print command will be issued | 560 // Hide the dialog for now. The actual print command will be issued |
| 562 // when the preview generation is done. | 561 // when the preview generation is done. |
| 563 this.nativeLayer_.startHideDialog(); | 562 this.nativeLayer_.startHideDialog(); |
| 564 } | 563 } |
| 565 } | 564 } |
| 566 }, | 565 }, |
| 567 | 566 |
| 568 /** | 567 /** |
| 569 * Attempts to print if needed and if ready. | 568 * Attempts to print if needed and if ready. |
| 570 * @return {PrintPreview.PrintAttemptResult_} Attempt result. | 569 * @return {print_preview.PrintAttemptResult_} Attempt result. |
| 571 * @private | 570 * @private |
| 572 */ | 571 */ |
| 573 printIfReady_: function() { | 572 printIfReady_: function() { |
| 574 var okToPrint = | 573 var okToPrint = |
| 575 (this.uiState_ == PrintPreviewUiState_.PRINTING || | 574 (this.uiState_ == PrintPreviewUiState_.PRINTING || |
| 576 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW || | 575 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW || |
| 577 this.uiState_ == PrintPreviewUiState_.FILE_SELECTION || | 576 this.uiState_ == PrintPreviewUiState_.FILE_SELECTION || |
| 578 this.isInKioskAutoPrintMode_) && | 577 this.isInKioskAutoPrintMode_) && |
| 579 this.destinationStore_.selectedDestination && | 578 this.destinationStore_.selectedDestination && |
| 580 this.destinationStore_.selectedDestination.capabilities; | 579 this.destinationStore_.selectedDestination.capabilities; |
| 581 if (!okToPrint) { | 580 if (!okToPrint) { |
| 582 return PrintPreview.PrintAttemptResult_.NOT_READY; | 581 return print_preview.PrintAttemptResult_.NOT_READY; |
| 583 } | 582 } |
| 584 if (this.isPreviewGenerationInProgress_) { | 583 if (this.isPreviewGenerationInProgress_) { |
| 585 return PrintPreview.PrintAttemptResult_.READY_WAITING_FOR_PREVIEW; | 584 return print_preview.PrintAttemptResult_.READY_WAITING_FOR_PREVIEW; |
| 586 } | 585 } |
| 587 assert(this.printTicketStore_.isTicketValid(), | 586 assert(this.printTicketStore_.isTicketValid(), |
| 588 'Trying to print with invalid ticket'); | 587 'Trying to print with invalid ticket'); |
| 589 if (getIsVisible(this.moreSettings_.getElement())) { | 588 if (getIsVisible(this.moreSettings_.getElement())) { |
| 590 new print_preview.PrintSettingsUiMetricsContext().record( | 589 new print_preview.PrintSettingsUiMetricsContext().record( |
| 591 this.moreSettings_.isExpanded ? | 590 this.moreSettings_.isExpanded ? |
| 592 print_preview.Metrics.PrintSettingsUiBucket. | 591 print_preview.Metrics.PrintSettingsUiBucket. |
| 593 PRINT_WITH_SETTINGS_EXPANDED : | 592 PRINT_WITH_SETTINGS_EXPANDED : |
| 594 print_preview.Metrics.PrintSettingsUiBucket. | 593 print_preview.Metrics.PrintSettingsUiBucket. |
| 595 PRINT_WITH_SETTINGS_COLLAPSED); | 594 PRINT_WITH_SETTINGS_COLLAPSED); |
| 596 } | 595 } |
| 597 this.nativeLayer_.startPrint( | 596 this.nativeLayer_.startPrint( |
| 598 assert(this.destinationStore_.selectedDestination), | 597 assert(this.destinationStore_.selectedDestination), |
| 599 this.printTicketStore_, | 598 this.printTicketStore_, |
| 600 this.cloudPrintInterface_, | 599 this.cloudPrintInterface_, |
| 601 this.documentInfo_, | 600 this.documentInfo_, |
| 602 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW, | 601 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW, |
| 603 this.showSystemDialogBeforeNextPrint_); | 602 this.showSystemDialogBeforeNextPrint_); |
| 604 this.showSystemDialogBeforeNextPrint_ = false; | 603 this.showSystemDialogBeforeNextPrint_ = false; |
| 605 return PrintPreview.PrintAttemptResult_.PRINTED; | 604 return print_preview.PrintAttemptResult_.PRINTED; |
| 606 }, | 605 }, |
| 607 | 606 |
| 608 /** | 607 /** |
| 609 * Closes the print preview. | 608 * Closes the print preview. |
| 610 * @private | 609 * @private |
| 611 */ | 610 */ |
| 612 close_: function() { | 611 close_: function() { |
| 613 this.exitDocument(); | 612 this.exitDocument(); |
| 614 this.uiState_ = PrintPreviewUiState_.CLOSING; | 613 this.uiState_ = PrintPreviewUiState_.CLOSING; |
| 615 this.nativeLayer_.startCloseDialog(); | 614 this.nativeLayer_.startCloseDialog(); |
| (...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1345 // <include src="previewarea/preview_area.js"> | 1344 // <include src="previewarea/preview_area.js"> |
| 1346 // <include src="preview_generator.js"> | 1345 // <include src="preview_generator.js"> |
| 1347 | 1346 |
| 1348 // <include src="search/destination_list.js"> | 1347 // <include src="search/destination_list.js"> |
| 1349 // <include src="search/cloud_destination_list.js"> | 1348 // <include src="search/cloud_destination_list.js"> |
| 1350 // <include src="search/recent_destination_list.js"> | 1349 // <include src="search/recent_destination_list.js"> |
| 1351 // <include src="search/destination_list_item.js"> | 1350 // <include src="search/destination_list_item.js"> |
| 1352 // <include src="search/destination_search.js"> | 1351 // <include src="search/destination_search.js"> |
| 1353 // <include src="search/provisional_destination_resolver.js"> | 1352 // <include src="search/provisional_destination_resolver.js"> |
| 1354 | 1353 |
| 1354 /** |
| 1355 * Global instance of PrintPreview, used by browser tests. |
| 1356 * @type {print_preview.PrintPreview} |
| 1357 */ |
| 1358 var printPreview; |
| 1355 window.addEventListener('DOMContentLoaded', function() { | 1359 window.addEventListener('DOMContentLoaded', function() { |
| 1356 printPreview = new print_preview.PrintPreview(); | 1360 printPreview = new print_preview.PrintPreview(); |
| 1357 printPreview.initialize(); | 1361 printPreview.initialize(); |
| 1358 }); | 1362 }); |
| OLD | NEW |