Changeset 5623
- Timestamp:
- 01/02/08 13:54:33 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/openlayers/lib/OpenLayers/Control/ModifyFeature.js
r5553 r5623 386 386 vertex.geometry.parent.addComponent(vertex.geometry, 387 387 vertex._index); 388 // move from virtual to real vertex 388 389 delete vertex._index; 389 390 OpenLayers.Util.removeItem(this.virtualVertices, vertex); 391 this.vertices.push(vertex); 390 392 } else if(vertex == this.dragHandle) { 391 393 // dragging a drag handle … … 399 401 // dragging a radius handle - no special treatment 400 402 // dragging a real vertex - no special treatment 401 this.layer.destroyFeatures(this.virtualVertices); 402 this.virtualVertices = []; 403 if(this.virtualVertices.length > 0) { 404 this.layer.destroyFeatures(this.virtualVertices); 405 this.virtualVertices = []; 406 } 403 407 this.layer.drawFeature(this.feature, this.selectControl.selectStyle); 404 408 } … … 500 504 control.vertices.push(vertex); 501 505 } else { 502 for(i=0; i<geometry.components.length; ++i) { 506 var numVert = geometry.components.length; 507 if(geometry.CLASS_NAME == "OpenLayers.Geometry.LinearRing") { 508 numVert -= 1; 509 } 510 for(i=0; i<numVert; ++i) { 503 511 component = geometry.components[i]; 504 512 if(component.CLASS_NAME == "OpenLayers.Geometry.Point") { trunk/openlayers/tests/Control/test_ModifyFeature.html
r5467 r5623 250 250 251 251 function test_ModifyFeature_resetVertices(t) { 252 t.plan(1 8);252 t.plan(17); 253 253 var layer = new OpenLayers.Layer.Vector(); 254 254 var control = new OpenLayers.Control.ModifyFeature(layer); … … 277 277 control.feature = new OpenLayers.Feature.Vector(polygon); 278 278 control.resetVertices(); 279 t.eq(control.vertices.length, 4, "Correct vertices length with polygon"); 280 t.eq(control.vertices[0].geometry.id, control.vertices[3].geometry.id, "First and last vertices are the same"); 279 t.eq(control.vertices.length, 3, "Correct vertices length with polygon"); 281 280 t.eq(control.virtualVertices.length, 3, "Correct virtual vertices length (polygon)."); 282 281 … … 299 298 control.resetVertices(); 300 299 t.ok(control.radiusHandle != null, "Radius handle is set"); 301 t.eq(control.vertices.length, 4, "Correct vertices length with polygon (RESHAPE | RESIZE)");300 t.eq(control.vertices.length, 3, "Correct vertices length with polygon (RESHAPE | RESIZE)"); 302 301 t.eq(control.virtualVertices.length, 3, "Correct virtual vertices length (RESHAPE | RESIZE)"); 303 302 }
