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 > > > > > > > > > > > > > > > > > > > > > > >