[flexcoders] Re: Tree itemRenderer - flex 2

2006-03-22 Thread pasflex
I have tried extending the TreeItemRenderer class similar to your 
example, the problem that I have is that the item is still rendered 
by a single label.  It's not clear to me how I can create a more 
complex item renderer, for example, one that consists of a label and 
an image.
Is there a way to do this in flex 2 short of writing a custom 
renderer that handles it's own indentation and controls?
Thanks.

--- In flexcoders@yahoogroups.com, Joan Tan [EMAIL PROTECTED] wrote:

 You cannot just drop in any renderer for a Tree component or Menu 
which
 need to deal with indentation because your renderer doesn't know
 anything about it. Instead, the easiest thing to do is to use an
 itemRenderer that subclasses the TreeItemRenderer class. Here is an
 example of a Tree item renderer. The renderer will change the font
 weight and color of parent nodes and add text as to how many 
children
 each node has.
 
  
 
  
 
 package 
 
 {
 
  
 
 import mx.controls.treeClasses.*;
 
 import mx.collections.*;
 
  
 
 public class MyTreeItemRenderer extends 
TreeItemRenderer
 
 {
 
 
 
 public function MyTreeItemRenderer() 
 
 {
 
  super();
 
  mouseEnabled = false;
 
 
 
 }
 
 
 
 override public function set data
(value:Object):void
 
 {
 
  super.data = value;
 
  if(TreeListData
(super.listData).hasChildren)
 
  {
 
  setStyle(color, 0xff);
 
  setStyle(fontWeight, 'bold');
 
 }
 
 else
 
 {
 
  setStyle(color, 0x00);
 
  setStyle(fontWeight, 'normal');
 
 }
 
 }
 
  
 
override protected function
 updateDisplayList(unscaledWidth:Number,  
unscaledHeight:Number):void
 
{
 
 super.updateDisplayList(unscaledWidth,
 unscaledHeight);
 
 if(super.data)
 
 {
 
  
 if(TreeListData(super.listData).hasChildren)
 
   {
 
  var tmp:XMLList = new
 XMLList(TreeListData(super.listData).node);
 
  var myStr:int =
 tmp[0].children().length();
 
  super.label.text =
 TreeListData(super.listData).text + ( + myStr + );
 
  }
 
}
 
   }
 
   }
 
 }
 
 
 
 From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
 Behalf Of pasflex
 Sent: Wednesday, March 22, 2006 9:52 AM
 To: flexcoders@yahoogroups.com
 Subject: [flexcoders] Tree itemRenderer - flex 2
 
  
 
 When setting an itemRenderer for a tree in flex2, the tree 
controls 
 and indentation disappear.  For example, if I try to display a 
label 
 and an image for each node in the tree and I create an 
itemrenderer to 
 do so, the tree will only display the root node using the 
itemrenderer 
 with no controls to open it (basically turning the tree into a one 
 item list).
 In flex 1.5 a cellrenderer assigned to a tree didn't override the 
 default tree behavior, it only changed the renderering of the item 
in 
 the node.
 How does one accomplish this is flex2?
 
 Thanks
 
 
 
 
 
 --
 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
 http://groups.yahoo.com/group/flexcoders  on the web.
 
 *  To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]
subject=Unsubscribe 
 
 *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
 Service http://docs.yahoo.com/info/terms/ . 
 
  
 
 








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





RE: [flexcoders] Re: Tree itemRenderer - flex 2

2006-03-22 Thread Mac Martine













Theres an example here:



http://www.macmartine.com/blog/2006/03/post.html



Thanks to Joan for providing the
foundation for this!!!















From:
flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of pasflex
Sent: Wednesday, March 22, 2006
11:32 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Tree
itemRenderer - flex 2





I have tried extending the
TreeItemRenderer class similar to your 
example, the problem that I have is that the item
is still rendered 
by a single label. It's not clear to me how I
can create a more 
complex item renderer, for example, one that
consists of a label and 
an image.
Is there a way to do this in flex 2 short of
writing a custom 
renderer that handles it's own indentation and
controls?
Thanks.

--- In flexcoders@yahoogroups.com, Joan
Tan [EMAIL PROTECTED] wrote:

 You cannot just drop in any renderer for a
Tree component or Menu 
which
 need to deal with indentation because your
renderer doesn't know
 anything about it. Instead, the easiest thing
to do is to use an
 itemRenderer that subclasses the
TreeItemRenderer class. Here is an
 example of a Tree item renderer. The renderer
will change the font
 weight and color of parent nodes and add text
as to how many 
children
 each node has.
 
 
 
 
 
 package 
 
 {
 
 
 
 import mx.controls.treeClasses.*;
 
 import mx.collections.*;
 
 
 

public class MyTreeItemRenderer extends 
TreeItemRenderer
 

{
 


 

public function MyTreeItemRenderer() 
 

{
 

super();
 

mouseEnabled = false;
 


 

}
 


 

override public function set data
(value:Object):void
 

{
 

super.data = "">
 

if(TreeListData
(super.listData).hasChildren)
 

{
 

setStyle(color, 0xff);
 

setStyle(fontWeight, 'bold');
 

}
 

else
 

{
 

setStyle(color, 0x00);
 

setStyle(fontWeight, 'normal');
 

}
 

}
 


 

override protected function
 updateDisplayList(unscaledWidth:Number,

unscaledHeight:Number):void
 

{
 

super.updateDisplayList(unscaledWidth,
 unscaledHeight);
 

if(super.data)
 

{
 
 
 if(TreeListData(super.listData).hasChildren)
 

{
 

var tmp:XMLList = new
 XMLList(TreeListData(super.listData).node);
 

var myStr:int =
 tmp[0].children().length();
 

super.label.text =
 TreeListData(super.listData).text +
( + myStr + );
 

}
 

}
 

}
 
 }
 
 }
 
 
 
 From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
 Behalf Of pasflex
 Sent: Wednesday, March 22, 2006 9:52 AM
 To: flexcoders@yahoogroups.com
 Subject: [flexcoders] Tree itemRenderer -
flex 2
 
 
 
 When setting an itemRenderer for a tree in
flex2, the tree 
controls 
 and indentation disappear. For example,
if I try to display a 
label 
 and an image for each node in the tree and I
create an 
itemrenderer to 
 do so, the tree will only display the root
node using the 
itemrenderer 
 with no controls to open it (basically
turning the tree into a one 
 item list).
 In flex 1.5 a cellrenderer assigned to a tree
didn't override the 
 default tree behavior, it only changed the
renderering of the item 
in 
 the node.
 How does one accomplish this is flex2?
 
 Thanks
 
 
 
 
 
 --
 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
 http://groups.yahoo.com/group/flexcoders
 on the web.
   
 * To
unsubscribe from this group, send an email to:
 
[EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]
subject=Unsubscribe 
   
 * Your use of
Yahoo! Groups is subject to the Yahoo! Terms of
 Service http://docs.yahoo.com/info/terms/
. 
 
 
 
 


















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