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

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: Remove new widget 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
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 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698