| /** |
| * 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]; |
| } |
| } |
| |
| }; |