Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] Polygons drawn with PolygonTool not in my FeatureStore...

Tony,

Did you find a solution to overriding the PolygonTool as I need to do
something similar and extend the default create polygon tool. Any help /
sample code would be very much appreciated.

Thanks
Andy


Jesse Eichar wrote:
> 
> 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
> On Aug 3, 2007, at 12:01 AM, tony.roth@xxxxxx wrote:
> 
>> 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)
>> 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
> 
> 

-- 
View this message in context: http://www.nabble.com/Re%3A-Polygons-drawn-with-PolygonTool-not-in-my%09FeatureStore...-tf4210939.html#a12121770
Sent from the udig-devel mailing list archive at Nabble.com.



Back to the top