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
