Merge pull request #130 from iuyiuy/addSvgElementFromJson_expansion

Add svg element from json expansion
master
Jeff Schiller 2016-11-15 05:57:26 -08:00 committed by GitHub
commit 97f5127e81
1 changed files with 11 additions and 0 deletions

View File

@ -186,9 +186,12 @@ var selectedElements = [];
// * element - tag name of the SVG element to create // * element - tag name of the SVG element to create
// * attr - Object with attributes key-values to assign to the new element // * attr - Object with attributes key-values to assign to the new element
// * curStyles - Boolean indicating that current style attributes should be applied first // * curStyles - Boolean indicating that current style attributes should be applied first
// * children - Optional array with data objects to be added recursively as children
// //
// Returns: The new element // Returns: The new element
var addSvgElementFromJson = this.addSvgElementFromJson = function(data) { var addSvgElementFromJson = this.addSvgElementFromJson = function(data) {
if (typeof(data) == 'string') return svgdoc.createTextNode(data);
var shape = svgedit.utilities.getElem(data.attr.id); var shape = svgedit.utilities.getElem(data.attr.id);
// if shape is a path but we need to create a rect/ellipse, then remove the path // if shape is a path but we need to create a rect/ellipse, then remove the path
var current_layer = getCurrentDrawing().getCurrentLayer(); var current_layer = getCurrentDrawing().getCurrentLayer();
@ -218,6 +221,14 @@ var addSvgElementFromJson = this.addSvgElementFromJson = function(data) {
} }
svgedit.utilities.assignAttributes(shape, data.attr, 100); svgedit.utilities.assignAttributes(shape, data.attr, 100);
svgedit.utilities.cleanupElement(shape); svgedit.utilities.cleanupElement(shape);
// Children
if (data.children) {
data.children.forEach(function(child) {
shape.appendChild(addSvgElementFromJson(child));
});
}
return shape; return shape;
}; };