This looks great, Paul. Can you make a ticket and patch for this? :-)<br>Erik<br><br><div class="gmail_quote">On Wed, Feb 4, 2009 at 15:41, Paul Dziemiela <span dir="ltr">&lt;<a href="mailto:paul@dziemiela.com">paul@dziemiela.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello,<br>
<br>
In some cases I need to &quot;clear the decks&quot; of popups and would like to simply<br>
blast away with the destroy() function anywhere that feature.popup is not<br>
null. &nbsp;However, when I try this against features that haven&#39;t actually<br>
created a popup I get several errors. &nbsp;Is it reasonable to expect destroy()<br>
to execute in any case without errors?<br>
<br>
The following changes would be needed to destroy() in Framed.js<br>
<br>
 &nbsp; &nbsp;destroy: function() {<br>
 &nbsp; &nbsp; &nbsp; this.imageSrc = null;<br>
 &nbsp; &nbsp; &nbsp; this.imageSize = null;<br>
 &nbsp; &nbsp; &nbsp; this.isAlphaImage = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; this.fixedRelativePosition = false;<br>
 &nbsp; &nbsp; &nbsp; this.positionBlocks = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; //remove our blocks<br>
 &nbsp; &nbsp; &nbsp; // Added this test<br>
 &nbsp; &nbsp; &nbsp; if (this.blocks != null) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for(var i = 0; i &lt; this.blocks.length; i++) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var block = this.blocks[i];<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (block.image) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;block.div.removeChild(block.image);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; block.image = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (block.div) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.groupDiv.removeChild(block.div);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; block.div = null;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; this.blocks = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; OpenLayers.Popup.Anchored.prototype.destroy.apply(this, arguments);<br>
 &nbsp; &nbsp;},<br>
<br>
And the following changes to destroy() in Popup.js<br>
<br>
 &nbsp; &nbsp;destroy: function() {<br>
<br>
 &nbsp; &nbsp; &nbsp; <a href="http://this.id" target="_blank">this.id</a> = null;<br>
 &nbsp; &nbsp; &nbsp; this.lonlat = null;<br>
 &nbsp; &nbsp; &nbsp; this.size = null;<br>
 &nbsp; &nbsp; &nbsp; this.contentHTML = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; this.backgroundColor = null;<br>
 &nbsp; &nbsp; &nbsp; this.opacity = null;<br>
 &nbsp; &nbsp; &nbsp; this.border = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; if (this.events != null) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.events.destroy();<br>
 &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; this.events = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; if (this.closeDiv != null) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OpenLayers.Event.stopObservingElement(this.closeDiv);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.groupDiv.removeChild(this.closeDiv);<br>
 &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; this.closeDiv = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; if (this.div != null) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.div.removeChild(this.groupDiv);<br>
 &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; this.groupDiv = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; if (this.map != null) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.map.removePopup(this);<br>
 &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; this.map = null;<br>
 &nbsp; &nbsp; &nbsp; this.div = null;<br>
<br>
 &nbsp; &nbsp; &nbsp; this.autoSize = null;<br>
 &nbsp; &nbsp; &nbsp; this.minSize = null;<br>
 &nbsp; &nbsp; &nbsp; this.maxSize = null;<br>
 &nbsp; &nbsp; &nbsp; this.padding = null;<br>
 &nbsp; &nbsp; &nbsp; this.panMapIfOutOfView = null;<br>
 &nbsp; &nbsp;},<br>
<br>
Thanks!<br>
<br>
Paul<br>
<br>
<br>
_______________________________________________<br>
Dev mailing list<br>
<a href="mailto:Dev@openlayers.org">Dev@openlayers.org</a><br>
<a href="http://openlayers.org/mailman/listinfo/dev" target="_blank">http://openlayers.org/mailman/listinfo/dev</a><br>
</blockquote></div><br>