Good plan, I like that idea. Matt Priour -------------------------------------------------- From: "Alexandre Dube" <[email protected]> Sent: Thursday, October 21, 2010 12:33 PM To: "Matt Priour" <[email protected]> Cc: "Andreas Hocevar" <[email protected]>; "GeoEXT Users" <[email protected]> Subject: Re: [Users] Tree node disabling with min/max scale
> The 'visibilitychanged' event would be used as usual, but for the > disabling/enabling we only need to check the 'inRange' property of the > layer. If it's set to false and it's not a base layer, disable the node, > else enable it. That way, it would prevent the issue you mentioned. > > Alexandre > > On 10-10-21 12:24 PM, Matt Priour wrote: >> The only issue I see with that is that checking / unchecking a layer will >> cause it to become visible or not and that in turn fires the >> 'visibilitychanged' event which would now disable the layer node, >> preventing one from turning on that layer again >> >> If you wanted to strictly tie the node disable/enable to the layer's >> 'visibilitychanged' event then you would need to have some kind of flag >> that would prevent the node from disabling itself after a checkbox change >> event >> >> Matt Priour >> >> -------------------------------------------------- >> From: "Alexandre Dube" <[email protected]> >> Sent: Thursday, October 21, 2010 10:51 AM >> To: "Matt Priour" <[email protected]> >> Cc: "Andreas Hocevar" <[email protected]>; "GeoEXT Users" >> <[email protected]> >> Subject: Re: [Users] Tree node disabling with min/max scale >> >>> Hi, >>> >>> Would it make sense to register a 'visibilitychanged' event inside the >>> LayerNode object and disable/enable the UI components accordingly ? >>> Having a plugin is nice but this seems like a feature everyone would >>> like to have by default. Having to configure an additional plugin for >>> that could be avoided IMHO. >>> >>> Using the 'visibilitychanged' event registration method, you trigger >>> much less events and you don't need to check each node on each map zoom. >>> Only when a layer would be actually changed the according event would >>> trigger only once and for the layer only. >>> >>> What do you think ? What do others think ? >>> >>> Alexandre >>> >>> >>> On 10-10-21 11:44 AM, Matt Priour wrote: >>>> My method is very similar to Pierre's. >>>> I have a TreePanel plugin who's init function wires up event listeners >>>> to the map's zoom change event and async node expand event. >>>> >>>> it walks the tree and for each gx_layer type node it checks if the >>>> associated layer is in range. >>>> If not then it disables the node and all of its children if any. >>>> It also checks for any node that has all of its children disabled, and >>>> if so it also disables that node. >>>> >>>> I should have a working patch with test soon. >>>> >>>> Matt Priour >>>> >>>> -------------------------------------------------- >>>> From: "Alexandre Dube" <[email protected]> >>>> Sent: Thursday, October 21, 2010 9:52 AM >>>> To: "Matt Priour" <[email protected]> >>>> Cc: "Andreas Hocevar" <[email protected]>; "GeoEXT Users" >>>> <[email protected]> >>>> Subject: Re: [Users] Tree node disabling with min/max scale >>>> >>>>> Hi Matt, >>>>> >>>>> Nah, it's no "race" but I definitively need that feature soon, so I >>>>> rather share how I would have done it. >>>>> >>>>> Ideally, I would have made a new "rangechange" event for the >>>>> OpenLayers.Layer object and listen to that event to disable/enable the >>>>> UI of the node accordingly. Upon creation, a node would be disabled >>>>> if the 'inRange' is set to 'false' (unless it's a base layer). >>>>> >>>>> That's pretty much it. Does that make sense ? How about your >>>>> method ? >>>>> >>>>> Alexandre >>>>> >>>>> >>>>> On 10-10-21 10:29 AM, Matt Priour wrote: >>>>>> "It's a race" ;) >>>>>> I am working on implementing that feature today as well. >>>>>> >>>>>> Matt Priour >>>>>> Kestrel Computer Consutling >>>>>> >>>>>> >>>>>> -------------------------------------------------- >>>>>> From: "Alexandre Dube" <[email protected]> >>>>>> Sent: Thursday, October 21, 2010 8:55 AM >>>>>> To: "Andreas Hocevar" <[email protected]> >>>>>> Cc: "GeoEXT Users" <[email protected]> >>>>>> Subject: Re: [Users] Tree node disabling with min/max scale >>>>>> >>>>>>> Got it. I guess it shouldn't be that hard to implement, so I'll >>>>>>> give it >>>>>>> a try and report back with a patch + ticket if it goes well. >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Alexandre >>>>>>> >>>>>>> >>>>>>> On 10-10-21 09:39 AM, Andreas Hocevar wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> this would be a useful improvement, but it is not yet implemented - >>>>>>>> patches welcome! >>>>>>>> >>>>>>>> Regards, >>>>>>>> Andreas. >>>>>>>> >>>>>>>> On Oct 21, 2010, at 15:30 , Alexandre Dube wrote: >>>>>>>> >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> The LayerSwitcher automatically disables its layer elements >>>>>>>>> when >>>>>>>>> zooming in/out following the min/max scale values of each layer. >>>>>>>>> Is >>>>>>>>> that feature available with GeoExt tree nodes as well or do I need >>>>>>>>> to do >>>>>>>>> that manually ? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Alexandre Dubé >>>>>>>>> Mapgears >>>>>>>>> www.mapgears.com >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Users mailing list >>>>>>>>> [email protected] >>>>>>>>> http://www.geoext.org/cgi-bin/mailman/listinfo/users >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Alexandre Dubé >>>>>>> Mapgears >>>>>>> www.mapgears.com >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Users mailing list >>>>>>> [email protected] >>>>>>> http://www.geoext.org/cgi-bin/mailman/listinfo/users >>>>>>> >>>>> >>>>> >>>>> -- >>>>> Alexandre Dubé >>>>> Mapgears >>>>> www.mapgears.com >>>>> >>>>> >>> >>> >>> -- >>> Alexandre Dubé >>> Mapgears >>> www.mapgears.com >>> >>> > > > -- > Alexandre Dubé > Mapgears > www.mapgears.com > > _______________________________________________ Users mailing list [email protected] http://www.geoext.org/cgi-bin/mailman/listinfo/users
