Add createLayer() to Drawing and tests
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1941 eee81c28-f429-11dd-99c0-75d572ba1dddmaster
parent
3398b37947
commit
3e9f1747ff
|
@ -277,7 +277,8 @@ svgedit.draw.Drawing.prototype.setCurrentLayer = function(name) {
|
|||
};
|
||||
|
||||
// Function: svgedit.draw.Drawing.identifyLayers
|
||||
// Updates layer system
|
||||
// Updates layer system and sets the current layer to the
|
||||
// top-most layer (last <g> child of this drawing).
|
||||
svgedit.draw.Drawing.prototype.identifyLayers = function() {
|
||||
this.all_layers = [];
|
||||
var numchildren = this.svgElem_.childNodes.length;
|
||||
|
@ -341,5 +342,25 @@ svgedit.draw.Drawing.prototype.identifyLayers = function() {
|
|||
this.current_layer.setAttribute("style","pointer-events:all");
|
||||
};
|
||||
|
||||
// Function: svgedit.draw.Drawing.createLayer
|
||||
// Creates a new top-level layer in the drawing with the given name and
|
||||
// sets the current layer to it.
|
||||
//
|
||||
// Parameters:
|
||||
// name - The given name
|
||||
//
|
||||
// Returns:
|
||||
// The SVGGElement of the new layer, which is also the current layer
|
||||
// of this drawing.
|
||||
svgedit.draw.Drawing.prototype.createLayer = function(name) {
|
||||
var svgdoc = this.svgElem_.ownerDocument;
|
||||
var new_layer = svgdoc.createElementNS(svg_ns, "g");
|
||||
var layer_title = svgdoc.createElementNS(svg_ns, "title");
|
||||
layer_title.textContent = name;
|
||||
new_layer.appendChild(layer_title);
|
||||
this.svgElem_.appendChild(new_layer);
|
||||
this.identifyLayers();
|
||||
return new_layer;
|
||||
};
|
||||
|
||||
})();
|
||||
|
|
|
@ -6974,16 +6974,10 @@ var identifyLayers = canvas.identifyLayers = function() {
|
|||
// name - The given name
|
||||
this.createLayer = function(name) {
|
||||
var batchCmd = new BatchCommand("Create Layer");
|
||||
var new_layer = svgdoc.createElementNS(svgns, "g");
|
||||
var layer_title = svgdoc.createElementNS(svgns, "title");
|
||||
layer_title.textContent = name;
|
||||
new_layer.appendChild(layer_title);
|
||||
new_layer = svgcontent.appendChild(new_layer);
|
||||
var new_layer = getCurrentDrawing().createLayer(name);
|
||||
batchCmd.addSubCommand(new InsertElementCommand(new_layer));
|
||||
addCommandToHistory(batchCmd);
|
||||
clearSelection();
|
||||
identifyLayers();
|
||||
canvas.setCurrentLayer(name);
|
||||
call("changed", [new_layer]);
|
||||
};
|
||||
|
||||
|
|
|
@ -355,6 +355,27 @@
|
|||
drawing.setCurrentLayer(LAYER3);
|
||||
equals(drawing.getCurrentLayerName(LAYER3), LAYER3);
|
||||
equals(drawing.getCurrentLayer(), drawing.all_layers[2][1]);
|
||||
|
||||
cleanupSvg(svg);
|
||||
});
|
||||
|
||||
test('Test createLayer()', function() {
|
||||
expect(6);
|
||||
|
||||
var drawing = new svgedit.draw.Drawing(svg);
|
||||
setupSvgWith3Layers(svg);
|
||||
|
||||
ok(drawing.createLayer);
|
||||
equals(typeof drawing.createLayer, typeof function(){});
|
||||
|
||||
var NEW_LAYER_NAME = 'Layer A';
|
||||
var layer_g = drawing.createLayer(NEW_LAYER_NAME);
|
||||
equals(4, drawing.getNumLayers());
|
||||
equals(layer_g, drawing.getCurrentLayer());
|
||||
equals(NEW_LAYER_NAME, drawing.getCurrentLayerName());
|
||||
equals(NEW_LAYER_NAME, drawing.getLayerName(3));
|
||||
|
||||
cleanupSvg(svg);
|
||||
});
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue