Matt, or anyone else,
Similar to your suggestion, I've been creating a sample that shows how to set the row color of a DataGrid. When you say, "get data at dataIndex using dataProvider methods", how exactly do you go about this. Manish suggested looking at the iterator. I've tried this, as well as listData, dataProvider and several others. The problem is that none of them are returning the actual data in individual cells. I'm sure that my thick head is just missing something simple. The following sample shows where I'm at with this currently. If you have any tips or advise that can help me get over this hurdle, I would greatly appreciate it. This won't be a component for sale, but rather a sample for free.
DataGridRowColorSample - See RowColorDataGrid.as near the bottom.
Thanks,
Tim Hoff
--- In [email protected] , "Matt Chotin" <[EMAIL PROTECTED]> wrote:
>> For dealing with the row backgrounds maybe you could look into
> subclassing DataGrid and overriding drawRowBackground?
>
>
>
> override protected function drawRowBackground(s:Sprite> < http://livedocs.macromedia.com/flex/2/langref/flash/display/Sprite.html
> > , rowIndex:int
> < http://livedocs.macromedia.com/flex/2/langref/int.html> , y:Number
> < http://livedocs.macromedia.com/flex/2/langref/Number.html> ,
> height:Number
> < http://livedocs.macromedia.com/flex/2/langref/Number.html> , color:uint
> < http://livedocs.macromedia.com/flex/2/langref/uint.html> ,
> dataIndex:int < http://livedocs.macromedia.com/flex/2/langref/int.html>
> ):void
> < http://livedocs.macromedia.com/flex/2/langref/specialTypes.html#void>
>
> {
>
> //get data at dataIndex using dataProvider methods
>
> //var colorToUse:uint = dataIsSpecial ? customColor : color;
>
> Super.drawRowBackground(s, rowIndex, y, height, colorToUse, dataIndex);
>
> }
>
>
>
> That could eliminate a lot of the extra renderers?
>
>
>
> Matt
>
> ________________________________
>
> From: [email protected] [mailto:[email protected] ] On
> Behalf Of Pan Troglodytes
> Sent: Friday, July 21, 2006 7:42 AM
> To: [email protected]
> Subject: Re: [flexcoders] performance issues
>
>
>
> Yeah, I've tried that. Here's the the actual full code I'm using:
>
> override public function set data(value:Object):void {
> var dirty:Boolean = (value != null) && (data != value);
> super.data = "">>
> if (dirty) {
> var n:Number = data[DataGridListData(listData).dataField];
> if (n < 0)
> setStyle("color", negativeColor);
> else if (n > 0)
> setStyle("color", positiveColor);
> else if (n == 0)
> setStyle("color", zeroColor);
> }
> }
>
> As I mentioned before, the main slowness is not just scrolling a row at
> a time but whole pages. The hit is coming in when it has to set the
> data on every itemRenderer onscreen at once. This usually happens when
> scrolling by quickly dragging the scroll thumb.
>
> And yes, there are a lot of records on-screen. Probably about 45. If I
> shrink it, performance gets better. It's probably also hurting that all
> eight columns have to be itemRenderers, because I need to color the row
> background on a per-row basis depending on the data. Only one of the
> rows are something other than simple text. What I think might help the
> most is to build a smarter datagrid that knows how to do some events at
> the grid level ( e.g. set the styling of each cell depending on the
> data) rather than forcing anything other than plain text that's the same
> on every row to use a custom renderer.
>
> As for ben's reply, I believe it fires every time any row scrolls into
> and out of view is because it reuses renderers, setting the data instead
> of creating a whole new renderer. When you scroll down, the top row
> gets reused as the new bottom row. Found this out when I didn't
> properly invalidate my colored backgrounds.
>> On 7/21/06, Matt Chotin [EMAIL PROTECTED] wrote:
>
> Well DataGrid scrolling performance is something that we've spent a lot
> of time tuning so I would love for us to get a full test case that we
> can look at. I saw in the thread you linked mentioning a 1600x1200
> monitor, is the DataGrid taking up most of that real estate? The more
> visible rows the slower the scrolling will be. Another thing you could
> look at is in your setter for the data comparing against the old value
> and if it hasn't changed not doing anything, it may be that it's
> invalidating too often? I'll ask one of the people who worked on
> performance if she has any thoughts.
>
>
>
> Matt
>
>
>
> ________________________________
>
> From: [email protected] [mailto:[email protected] ] On
> Behalf Of Pan Troglodytes
> Sent: Wednesday, July 19, 2006 11:44 PM
> To: [email protected]
> Subject: [flexcoders] performance issues
>
>
>
> Well, specifically I had a DataGrid using this for the itemRenderer:
>
> package nes {
>
> import mx.controls.dataGridClasses.DataGridListData ;
> import mx.controls.Label;
>
> public class SignColorItemRenderer extends Label {
> public var negativeColor:uint = 0xFF0000;
> public var positiveColor:uint = 0x008000;
> public var zeroColor:uint;
>
> override public function set data(value:Object):void {
> super.data = "">>
> var n:Number = data[DataGridListData(listData).dataField];
> if (n < 0)
> setStyle("color", negativeColor);
> else if (n > 0)
> setStyle("color", positiveColor);
> else if (n == 0)
> setStyle("color", zeroColor);
> }
> }
> }
>
> I brought it up in this thread:
> http://groups.yahoo.com/group/flexcoders/message/43243;_ylc=X3oDMTM3cWM2
> MG9mBF9TAzk3MzU5NzE0BGdycElkAzEyMjg2MTY3BGdycHNwSWQDMTYwMDAwNzIwNwRtc2dJ
> ZAM0MzI2MwRzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzExNTI4NTY4NDUEdHBjSWQDNDMyNDM-
>
> I tried LOADS of different ways to do it. I found that anytime I put
> much of any extra code in, it took away from the responsiveness. Even
> replacing the above data procedure with just a single setStyle
> statement. As I said, it's not horrible. But I definitely notice it.
>
> The other main thing I can point out is some sluggishness when resizing
> the browser window and having it resize/relayout the Flex app. But it's
> hard to tell how much of that is the browser and how much is Flex.
>> On 7/20/06, Matt Chotin < [EMAIL PROTECTED] <mailto: mchotin@... >
> wrote:
>
> Can you provide a little more detail on the performance areas that are
> hurting you? If there's a sample that demonstrates the speed issue it
> may be something we can look at.
>
>
>
> Matt
>
>
>
> ________________________________
>
> From: [email protected] [mailto: [email protected]
> <mailto:[email protected] ] On Behalf Of Pan Troglodytes
> Sent: Wednesday, July 19, 2006 10:49 PM
> To: [email protected]
> Subject: Re: [flexcoders] So? What are folks here actually building...?
>
>
>
> Well, since I have never programmed in ActionScript at all, my projects
> have served a dual purpose - functional and educational. In other
> words, some of the software may never see the light of day but that's
> okay - at least it taught me how to build in Flex.
>
> My most "real" application has been an ad-hoc query builder. We have
> some financial reporting that it broken down into various fields:
> branch, quarter, period, that kind of thing. So I gave each field an
> accordion pane and filled it with the values for that field. Then I let
> the user drag-n-drop the values for each field into another List,
> arranging them hierarchically however they want. This then feeds a sql
> statement that uses group by and rollup to get all the data both on the
> detail level and summarized by each parent level.
>
> I then feed that into a DataGrid that has many custom renderers. The
> main powerhouse is the "tree" renderer. Basically, the first column
> down the page looks like a tree of those key fields. So if they chose
> to report by quarter, then branch, then manager, it would look like:
>
> (view the following in a fixed width font)
> Gross Expenses Profit
> Total X X X
> 1Q-2006 X X X
> Branch 1 X X X
> Jane Doe X X X
> John Smith X X X
> Branch 2 X X X
> Phil Johnson X X X
> 2Q-2006 X X X
> Branch 1 X X X
> Jane Doe X X X
> John Smith X X X
> Branch 2 X X X
> Phil Johnson X X X
>
> I put in Xs because I got tired of making up stuff. But you get the
> picture. It's basically very pivot-table-ish. It's really the
> graphical touches that seal the deal. There's icons and animations and
> colors all over the place. Not too much, but more than I could have
> coded in the week or so I've been building it. I'm an experienced
> Delphi user and have to say I'm really blown away by Flex. Delphi is
> RAD but Flex is RAD^2.
>
> Okay, for my VERY basic advice on what I would put some effort into.
> Well, first, fix the bugs that have come out here. You have a pretty
> wide base of components already and I would like them to be very stable.
> Nothing slows a developer down more than spending hours on a problem to
> only find the bug isn't in his/her code.
>
> Second, I would REALLY like to see some optimization done. I know this
> is going to be hard with the dynamic, frequently untyped nature of Flex.
> But some of the code runs painfully slow for what it does. I'm still
> not 100% happy with the speed of those custom itemRenderers in the grid.
> And I stripped them down as far as they can go and it's not because I
> wrote bad code. Overall, the speed is good for an "internet
> application". Internet apps get to make excuses. But I'd like to get
> the speed good enough to rival native desktop apps. Sure, not on
> everything - but at least on GUI graphics.
>
> Keep up the good work. I haven't had this much fun with a new language
> in a while...
>> On 7/20/06, David Mendels < [EMAIL PROTECTED]
> <mailto: dmendels@... > wrote:
>
>
>
> Hello,
>
>
>
> It has been less than a month since we shipped Flex, but I know many
> folks on this list had projects they started back in the public beta
> time. I know in many cases you may not be able to talk about what
> projects you are working on, but for those who can I'd love to get a
> view onto what folks are building. We spent a long time (almost two
> years) on all the parts of the Flex 2 product line (and the Flash Player
> 9) and it is very cool to see the traffic here, the emergence of third
> party conferences like www.flexseminar.com , the books coming out on
> Flex, the 60K plus downloads of the IDE in the public beta, but we'd
> love to get a sense of what real applications people are starting to
> build. The team is already working on plans for mid-term and longer
> term upgrades to Flex, and it helps us to really understand what people
> are building. So, if you are able to talk about what you are building
> please do share--I think it would be very interesting for the community
> and very valuable for us on the Flex team at Adobe.
>
>
>
> --David
>
> Adobe
>
>
>
>
> --
> Jason
>
>
>
>
> --
> Jason
>
>
>
>
> --
> Jason
>
--
Jason __._,_.___
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
YAHOO! GROUPS LINKS
- Visit your group "flexcoders" on the web.
- To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
- Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
__,_._,___

