summaryrefslogtreecommitdiff
path: root/src/js/util/mxAutoSaveManager.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/util/mxAutoSaveManager.js')
-rw-r--r--src/js/util/mxAutoSaveManager.js213
1 files changed, 0 insertions, 213 deletions
diff --git a/src/js/util/mxAutoSaveManager.js b/src/js/util/mxAutoSaveManager.js
deleted file mode 100644
index 85c23dc..0000000
--- a/src/js/util/mxAutoSaveManager.js
+++ /dev/null
@@ -1,213 +0,0 @@
-/**
- * $Id: mxAutoSaveManager.js,v 1.9 2010-09-16 09:10:21 gaudenz Exp $
- * Copyright (c) 2006-2010, JGraph Ltd
- */
-/**
- * Class: mxAutoSaveManager
- *
- * Manager for automatically saving diagrams. The <save> hook must be
- * implemented.
- *
- * Example:
- *
- * (code)
- * var mgr = new mxAutoSaveManager(editor.graph);
- * mgr.save = function()
- * {
- * mxLog.show();
- * mxLog.debug('save');
- * };
- * (end)
- *
- * Constructor: mxAutoSaveManager
- *
- * Constructs a new automatic layout for the given graph.
- *
- * Arguments:
- *
- * graph - Reference to the enclosing graph.
- */
-function mxAutoSaveManager(graph)
-{
- // Notifies the manager of a change
- this.changeHandler = mxUtils.bind(this, function(sender, evt)
- {
- if (this.isEnabled())
- {
- this.graphModelChanged(evt.getProperty('edit').changes);
- }
- });
-
- this.setGraph(graph);
-};
-
-/**
- * Extends mxEventSource.
- */
-mxAutoSaveManager.prototype = new mxEventSource();
-mxAutoSaveManager.prototype.constructor = mxAutoSaveManager;
-
-/**
- * Variable: graph
- *
- * Reference to the enclosing <mxGraph>.
- */
-mxAutoSaveManager.prototype.graph = null;
-
-/**
- * Variable: autoSaveDelay
- *
- * Minimum amount of seconds between two consecutive autosaves. Eg. a
- * value of 1 (s) means the graph is not stored more than once per second.
- * Default is 10.
- */
-mxAutoSaveManager.prototype.autoSaveDelay = 10;
-
-/**
- * Variable: autoSaveThrottle
- *
- * Minimum amount of seconds between two consecutive autosaves triggered by
- * more than <autoSaveThreshhold> changes within a timespan of less than
- * <autoSaveDelay> seconds. Eg. a value of 1 (s) means the graph is not
- * stored more than once per second even if there are more than
- * <autoSaveThreshold> changes within that timespan. Default is 2.
- */
-mxAutoSaveManager.prototype.autoSaveThrottle = 2;
-
-/**
- * Variable: autoSaveThreshold
- *
- * Minimum amount of ignored changes before an autosave. Eg. a value of 2
- * means after 2 change of the graph model the autosave will trigger if the
- * condition below is true. Default is 5.
- */
-mxAutoSaveManager.prototype.autoSaveThreshold = 5;
-
-/**
- * Variable: ignoredChanges
- *
- * Counter for ignored changes in autosave.
- */
-mxAutoSaveManager.prototype.ignoredChanges = 0;
-
-/**
- * Variable: lastSnapshot
- *
- * Used for autosaving. See <autosave>.
- */
-mxAutoSaveManager.prototype.lastSnapshot = 0;
-
-/**
- * Variable: enabled
- *
- * Specifies if event handling is enabled. Default is true.
- */
-mxAutoSaveManager.prototype.enabled = true;
-
-/**
- * Variable: changeHandler
- *
- * Holds the function that handles graph model changes.
- */
-mxAutoSaveManager.prototype.changeHandler = null;
-
-/**
- * Function: isEnabled
- *
- * Returns true if events are handled. This implementation
- * returns <enabled>.
- */
-mxAutoSaveManager.prototype.isEnabled = function()
-{
- return this.enabled;
-};
-
-/**
- * Function: setEnabled
- *
- * Enables or disables event handling. This implementation
- * updates <enabled>.
- *
- * Parameters:
- *
- * enabled - Boolean that specifies the new enabled state.
- */
-mxAutoSaveManager.prototype.setEnabled = function(value)
-{
- this.enabled = value;
-};
-
-/**
- * Function: setGraph
- *
- * Sets the graph that the layouts operate on.
- */
-mxAutoSaveManager.prototype.setGraph = function(graph)
-{
- if (this.graph != null)
- {
- this.graph.getModel().removeListener(this.changeHandler);
- }
-
- this.graph = graph;
-
- if (this.graph != null)
- {
- this.graph.getModel().addListener(mxEvent.CHANGE, this.changeHandler);
- }
-};
-
-/**
- * Function: save
- *
- * Empty hook that is called if the graph should be saved.
- */
-mxAutoSaveManager.prototype.save = function()
-{
- // empty
-};
-
-/**
- * Function: graphModelChanged
- *
- * Invoked when the graph model has changed.
- */
-mxAutoSaveManager.prototype.graphModelChanged = function(changes)
-{
- var now = new Date().getTime();
- var dt = (now - this.lastSnapshot) / 1000;
-
- if (dt > this.autoSaveDelay ||
- (this.ignoredChanges >= this.autoSaveThreshold &&
- dt > this.autoSaveThrottle))
- {
- this.save();
- this.reset();
- }
- else
- {
- // Increments the number of ignored changes
- this.ignoredChanges++;
- }
-};
-
-/**
- * Function: reset
- *
- * Resets all counters.
- */
-mxAutoSaveManager.prototype.reset = function()
-{
- this.lastSnapshot = new Date().getTime();
- this.ignoredChanges = 0;
-};
-
-/**
- * Function: destroy
- *
- * Removes all handlers from the <graph> and deletes the reference to it.
- */
-mxAutoSaveManager.prototype.destroy = function()
-{
- this.setGraph(null);
-};