if (!dojo._hasResource["dojox.gfx.utils"]) { // _hasResource checks added by // build. Do not use // _hasResource directly in your // code. dojo._hasResource["dojox.gfx.utils"] = true; dojo.provide("dojox.gfx.utils"); dojo.require("dojox.gfx"); dojox.gfx.utils.serialize = function( /* dojox.gfx.Surface || dojox.gfx.Shape */object) { var t = {}, v, isSurface = object instanceof dojox.gfx.Surface; if (isSurface || object instanceof dojox.gfx.Group) { t.children = []; for (var i = 0; i < object.children.length; ++i) { t.children.push(dojox.gfx.utils.serialize(object.children[i])); } if (isSurface) { return t.children; // Array } } else { t.shape = object.getShape(); } if (object.getTransform) { v = object.getTransform(); if (v) { t.transform = v; } } if (object.getStroke) { v = object.getStroke(); if (v) { t.stroke = v; } } if (object.getFill) { v = object.getFill(); if (v) { t.fill = v; } } if (object.getFont) { v = object.getFont(); if (v) { t.font = v; } } return t; // Object }; dojox.gfx.utils.toJson = function( /* dojox.gfx.Surface || dojox.gfx.Shape */object, /* Boolean? */prettyPrint) { return dojo.toJson(dojox.gfx.utils.serialize(object), prettyPrint); // String }; dojox.gfx.utils.deserialize = function( /* dojox.gfx.Surface || dojox.gfx.Shape */parent, /* dojox.gfx.Shape || Array */object) { if (object instanceof Array) { var t = []; for (var i = 0; i < object.length; ++i) { t.push(dojox.gfx.utils.deserialize(parent, object[i])); } return t; // Array } var shape = ("shape" in object) ? parent.createShape(object.shape) : parent.createGroup(); if ("transform" in object) { shape.setTransform(object.transform); } if ("stroke" in object) { shape.setStroke(object.stroke); } if ("fill" in object) { shape.setFill(object.fill); } if ("font" in object) { shape.setFont(object.font); } if ("children" in object) { for (var i = 0; i < object.children.length; ++i) { dojox.gfx.utils.deserialize(shape, object.children[i]); } } return shape; // dojox.gfx.Shape }; dojox.gfx.utils.fromJson = function( /* dojox.gfx.Surface || dojox.gfx.Shape */parent, /* String */json) { return dojox.gfx.utils.deserialize(parent, dojo.fromJson(json)); // Array // || // dojox.gfx.Shape }; }