<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content=text/html;charset=utf-8>
<STYLE type=text/css><!-- DIV {margin:0px;} --></STYLE>

<META content="MSHTML 6.00.6002.18332" name=GENERATOR></HEAD>
<BODY id=MailContainerBody 
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-TOP: 15px" leftMargin=0 
topMargin=0 CanvasTabStop="true" name="Compose message area">
<DIV><FONT face=Arial size=2>I understand you are honestly trying to figure out 
how to use GeoExt and teaching yourself how to program using the OpenGeo stack, 
however at this point I think you have become a "Help Vampire" [1] 
.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>You are not following recommendations given on the 
list, not reading the documentation, not following the examples, and not opening 
the GeoExt library source to understand how things work.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>The behavior you describe below is exactly what one 
would expect. You have been given the answer before and warned against trying to 
use multiple stores and encouraged to learn how to use the loader's filter 
function, yet I see the same errors below.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>An 'async' tree node (which all LayerNodes and 
LayerContainerNodes are derived from) fire their load function when they are 
expanded. Look at the code for the OverlayLayerContainer's load function and you 
will see very easily why this problem is happening. You should also be able to 
quickly gain a much better understanding of the right way to configure your 
nodes so that they behave in the expected manner.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>While I certainly understand the difficulty of 
learning something completely new and trying to do your normal job as well 
(trust me, I've been there, as have most others on this list), we can't hold 
your hand and give you answer after answer unless you are also making an equal 
effort to actually learn the tools. Spend a few evenings or weekends following 
through the source code, take the examples and start changing them in a 
controlled way so that you understand the effect of different options or 
techniques for doing things.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>GeoExt is a fairly high level library. You can use 
it in a lot of scenarios with little understanding of the libraries it depends 
on and it will do all kinds of cool things automatically. However, due to its 
dependence on both OpenLayers &amp; ExtJS, if you want to do something extra or 
custom with GeoExt, then you really need to understand it's inner workings or 
you will continue to have problems.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Matt Priour</FONT></DIV>
<DIV><FONT face=Arial size=2>Kestrel Computer Consutling</DIV>
<DIV><BR>[1] <A 
href="http://slash7.com/2006/12/22/vampires/">http://slash7.com/2006/12/22/vampires/</A></DIV>
<DIV>&nbsp;</DIV>
<DIV></FONT>&nbsp;</DIV>
<DIV style="FONT: 10pt Tahoma">
<DIV><BR></DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=robertdbuckley@yahoo.com 
href="mailto:robertdbuckley@yahoo.com">Robert Buckley</A> </DIV>
<DIV><B>Sent:</B> Wednesday, January 19, 2011 2:36 AM</DIV>
<DIV><B>To:</B> <A title=users@geoext.org 
href="mailto:users@geoext.org">users@geoext.org</A> </DIV>
<DIV><B>Subject:</B> [Users] How to remove node from 
GeoExt.tree.OverlayLayerContainer?</DIV></DIV></DIV>
<DIV><BR></DIV>
<DIV 
style="FONT-SIZE: 8pt; FONT-FAMILY: arial,helvetica,sans-serif">Hi,<BR><BR>I 
have defined an GeoExt.tree.OverlayLayerContainer called "zusatzlayer". The 
store has to be set with no layers otherwise ALL layers are 
added<BR><BR>CODE:<BR><BR>// Zusatz Stores<BR>&nbsp;&nbsp;&nbsp; var 
zusatz_store = new GeoExt.data.LayerStore({<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; id:"Zusatzlayer",<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
text: "Zusatzlayer",<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
map:map,<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; initDir: 
0,<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; layers:[]<BR>&nbsp;&nbsp;&nbsp; 
});<BR><BR>layerRoot.appendChild(new 
GeoExt.tree.OverlayLayerContainer({<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; id: 
'Zusatzlayer',<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; text: "&lt;span 
class='TreeHeader'&gt;Zusatzlayer&lt;/span&gt;",<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; layerStore: zusatz_store,<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; leaf: false<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
})<BR>&nbsp;&nbsp;&nbsp; );<BR><BR><BR><SPAN style="COLOR: rgb(255,0,0)">In this 
OverlayLayerContainer I can append layers out of a grid using the following 
function in a bbar...</SPAN><BR><BR>bbar: [new 
Ext.Button({<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text: "Layer 
hinzuf&amp;uuml;gen",<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tooltip : 'Layer 
hinzuf&amp;uuml;gen',<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler: function() 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
capabilitiesgrid.getSelectionModel().each(function(record) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var clone = 
record.clone();<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
clone.get("layer").mergeNewParams({<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;format: "image/png",<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp; transparent: true<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp; })&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
layerRoot.getOwnerTree().getNodeById('Zusatzlayer').appendChild(new 
Ext.tree.TreeNode({<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; text: 
clone.get("layer").name,<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; checked: 
true,<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listeners: 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
'checkchange': function(node, 
checked){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
if(checked){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.MessageBox.alert(null, 
'checked');<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
clone.get("layer").setVisibility(true);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.MessageBox.alert(null, 'not 
checked');<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
clone.get("layer").setVisibility(false);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; })&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 
);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; // <SPAN style="COLOR: rgb(255,0,0)">THIS 
ADDS THE LAYER</SPAN><BR><BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
mapPanel.layers.add(clone);&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
// zoom on to&nbsp; new layer<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var 
bounds = new 
OpenLayers.Bounds.fromArray(clone.get("llbbox"))<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; bounds.transform(epsg4326, 
map.getProjectionObject());<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
map.zoomToExtent(bounds)<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
});<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; })<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; ,<BR><BR><BR>THE PROBLEM...... If the treenode is expanded, 
the layer is being added twice!!!<BR><BR>Could anyone offer any 
solutions?<BR><BR>thanks for any help,<BR><BR>Rob<BR>
<DIV><BR></DIV></DIV><BR>
<P>
<HR>

<P></P>_______________________________________________<BR>Users mailing 
list<BR>Users@geoext.org<BR>http://www.geoext.org/cgi-bin/mailman/listinfo/users<BR></BODY></HTML>