Thank you all for your continued patience ... and here's the why:

Column chart, 3 series, first 2 =  column series of manufacturer "prev
sales", "current sales" clustered so the chart shows prev and curr
sales for each manufacturer as dual columns. The third series is
"percent", a line series whose data equates to the difference between
prev and curr for each manufacturer as a %. The percent data points 
must be line segments above their respective column cluster
        _____
 _____         _____
         _        _
    _   | |_     | |
  _| |  | | |   _| |
 | | |  | | |  | | |

<mx:LineSeries id="percSeries" form="horizontal" />

draws a line segment fragment very nicely, but the line starts above
the middle of the second/"curr" column and continues to the next data
point. I tried to break into "horizontal" in lineseries.as but "lost
the trail". So on to 

<mx:LineSeries id="percSeries" lineSegmentRenderer="PercentLineRenderer"/>

and within the renderer 

g.drawRect(item.x - adjustment, item.y, 50 - adjustment,5);

where the adjustments must manipulate the starting point and length of
the line to position it above the column pair. Column pairs move
around horizontally on a Flex chart depending on the underlying data,
so even though the manufacturers are constant for each view the time
periods alter, if curr sales = 0 for 1 manufacturer, there is no
column and all the other columns move about. So there must be "series
interaction" - the percent series renderer needs information about the
column series to make its adjustments. 
   Learning from you guys I was able to access the chart object from
within the renderer

override protected function updateDisplayList(unscaledWidth:Number,
                                                     
unscaledHeight:Number):void
  {                     
    var lc:ColumnChart;
    var ls:LineSeries = parent as LineSeries;
    lc = ls.owner as ColumnChart;

and inspecting lc to see what I could use, I found

lc.series[0].seriesRenderData

which contained renderedXOffset and renderedhalfWidth, the actual
params used to render the column series. Since renderedXOffset changes
when the columns reposition themselves, I thought it was likely I had
found an attribute I could use to tell me what was going on with the
columns so I could calculate the adjustment in 

g.drawRect(item.x - adjustment, item.y, 50 - adjustment2,5);

i.e. knowledge of the column series by the line series. When I found
out that seriesRenderData (renderData in LineSeries.as) was protected
I attempted to subclass LineSeries .as with this stuff

public class myLineSeries extends LineSeries
        {
                
        // overriding a function not marked for override
        // incompatible override
        private function get renderData():Object{
                        return super.renderData;
                }
                
        // incompatible override
        override protected function get renderData():Object { return
         super.renderData; }

Synopsis: Percent line segments must hover symetrically over the
associated column pairs

TIA in 64 point font,

Mic

--- In flexcoders@yahoogroups.com, "Alex Harui" <[EMAIL PROTECTED]> wrote:
>
> Monkey-patching is a necessary evil because Adobe didn't want to fully
> document every API used to build the framework because then we'd be
> locked into supporting it forever, and then we'd be really restricted on
> making improvements to the framework.
> 
>  
> 
> Depending on what you monkey-patch, you might eliminate your ability to
> take advantage of the shared framework RSLs.
> 
>  
> 
> Amazingly, I've helped answer 1000's of customer issues with only maybe
> one or two answers requiring monkey-patching.  I've been able to find
> ways around most problems in ways that still let you use the shared
> RSLs.  But monkey-patching can be faster than figuring out a clever
> workaround w/o monkey-patching.
> 
>  
> 
> ________________________________
> 
> From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
> Behalf Of Josh McDonald
> Sent: Thursday, July 31, 2008 8:19 PM
> To: flexcoders@yahoogroups.com
> Subject: Re: [flexcoders] Re: Overriding function not marked for
> override?
> 
>  
> 
> Indeed, hence my monkey-patch recommendation. I've got several
> monkey-patches in the SOAP encoder code that we include in all our
> projects. When and if my fixes all make it into svn then we'll
> monkey-patch with the official file, and when they make it into a
> release we'll use that. But don't be afraid to monkey-patch stuff from
> the framework if you need to!
> 
> However, in this case you're probably trying to do something in the
> wrong way, so perhaps you should post some stuff about what you're
> actually trying to achieve and somebody might be able to help in a way
> that doesn't require modifying any framework code.
> 
> -Josh
> 
> On Fri, Aug 1, 2008 at 12:13 PM, zyzzx00_99 <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> > wrote:
> 
> If you need to override functions in framework components that are
> private (or what have you), why not just copy all of the code from
> that component and make your own?  Sure, future functionality might be
> in-the-air, but for Flex3 stuff certain off-limits stuff is sometimes
> needed.
> 
> 
> 
> 
> --- In flexcoders@yahoogroups.com <mailto:flexcoders@yahoogroups.com> ,
> "chigwell23" <chigwell23@> wrote:
> >
> > Yes Josh it is protected read-only .... why would the flex developers
> > intentionally cripple the functionality like this? Rhetorical question
> > I guess :-(
> >
> > --- In flexcoders@yahoogroups.com <mailto:flexcoders@yahoogroups.com>
> , "Josh McDonald" <dznuts@> wrote:
> > >
> > > If it's a protected read-only, you won't be able to expose it
> without
> > > monkey-patching the original file, as _renderData is almost
> > certainly going
> > > to be private, so you can never set it.
> > >
> > > -Josh
> > >
> > > On Fri, Aug 1, 2008 at 8:37 AM, Amy <amyblankenship@> wrote:
> > >
> > > > --- In flexcoders@yahoogroups.com
> <mailto:flexcoders@yahoogroups.com> , "chigwell23" <chigwell23@>
> > > > wrote:
> > > > >
> > > > > Again thanks for all the help so far ... turns out that
> > > > >
> > > > > LineSeries.RenderData is a protected property
> > > > >
> > > > > renderData    property
> > > > > renderData:Object  [read-only]
> > > > >
> > > > > Stores the information necessary to render this series.
> > > > >
> > > > > Implementation
> > > > >     protected function get renderData():Object
> > > > >
> > > > > ... so I presume I have to subclass LineSeries to make it
> publicly
> > > > > available which gives errors on both attempts:
> > > > >
> > > > > package
> > > > > {
> > > > >       import mx.charts.series.LineSeries;
> > > > >
> > > > >       public class myLineSeries extends LineSeries
> > > > >       {
> > > > >
> > > > >               // overriding a function not marked for override
> > > > >               // incompatible override
> > > > >               public function get renderData():Object{
> > > > >                       return super.renderData;
> > > > >               }
> > > > >
> > > > >               // incompatible override
> > > > >               override public function get renderData():Object {
> > > > return
> > > > > super.renderData; }
> > > > >
> > > > >
> > > > >       }
> > > > > }
> > > >
> > > > try
> > > >
> > > > override protected function get...
> > > >
> > > >
> > > > ------------------------------------
> > > >
> > > > --
> > > > Flexcoders Mailing List
> > > > FAQ:
> http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> <http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt> 
> > > > Search Archives:
> > > > http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo
> <http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo> !
> Groups
> > > > Links
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > "Therefore, send not to know For whom the bell tolls. It tolls for
> > thee."
> > >
> > > :: Josh 'G-Funk' McDonald
> > > :: 0437 221 380 :: josh@
> > >
> >
> 
> 
> 
> ------------------------------------
> 
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> <http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt> 
> Search Archives:
> http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo
> <http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo> ! Groups
> Links
> 
> 
>    (Yahoo! ID required)
> 
>    mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> 
> 
> 
> 
> 
> 
> 
> -- 
> "Therefore, send not to know For whom the bell tolls. It tolls for
> thee."
> 
> :: Josh 'G-Funk' McDonald
> :: 0437 221 380 :: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>


Reply via email to