Oh I know that bug; creating two features by accident is a pain. Do
you have a way to reproduce it or is it just luck?

Jody

On Thu, Apr 16, 2009 at 12:01 AM, Rodolphe QUEMERAIS
<[email protected]> wrote:
> 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
>
>
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to