Changeset 7614
- Timestamp:
- 07/30/08 16:26:13 (4 months ago)
- Files:
-
- trunk/openlayers/lib/OpenLayers/Control/ModifyFeature.js (modified) (5 diffs)
- trunk/openlayers/lib/OpenLayers/Layer/Vector.js (modified) (2 diffs)
- trunk/openlayers/tests/Control/ModifyFeature.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/openlayers/lib/OpenLayers/Control/ModifyFeature.js
r7213 r7614 274 274 // the return from the controls is unimportant in this case 275 275 if(OpenLayers.Control.prototype.deactivate.apply(this, arguments)) { 276 this.layer.removeFeatures(this.vertices );277 this.layer.removeFeatures(this.virtualVertices );276 this.layer.removeFeatures(this.vertices, {silent: true}); 277 this.layer.removeFeatures(this.virtualVertices, {silent: true}); 278 278 this.vertices = []; 279 279 this.dragControl.deactivate(); … … 315 315 */ 316 316 unselectFeature: function(object) { 317 this.layer.removeFeatures(this.vertices );317 this.layer.removeFeatures(this.vertices, {silent: true}); 318 318 this.vertices = []; 319 this.layer.destroyFeatures(this.virtualVertices );319 this.layer.destroyFeatures(this.virtualVertices, {silent: true}); 320 320 this.virtualVertices = []; 321 321 if(this.dragHandle) { 322 this.layer.destroyFeatures([this.dragHandle] );322 this.layer.destroyFeatures([this.dragHandle], {silent: true}); 323 323 delete this.dragHandle; 324 324 } 325 325 if(this.radiusHandle) { 326 this.layer.destroyFeatures([this.radiusHandle] );326 this.layer.destroyFeatures([this.radiusHandle], {silent: true}); 327 327 delete this.radiusHandle; 328 328 } … … 414 414 } else if(vertex == this.dragHandle) { 415 415 // dragging a drag handle 416 this.layer.removeFeatures(this.vertices );416 this.layer.removeFeatures(this.vertices, {silent: true}); 417 417 this.vertices = []; 418 418 if(this.radiusHandle) { 419 this.layer.destroyFeatures([this.radiusHandle] );419 this.layer.destroyFeatures([this.radiusHandle], {silent: true}); 420 420 this.radiusHandle = null; 421 421 } … … 424 424 // dragging a real vertex - no special treatment 425 425 if(this.virtualVertices.length > 0) { 426 this.layer.destroyFeatures(this.virtualVertices );426 this.layer.destroyFeatures(this.virtualVertices, {silent: true}); 427 427 this.virtualVertices = []; 428 428 } … … 464 464 } 465 465 if(this.vertices.length > 0) { 466 this.layer.removeFeatures(this.vertices );466 this.layer.removeFeatures(this.vertices, {silent: true}); 467 467 this.vertices = []; 468 468 } 469 469 if(this.virtualVertices.length > 0) { 470 this.layer.removeFeatures(this.virtualVertices );470 this.layer.removeFeatures(this.virtualVertices, {silent: true}); 471 471 this.virtualVertices = []; 472 472 } 473 473 if(this.dragHandle) { 474 this.layer.destroyFeatures([this.dragHandle] );474 this.layer.destroyFeatures([this.dragHandle], {silent: true}); 475 475 this.dragHandle = null; 476 476 } 477 477 if(this.radiusHandle) { 478 this.layer.destroyFeatures([this.radiusHandle] );478 this.layer.destroyFeatures([this.radiusHandle], {silent: true}); 479 479 this.radiusHandle = null; 480 480 } trunk/openlayers/lib/OpenLayers/Layer/Vector.js
r7578 r7614 402 402 403 403 this.features = OpenLayers.Util.removeItem(this.features, feature); 404 // feature has no layer at this point 405 feature.layer = null; 404 406 405 407 if (feature.geometry) { … … 433 435 * features to destroy. If not supplied, all features on the layer 434 436 * will be destroyed. 435 */ 436 destroyFeatures: function(features) { 437 var all = (features == undefined); 437 * options - {Object} 438 */ 439 destroyFeatures: function(features, options) { 440 var all = (features == undefined); // evaluates to true if 441 // features is null 438 442 if(all) { 439 443 features = this.features; 440 this.selectedFeatures = []; 441 } 442 this.eraseFeatures(features); 443 var feature; 444 for(var i=features.length-1; i>=0; i--) { 445 feature = features[i]; 446 if(!all) { 447 OpenLayers.Util.removeItem(this.selectedFeatures, feature); 448 } 449 feature.destroy(); 444 } 445 this.removeFeatures(features, options); 446 for (var i = 0; i < features.length; i++) { 447 features[i].destroy(); 450 448 } 451 449 }, trunk/openlayers/tests/Control/ModifyFeature.html
r7162 r7614 214 214 215 215 control.destroy(); 216 217 // layer.destroy() will call removeFeatures with an empty array, make 218 // removeFeatures reference an empty function to prevent the above 219 // test to fail 220 layer.removeFeatures = function(features) {}; 216 221 layer.destroy(); 217 222 } … … 324 329 325 330 control.destroy(); 331 332 // layer.destroy() will call removeFeatures with an empty array, make 333 // removeFeatures reference an empty function to prevent the above 334 // test to fail 335 layer.removeFeatures = function(verts) {}; 326 336 layer.destroy(); 327 337 }
