Ah, ok sounds like a better route :-)

Thanks for your help Alex! :)


On 01/09/07, Alex Harui <[EMAIL PROTECTED]> wrote:
>
>    Yeah, Tree doesn't like having styles set on it during a scroll,
> especially from a renderer.  You might actually be setting up an infinite
> invalidation loop.  You're welcome to file a bug so we can make it less
> sensitive, and maybe we should make it easier to override the logic for
> icons.  Also, setStyle is expensive, and is really telling the Tree that all
> icons for all rows should be changed.
>
> In your case, I would recommend subclassing Tree, overriding makeListData,
> and setting the disclosure icon there.
>
>  ------------------------------
> *From:* [email protected] [mailto:[EMAIL PROTECTED] *On
> Behalf Of *bjorn -
> *Sent:* Friday, August 31, 2007 5:04 AM
> *To:* [email protected]
> *Subject:* Re: [flexcoders] TypeError in ListBase.as when using setStyle()
> in custom TreeItemRenderer
>
>
>
>
> For your viewing pleasure, here's a simple testcase:
> http://www.juicability.com/treetest/
>
> Source is also available there...
>
> Bjørn
>
>
>
>
>  On 31/08/2007, bjorn - <[EMAIL PROTECTED]> wrote:
>
> >  Hi Alex,
> >
> > I found some examples that did it that way. At first I tried setting the
> > style on the itemrenderer itself or otherways just affecting the node - but
> > to no avail.
> >
> > This way works the way I excpect (the nodes get an icon based on their
> > type) - *except* for the NullPointerException/TypeError that is ;-)
> >
> > If you have a better solution please let me know.
> >
> > I'll try to reproduce it with a testcase.
> >
> > Bjørn
> >
> >
> >
> > On 30/08/2007, Alex Harui <[EMAIL PROTECTED] > wrote:
> > >
> > >    Maybe a bug.  Do you have a simple test case?
> > >
> > >
> > >
> > > However, why would you set styles on the tree in each renderer?  I
> > > would think there'll be other problems with that.
> > >
> > >
> > >  ------------------------------
> > >
> > > *From:* [EMAIL PROTECTED] ups.com [mailto: [EMAIL PROTECTED]
> > > *On Behalf Of *bjorn -
> > > *Sent:* Thursday, August 30, 2007 4:47 AM
> > > *To:* [EMAIL PROTECTED] ups.com
> > > *Subject:* [flexcoders] TypeError in ListBase.as when using setStyle()
> > > in custom TreeItemRenderer
> > >
> > >
> > >
> > >
> > >
> > > I have made a custom TreeItemRenderer and overridden the set data
> > > function to change the icon according to the data.
> > >
> > >
> > >
> > > This is done something like this:
> > >
> > >
> > >
> > >         override public function set data(value:Object):void
> > >         {
> > >          super.data = value;
> > >          if(value != null) {
> > >
> > >                     var myListData:TreeListData = TreeListData(
> > > this.listData);
> > >                     if (myListData) {
> > >                             var fileObject:Object =
> > > value;
> > >                             var _tree:Tree = Tree( myListData.owner);
> > >
> > >                             if(fileObject.isMovie) {
> > >
> > >                                      _tree.setStyle('defaultLeafIcon',
> > > this.movieIcon );
> > >
> > > _tree.setStyle('folderClosedIcon', this.movieIcon );
> > >                                      _tree.setStyle('folderOpenIcon',
> > > this.movieIcon )
> > >
> > >                             }
> > >
> > >                         }
> > >
> > >           }
> > >
> > > Hower, in some cases I get this exception:
> > >
> > > TypeError: Error #1009: Cannot access a property or method of a null
> > > object reference.
> > >  at 
> > > mx.controls.listClasses::ListBase/styleChanged()[E:\dev\flex_201_borneo\sdk\frameworks\mx\controls\listClasses\ListBase.as:3062]
> > >
> > >  at mx.controls::Tree/styleChanged
> > > ()[E:\dev\flex_201_borneo\sdk\frameworks\mx\controls\Tree.as:1048<http://tree.as:1048/>
> > > ]
> > >  at 
> > > mx.core::UIComponent/setStyle()[E:\dev\flex_201_borneo\sdk\frameworks\mx\core\UICompon
> > > ent.as:7222]
> > > ...
> > >
> > >
> > >
> > >
> > >
> > > It's the styleChanged() method in ListBase.as which throws the error -
> > > on this line:
> > >
> > > var m:int = listItems[i].length;
> > >
> > >
> > >
> > > .. so, it seems listItems[i] is null ?
> > >
> > >
> > >
> > > Why? :-)
> > >
> > >
> > >
> > >
> > > --
> > >
> > > ========================
> > > http://www.juicability.com - flex blog
> > > http://www.43min.com - funny movies
> > >
> > >
> >
> >
> > --
> >
> > ========================
> > http://www.juicability.com - flex blog
> > http://www.43min.com - funny movies
> >
>
>
>
> --
>
> ========================
> http://www.juicability.com - flex blog
> http://www.43min.com - funny movies
>
>  
>



-- 

========================
http://www.juicability.com - flex blog
http://www.43min.com - funny movies

Reply via email to