[OpenLayers-Users] Hover control sample (share)

Alexandre Dube adube at mapgears.com
Wed Jan 21 08:34:30 EST 2009


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 <adube at 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.c2c at gmail.com> wrote:
>>>
>>>       
>>>> On Mon, Jan 19, 2009 at 3:30 PM, Alexandre Dube <adube at 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 at openlayers.org
>>>> http://openlayers.org/mailman/listinfo/users
>>>>
>>>>
>>>>         
>>>
>>>
>>>       
>> --
>> Alexandre Dubé
>> Mapgears
>> www.mapgears.com
>>
>>
>>     


-- 
Alexandre Dubé
Mapgears
www.mapgears.com




More information about the Users mailing list