OpenLayers OpenLayers

Changeset 7944

Show
Ignore:
Timestamp:
09/04/08 04:31:05 (3 months ago)
Author:
ahocevar
Message:

Bringing back the pre-r7652 behavior that allows changing the node type for features that have already been rendered. This is important when re-rendering a feature with a new style, e.g. when switching from externalGraphic to graphicName point symbolizers. r=elemoine (closes #1662)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/openlayers/lib/OpenLayers/Renderer/Elements.js

    r7930 r7944  
    507507    redrawNode: function(id, geometry, style, featureId) { 
    508508        // Get the node if it's already on the map. 
    509         var currentNode = OpenLayers.Util.getElement(id); 
    510          
    511         // Create a new node, or use the current one if it's 
    512         // already there. 
    513         var newNode; 
    514         if (!currentNode) { 
    515             var nodeType = this.getNodeType(geometry, style); 
    516             newNode = this.createNode(nodeType, id); 
    517         } else { 
    518             newNode = currentNode; 
    519         } 
     509        var node = this.nodeFactory(id, this.getNodeType(geometry, style)); 
    520510         
    521511        // Set the data for the node, then draw it. 
    522         newNode._featureId = featureId; 
    523         newNode._geometry = geometry; 
    524         newNode._geometryClass = geometry.CLASS_NAME; 
    525         newNode._style = style; 
    526  
    527         var drawResult = this.drawGeometryNode(newNode, geometry, style); 
     512        node._featureId = featureId; 
     513        node._geometry = geometry; 
     514        node._geometryClass = geometry.CLASS_NAME; 
     515        node._style = style; 
     516 
     517        var drawResult = this.drawGeometryNode(node, geometry, style); 
    528518        if(drawResult === false) { 
    529519            return false; 
    530520        } 
    531521          
    532         newNode = drawResult.node; 
     522        node = drawResult.node; 
    533523         
    534524        // Insert the node into the indexer so it can show us where to 
     
    536526        // performance problem (when dragging, for instance) this is 
    537527        // likely where it would be. 
    538         var insert = this.indexer ? this.indexer.insert(newNode) : null; 
     528        var insert = this.indexer ? this.indexer.insert(node) : null; 
    539529 
    540530        if(insert) { 
    541             this.root.insertBefore(newNode, insert); 
     531            this.root.insertBefore(node, insert); 
    542532        } else { 
    543             this.root.appendChild(newNode); 
    544         } 
    545          
    546         this.postDraw(newNode); 
     533            this.root.appendChild(node); 
     534        } 
     535         
     536        this.postDraw(node); 
    547537         
    548538        return drawResult.complete;