Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] Feature Caching

Hi Dave,

Take a look at LayerResource.  That could be related to your issue.  Or maybe not it is a confusing class :).  The idea is that LayerResource is a decorator over the IGeoResource from the catalog.  It provides a small framework that does 2 things.

1.  Provides targets for interceptor which allow a developer to do things like override the CRS returned by the IGeoResource... Or apply filters to an IGeoResource.  Related to that there is actually an existing Interceptor called ShowViewInterceptor which takes a filter from the StyleBlackboard (it also checks the Layer Blackboard) and when a FeatureSource is requested calls getView on the Datastore and returns that FeatureSource instead of the one returned by the IGeoResource.  Sounds like that could be of interest to you.
2.  Caches items that are resolved from the IGeoResource so the same FeatureSource is returned each time.  The reason the same FeatureSource was for events and for Transactions to be consistent.  I wouldn like to review that and see if it is still necessary because caching (like you are finding) can be annoying.

Jesse

On Mon, Aug 24, 2009 at 12:28 PM, Dave S-B <dev-lists@xxxxxxxxxxxxxxxxxxxxx> wrote:
...and I'm using a MySql DataStore to get the data...

Dave S-B wrote:
I'm trying to work through a problem I'm having with a custom GeoResource and I could do with some pointers.

In our application, users can select global named "datasets" to work with for their current session. Amongst a load of other things, this includes data filtering. So, from my custom IGeoResource's getFeatureSource() method, I'm returning a feature source with a filter based on the global dataset rules. This is all working fine when you first open a map or add this particular layer - it picks up the correct results based on the current datasets. But, if the user changes their dataset selection, no amount of map refreshing or opening and closing of maps will draw the correct data *even though* the getFeatureSource() method *is* returning a FeatureSource with the correct Query/Filter (it's just an FID filter). The only way to see the refreshed data is to shut down the application and re-open it.

I'm having trouble working out where things are being cached because getFeatureSource() is getting called on every map refresh/pan/zoom so something is obviously looking for fresh information.

Any ideas how I can get the map to refresh properly? I'm using 1.2M5 SDK at the moment..

Many Thanks
Dave S-B
New album - "Dark" - out now! Check it out on www.myspace.com/davesbsounds
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG - www.avg.com Version: 8.5.409 / Virus Database: 270.13.65/2322 - Release Date: 08/23/09 18:03:00

 

_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel


Back to the top