Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: chrome/browser/resources/print_preview/data/page_number_set.js

Issue 12209086: Page range comparisons should use document size. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 /** 8 /**
9 * An immutable ordered set of page numbers. 9 * An immutable ordered set of page numbers.
10 * @param {!Array.<number>} pageNumberList A list of page numbers to include 10 * @param {!Array.<number>} pageNumberList A list of page numbers to include
11 * in the set. 11 * in the set.
12 * @constructor 12 * @constructor
13 */ 13 */
14 function PageNumberSet(pageNumberList) { 14 function PageNumberSet(pageNumberList) {
15 /** 15 /**
16 * Internal data store for the page number set. 16 * Internal data store for the page number set.
17 * @type {!Array.<number>} 17 * @type {!Array.<number>}
18 * @private 18 * @private
19 */ 19 */
20 this.pageNumberSet_ = pageListToPageSet(pageNumberList); 20 this.pageNumberSet_ = pageListToPageSet(pageNumberList);
21 }; 21 };
22 22
23 /**
24 * @param {string} pageRangeStr String form of a page range. I.e. '2,3,4-5'.
25 * If string is empty, all page numbers will be in the page number set.
26 * @param {number} totalPageCount Total number of pages in the original
27 * document.
28 * @return {print_preview.PageNumberSet} Page number set parsed from the
29 * given page range string and total page count. Null returned if
30 * the given page range string is invalid.
31 */
32 PageNumberSet.parse = function(pageRangeStr, totalPageCount) {
33 if (pageRangeStr == '') {
34 var pageNumberList = [];
35 for (var i = 0; i < totalPageCount; i++) {
36 pageNumberList.push(i + 1);
37 }
38 return new PageNumberSet(pageNumberList);
39 } else {
40 return isPageRangeTextValid(pageRangeStr, totalPageCount) ?
41 new PageNumberSet(
42 pageRangeTextToPageList(pageRangeStr, totalPageCount)) : null;
43 }
44 };
45
46 PageNumberSet.prototype = { 23 PageNumberSet.prototype = {
47 /** @return {number} The number of page numbers in the set. */ 24 /** @return {number} The number of page numbers in the set. */
48 get size() { 25 get size() {
49 return this.pageNumberSet_.length; 26 return this.pageNumberSet_.length;
50 }, 27 },
51 28
52 /** 29 /**
53 * @param {number} index 0-based index of the page number to get. 30 * @param {number} index 0-based index of the page number to get.
54 * @return {number} Page number at the given index. 31 * @return {number} Page number at the given index.
55 */ 32 */
(...skipping 11 matching lines...) Expand all
67 44
68 /** 45 /**
69 * @param {number} 1-based number of the page to get index of. 46 * @param {number} 1-based number of the page to get index of.
70 * @return {number} 0-based index of the given page number with respect to 47 * @return {number} 0-based index of the given page number with respect to
71 * all of the pages in the page range. 48 * all of the pages in the page range.
72 */ 49 */
73 getPageNumberIndex: function(pageNumber) { 50 getPageNumberIndex: function(pageNumber) {
74 return this.pageNumberSet_.indexOf(pageNumber); 51 return this.pageNumberSet_.indexOf(pageNumber);
75 }, 52 },
76 53
77 /**
78 * @return {!Array.<object.<{from: number, to: number}>>} A list of page
79 * ranges suitable for use in the native layer.
80 */
81 getPageRanges: function() {
82 return pageSetToPageRanges(this.pageNumberSet_);
83 },
84
85 /** @return {!Array.<number>} Array representation of the set. */ 54 /** @return {!Array.<number>} Array representation of the set. */
86 asArray: function() { 55 asArray: function() {
87 return this.pageNumberSet_.slice(0); 56 return this.pageNumberSet_.slice(0);
88 }, 57 },
89
90 /**
91 * @param {print_preview.PageNumberSet} other Page number set to compare
92 * against.
93 * @return {boolean} Whether another page number set is equal to this one.
94 */
95 equals: function(other) {
96 return other == null ?
97 false : areArraysEqual(this.pageNumberSet_, other.pageNumberSet_);
98 }
99 }; 58 };
100 59
101 // Export 60 // Export
102 return { 61 return {
103 PageNumberSet: PageNumberSet 62 PageNumberSet: PageNumberSet
104 }; 63 };
105 }); 64 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698