Was extending DataGrid instead of List and that was the code in
DataGridBase.  I noticed that too after I posted.  Glad that you figured
out a solution.

-TH

--- In flexcoders@yahoogroups.com, Thibaud Van Vreckem <thibaudm...@...>
wrote:
>
> Thanks for the answer, that was great :)
> Tim is code looks exactly like what I actually ended up doing:
>
> import mx.controls.List;
> import flash.display.Sprite;
> import mx.controls.listClasses.IListItemRenderer;
>
> override protected function drawHighlightIndicator(indicator:Sprite,
> x:Number, y:Number,width:Number, height:Number,
> color:uint,itemRenderer:IListItemRenderer):void
> {
> if (!isItemSelected(itemRenderer.data))
> super.drawHighlightIndicator(indicator, x, y,width, height, color,
> itemRenderer);
> }
>
>
> any reason why you used (unscaledWidth - viewMetrics.left -
> viewMetrics.right) for width ?
>
>
> On Thu, Feb 12, 2009 at 12:44 AM, Tim Hoff timh...@... wrote:
>
> > Or, even better:
> > *
> >
> > override
> > * *protected* *function* drawHighlightIndicator(indicator:Sprite,
> > x:Number, y:Number, width:Number, height:Number, color:uint,
> > itemRenderer:IListItemRenderer):*void
> > *{
> > * if* ( !isItemSelected(itemRenderer.data) )
> > {
> > * super*.drawHighlightIndicator(indicator, x, y, unscaledWidth -
> > viewMetrics.left - viewMetrics.right, height, color, itemRenderer);
> > }
> > }
> >
> > -TH
> >
> > --- In flexcoders@yahoogroups.com, "Tim Hoff" TimHoff@ wrote:
> > >
> > >
> > > So, with Alex's suggestion, this is a lot cleaner:
> > >
> > > override protected function
drawHighlightIndicator(indicator:Sprite,
> > > x:Number, y:Number, width:Number, height:Number, color:uint,
> > > itemRenderer:IListItemRenderer):void
> > > {
> > > if (isItemSelected(itemRenderer.data))
> > > {
> > > return;
> > > }
> > >
> > >
> > >
> > > super.drawHighlightIndicator(indicator, x, y, unscaledWidth -
> > > viewMetrics.left - viewMetrics.right, height, color,
itemRenderer);
> > > }
> > >
> > > -TH
> > >
> > > --- In flexcoders@yahoogroups.com, "Tim Hoff" TimHoff@ wrote:
> > > >
> > > >
> > > > Yeah, that makes sense; since it also considers highlighting
with the
> > > > keyboard.
> > > >
> > > > -TH
> > > >
> > > > --- In flexcoders@yahoogroups.com, Alex Harui aharui@ wrote:
> > > > >
> > > > > I'd just override drawHighlightIndicator...
> > > > >
> > > > > Alex Harui
> > > > > Flex SDK Developer
> > > > > Adobe Systems Inc.<http://www.adobe.com/>
> > > > > Blog: http://blogs.adobe.com/aharui
> > > > >
> > > > > From: flexcoders@yahoogroups.com
[mailto:flexcod...@yahoogroups.com]
> > > > On Behalf Of Tim Hoff
> > > > > Sent: Wednesday, February 11, 2009 1:17 PM
> > > > > To: flexcoders@yahoogroups.com
> > > > > Subject: [flexcoders] Re: preventing flex List rollover
indicator to
> > > > draw on selected item.
> > > > >
> > > > >
> > > > > Here's an easy way:
> > > > >
> > > > > Extend List
> > > > >
> > > > > override protected function
mouseOverHandler(event:MouseEvent):void
> > > > > {
> > > > > var item:IListItemRenderer = mouseEventToItemRenderer(event);
> > > > >
> > > > > super.mouseOverHandler(event);
> > > > >
> > > > > if (highlightIndicator && item && isItemSelected(item.data))
> > > > > {
> > > > > clearHighlightIndicator(highlightIndicator, item);
> > > > > }
> > > > > }
> > > > >
> > > > > -TH
> > > > >
> > > > > --- In flexcoders@yahoogroups.com, Thibaud Van Vreckem
thibaudmail@
> > > > wrote:
> > > > > >
> > > > > > This thing has always bugged me.
> > > > > > the rollover effect should never appear on a selected item
in a
> > > > list.
> > > > > > unfortunately that's not how the List works.
> > > > > >
> > > > > > The list is using an itemrenderer implementing
> > > > IDropInListItemRenderer.
> > > > > > and I already do various visual changes using the:
> > > > > > ListBase(owner).isItemHighlighted(data)
> > > > > > and
> > > > > > ListBase(owner).isItemSelected(data)
> > > > > > in the itemrenderer.
> > > > > >
> > > > > > I imagine I could:
> > > > > > 1. get rid off the rollover effect entirely by setting the
list
> > > > useRollOver
> > > > > > style property to false and handling the rollover through
the
> > > > itemrenderer.
> > > > > > 2. make an new List class and override it's
> > > drawHighlightIndicator()
> > > > method.
> > > > > >
> > > > > > any idea how to prevent drawHighlightIndicator() to operate
on
> > > the>
> > > > selectedItem ?
> > > > > > any other solution ?
> > > > > >
> > > > > > thanks
> > > > > >
> > > > >
> > > >
> > >
> >
> >
>



Reply via email to