aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/activitymonitor.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/activitymonitor.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/activitymonitor.js300
1 files changed, 0 insertions, 300 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/activitymonitor.js b/contexts/data/lib/closure-library/closure/goog/ui/activitymonitor.js
deleted file mode 100644
index 136c999..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/activitymonitor.js
+++ /dev/null
@@ -1,300 +0,0 @@
-// Copyright 2006 The Closure Library Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS-IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-/**
- * @fileoverview Activity Monitor.
- *
- * Fires throttled events when a user interacts with the specified document.
- * This class also exposes the amount of time since the last user event.
- *
- * If you would prefer to get BECOME_ACTIVE and BECOME_IDLE events when the
- * user changes states, then you should use the IdleTimer class instead.
- *
- */
-
-goog.provide('goog.ui.ActivityMonitor');
-
-goog.require('goog.array');
-goog.require('goog.dom');
-goog.require('goog.events');
-goog.require('goog.events.EventHandler');
-goog.require('goog.events.EventTarget');
-goog.require('goog.events.EventType');
-
-
-
-/**
- * Once initialized with a document, the activity monitor can be queried for
- * the current idle time.
- *
- * @param {goog.dom.DomHelper|Array.<goog.dom.DomHelper>=} opt_domHelper
- * DomHelper which contains the document(s) to listen to. If null, the
- * default document is usedinstead.
- * @param {boolean=} opt_useBubble Whether to use the bubble phase to listen for
- * events. By default listens on the capture phase so that it won't miss
- * events that get stopPropagation/cancelBubble'd. However, this can cause
- * problems in IE8 if the page loads multiple scripts that include the
- * closure event handling code.
- *
- * @constructor
- * @extends {goog.events.EventTarget}
- */
-goog.ui.ActivityMonitor = function(opt_domHelper, opt_useBubble) {
- goog.events.EventTarget.call(this);
-
- /**
- * Array of documents that are being listened to.
- * @type {Array.<Document>}
- * @private
- */
- this.documents_ = [];
-
- /**
- * Whether to use the bubble phase to listen for events.
- * @type {boolean}
- * @private
- */
- this.useBubble_ = !!opt_useBubble;
-
- /**
- * The event handler.
- * @type {goog.events.EventHandler}
- * @private
- */
- this.eventHandler_ = new goog.events.EventHandler(this);
-
- if (!opt_domHelper) {
- this.addDocument(goog.dom.getDomHelper().getDocument());
- } else if (goog.isArray(opt_domHelper)) {
- for (var i = 0; i < opt_domHelper.length; i++) {
- this.addDocument(opt_domHelper[i].getDocument());
- }
- } else {
- this.addDocument(opt_domHelper.getDocument());
- }
-
- /**
- * The time (in milliseconds) of the last user event.
- * @type {number}
- * @private
- */
- this.lastEventTime_ = goog.now();
-
-};
-goog.inherits(goog.ui.ActivityMonitor, goog.events.EventTarget);
-
-
-/**
- * The last event type that was detected.
- * @type {string}
- * @private
- */
-goog.ui.ActivityMonitor.prototype.lastEventType_ = '';
-
-
-/**
- * The mouse x-position after the last user event.
- * @type {number}
- * @private
- */
-goog.ui.ActivityMonitor.prototype.lastMouseX_;
-
-
-/**
- * The mouse y-position after the last user event.
- * @type {number}
- * @private
- */
-goog.ui.ActivityMonitor.prototype.lastMouseY_;
-
-
-/**
- * The earliest time that another throttled ACTIVITY event will be dispatched
- * @type {number}
- * @private
- */
-goog.ui.ActivityMonitor.prototype.minEventTime_ = 0;
-
-
-/**
- * Minimum amount of time in ms between throttled ACTIVITY events
- * @type {number}
- */
-goog.ui.ActivityMonitor.MIN_EVENT_SPACING = 3 * 1000;
-
-
-/**
- * If a user executes one of these events, s/he is considered not idle.
- * @type {Array.<goog.events.EventType>}
- * @private
- */
-goog.ui.ActivityMonitor.userEventTypesBody_ =
- [goog.events.EventType.CLICK, goog.events.EventType.DBLCLICK,
- goog.events.EventType.MOUSEDOWN, goog.events.EventType.MOUSEUP,
- goog.events.EventType.MOUSEMOVE];
-
-
-/**
- * If a user executes one of these events, s/he is considered not idle.
- * @type {Array.<goog.events.EventType>}
- * @private
- */
-goog.ui.ActivityMonitor.userEventTypesDocuments_ =
- [goog.events.EventType.KEYDOWN, goog.events.EventType.KEYUP];
-
-
-/**
- * Event constants for the activity monitor.
- * @enum {string}
- */
-goog.ui.ActivityMonitor.Event = {
- /** Event fired when the user does something interactive */
- ACTIVITY: 'activity'
-};
-
-
-/** @override */
-goog.ui.ActivityMonitor.prototype.disposeInternal = function() {
- goog.ui.ActivityMonitor.superClass_.disposeInternal.call(this);
- this.eventHandler_.dispose();
- this.eventHandler_ = null;
- delete this.documents_;
-};
-
-
-/**
- * Adds a document to those being monitored by this class.
- *
- * @param {Document} doc Document to monitor.
- */
-goog.ui.ActivityMonitor.prototype.addDocument = function(doc) {
- this.documents_.push(doc);
- var useCapture = !this.useBubble_;
- this.eventHandler_.listen(
- doc, goog.ui.ActivityMonitor.userEventTypesDocuments_,
- this.handleEvent_, useCapture);
- this.eventHandler_.listen(
- doc, goog.ui.ActivityMonitor.userEventTypesBody_,
- this.handleEvent_, useCapture);
-};
-
-
-/**
- * Removes a document from those being monitored by this class.
- *
- * @param {Document} doc Document to monitor.
- */
-goog.ui.ActivityMonitor.prototype.removeDocument = function(doc) {
- if (this.isDisposed()) {
- return;
- }
- goog.array.remove(this.documents_, doc);
- var useCapture = !this.useBubble_;
- this.eventHandler_.unlisten(
- doc, goog.ui.ActivityMonitor.userEventTypesDocuments_,
- this.handleEvent_, useCapture);
- this.eventHandler_.unlisten(
- doc, goog.ui.ActivityMonitor.userEventTypesBody_,
- this.handleEvent_, useCapture);
-};
-
-
-/**
- * Updates the last event time when a user action occurs.
- * @param {goog.events.BrowserEvent} e Event object.
- * @private
- */
-goog.ui.ActivityMonitor.prototype.handleEvent_ = function(e) {
- var update = false;
- switch (e.type) {
- case goog.events.EventType.MOUSEMOVE:
- // In FF 1.5, we get spurious mouseover and mouseout events when the UI
- // redraws. We only want to update the idle time if the mouse has moved.
- if (typeof this.lastMouseX_ == 'number' &&
- this.lastMouseX_ != e.clientX ||
- typeof this.lastMouseY_ == 'number' &&
- this.lastMouseY_ != e.clientY) {
- update = true;
- }
- this.lastMouseX_ = e.clientX;
- this.lastMouseY_ = e.clientY;
- break;
- default:
- update = true;
- }
-
- if (update) {
- this.updateIdleTime_(goog.now(), /** @type {string} */ (e.type));
- }
-};
-
-
-/**
- * Updates the last event time to be the present time, useful for non-DOM
- * events that should update idle time.
- */
-goog.ui.ActivityMonitor.prototype.resetTimer = function() {
- this.updateIdleTime_(goog.now(), 'manual');
-};
-
-
-/**
- * Does the work of updating the idle time and firing an event
- * @param {number} eventTime Time (in MS) of the event that cleared the idle
- * timer.
- * @param {string} eventType Type of the event, used only for debugging.
- * @private
- */
-goog.ui.ActivityMonitor.prototype.updateIdleTime_ = function(eventTime,
- eventType) {
- // update internal state noting whether the user was idle
- this.lastEventTime_ = eventTime;
- this.lastEventType_ = eventType;
-
- // dispatch event
- if (eventTime > this.minEventTime_) {
- this.dispatchEvent(goog.ui.ActivityMonitor.Event.ACTIVITY);
- this.minEventTime_ = eventTime + goog.ui.ActivityMonitor.MIN_EVENT_SPACING;
- }
-};
-
-
-/**
- * Returns the amount of time the user has been idle.
- * @param {number=} opt_now The current time can optionally be passed in for the
- * computation to avoid an extra Date allocation.
- * @return {number} The amount of time in ms that the user has been idle.
- */
-goog.ui.ActivityMonitor.prototype.getIdleTime = function(opt_now) {
- var now = opt_now || goog.now();
- return now - this.lastEventTime_;
-};
-
-
-/**
- * Returns the type of the last user event.
- * @return {string} event type.
- */
-goog.ui.ActivityMonitor.prototype.getLastEventType = function() {
- return this.lastEventType_;
-};
-
-
-/**
- * Returns the time of the last event
- * @return {number} last event time.
- */
-goog.ui.ActivityMonitor.prototype.getLastEventTime = function() {
- return this.lastEventTime_;
-};