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

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

Issue 10108001: Refactor print preview web ui (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review feedback Created 8 years, 8 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
(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
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>}
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 * @param {print_preview.PageNumberSet} other Page number set to compare
80 * against.
81 * @return {boolean} Whether another page number set is equal to this one.
82 */
83 equals: function(other) {
84 return other == null ?
85 false : areArraysEqual(this.pageNumberSet_, other.pageNumberSet_);
86 }
87 };
88
89 // Export
90 return {
91 PageNumberSet: PageNumberSet
92 };
93 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698