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

Unified Diff: chrome/browser/resources/print_preview/margin_textbox.js

Issue 10108001: Refactor print preview web ui (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Resolve conflicts Created 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/print_preview/margin_textbox.js
diff --git a/chrome/browser/resources/print_preview/margin_textbox.js b/chrome/browser/resources/print_preview/margin_textbox.js
deleted file mode 100644
index f0496f58f99f49b60cc61e8acd90758e0906e8eb..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/print_preview/margin_textbox.js
+++ /dev/null
@@ -1,217 +0,0 @@
-// 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';
-
- function MarginTextbox(groupName) {
- var box = document.createElement('input');
- box.__proto__ = MarginTextbox.prototype;
- box.setAttribute('type', 'text');
- box.className = MarginTextbox.CSS_CLASS_MARGIN_TEXTBOX;
- box.value = '0';
- box.setAttribute('aria-label', localStrings.getString(groupName));
-
- // @type {string} Specifies which margin this line refers to.
- box.marginGroup = groupName;
- // @type {boolean} True if the displayed value is valid.
- box.isValid = true;
- // @type {number} Timer used to detect when the user stops typing.
- box.timerId_ = null;
- // @type {number} The last valid value in points.
- box.lastValidValueInPoints = 0;
- // @type {number} The upper allowed limit for the corresponding margin.
- box.valueLimit = null;
-
- box.addEventListeners_();
- return box;
- }
-
- MarginTextbox.CSS_CLASS_MARGIN_TEXTBOX = 'margin-box';
- // Keycode for the "Escape" key.
- MarginTextbox.ESCAPE_KEYCODE = 27;
-
- MarginTextbox.prototype = {
- __proto__: HTMLInputElement.prototype,
-
- /**
- * @type {number} The margin value currently in the textbox.
- */
- get margin() {
- return print_preview.extractMarginValue(this.value);
- },
-
- /**
- * Sets the contents of the textbox.
- * @param {number} newValueInPoints The value to be displayed in points.
- * @private
- */
- setValue_: function(newValueInPoints) {
- this.value =
- print_preview.convertPointsToLocaleUnitsText(newValueInPoints);
- },
-
- /**
- * Updates the state of |this|.
- * @param {number} value The margin value in points.
- * @param {number} valueLimit The upper allowed value for the margin.
- * @param {boolean} keepDisplayedValue True if the currently displayed value
- * should not be updated.
- */
- update: function(value, valueLimit, keepDisplayedValue) {
- this.lastValidValueInPoints = value;
- if (!keepDisplayedValue)
- this.setValue_(this.lastValidValueInPoints);
-
- this.valueLimit = valueLimit;
- this.validate();
- },
-
- /**
- * Updates |this| while dragging is in progress.
- * @param {number} dragDeltaInPoints The difference in points between the
- * margin value before dragging started and now.
- */
- updateWhileDragging: function(dragDeltaInPoints) {
- var validity = this.validateDelta(dragDeltaInPoints);
-
- if (validity == print_preview.marginValidationStates.WITHIN_RANGE)
- this.setValue_(this.lastValidValueInPoints + dragDeltaInPoints);
- else if (validity == print_preview.marginValidationStates.TOO_SMALL)
- this.setValue_(0);
- else if (validity == print_preview.marginValidationStates.TOO_BIG)
- this.setValue_(this.valueLimit);
-
- this.validate();
- this.updateColor();
- },
-
- /**
- * @param {number} dragDeltaInPoints The difference in points between the
- * margin value before dragging started and now.
- * @return {number} An appropriate value from enum |marginValidationStates|.
- */
- validateDelta: function(dragDeltaInPoints) {
- var newValue = this.lastValidValueInPoints + dragDeltaInPoints;
- return print_preview.validateMarginValue(newValue, this.valueLimit);
- },
-
- /**
- * Updates |this.isValid|.
- */
- validate: function() {
- this.isValid =
- print_preview.validateMarginText(this.value, this.valueLimit) ==
- print_preview.marginValidationStates.WITHIN_RANGE;
- },
-
- /**
- * Updates the background color depending on |isValid| by adding/removing
- * the appropriate CSS class.
- * @param {boolean} isValid True if the margin is valid.
- */
- updateColor: function() {
- this.isValid ? this.classList.remove('invalid') :
- this.classList.add('invalid');
- },
-
- /**
- * Draws this textbox.
- */
- draw: function() {
- this.updateColor();
- },
-
- /**
- * Adds event listeners for various events.
- * @private
- */
- addEventListeners_: function() {
- this.oninput = this.resetTimer_.bind(this);
- this.onblur = this.onBlur_.bind(this);
- this.onkeypress = this.onKeyPressed_.bind(this);
- this.onkeyup = this.onKeyUp_.bind(this);
- this.onfocus = function() {
- cr.dispatchSimpleEvent(document, customEvents.MARGIN_TEXTBOX_FOCUSED);
- };
- },
-
- /**
- * Executes whenever a blur event occurs.
- * @private
- */
- onBlur_: function() {
- clearTimeout(this.timerId_);
- this.validate();
- if (!this.isValid) {
- this.setValue_(this.lastValidValueInPoints);
- this.validate();
- }
-
- this.updateColor();
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY);
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_PRINT_BUTTON);
- cr.dispatchSimpleEvent(this, customEvents.MARGINS_MAY_HAVE_CHANGED);
- },
-
- /**
- * Executes whenever a keypressed event occurs. Note: Only the "Enter" key
- * event is handled. The "Escape" key does not result in such event,
- * therefore it is handled by |this.onKeyUp_|.
- * @param {KeyboardEvent} e The event that triggered this listener.
- * @private
- */
- onKeyPressed_: function(e) {
- if (e.keyIdentifier == 'Enter')
- this.blur();
- },
-
- /**
- * Executes whenever a keyup event occurs. Note: Only the "Escape"
- * key event is handled.
- * @param {KeyboardEvent} e The event that triggered this listener.
- * @private
- */
- onKeyUp_: function(e) {
- if (e.keyCode == MarginTextbox.ESCAPE_KEYCODE) {
- this.setValue_(this.lastValidValueInPoints);
- this.validate();
- this.updateColor();
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY);
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_PRINT_BUTTON);
- }
- },
-
- /**
- * Resetting the timer used to detect when the user stops typing in order
- * to update the print preview.
- * @private
- */
- resetTimer_: function() {
- clearTimeout(this.timerId_);
- this.timerId_ = window.setTimeout(
- this.onTextValueMayHaveChanged.bind(this), 1000);
- },
-
- /**
- * Executes whenever the user stops typing or when a drag session associated
- * with |this| ends.
- */
- onTextValueMayHaveChanged: function() {
- this.validate();
- this.updateColor();
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY);
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_PRINT_BUTTON);
-
- if (!this.isValid)
- return;
- cr.dispatchSimpleEvent(this, customEvents.MARGINS_MAY_HAVE_CHANGED);
- }
-
- };
-
- return {
- MarginTextbox: MarginTextbox
- };
-});
« no previous file with comments | « chrome/browser/resources/print_preview/margin_settings.js ('k') | chrome/browser/resources/print_preview/margin_utils.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698