Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] Ghost feature on my layer

Thanks a lot for the answer and I'm quite ashame ... I've found out my mistake.
Actually, there's no 'ghost' problem. I just initialy created 2 features at the same place. That was my mistake...
Sorry if I waste your precious time.
On the other hand, some uDIG newbies could find my code example interesting to manipulate features via datastore.

2009/4/15 Jody Garnett <jody.garnett@xxxxxxxxx>
uDig manages its own transaction; you know that right? If you would
like the transaction please contact the EditManager (it is available
via any tool or render context). This is the transaction that is
engaged when the user hits the commit or rollback buttons.

When you ask a layer for a FeatureSource or FeatureStore this
transaction will be set prior to your code receiving it. The idea is
that your code should work directly against the featureStore API; and
the user should be able to run your code; and any other operations;
review the result prior to committing.

Jody

On Tue, Apr 14, 2009 at 10:05 PM, Rodolphe QUEMERAIS
<rodolphe.quemerais@xxxxxxxxx> wrote:
> Hi all,
>
> I would be please if someone could help me to understand what's happening on
> my layer...
>
> Actually, I created a layer and added a feature on it. I've programmed a
> visual tool with arrows that let me move my feature on screen. The problem
> is, as I thought I created only one feature, a clone one has been created
> too. The cloned layer disappear if I refresh the screen but reappear if I
> move the othe feature over it...
>
> here are the code extract if that can help:
>
> To create a feature :
> Feature[] features = new Feature[1];
>         features[0] = feature;
>                 System.out.println("feature créé : "+
> features[0].getID());
>         String featureTypeName = myLayer.getSchema().getTypeName();
>         try {
>
>             FeatureSource source = myLayer.getResource(FeatureSource.class,
> ProgressManager.instance().get());
>             DataStore dataStore = source.getDataStore();
>
>             FeatureStore store = (FeatureStore)
> dataStore.getFeatureSource(featureTypeName);
>             store.setTransaction(transaction);
>             store.addFeatures(DataUtilities.collection(features));
>             transaction.commit();
>
>         } catch (IOException e) {
>             transaction.rollback();
>             e.printStackTrace();
>         } finally {
>             transaction.close();
>         }
>
> To move the feature :
>
>         DefaultTransaction transaction = new DefaultTransaction("Example1");
>
>         try {
>         FeatureStore store = (FeatureStore)
> dataStore.getFeatureSource(featureTypeName);
>
>         store.setTransaction( transaction );
>
>         FilterFactory ff = FilterFactoryFinder.createFilterFactory();
>         //To filter only the selected feature, the featureId has previously
> been captured
>         FidFilter filter2 = ff.createFidFilter();
>         filter2.addFid(featureId);
>
>         FeatureType featureType = store.getSchema();
>
>         AttributeType att = featureType.getDefaultGeometry();
>         //geo is the modified Geometry
>             store.modifyFeatures(att, geo, filter2);
>             transaction.commit();
>             System.out.println("Transaction effectué");
>         } catch (Exception e) {
>             transaction.rollback();
>             System.out.println("Rollback effectué");
>
>         } finally {
>             transaction.close();
>         }
>
> The 'cloned' feature ID is like new0 and the created feature ID is like
> fid-_61883d49_120a475c79a__7ffd
> I have the feeling that new0 is not in datastore and has only been created
> on the graphic layer... but I'm not sure at all...
> Any suggestions ?
>
>
> _______________________________________________
> User-friendly Desktop Internet GIS (uDig)
> http://udig.refractions.net
> http://lists.refractions.net/mailman/listinfo/udig-devel
>
>
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel


Back to the top