It's just I was calling the procedure to create a feature twice... but I'm not sure to have understood the meaning of your question... My poor non native speaker english ? ;)
2009/4/16 Jody Garnett <[email protected]> > 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 >
_______________________________________________ User-friendly Desktop Internet GIS (uDig) http://udig.refractions.net http://lists.refractions.net/mailman/listinfo/udig-devel
