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

Unified Diff: chrome/browser/resources/print_preview/data/measurement_system.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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/print_preview/data/measurement_system.js
diff --git a/chrome/browser/resources/print_preview/data/measurement_system.js b/chrome/browser/resources/print_preview/data/measurement_system.js
new file mode 100644
index 0000000000000000000000000000000000000000..6dce4d3a5569a3f26a809595e085c0eb8b73a013
--- /dev/null
+++ b/chrome/browser/resources/print_preview/data/measurement_system.js
@@ -0,0 +1,116 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+cr.define('print_preview', function() {
+ 'use strict';
+
+ /**
+ * Measurement system of the print preview. Used to parse and serialize point
+ * measurements into the system's local units (e.g. millimeters, inches).
+ *
+ * @param {string} thousandsDelimeter Delimeter between thousands digits.
+ * @param {string} decimalDelimeter Delimeter between integers and decimals.
+ * @param {print_preview.MeasurementSystem.UnitType} unitType Measurement unit
+ * type of the system.
+ * @constructor
+ */
+ function MeasurementSystem(thousandsDelimeter, decimalDelimeter, unitType) {
+ this.thousandsDelimeter_ = thousandsDelimeter || ',';
+ this.decimalDelimeter_ = decimalDelimeter || '.';
+ this.unitType_ = unitType == null ?
+ MeasurementSystem.UnitType.IMPERIAL : unitType;
dpapad 2012/04/24 01:24:56 Isn't this equivalent to this.unitType_ = unitType
Robert Toscano 2012/04/24 22:29:56 Done.
+ };
+
+ /**
+ * Parses |numberFormat| and extracts the symbols used for the thousands point
+ * and decimal point.
+ * @param {string} numberFormat The formatted version of the number 12345678.
+ * @return {!Array.<string>} The extracted symbols in the order
+ * [thousandsSymbol, decimalSymbol]. For example,
+ * parseNumberFormat("123,456.78") returns [",", "."].
+ */
+ MeasurementSystem.parseNumberFormat = function(numberFormat) {
+ if (!numberFormat) {
+ numberFormat = [',', '.'];
+ }
+ var regex = /^(\d+)(\W{0,1})(\d+)(\W{0,1})(\d+)$/;
+ var matches = numberFormat.match(regex) || ['', '', ',', '', '.'];
+ return [matches[2], matches[4]];
+ };
+
+ /**
+ * Enumeration of measurement unit types.
+ * @enum {number}
+ */
+ MeasurementSystem.UnitType = {
+ METRIC: 0,
+ IMPERIAL: 1
+ };
+
+ /**
+ * Number of points per inch.
+ * @type {number}
+ * @const
+ * @private
+ */
+ MeasurementSystem.PTS_PER_INCH_ = 72.0;
+
+ /**
+ * Number of points per millimeter.
+ * @type {number}
+ * @const
+ * @private
+ */
+ MeasurementSystem.PTS_PER_MM_ = MeasurementSystem.PTS_PER_INCH_ / 25.4;
+
+ MeasurementSystem.prototype = {
+ /** @return {string} The unit type symbol of the measurement system. */
+ get unitSymbol() {
+ if (this.unitType_ == MeasurementSystem.UnitType.METRIC) {
+ return 'mm';
+ } else if (this.unitType_ == MeasurementSystem.UnitType.IMPERIAL) {
+ return '"';
+ } else {
+ throw Error('Unit type not supported: ' + this.unitType_);
+ }
+ },
+
+ /**
+ * @return {string} The decimal delimeter character of the measurement
+ * system.
+ */
+ get decimalDelimeter() {
+ return this.decimalDelimeter_;
+ },
+
+ /**
+ * @param {number} pts Value in points to convert to local units.
+ * @return {number} Value in local units.
+ */
+ convertFromPoints: function(pts) {
+ if (this.unitType_ == MeasurementSystem.UnitType.METRIC) {
+ return pts / MeasurementSystem.PTS_PER_MM_;
+ } else {
+ return pts / MeasurementSystem.PTS_PER_INCH_;
+ }
+ },
+
+ /**
+ * @param {number} Value in local units to convert to points.
+ * @return {number} Value in points.
+ */
+ convertToPoints: function(localUnits) {
+ if (this.unitType_ == MeasurementSystem.UnitType.METRIC) {
+ return localUnits * MeasurementSystem.PTS_PER_MM_;
+ } else {
+ return localUnits * MeasurementSystem.PTS_PER_INCH_;
+ }
+ }
+ };
+
+ // Export
+ return {
+ MeasurementSystem: MeasurementSystem
+ };
+});

Powered by Google App Engine
This is Rietveld 408576698