Jason, Thanks for the response. If I was using an ArrayCollection outside of the subclassed DataGrid component, that makes sense. However, inside the component, I'm not having any luck accessing the dataProvider and/or underlying data with any method. I tried the following line, but it comes up blank.
rowData = dataProvider.getItemAt(actualRow,0); Again, it may just be something that I'm doing wrong through subclassing; like setter/getter or something similar. -TH --- In flexcoders@yahoogroups.com, "Pan Troglodytes" <[EMAIL PROTECTED]> wrote: > > Matt just means to use getItemAt(dataIndex) to get the item for row. Then > you can use whatever field/property to make your decision on how to color > it. Make sense? > > On 7/25/06, Tim Hoff <[EMAIL PROTECTED]> wrote: > > > > 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<http://www.iepl.net/DataGridRowColorSample/Dat aGridRowColorSample.html> > > - See RowColorDataGrid.as near the bottom. > > > > Thanks, > > Tim Hoff > > > > > > --- In flexcoders@yahoogroups.com, "Matt Chotin" <mchotin@> 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.h tml > > > > , 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: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On > > > Behalf Of Pan Troglodytes > > > Sent: Friday, July 21, 2006 7:42 AM > > > To: flexcoders@yahoogroups.com > > > 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 = value; > > > > > > 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 mchotin@ 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: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com ] On > > > Behalf Of Pan Troglodytes > > > Sent: Wednesday, July 19, 2006 11:44 PM > > > To: flexcoders@yahoogroups.com > > > 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 = value; > > > > > > 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=X3oDMTM3c WM2 > > > MG9mBF9TAzk3MzU5NzE0BGdycElkAzEyMjg2MTY3BGdycHNwSWQDMTYwMDAwNzIwNwRtc 2dJ > > > ZAM0MzI2MwRzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzExNTI4NTY4NDUEdHBjSWQDNDMyN DM- > > > > > > 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 < mchotin@ <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: flexcoders@yahoogroups.com [mailto: flexcoders@yahoogroups.com > > > <mailto:flexcoders@yahoogroups.com ] On Behalf Of Pan Troglodytes > > > Sent: Wednesday, July 19, 2006 10:49 PM > > > To: flexcoders@yahoogroups.com > > > 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 < dmendels@ > > > > > <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 <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/