| You are correct.  You need a behaviour that will change the current state (on the ToolHandler if I remember correctly) from create to NONE or MODIFY?  Or something like that.  I beleive that is what terminates the editing. 
 Jesse If I override the initAcceptBehaviour() method (addAcceptBehaviour doesn't exist) with an empty method, it isn't possible to finish drawing since the double click is not recognized / accepted. ... I'll play with that, perhaps I find a solution.   thanks for your hint    tony roth   
 I don't see anything obvious I'm afraid.  I could suggest another way  of doing this though.  You could make a new Tool that extends the
 PolygonTool and overrides the addAcceptBehaviours() method.  The
 overridden method would add a new behaviour which could either add
 the created polygon to the Layer's black board (or just do nothing).
 Then your search method could use the shape on the layer's blackboard
 (you wouldn't need a dedicated layer for this) to construct the
 search query.  If you did not add any new behaviour (just overrode
 the addAcceptBehaviours method with an empty method) then you could
 use the shape on the EditBlackboard to construct your query.  To get
 the correct blackboard do:  EditblackboardUtils.getEditBlackboard
 ( ApplicationGIS.createContext(layer.getMap),  layer ).
 
 
 Jesse
 
 
 
 On Aug 2, 2007, at 7:11 AM, tony.roth@xxxxxx wrote:
 
 >
 > One wish of my users is to get a 'geo referenced' search. (don't
 > know if
 > it's the correct english word)
 >
 > They want to draw a polygon on the map, click on a search button,
 > enter
 > some additional restrictions for the query and finally send the
 > query. As
 > result they want the elements shown in the map.
 >
 > I will use a dedicated polygon layer for that. The user can draw the
 > polygon with the PolygonTool. To prevent queries with more than one
 > polygon
 > the layer shll just store one feature/polygon. If the user draws a
 > polygon
 > the old one will be removed.
 >
 > What's the best way to realize this?
 > I tried it this way but failed:
 >
 > // Featuretypebuilder, Ressource,....
 > // finally I have the layer :
 >
 >     final Layer l = layer;
 >     l.addListener(new ILayerListener(){
 >      public void refresh(LayerEvent event) {
 >       // debug print
 >       System.out.println(event.getType().name());
 >       if (event.getType()== EventType.EDIT_EVENT){
 >        try {
 >         FeatureStore fs =        l.getGeoResource().resolve
 > (FeatureStore.class,
 >         null);
 >         FeatureIterator fI = fs.getFeatures().features();
 >         List featureList = new ArrayList();
 >         while (fI.hasNext()){
 >          featureList.add(fI.next());
 >         }
 >         if (featureList.size() > 1){
 >          // remove all features
 >          fs.removeFeatures(Filter.NONE);
 >          // add the last one
 >          fs.addFeatures(DataUtilities.collection(new
 >          Feature[]{featureList.get(featureList.size()-1)}));
 >          l.refresh(null);
 >         }
 >        } catch (IOException e) {
 >         // TODO Auto-generated catch block
 >         e.printStackTrace();
 >        }
 >       }
 >      }
 >     });
 >
 >
 > Even I draw a some polygons and see them in my application ths
 > featureList
 > is empty. The event is thrown and the layerListener activated and the
 > FeatureStroe is not null.
 >
 > What's wrong in my code? Or a bad approach? Has someone a better
 > idea to
 > realize this functionality?
 >
 > Thank you,
 > tony roth
 >
 > still using 1.1RC8 :)
 >
 > _______________________________________________
 > 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)
 |