On Thursday, May 20, 2010, Adam Ratcliffe <[email protected]> wrote:
> I have a FeatureStore instance associated with a map vector layer, the vector 
> layer has a DrawFeature control associated with it.
>
> When a new feature is created the FeatureStore.onFeaturesAdded() method is 
> called to create a new record in the store for the feature.  The record is 
> created but it does not receive the Open Layers feature ID because it's in an 
> INSERT state, as per this code in the FeatureReader class:
>
>                 // newly inserted features need to be made into phantom 
> records
>                 var id = (feature.state === OpenLayers.State.INSERT) ? 
> undefined : feature.id;
>                 records[records.length] = new recordType(values, id);
>
> If I save the vector layer the feature is updated to no longer be in an 
> INSERT state.

Is the feature updated or is a new feature created?

> When I try to retrieve the record for the feature from the store using the 
> FeatureStore.getRecordFromFeature() method it fails due to this logic in 
> FeatureStore.getRecordFromFeature():
>
>             if(feature.state !== OpenLayers.State.INSERT) {
>                 record = this.getById(feature.id);
>             } else {
>                 var index = this.findBy(function(r) {
>                     return r.get("feature") === feature;
>                 });
>                 if(index > -1) {
>                     record = this.getAt(index);
>                 }
>             }
>
> The record is no longer in an INSERT state so it will try to find the record 
> by feature ID but the record only exists as a phantom (ID less) record in the 
> store.
>
> Is this a bug or do I need to explicitly update the record in the store after 
> the feature is saved?

In my opunion you'd be better off destroying the feature marked
"INSERT" and creating and adding a new feature (with an id).

Cheers,

-- 
Eric Lemoine

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex

Tel : 00 33 4 79 44 44 96
Mail : [email protected]
http://www.camptocamp.com
_______________________________________________
Users mailing list
[email protected]
http://www.geoext.org/cgi-bin/mailman/listinfo/users

Reply via email to