Hi Amos What we're trying to do here is come up with code design that doesn't require creating new controls.
Eric 2009/1/21, Amos Hayes <aha...@gcrc.carleton.ca>: > > We've had to implement separate select and hover functionality on top > of select feature. If you like, have a look at this work in progress: > > http://atlas.gcrc.carleton.ca/kitikmeot/ > > -- > Amos Hayes > Geomatics and Cartographic Research Centre > Carleton University > aha...@gcrc.carleton.ca > +1.613.520.2600x8179 > > On 21-Jan-09, at 8:34 AM, Alexandre Dube wrote: > >> Hey Eric, Ivan, >> >> That issue could occur if both controls would actually change the >> renderIntent of the feature ( without actually selecting the >> feature ). >> >> Let's assume that you can only have one feature hovered at a time ( >> only one feature can be hovered by the mouse). That said, we could >> have >> its renderIntent copied to a this.oldRenderIntent local property, then >> on "beforefeatureunselected" restore the feature with its old >> renderIntent. What do you think ? Simple but that could work. >> >> Also, can we agree on this : 2 SelectFeature controls both doing >> selection by click or both by hover are not compatible with multiple >> styling, so let's forget about this for now. >> >> I'll definitively have to try all this soon. >> >> Alexandre >> >> Eric Lemoine wrote: >>> Hi >>> >>> A first note. The current select feature implementation should >>> accomodate this use case: two controls on the same layer, one working >>> on click and the other on hover, only one of them actually changing >>> the feature style. This is achievable by registering a >>> beforefeatureselected listener, and have this listener return false. >>> Adding beforefeatureunselected might help fully accomodate that use >>> case. >>> >>> Now if we want the two controls to do feature styling, we need the >>> stuff I mentioned previously - per-control selectedFeatures arrays >>> and >>> events. But this is unfortunately not sufficient. Use case: two >>> controls, one working on click and the other on hover, both doing >>> feature styling but with different render intents. If we have this >>> sequence "mouse goes over feature, mouse clicks feature, mouse goes >>> out of feature", then the feature ends up being rendered with the >>> "default" render intent, while it's still selected from the click >>> control's perspective. In most cases, this isn't desirable I think. >>> >>> At this point I don't have a solution to the above issue. >>> >>> Eric >>> >>> 2009/1/20, Alexandre Dube <ad...@mapgears.com>: >>> >>>> Hi Ivan, Eric, >>>> >>>> I was actually thinking a similar idea. The more I thought about >>>> it, >>>> the more I thought about copying/pasting the SelectFeature >>>> control, make >>>> some changes to the copy and name it HighlightFeature. But Eric's >>>> idea >>>> is much better. >>>> >>>> Having the control itself know which feature it has selected + >>>> having >>>> its own events could enable the possibility of having multiple >>>> SelectFeature controls for a single layer. Having both selecting on >>>> hover and/or click won't matter except for the style and the >>>> renderIntent applied to the selected feature. I guess the last >>>> declared >>>> control would have the last word of determining those... >>>> >>>> About that, what if we want 2 different colors for each ctrl ? >>>> Having >>>> 2 selectfeature ctrls doing the same thing ( hover and click ) is >>>> not >>>> very logic, but let's say one select on hover, the other on click, >>>> it >>>> would be nice be able to have 2 different styles for each action. >>>> But >>>> how could we do that ? (I guess I don't fully understand the whole >>>> renderIntent stuff yet... Could we specify a specific >>>> renderIntent for >>>> the selectFeature ? Could "select" be the default value and we >>>> could be >>>> able to set our own ?) To do so without changing the renderIntent >>>> of >>>> the feature is to change its style only, without selecting it. >>>> >>>> Ivan's idea (selectOnHover:false) sounds good. I'd like to see the >>>> code and try it. Ivan, could you share what you've done ? At the >>>> same >>>> time, I'd like to try to add events to the control and its >>>> selectedFeatures array, like Eric said. >>>> >>>> Finally, I would like to know more about what you think about all >>>> this. >>>> >>>> Best regards, >>>> >>>> Alexandre >>>> >>>> Ivan Grcic wrote: >>>> >>>>> On Mon, Jan 19, 2009 at 10:19 PM, Eric Lemoine >>>>> <eric....@gmail.com> wrote: >>>>> >>>>> >>>>>> On Mon, Jan 19, 2009 at 3:30 PM, Alexandre Dube <ad...@mapgears.com >>>>>> > >>>>>> wrote: >>>>>> >>>>>> >>>>>>> Hi Eric, >>>>>>> >>>>>>> I took a look at the SelectFeature control. Now I understand >>>>>>> what you >>>>>>> meant and it makes sense. Also, it's also making sense to have >>>>>>> this >>>>>>> control >>>>>>> have the possibility to highlight on hover or on click. >>>>>>> >>>>>>> "beforefeaturehighlighted" and "featurehighlighted" events make >>>>>>> sense, >>>>>>> but >>>>>>> a "featureunhighlighted" (or some other term meaning that the >>>>>>> feature >>>>>>> was >>>>>>> highlighted and is now no more) would also be useful. >>>>>>> >>>>>>> >>>>>> Alexandre, >>>>>> >>>>>> The more I think about this highlight feature control the more I >>>>>> think >>>>>> there's no room for both a select feature and a highlight feature >>>>>> controls. >>>>>> >>>>>> >>>>>> >>>>> Same opinion here. We already have a bunch of controls, and now >>>>> adding >>>>> two very similar ones... >>>>> >>>>> Currently im using slightly modified SelectFeature control, i added >>>>> one more option to it: selectOnHover, thats how i quickly solved >>>>> the >>>>> problem of only highlighting feature without selecting it. >>>>> >>>>> If selectOnHover is true, feature is selected&higlighted (select >>>>> method is called) on hover, if its false feature is only >>>>> higlighted, >>>>> not selected. >>>>> >>>>> >>>>> >>>>>> What causes people trouble is that they can't use two select >>>>>> feature >>>>>> controls, one in hover mode and the other in click mode. This is >>>>>> because once a feature is hovered it is selected, and cannot be >>>>>> selected again when it is clicked. >>>>>> >>>>>> Maybe we could modify the select feature control so that (1) it >>>>>> optionally uses its own selectedFeatures array, as opposed to >>>>>> relying >>>>>> on the layer's, and (b) defines its own "beforefeatureselected", >>>>>> "featureselected" and "featureunselected" event types. In this >>>>>> way, >>>>>> one should be able to use two select feature controls, and get >>>>>> "featureselected" events, from the first control when features are >>>>>> hovered and from the second control when features are clicked. >>>>>> >>>>>> Tell me what you think, >>>>>> >>>>>> >>>>>> >>>>> >>>>>> -- >>>>>> Eric >>>>>> _______________________________________________ >>>>>> Users mailing list >>>>>> Users@openlayers.org >>>>>> http://openlayers.org/mailman/listinfo/users >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> -- >>>> Alexandre Dubé >>>> Mapgears >>>> www.mapgears.com >>>> >>>> >>>> >> >> >> -- >> Alexandre Dubé >> Mapgears >> www.mapgears.com >> >> _______________________________________________ >> Users mailing list >> Users@openlayers.org >> http://openlayers.org/mailman/listinfo/users > > _______________________________________________ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users