Tim's approach requires that you have a hyphen in your label as it
replaces that hyphen with a hyphen plus a newline.
Another approach would be to split the string on spaces, and then insert
a newline at the nth space. The following example puts in a newline at
the fourth occurrence of a space:
public function defineLabel(cat:Object, pcat:Object, ax:CategoryAxis,
catItem:Object):String {
var a:Array = cat.split(' ');
var s:String = "";
for (var i:int=0; i<a.length; i++) {
s += a[i] + ' '; // reconstruct the label
if (i==3) { // insert a newline at the fourth space
s += "\n";
}
}
return s;
}
hth,
matt horn
flex docs
> -----Original Message-----
> From: [email protected]
> [mailto:[EMAIL PROTECTED] On Behalf Of dj
> Sent: Saturday, November 18, 2006 1:21 PM
> To: [email protected]
> Subject: Re: [flexcoders] Re: Ely: How do you wordwrap a
> label on a bar chart?
>
>
> Tim:
>
> I gave this a shot am I missing something here? Wordrapping
> isn't working for me, the text is still cut off.
>
> I appreciate your time in showing me this. Regex is all new
> to me, but it's all the rage.
>
> Thanks,
> Patrick
>
> Tim Hoff wrote:
> >
> > Patrick,
> >
> > Sorry to highjack your thread. Here's a method to display a
> > multi-lined Axis label:
> >
> > *labelFunction:
> > *public function
> >
> wrapLabel(cat:Object,pcat:Object,ax:CategoryAxis,catItem:Object):Strin
> > g
> > {
> > var pattern:RegExp = /-/;
> > return cat.replace(pattern, "-\n");
> > }
> >
> > *Axis:*
> > <mx:horizontalAxis>
> > <mx:CategoryAxis categoryField="CategoryField"
> > labelFunction="wrapLabel"/>
> > </mx:horizontalAxis>
> >
> > This example changes:
> >
> > 11/17/06 - 12/16/06
> >
> > to
> >
> > 11/17/06 -
> > 12/16/06
> >
> > By using regular expresions, you have quite a bit of flexibility.
> >
> > -TH
> > __________________________________
> >
> > **Tim Hoff
> > **Cynergy Systems, Inc.
> > http://www.cynergysystems.com <http://www.cynergysystems.com>
> > <http://www.cynergysystems.comoffice/
> > <http://www.cynergysystems.comoffice/> > Office
> > <http://www.cynergysystems.comoffice/
> > <http://www.cynergysystems.comoffice/> >: 866-CYNERGY
> >
> >
> > --- In [email protected]
> <mailto:flexcoders%40yahoogroups.com> , "Tim Hoff"
> <[EMAIL PROTECTED]> wrote:
> > >
> > >
> > > Thanks Ely, that makes sense now. I'll give it a try.
> Luckily, both
> > > series are using the same dataProvider, so I'll have
> access to the
> > > data property and probably be able to eliminate the
> second axis completely.
> > > Thanks for the tips and the source to your interactive calendar
> > > component
> > >
> <http://www.quietlyscheming.com/blog/components/interactive-ca
lendar/ > <http://www.quietlyscheming.com/blog/components/interactive-ca
lendar/> > .
> > > Great Stuff!
> > >
> > > -TH
> > >
> > > --- In [email protected]
> > > <mailto:flexcoders%40yahoogroups.com> , "Ely Greenfield" egreenfi@
> > > wrote:
> > > >
> > > >
> > > >
> > > >
> > > > Hi Tim. yes, the AxisRenderer supports a property called
> > > > 'labelRenderer' which is very much like an item
> renderer. Pass the
> > > > AxisRenderer a reference to a class (wrapped in a classFactory,
> > > > just
> > > as
> > > > with itemRenderers) that extends UIComponent,
> ProgrammaticSkin, or
> > > > one of the existing Flex components, and implements the
> > > > IDataRenderer interface. The AxisRenderer will
> instantiate one of
> > > > these for each label it needs to show, and assign the
> label to the
> > > > labelRenderer's 'data' property.
> > > >
> > > > I don't think there are any examples out there of how to do this
> > > today.
> > > >
> > > > Ely.
> > > >
> > > >
> > > > p.s. You could also consider writing a custom
> > > > axisRenderer...there's a pretty exhaustive example of how to do
> > > > that in the Interactive Bubble Chart on my blog,
> > > > http://www.quietlyscheming.com/.
> > > > <http://www.quietlyscheming.com/.> You could
> theoretically create
> > > > two axis renderers that stack on the left hand
> > > side
> > > > that way, although that's a pretty big undertaking.
> > > >
> > > >
> > > >
> > > >
> > > > ________________________________
> > > >
> > > > From: [email protected]
> > > > <mailto:flexcoders%40yahoogroups.com>
> > > > [mailto:[email protected]
> > > > <mailto:flexcoders%40yahoogroups.com> ]
> > > On
> > > > Behalf Of Tim Hoff
> > > > Sent: Friday, November 17, 2006 3:37 PM
> > > > To: [email protected]
> > > > <mailto:flexcoders%40yahoogroups.com>
> > > > Subject: [flexcoders] Re: Ely: How do you wordwrap a label on a
> > > > bar chart?
> > > >
> > > >
> > > >
> > > > Hi Ely,
> > > >
> > > > I got this far with wordwrapping the label text, but my
> question
> > > > is more complicated. I want to have two verticalAxisRenderers,
> > > > side-by- side, on the same side of a ColumnChart. Or, create a
> > > > single LabelRenderer to simulate this. One of the
> labels needs a
> > > > shaded background with text, while the other is just
> text. While
> > > > digging into it, the docs say to use IFactory for a chart
> > > > LabelRenderer. Is this similar to an ItemRenderer for a
> DataGrid?
> > > > Understandably, there aren't any examples yet that show
> how to do this.
> > > >
> > > > If you have the time, thanks,
> > > > -TH
> > > >
> > > > --- In [email protected]
> > > > <mailto:flexcoders%40yahoogroups.com> , "Ely
> Greenfield" egreenfi@
> > > > wrote:
> > > > >
> > > > >
> > > > >
> > > > > Hi Patrick. THe only way would be to use a
> labelFunction on your
> > > axis
> > > > > and manually insert a line break yourself.
> > > > >
> > > > > Ely.
> > > > >
> > > > >
> > > > > ________________________________
> > > > >
> > > > > From: [email protected]
> > > > > <mailto:flexcoders%40yahoogroups.com>
> > > > > [mailto:[email protected]
> > > > > <mailto:flexcoders%40yahoogroups.com> ]
> > > > On
> > > > > Behalf Of dj
> > > > > Sent: Friday, November 17, 2006 2:34 PM
> > > > > To: [email protected]
> > > > > <mailto:flexcoders%40yahoogroups.com>
> > > > > Subject: [flexcoders] Ely: How do you wordwrap a
> label on a bar
> > > chart?
> > > > >
> > > > >
> > > > >
> > > > > A Vertical Axis why Field, my labels are being cut
> off, my width
> > > > > dimension is fixed to 280 pixels, so the column needs
> to wrap down?
> > > > >
> > > > > Thanks,
> > > > > Patrick
> > > > >
> > > >
> > >
> >
> >
>
>
>
>
>