[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [udig-devel] how to add features to a shapefile layer on map
|
something seems a bit odd...
The transaction should be handled by the Map; that is what the * is
about - and when the user hits commit the features will actually be
written out. Until then they should show up in the map after a refresh
and so on ...
So if you want to avoid the star you would actually be taking control
away from the user (basically doing a "commit") without asking them.
The idea was to let the programs hack away on map data; and let users
review and modify; and only commit when they are ready.
So I would:
1. don't use your own transaction the layer has already supplied one
2. Use the commit CommitCommand
If this becomes a common need we should make a CommitRecommendedAction
that prompts the user that a commit is recommended and allows them to
"Commit" or "Igmore" or something...
Jody
On 14/10/2009, at 7:14 PM, Kemppilä Atte wrote:
Hi.
I have a shapefile as a map layer and I would like to add multiple
features directly into the shapefile. I have done it like this
(simplified):
(using uDig 1.2 M7)
Transaction tx = new DefaultTransaction("foo");
try {
featureStore.setTransaction(tx);
featureStore.addFeatures(featureCollection);
tx.commit();
}
catch (Exception e) {
tx.rollback();
}
finally {
tx.close();
}
Seems to work fine. Features are inserted to the shapefile, appear
on the map after refresh and various listeners get notified that
features were added. The only problem is that the map thinks that it
has been modified (it gets that star '*' next it's name).
So, how to avoid that star. I tried a couple things:
1. I could say "layer.eSetDeliver(false)" before the add (and set
back to true after). No more star, but listeners don't get called
either.
2. I could use CommitCommand after the transaction but that just
seems odd that I would need another commit. Also, I wouldn't be able
to add features to shapefile if there were edit in progress in some
other layer because those changes would be committed also. (I think.)
Or something else? Or is there something wrong in the way how I add
the features?
Some guidance would be appreciated.
--
Atte Kemppilä
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel