changeset 1352:d8271e1e9ce2

seems we need not save editable state when drawing a shape
author hertzhaft
date Fri, 13 Feb 2015 12:16:33 +0100
parents 76b72fa16012
children 94260e75bb7a
files webapp/src/main/webapp/jquery/jquery.digilib.vector.js
diffstat 1 files changed, 15 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.vector.js	Mon Feb 09 10:19:12 2015 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.vector.js	Fri Feb 13 12:16:33 2015 +0100
@@ -629,7 +629,7 @@
             var pt = geom.position(evt);
             // setup shape
             var p = data.imgTrafo.invtransform(pt);
-            var vtxidx = 1;
+            var vtx = 1;
             if (shapeType === 'Point') {
                 shape.geometry.coordinates = [[p.x, p.y]];
             } else if (isSupported(data, shapeType)) {
@@ -639,14 +639,12 @@
                 $overlayDiv.remove();
                 return false;
             }
-            // save editable state and set to non-editable
-            if (shape.properties != null) {
-            	    shape.properties._editable = shape.properties.editable;
-            	    shape.properties.editable = false;
-            	    shape.properties.screenpos = [pt];
-            } else {
+            // shape is not editable by default
+            if (shape.properties == null) {
                 shape.properties = {'editable' : false};
-            }
+                }
+            // save first mousedown position
+            shape.properties.screenpos = [pt];
             // draw shape
             renderShape(data, shape, layer);
             // vertex drag end handler
@@ -657,21 +655,21 @@
 	            		// single click adds next line to LineString/Polygon
 	            		unrenderShape(data, shape);
 	            		// copy last vertex as starting point
-	            		coords.push(coords[vtxidx].slice());
-	            		vtxidx += 1;
+	            		coords.push(coords[vtx].slice());
+	            		vtx += 1;
 	                    // draw shape
 	                    renderShape(data, shape, layer);
 	                    // execute vertex drag handler on next vertex
-	            		getVertexDragHandler(data, shape, vtxidx, vertexDragDone)(evt);
+	            		getVertexDragHandler(data, shape, vtx, vertexDragDone)(evt);
 	            		return false;
             		} else if (evt.type === 'dblclick') {
             		    // double click ends LineString/Polygon
             		    // remove duplicate vertices (from mouseup)
             		    var rerender = false;
-	            		while (coords[vtxidx][0] === coords[vtxidx-1][0] && 
-	            				coords[vtxidx][1] === coords[vtxidx-1][1]) {
+	            		while (coords[vtx][0] === coords[vtx-1][0] && 
+	            				coords[vtx][1] === coords[vtx-1][1]) {
                             coords.pop();
-                            vtxidx -= 1;
+                            vtx -= 1;
                             rerender = true;
 	            		}
 	            		if (rerender) {
@@ -690,27 +688,23 @@
             	shapeDone(data, shape);
             } else {
             	// execute vertex drag handler on second vertex
-            	getVertexDragHandler(data, shape, vtxidx, vertexDragDone)(evt);
+            	getVertexDragHandler(data, shape, vtx, vertexDragDone)(evt);
             }
             return false;
         };
         
         var shapeDone = function (data, shape) {
             // defining shape done
-        	if (shape.properties._editable != null) {
-            	// re-set editable
             	unrenderShape(data, shape);
-            	shape.properties.editable = shape.properties._editable;
-            	delete shape.properties._editable;
             	renderShape(data, shape, layer);
-        	}
-        	// save shape
+            	// save shape
             layer.shapes.push(shape);
             $overlayDiv.remove();
             if (onComplete != null) {
                 onComplete(data, shape);
             }
         };
+
         // start by clicking
         $overlayDiv.one('mousedown.dlShape', shapeStart);
     };