[Users] Dynamic Node does not bind to layer

IT Intern itintern12 at gmail.com
Mon Nov 29 21:08:14 CET 2010


Dear Matt,

Hmm this seems like this might be a way for me to go..yet one thing that has
me puzzled is that if I declare my layer to have displayInLayerSwitcher:
false, shouldn't it be that this layer does not append a node to the
containers?  I was just trying to avoid having to have each and every layer
container filter out this one layer, other than that I am actually having
troubles filtering out the layer itself :p

loader:{
                filter: function(record) {
                   //From GeoExt examples...
                    //return record.get("layer").name.indexOf("Tasmania")
!== -1
                   //my attempt
                    return record.get("layer").name != 'Photos'; // :( not
working
                }
            }

Thanks,

elshae

On Mon, Nov 29, 2010 at 2:25 PM, Matt Priour <mpriour at kestrelcomputer.com>wrote:

>  What you want to do is to create your layer with some attribute that you
> are filtering for when creating its parent LayerContainerNode. This way when
> you add it to the map it is either added to the correct parent node because
> it is filtered out of the other layer container nodes filter function or it
> is not added to any nodes until you manually call the load method on the
> parent LayerContainerNode. (I just haven't looked at the code to know if the
> layertree is automatically updated or if you have to call load)
> Either way, the filter function parameter of the loader is what will get
> you your layer added to the correct parent node
>
> Matt Priour
>
>  *From:* IT Intern <itintern12 at gmail.com>
> *Sent:* Monday, November 29, 2010 12:38 PM
> *To:* Users at geoext.org
> *Subject:* Re: [Users] Dynamic Node does not bind to layer
>
> Dear Matt,
>
> Thanks for your feedback!  Unfortunately I have tried that and I still have
> a little problem :-/.  When I remove the additional listener everything
> works great, except every layer container on my tree now has a node for this
> layer which is not what I want :(.  I need a way that I append a single node
> to a single layer container ...
>
> Thank you,
>
> elshae
>
> On Mon, Nov 29, 2010 at 1:33 PM, Matt Priour <mpriour at kestrelcomputer.com>wrote:
>
>>  The LayerStore associtated with the map already has register listeners
>> in the map to take care of adding layers to itself when you add them to the
>> map or vice versa.
>> Remove the additional listener that you are adding and things should work
>> much better.
>>
>> Matt Priour
>>
>>  *From:* IT Intern <itintern12 at gmail.com>
>> *Sent:* Monday, November 29, 2010 12:28 PM
>> *To:* users at geoext.org
>> *Subject:* [Users] Dynamic Node does not bind to layer
>>
>> Hello GeoExt list,
>>
>> I have a tree panel which I append a child node to after it has been
>> created.  The node appears, but when it is toggled on and off I get the
>> error in firebug:
>>
>> this.node.getOwnerTree() is null
>>  var checkedNodes = this.node.getOwnerTree().getChecked();
>>
>> Also the layer does not appear on and off as the node is toggled.  I have
>> tried several things, last thing I tried is listening to the event of where
>> the map has added the layer and then adding the layer to the layer store and
>> creating the node and appending it to the root node of the tree panel.
>> Please if anyone knows why this is failing please drop me a hint :)
>>
>> Thanks,
>>
>> elshae
>>
>>
>>     map.events.register("addlayer", this, function() {
>>         var l = map.layers[map.layers.length-1];
>>         layerStore.loadData([l], true);
>>         var className = '';
>>         if (l.isBaseLayer || !l.displayInLayerSwitcher) {
>>             className = 'x-hidden';
>>         }
>>
>>         var node = new GeoExt.tree.LayerNode({
>>             layerStore: layerStore,
>>             layer: l,
>>             checkedGroup: 'foo',
>>             checked: false
>>         });
>>         // todo, depends on ascending whether to use insertBefore or
>> appendChild
>>         //this.getRootNode().insertBefore(node,
>> this.getRootNode().firstChild);
>>         layerRoot.getOwnerTree().getNodeById('photos').appendChild(node);
>>         });
>>
>> map.addLayer(vectorPano);
>>
>> ------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at geoext.org
>> http://www.geoext.org/cgi-bin/mailman/listinfo/users
>>
>
>  ------------------------------
>
> _______________________________________________
> Users mailing list
> Users at geoext.org
> http://www.geoext.org/cgi-bin/mailman/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.geoext.org/pipermail/users/attachments/20101129/dad0c2dc/attachment.htm 


More information about the Users mailing list