123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /**
- * Copyright (c) 2006-2015, JGraph Ltd
- * Copyright (c) 2006-2015, Gaudenz Alder
- */
- var mxObjectIdentity =
- {
- /**
- * Class: mxObjectIdentity
- *
- * Identity for JavaScript objects and functions. This is implemented using
- * a simple incrementing counter which is stored in each object under
- * <FIELD_NAME>.
- *
- * The identity for an object does not change during its lifecycle.
- *
- * Variable: FIELD_NAME
- *
- * Name of the field to be used to store the object ID. Default is
- * <code>mxObjectId</code>.
- */
- FIELD_NAME: 'mxObjectId',
- /**
- * Variable: counter
- *
- * Current counter.
- */
- counter: 0,
- /**
- * Function: get
- *
- * Returns the ID for the given object or function or null if no object
- * is specified.
- */
- get: function(obj)
- {
- if (obj != null)
- {
- if (obj[mxObjectIdentity.FIELD_NAME] == null)
- {
- if (typeof obj === 'object')
- {
- var ctor = mxUtils.getFunctionName(obj.constructor);
- obj[mxObjectIdentity.FIELD_NAME] = ctor + '#' + mxObjectIdentity.counter++;
- }
- else if (typeof obj === 'function')
- {
- obj[mxObjectIdentity.FIELD_NAME] = 'Function#' + mxObjectIdentity.counter++;
- }
- }
-
- return obj[mxObjectIdentity.FIELD_NAME];
- }
-
- return null;
- },
- /**
- * Function: clear
- *
- * Deletes the ID from the given object or function.
- */
- clear: function(obj)
- {
- if (typeof(obj) === 'object' || typeof obj === 'function')
- {
- delete obj[mxObjectIdentity.FIELD_NAME];
- }
- }
- };
|