OpenLayers OpenLayers

Ticket #1173: patch-1173-r5438-A0.diff

File patch-1173-r5438-A0.diff, 2.8 kB (added by elemoine, 1 year ago)

Andreas' patch + tests

  • tests/Renderer/test_Elements.html

    old new  
    138138        t.eq(g_Node._featureId, 'dude', "_featureId is correct"); 
    139139        t.ok(g_Node._style, "_style is correct"); 
    140140        t.eq(g_Node._geometryClass, 'bar', "_geometryClass is correct"); 
    141          
     141 
     142        var _getElement = OpenLayers.Util.getElement; 
     143        OpenLayers.Util.getElement = function(id) { 
     144            return g_Node; 
     145        } 
     146 
     147        var style = {'display':'none'}; 
     148        r.drawGeometry(geometry, style, featureId); 
     149        t.ok(g_Node.parentNode != r.root, "node is correctly removed"); 
     150        
     151        OpenLayers.Util.getElement = _getElement; 
    142152        OpenLayers.Renderer.Elements.prototype.initialize = 
    143153            OpenLayers.Renderer.Elements.prototype._initialize; 
    144154    } 
  • lib/OpenLayers/Feature/Vector.js

    old new  
    265265 *  - graphicOpacity 
    266266 *  - graphicXOffset 
    267267 *  - graphicYOffset 
     268 *  - display 
    268269 */  
    269270OpenLayers.Feature.Vector.style = { 
    270271    'default': { 
  • lib/OpenLayers/Renderer/Elements.js

    old new  
    122122            return; 
    123123        }; 
    124124 
    125         //first we create the basic node and add it to the root 
    126         var nodeType = this.getNodeType(geometry, style); 
    127         var node = this.nodeFactory(geometry.id, nodeType); 
    128         node._featureId = featureId; 
    129         node._geometryClass = geometry.CLASS_NAME; 
    130         node._style = style; 
    131          
    132         //now actually draw the node, and style it 
    133         node = this.drawGeometryNode(node, geometry); 
    134         this.root.appendChild(node); 
    135         this.postDraw(node); 
     125        if (style.display != "none") { 
     126            //first we create the basic node and add it to the root 
     127            var nodeType = this.getNodeType(geometry, style); 
     128            var node = this.nodeFactory(geometry.id, nodeType); 
     129            node._featureId = featureId; 
     130            node._geometryClass = geometry.CLASS_NAME; 
     131            node._style = style; 
     132             
     133            //now actually draw the node, and style it 
     134            node = this.drawGeometryNode(node, geometry); 
     135            this.root.appendChild(node); 
     136            this.postDraw(node); 
     137        } else { 
     138            node = OpenLayers.Util.getElement(geometry.id); 
     139            if (node) { 
     140                node.parentNode.removeChild(node); 
     141            } 
     142        } 
    136143    }, 
    137144 
    138145    /**