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 <[email protected]>

> 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
> <[email protected]> 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
>
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to