Nice tip - can you add it to the developers guide wiki? Right now there is a
very complete page on the theory of edit tools (what all the classes do) but it
is short on actual examples...
Jody
On 05/03/2010, at 2:14 AM, Virginie BERRE wrote:
> I've found the solution (not to bad I think).
>
> To catch when a feature is created with the polygon tool, I added a
> IEditManagerListener on the map.getEditManager().
> map.getEditManager().addListener(new IEditManagerListener() {
> @Override
> public void changed(EditManagerEvent event) {
> SimpleFeature feature=
> map.getEditManager().getEditFeature();
>
> if(feature != null) {
>
> if(feature.getFeatureType().equals(dodFeatureType)) {
> FilterFactory factory =
> CommonFactoryFinder.getFilterFactory(GeoTools.getDefaultHints());
> Id uDigfilter =
> factory.id(Collections.singleton(feature.getIdentifier()));
> try {
> FeatureCollection<SimpleFeatureType,
> SimpleFeature> collection = dodStore.getFeatures(uDigfilter);
> if(collection.isEmpty()) {
> insertDod(feature);
>
> }
> else {
> saveDod(feature);
> }
> } catch (IOException e) {
> e.printStackTrace();
> }
> }
> }
> }
> });
>
> And to manage udig table view feature store, I added a listener to my
> wfsLayer:
> dodLayer.addListener(new ILayerListener() {
> @Override
> public void refresh(LayerEvent event) {
> if(event.getType().equals(EventType.EDIT_EVENT)) {
> if(event.getNewValue() instanceof FeatureEvent) {
> FeatureEvent newEvent = (FeatureEvent)
> event.getNewValue();
> if(newEvent.getSource() instanceof
> FeatureStore) {
> uDigStore =
> (FeatureStore<SimpleFeatureType, SimpleFeature>) newEvent.getSource();
> }
> }
> }
> }
> });
>
> I hope it could help someone else!
> Regards,
>
> Virginie BERRE - Ingénieur d'études et de développement
> +33 (0)1 30 15 40 58
> [email protected]
> <image002.gif>Pensez environnement ! N'imprimez ce mail que si c'est vraiment
> nécessaire !
>
> De : [email protected]
> [mailto:[email protected]] De la part de Virginie BERRE
> Envoyé : mercredi 3 mars 2010 18:16
> À : 'User-friendly Desktop Internet GIS'
> Objet : [udig-devel] Polygon Tool : catch what is created
>
> Dear all,
>
> Is there a way to catch the geometry or the feature which is created with the
> polygon tool?
> My goal is to set some properties when the edit layer is my wfs layer and
> before the feature is created… or to change the properties if the feature is
> created.
>
> My feature collection is not the udig feature collection… I don't find a
> method which returns the geometry or the feature int the PolygonTool class
> (or the implemented classes)…
> I don't want to re-implement this tool but I really need it.
>
> Thank you.
>
> Virginie BERRE - Ingénieur d'études et de développement
> +33 (0)1 30 15 40 58 (n° direct)
> [email protected]
> ZA Les Erables - bâtiment 4
> 66, route de Sartrouville
> 78230 Le Pecq
> Tel: +33 (0)1 30 15 40 50 (standard)
> Fax: +33 (0)1 30 15 40 60
> www.magellium.fr
> <image003.gif>
> <image002.gif>Pensez environnement ! N'imprimez ce mail que si c'est vraiment
> nécessaire !
>
> _______________________________________________
> 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