diff options
author | adhitya | 2016-04-11 15:10:54 +0000 |
---|---|---|
committer | adhitya | 2016-04-11 15:10:54 +0000 |
commit | 92f3207b50a1caca07df5c5b238212af3358905b (patch) | |
tree | 38c92f9649c6f1016d2ef70fa2fd33c86b437cba /src/js/io/mxRootChangeCodec.js | |
parent | ab5fb6e125d82fdd5818aea3ce370c43c2293ddd (diff) | |
download | xcos-on-web-92f3207b50a1caca07df5c5b238212af3358905b.tar.gz xcos-on-web-92f3207b50a1caca07df5c5b238212af3358905b.tar.bz2 xcos-on-web-92f3207b50a1caca07df5c5b238212af3358905b.zip |
Revert last two commits - Keyboard shortcuts are not working
Diffstat (limited to 'src/js/io/mxRootChangeCodec.js')
-rw-r--r-- | src/js/io/mxRootChangeCodec.js | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/js/io/mxRootChangeCodec.js b/src/js/io/mxRootChangeCodec.js new file mode 100644 index 0000000..fda613a --- /dev/null +++ b/src/js/io/mxRootChangeCodec.js @@ -0,0 +1,83 @@ +/** + * $Id: mxRootChangeCodec.js,v 1.6 2010-09-15 14:38:51 gaudenz Exp $ + * Copyright (c) 2006-2010, JGraph Ltd + */ +mxCodecRegistry.register(function() +{ + /** + * Class: mxRootChangeCodec + * + * Codec for <mxRootChange>s. This class is created and registered + * dynamically at load time and used implicitely via <mxCodec> and + * the <mxCodecRegistry>. + * + * Transient Fields: + * + * - model + * - previous + * - root + */ + var codec = new mxObjectCodec(new mxRootChange(), + ['model', 'previous', 'root']); + + /** + * Function: onEncode + * + * Encodes the child recursively. + */ + codec.afterEncode = function(enc, obj, node) + { + enc.encodeCell(obj.root, node); + + return node; + }; + + /** + * Function: beforeDecode + * + * Decodes the optional children as cells + * using the respective decoder. + */ + codec.beforeDecode = function(dec, node, obj) + { + if (node.firstChild != null && + node.firstChild.nodeType == mxConstants.NODETYPE_ELEMENT) + { + // Makes sure the original node isn't modified + node = node.cloneNode(true); + + var tmp = node.firstChild; + obj.root = dec.decodeCell(tmp, false); + + var tmp2 = tmp.nextSibling; + tmp.parentNode.removeChild(tmp); + tmp = tmp2; + + while (tmp != null) + { + tmp2 = tmp.nextSibling; + dec.decodeCell(tmp); + tmp.parentNode.removeChild(tmp); + tmp = tmp2; + } + } + + return node; + }; + + /** + * Function: afterDecode + * + * Restores the state by assigning the previous value. + */ + codec.afterDecode = function(dec, node, obj) + { + obj.previous = obj.root; + + return obj; + }; + + // Returns the codec into the registry + return codec; + +}()); |