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

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

Issue 2862203002: Print Preview: Fix data/ errors (Closed)
Patch Set: Fix destination resolver Created 3 years, 7 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
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.exportPath('print_preview');
6
7 /**
8 * Enumeration of measurement unit types.
9 * @enum {number}
10 */
11 print_preview.MeasurementSystemUnitType = {
12 METRIC: 0, // millimeters
13 IMPERIAL: 1 // inches
14 };
15
5 cr.define('print_preview', function() { 16 cr.define('print_preview', function() {
6 'use strict'; 17 'use strict';
7 18
8 /** 19 /**
9 * Measurement system of the print preview. Used to parse and serialize point 20 * Measurement system of the print preview. Used to parse and serialize point
10 * measurements into the system's local units (e.g. millimeters, inches). 21 * measurements into the system's local units (e.g. millimeters, inches).
11 * @param {string} thousandsDelimeter Delimeter between thousands digits. 22 * @param {string} thousandsDelimeter Delimeter between thousands digits.
12 * @param {string} decimalDelimeter Delimeter between integers and decimals. 23 * @param {string} decimalDelimeter Delimeter between integers and decimals.
13 * @param {!print_preview.MeasurementSystem.UnitType} unitType Measurement 24 * @param {!print_preview.MeasurementSystemUnitType} unitType Measurement
14 * unit type of the system. 25 * unit type of the system.
15 * @constructor 26 * @constructor
16 */ 27 */
17 function MeasurementSystem(thousandsDelimeter, decimalDelimeter, unitType) { 28 function MeasurementSystem(thousandsDelimeter, decimalDelimeter, unitType) {
18 this.thousandsDelimeter_ = thousandsDelimeter || ','; 29 this.thousandsDelimeter_ = thousandsDelimeter || ',';
19 this.decimalDelimeter_ = decimalDelimeter || '.'; 30 this.decimalDelimeter_ = decimalDelimeter || '.';
20 this.unitType_ = unitType; 31 this.unitType_ = unitType;
21 }; 32 }
22 33
23 /** 34 /**
24 * Parses |numberFormat| and extracts the symbols used for the thousands point 35 * Parses |numberFormat| and extracts the symbols used for the thousands point
25 * and decimal point. 36 * and decimal point.
26 * @param {string} numberFormat The formatted version of the number 12345678. 37 * @param {string} numberFormat The formatted version of the number 12345678.
27 * @return {!Array<string>} The extracted symbols in the order 38 * @return {!Array<string>} The extracted symbols in the order
28 * [thousandsSymbol, decimalSymbol]. For example, 39 * [thousandsSymbol, decimalSymbol]. For example,
29 * parseNumberFormat("123,456.78") returns [",", "."]. 40 * parseNumberFormat("123,456.78") returns [",", "."].
30 */ 41 */
31 MeasurementSystem.parseNumberFormat = function(numberFormat) { 42 MeasurementSystem.parseNumberFormat = function(numberFormat) {
32 if (!numberFormat) { 43 if (!numberFormat) {
33 return [',', '.']; 44 return [',', '.'];
34 } 45 }
35 var regex = /^(\d+)(\W?)(\d+)(\W?)(\d+)$/; 46 var regex = /^(\d+)(\W?)(\d+)(\W?)(\d+)$/;
36 var matches = numberFormat.match(regex) || ['', '', ',', '', '.']; 47 var matches = numberFormat.match(regex) || ['', '', ',', '', '.'];
37 return [matches[2], matches[4]]; 48 return [matches[2], matches[4]];
38 }; 49 };
39 50
40 /** 51 /**
41 * Enumeration of measurement unit types.
42 * @enum {number}
43 */
44 MeasurementSystem.UnitType = {
45 METRIC: 0, // millimeters
46 IMPERIAL: 1 // inches
47 };
48
49 /**
50 * Maximum resolution of local unit values. 52 * Maximum resolution of local unit values.
51 * @type {!Object<!print_preview.MeasurementSystem.UnitType, number>} 53 * @type {!Object<!print_preview.MeasurementSystemUnitType, number>}
52 * @private 54 * @private
53 */ 55 */
54 MeasurementSystem.Precision_ = {}; 56 MeasurementSystem.Precision_ = {};
55 MeasurementSystem.Precision_[MeasurementSystem.UnitType.METRIC] = 0.5; 57 MeasurementSystem.Precision_[
56 MeasurementSystem.Precision_[MeasurementSystem.UnitType.IMPERIAL] = 0.01; 58 print_preview.MeasurementSystemUnitType.METRIC] = 0.5;
59 MeasurementSystem.Precision_[
60 print_preview.MeasurementSystemUnitType.IMPERIAL] = 0.01;
57 61
58 /** 62 /**
59 * Maximum number of decimal places to keep for local unit. 63 * Maximum number of decimal places to keep for local unit.
60 * @type {!Object<!print_preview.MeasurementSystem.UnitType, number>} 64 * @type {!Object<!print_preview.MeasurementSystemUnitType, number>}
61 * @private 65 * @private
62 */ 66 */
63 MeasurementSystem.DecimalPlaces_ = {}; 67 MeasurementSystem.DecimalPlaces_ = {};
64 MeasurementSystem.DecimalPlaces_[MeasurementSystem.UnitType.METRIC] = 1; 68 MeasurementSystem.DecimalPlaces_[
65 MeasurementSystem.DecimalPlaces_[MeasurementSystem.UnitType.IMPERIAL] = 2; 69 print_preview.MeasurementSystemUnitType.METRIC] = 1;
70 MeasurementSystem.DecimalPlaces_[
71 print_preview.MeasurementSystemUnitType.IMPERIAL] = 2;
66 72
67 /** 73 /**
68 * Number of points per inch. 74 * Number of points per inch.
69 * @type {number} 75 * @type {number}
70 * @const 76 * @const
71 * @private 77 * @private
72 */ 78 */
73 MeasurementSystem.PTS_PER_INCH_ = 72.0; 79 MeasurementSystem.PTS_PER_INCH_ = 72.0;
74 80
75 /** 81 /**
76 * Number of points per millimeter. 82 * Number of points per millimeter.
77 * @type {number} 83 * @type {number}
78 * @const 84 * @const
79 * @private 85 * @private
80 */ 86 */
81 MeasurementSystem.PTS_PER_MM_ = MeasurementSystem.PTS_PER_INCH_ / 25.4; 87 MeasurementSystem.PTS_PER_MM_ = MeasurementSystem.PTS_PER_INCH_ / 25.4;
82 88
83 MeasurementSystem.prototype = { 89 MeasurementSystem.prototype = {
84 /** @return {string} The unit type symbol of the measurement system. */ 90 /** @return {string} The unit type symbol of the measurement system. */
85 get unitSymbol() { 91 get unitSymbol() {
86 if (this.unitType_ == MeasurementSystem.UnitType.METRIC) { 92 if (this.unitType_ == print_preview.MeasurementSystemUnitType.METRIC) {
87 return 'mm'; 93 return 'mm';
88 } else if (this.unitType_ == MeasurementSystem.UnitType.IMPERIAL) { 94 } else if (this.unitType_ ==
95 print_preview.MeasurementSystemUnitType.IMPERIAL) {
89 return '"'; 96 return '"';
90 } else { 97 } else {
91 throw Error('Unit type not supported: ' + this.unitType_); 98 throw Error('Unit type not supported: ' + this.unitType_);
92 } 99 }
93 }, 100 },
94 101
95 /** 102 /**
96 * @return {string} The thousands delimeter character of the measurement 103 * @return {string} The thousands delimeter character of the measurement
97 * system. 104 * system.
98 */ 105 */
(...skipping 26 matching lines...) Expand all
125 // Truncate 132 // Truncate
126 return +roundedValue.toFixed( 133 return +roundedValue.toFixed(
127 MeasurementSystem.DecimalPlaces_[this.unitType_]); 134 MeasurementSystem.DecimalPlaces_[this.unitType_]);
128 }, 135 },
129 136
130 /** 137 /**
131 * @param {number} pts Value in points to convert to local units. 138 * @param {number} pts Value in points to convert to local units.
132 * @return {number} Value in local units. 139 * @return {number} Value in local units.
133 */ 140 */
134 convertFromPoints: function(pts) { 141 convertFromPoints: function(pts) {
135 if (this.unitType_ == MeasurementSystem.UnitType.METRIC) { 142 if (this.unitType_ == print_preview.MeasurementSystemUnitType.METRIC) {
136 return pts / MeasurementSystem.PTS_PER_MM_; 143 return pts / MeasurementSystem.PTS_PER_MM_;
137 } else { 144 } else {
138 return pts / MeasurementSystem.PTS_PER_INCH_; 145 return pts / MeasurementSystem.PTS_PER_INCH_;
139 } 146 }
140 }, 147 },
141 148
142 /** 149 /**
143 * @param {number} localUnits Value in local units to convert to points. 150 * @param {number} localUnits Value in local units to convert to points.
144 * @return {number} Value in points. 151 * @return {number} Value in points.
145 */ 152 */
146 convertToPoints: function(localUnits) { 153 convertToPoints: function(localUnits) {
147 if (this.unitType_ == MeasurementSystem.UnitType.METRIC) { 154 if (this.unitType_ == print_preview.MeasurementSystemUnitType.METRIC) {
148 return localUnits * MeasurementSystem.PTS_PER_MM_; 155 return localUnits * MeasurementSystem.PTS_PER_MM_;
149 } else { 156 } else {
150 return localUnits * MeasurementSystem.PTS_PER_INCH_; 157 return localUnits * MeasurementSystem.PTS_PER_INCH_;
151 } 158 }
152 } 159 }
153 }; 160 };
154 161
155 // Export 162 // Export
156 return { 163 return {
157 MeasurementSystem: MeasurementSystem 164 MeasurementSystem: MeasurementSystem
158 }; 165 };
159 }); 166 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/print_preview/data/margins.js ('k') | chrome/browser/resources/print_preview/data/page_number_set.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698