OLD | NEW |
---|---|
(Empty) | |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 cr.define('print_preview', function() { | |
6 'use strict'; | |
7 | |
8 /** | |
9 * An immutable ordered set of page numbers. | |
10 * | |
11 * @param {Array.<number>!} pageNumberList A list of page numbers to include | |
dpapad1
2012/04/19 22:45:01
Exclamation marks should be at the start
!Array.<n
Robert Toscano
2012/04/23 23:00:09
Done.
| |
12 * in the set. | |
13 * @constructor | |
14 */ | |
15 function PageNumberSet(pageNumberList) { | |
16 /** | |
17 * Internal data store for the page number set. | |
18 * @type {Array.<number>} | |
dpapad1
2012/04/19 22:45:01
!Array.<number>
Robert Toscano
2012/04/23 23:00:09
Done.
| |
19 * @private | |
20 */ | |
21 this.pageNumberSet_ = pageListToPageSet(pageNumberList); | |
22 }; | |
23 | |
24 /** | |
25 * @param {string} pageRangeStr String form of a page range. I.e. '2,3,4-5'. | |
26 * If string is empty, all page numbers will be in the page number set. | |
27 * @param {number} totalPageCount Total number of pages in the original | |
28 * document. | |
29 * @return {print_preview.PageNumberSet?} Page number set parsed from the | |
30 * given page range string and total page count. Null returned if | |
31 * the given page range string is invalid. | |
32 */ | |
33 PageNumberSet.parse = function(pageRangeStr, totalPageCount) { | |
34 if (pageRangeStr == '') { | |
35 var pageNumberList = []; | |
36 for (var i = 0; i < totalPageCount; i++) { | |
37 pageNumberList.push(i + 1); | |
38 } | |
39 return new PageNumberSet(pageNumberList); | |
40 } else { | |
41 return isPageRangeTextValid(pageRangeStr, totalPageCount) ? | |
42 new PageNumberSet( | |
43 pageRangeTextToPageList(pageRangeStr, totalPageCount)) : null; | |
44 } | |
45 }; | |
46 | |
47 PageNumberSet.prototype = { | |
48 /** @return {number} The number of page numbers in the set. */ | |
49 get size() { | |
50 return this.pageNumberSet_.length; | |
51 }, | |
52 | |
53 /** | |
54 * @param {number} index 0-based index of the page number to get. | |
55 * @return {number} Page number at the given index. | |
56 */ | |
57 getPageNumberAt: function(index) { | |
58 return this.pageNumberSet_[index]; | |
59 }, | |
60 | |
61 /** | |
62 * @param {number} 1-based page number to check for. | |
63 * @return {boolean} Whether the given page number is in the page range. | |
64 */ | |
65 hasPageNumber: function(pageNumber) { | |
66 return arrayContains(this.pageNumberSet_, pageNumber); | |
67 }, | |
68 | |
69 /** | |
70 * @param {number} 1-based number of the page to get index of. | |
71 * @return {number} 0-based index of the given page number with respect to | |
72 * all of the pages in the page range. | |
73 */ | |
74 getPageNumberIndex: function(pageNumber) { | |
75 return this.pageNumberSet_.indexOf(pageNumber); | |
76 }, | |
77 | |
78 /** | |
79 * @return {boolean} Whether a page number set is equal to this one. | |
80 */ | |
81 equals: function(other) { | |
dpapad1
2012/04/19 22:45:01
Document |other|.
Robert Toscano
2012/04/23 23:00:09
Done.
| |
82 return other == null ? | |
83 false : areArraysEqual(this.pageNumberSet_, other.pageNumberSet_); | |
84 } | |
85 }; | |
86 | |
87 // Export | |
88 return { | |
89 PageNumberSet: PageNumberSet | |
90 }; | |
91 }); | |
OLD | NEW |