Move hasLayer() into svgedit.draw.Drawing

git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1926 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
Jeff Schiller
2011-01-16 23:18:51 +00:00
parent 0db154bff4
commit 6f9f943093
5 changed files with 35 additions and 26 deletions

View File

@@ -132,15 +132,16 @@ svgedit.draw.Drawing.prototype.getNextId = function() {
return id; return id;
}; };
/** // Function: svgedit.draw.Drawing.releaseId
* Releases the object Id, letting it be used as the next id in getNextId(). // Releases the object Id, letting it be used as the next id in getNextId().
* This method DOES NOT remove any elements from the DOM, it is expected // This method DOES NOT remove any elements from the DOM, it is expected
* that client code will do this. // that client code will do this.
* //
* @param {String} The id to release. // Parameters:
* @return {boolean} Returns true if the id was valid to be released, // id - The id to release.
* false otherwise. //
*/ // Returns:
// True if the id was valid to be released, false otherwise.
svgedit.draw.Drawing.prototype.releaseId = function(id) { svgedit.draw.Drawing.prototype.releaseId = function(id) {
// confirm if this is a valid id for this Document, else return false // confirm if this is a valid id for this Document, else return false
var front = this.idPrefix + (this.nonce_ ? this.nonce_ +'_' : ''); var front = this.idPrefix + (this.nonce_ ? this.nonce_ +'_' : '');
@@ -162,7 +163,7 @@ svgedit.draw.Drawing.prototype.releaseId = function(id) {
return true; return true;
}; };
// Function: getNumLayers // Function: svgedit.draw.Drawing.getNumLayers
// Returns the number of layers in the current drawing. // Returns the number of layers in the current drawing.
// //
// Returns: // Returns:
@@ -171,4 +172,14 @@ svgedit.draw.Drawing.prototype.getNumLayers = function() {
return this.all_layers.length; return this.all_layers.length;
}; };
// Function: svgedit.draw.Drawing.hasLayer
// Check if layer with given name already exists
svgedit.draw.Drawing.prototype.hasLayer = function(name) {
for(var i = 0; i < this.getNumLayers(); i++) {
if(this.all_layers[i][0] == name) return true;
}
return false;
};
})(); })();

View File

@@ -72,7 +72,7 @@ function embedded_svg_edit(frame){
//Newer, well, it extracts things that aren't documented as well. All functions accessible through the normal thingy can now be accessed though the API //Newer, well, it extracts things that aren't documented as well. All functions accessible through the normal thingy can now be accessed though the API
//var l=[];for(var i in svgCanvas){if(typeof svgCanvas[i] == "function"){l.push(i)}}; //var l=[];for(var i in svgCanvas){if(typeof svgCanvas[i] == "function"){l.push(i)}};
//run in svgedit itself //run in svgedit itself
var functions = ["updateElementFromJson", "embedImage", "fixOperaXML", "clearSelection", "addToSelection", "removeFromSelection", "addNodeToSelection", "open", "save", "getSvgString", "setSvgString", "createLayer", "deleteCurrentLayer", "getNumLayers", "getLayer", "getCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "getLayerVisibility", "setLayerVisibility", "moveSelectedToLayer", "getLayerOpacity", "setLayerOpacity", "clear", "clearPath", "getNodePoint", "clonePathNode", "deletePathNode", "getResolution", "getImageTitle", "setImageTitle", "setResolution", "setBBoxZoom", "setZoom", "getMode", "setMode", "getStrokeColor", "setStrokeColor", "getFillColor", "setFillColor", "setStrokePaint", "setFillPaint", "getStrokeWidth", "setStrokeWidth", "getStrokeStyle", "setStrokeStyle", "getOpacity", "setOpacity", "getFillOpacity", "setFillOpacity", "getStrokeOpacity", "setStrokeOpacity", "getTransformList", "getBBox", "getRotationAngle", "setRotationAngle", "each", "bind", "setIdPrefix", "getBold", "setBold", "getItalic", "setItalic", "getFontFamily", "setFontFamily", "getFontSize", "setFontSize", "getText", "setTextContent", "setImageURL", "setRectRadius", "setSegType", "quickClone", "changeSelectedAttributeNoUndo", "changeSelectedAttribute", "deleteSelectedElements", "groupSelectedElements", "ungroupSelectedElement", "moveToTopSelectedElement", "moveToBottomSelectedElement", "moveSelectedElements", "getStrokedBBox", "getVisibleElements", "cycleElement", "getUndoStackSize", "getRedoStackSize", "getNextUndoCommandText", "getNextRedoCommandText", "undo", "redo", "cloneSelectedElements", "alignSelectedElements", "getZoom", "getVersion", "setIconSize", "setLang", "setCustomHandlers"] var functions = ["updateElementFromJson", "embedImage", "fixOperaXML", "clearSelection", "addToSelection", "removeFromSelection", "addNodeToSelection", "open", "save", "getSvgString", "setSvgString", "createLayer", "deleteCurrentLayer", "getLayer", "getCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "getLayerVisibility", "setLayerVisibility", "moveSelectedToLayer", "getLayerOpacity", "setLayerOpacity", "clear", "clearPath", "getNodePoint", "clonePathNode", "deletePathNode", "getResolution", "getImageTitle", "setImageTitle", "setResolution", "setBBoxZoom", "setZoom", "getMode", "setMode", "getStrokeColor", "setStrokeColor", "getFillColor", "setFillColor", "setStrokePaint", "setFillPaint", "getStrokeWidth", "setStrokeWidth", "getStrokeStyle", "setStrokeStyle", "getOpacity", "setOpacity", "getFillOpacity", "setFillOpacity", "getStrokeOpacity", "setStrokeOpacity", "getTransformList", "getBBox", "getRotationAngle", "setRotationAngle", "each", "bind", "setIdPrefix", "getBold", "setBold", "getItalic", "setItalic", "getFontFamily", "setFontFamily", "getFontSize", "setFontSize", "getText", "setTextContent", "setImageURL", "setRectRadius", "setSegType", "quickClone", "changeSelectedAttributeNoUndo", "changeSelectedAttribute", "deleteSelectedElements", "groupSelectedElements", "ungroupSelectedElement", "moveToTopSelectedElement", "moveToBottomSelectedElement", "moveSelectedElements", "getStrokedBBox", "getVisibleElements", "cycleElement", "getUndoStackSize", "getRedoStackSize", "getNextUndoCommandText", "getNextRedoCommandText", "undo", "redo", "cloneSelectedElements", "alignSelectedElements", "getZoom", "getVersion", "setIconSize", "setLang", "setCustomHandlers"]
//TODO: rewrite the following, it's pretty scary. //TODO: rewrite the following, it's pretty scary.
for(var i = 0; i < functions.length; i++){ for(var i = 0; i < functions.length; i++){

View File

@@ -3541,11 +3541,11 @@
var i = svgCanvas.getCurrentDrawing().getNumLayers(); var i = svgCanvas.getCurrentDrawing().getNumLayers();
do { do {
var uniqName = uiStrings.layers.layer + " " + ++i; var uniqName = uiStrings.layers.layer + " " + ++i;
} while(svgCanvas.hasLayer(uniqName)); } while(svgCanvas.getCurrentDrawing().hasLayer(uniqName));
$.prompt(uiStrings.notification.enterUniqueLayerName,uniqName, function(newName) { $.prompt(uiStrings.notification.enterUniqueLayerName,uniqName, function(newName) {
if (!newName) return; if (!newName) return;
if (svgCanvas.hasLayer(newName)) { if (svgCanvas.getCurrentDrawing().hasLayer(newName)) {
$.alert(uiStrings.notification.dupeLayerName); $.alert(uiStrings.notification.dupeLayerName);
return; return;
} }
@@ -3572,7 +3572,7 @@
$.prompt(uiStrings.notification.enterUniqueLayerName, name, function(newName) { $.prompt(uiStrings.notification.enterUniqueLayerName, name, function(newName) {
if (!newName) return; if (!newName) return;
if (svgCanvas.hasLayer(newName)) { if (svgCanvas.getCurrentDrawing().hasLayer(newName)) {
$.alert(uiStrings.notification.dupeLayerName); $.alert(uiStrings.notification.dupeLayerName);
return; return;
} }
@@ -3614,7 +3614,7 @@
var oldName = $('#layerlist tr.layersel td.layername').text(); var oldName = $('#layerlist tr.layersel td.layername').text();
$.prompt(uiStrings.notification.enterNewLayerName,"", function(newName) { $.prompt(uiStrings.notification.enterNewLayerName,"", function(newName) {
if (!newName) return; if (!newName) return;
if (oldName == newName || svgCanvas.hasLayer(newName)) { if (oldName == newName || svgCanvas.getCurrentDrawing().hasLayer(newName)) {
$.alert(uiStrings.notification.layerHasThatName); $.alert(uiStrings.notification.layerHasThatName);
return; return;
} }

View File

@@ -7086,17 +7086,6 @@ this.deleteCurrentLayer = function() {
return false; return false;
}; };
// Function: hasLayer
// Check if layer with given name already exists
this.hasLayer = function(name) {
for(var i = 0; i < current_drawing.all_layers.length; i++) {
if(current_drawing.all_layers[i][0] == name) return true;
}
return false;
};
this.getNumLayers = function() { return current_drawing.getNumLayers(); };
// Function: getLayer // Function: getLayer
// Returns the name of the ith layer. If the index is out of range, an empty string is returned. // Returns the name of the ith layer. If the index is out of range, an empty string is returned.
// //

View File

@@ -177,6 +177,15 @@
var doc = new svgedit.draw.Drawing(svg); var doc = new svgedit.draw.Drawing(svg);
equals(typeof doc.getNumLayers, typeof function() {}); equals(typeof doc.getNumLayers, typeof function() {});
equals(doc.getNumLayers(), 0); equals(doc.getNumLayers(), 0);
// TODO(codedread): More here once identifyLayers works.
});
test('Test hasLayer', function() {
expect(2);
var doc = new svgedit.draw.Drawing(svg);
equals(typeof doc.hasLayer, typeof function() {});
ok(!doc.hasLayer('invalid-layer'));
// TODO(codedread): More here once identifyLayers works.
}); });
}); });
</script> </script>