Mercurial > hg > digilib
changeset 1323:7e208f491ef1
some cleanup.
author | robcast |
---|---|
date | Sat, 24 Jan 2015 16:08:29 +0100 |
parents | 11b8a89379d8 |
children | e34a533418a0 |
files | webapp/src/main/webapp/jquery/jquery.digilib.vector.js |
diffstat | 1 files changed, 17 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.vector.js Sat Jan 24 10:03:05 2015 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.vector.js Sat Jan 24 16:08:29 2015 +0100 @@ -152,7 +152,7 @@ } var shapes = layer.shapes; if (shapes == null) return; - for (var i in shapes) { + for (var i = 0; i < shapes.length; ++i) { if (shapes[i].id === id) { shapes.splice(i, 1); } @@ -645,11 +645,11 @@ // draw shape renderShape(data, shape, layer); // vertex drag end handler - var vertexDragDone = function (data, shape, newevt) { + var vertexDragDone = function (data, shape, evt) { var coords = shape.geometry.coordinates; if (shapeType === 'LineString' || shapeType === 'Polygon') { - if (newevt.type === 'mouseup') { - // single click adds line to LineString/Polygon + if (evt.type === 'mouseup') { + // single click adds next line to LineString/Polygon unrenderShape(data, shape); // copy last vertex as starting point coords.push(coords[vtxidx].slice()); @@ -657,16 +657,21 @@ // draw shape renderShape(data, shape, layer); // execute vertex drag handler on next vertex - getVertexDragHandler(data, shape, vtxidx, vertexDragDone)(newevt); + getVertexDragHandler(data, shape, vtxidx, vertexDragDone)(evt); return false; - } else if (newevt.type === 'dblclick') { - // double click ends Linestring/Polygon - if (coords[vtxidx][0] === coords[vtxidx-1][0] && + } 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]) { - unrenderShape(data, shape); - // remove duplicate last vertex (from mouseup) - coords.pop(); - renderShape(data, shape, layer); + coords.pop(); + vtxidx -= 1; + rerender = true; + } + if (rerender) { + unrenderShape(data, shape); + renderShape(data, shape, layer); } } else { console.error("unknown event type!");