Thank you Andreas, that worked. Apparently just including the code from update #406 in my LegendPanel.js wasn't enough -- I checked out revision 2606 and it works without issue.
Best, Chris On Tue, Feb 15, 2011 at 6:47 PM, Andreas Hocevar <[email protected]>wrote: > Hi, > > what version of GeoExt are you working with? Maybe you should just update > to the latest trunk version. Because we have exactly the same use case in > our applications, and it works without any problems. > > You should never need to trigger a legend update, it is always triggered > automatically with a mergeNewParams or refresh(true) on the layer. > > Regards, > Andreas. > > On Feb 15, 2011, at 18:25 , Chris Kelley wrote: > > > Hi Andreas, thanks for your response. > > > > Step (2) in my explanation is a server-side redraw of the SLD applied to > the viewed layer, after which I do call layer.redraw(true) -- should have > been more explicit on that. Then step (3) occurs automatically due to the > layer redraw command. > > > > I copied the code from change ticket #406 into my WMSLegend.js file, and > this appears to have fixed the legend caching I reported. That's a big step > forward on the problem and I appreciate the suggestion. > > > > It seems the patch is necessary but not sufficient though, for even with > this patch the legend will only update once the zoom-level is changed after > a layer redraw command, whereas the map updates immediately. > > > > I need to be able to trigger a legend refresh immediately any time a user > requests an SLD update for a viewed layer, without requiring the user to > manually trigger other events. A kludge for this is to clone the current > bounds, zoom to max extent, and then zoom back to the cloned bounds. This is > extra server traffic though that I would prefer not to have. > > > > Do you have any advice on this? > > > > Thanks, > > Chris > > > > > > On Tue, Feb 15, 2011 at 2:24 AM, Andreas Hocevar <[email protected]> > wrote: > > Hi, > > > > What do you mean by 2. and 3.? You should call layer.redraw(true) to > reload the layer. > > > > If you do so, then you may be running into > http://trac.geoext.org/ticket/406, which is fixed on trunk already, but > was broken in 1.0. > > > > Regards, > > Andreas. > > > > > >> Am 15.02.2011 03:29 schrieb "Chris Kelley" <[email protected]>: > >> > >> > >> Hi, > >> > >> This is my first post to the GeoExt Users forum. The short question is > whether you can manually trigger a legendpanel refresh or update event in > javascript. The explanation is provided below. > >> > >> Explanation: > >> I have a webpage that includes a GeoExt mappanel and legendpanel that > pull information from a geoserver instance on the same machine, and works > perfectly for layers with static styles. I've added a form and some PHP > scripts (called via AJAX) to allow the user to update the SLD file (e.g. > changing the color scheme). The mappanel worked fine after adding > layer.redraw(true). I don't know how to force a legendpanel update, and > furthermore the legendpanel currently shows some unwanted caching. > >> > >> As an example: > >> 1. I load a map at a given zoom level > >> 2. I trigger a server-side redraw of the SLD (using the Geoserver Rest > API) > >> 3. The webpage correctly redraws the map with the new SLD > >> 4. I zoom further in on the map, and the legendpanel updates properly > >> 5. I zoom back to the zoom level I was at when the SLD was updated, and > the legend REVERTS to the previous legend (although the map continues to > render properly). > >> > >> I'd appreciate any help with this. Let me know if it requires any > further explanation. > >> > >> Best, > >> Chris > >> > >> > >> _______________________________________________ > >> Users mailing list > >> [email protected] > >> http://www.geoext.org/cgi-bin/mailman/listinfo/users > >> > > > > > > -- > Andreas Hocevar > OpenGeo - http://opengeo.org/ > Expert service straight from the developers. > >
_______________________________________________ Users mailing list [email protected] http://www.geoext.org/cgi-bin/mailman/listinfo/users
