On Mon, Feb 3, 2014 at 6:37 AM, Peter Ent <p...@adobe.com> wrote:

> Hi Om,
>
> Sorry for the delayed response. BarChartLayout.changeHandler is the place.
> You might need to look at the BarChartView bead as well.
>
> Thanks so much!
> Peter
>
>
Just checked in a fix.  Please take a look.

App works fine even though I am getting a warning during the JS compilation
part:

WARNING - Bad type  annotation. Unknown type
org.apache.flex.charts.beads.layouts.BarChartLayout
     [java]   var /** @type
{org.apache.flex.charts.beads.layouts.BarChartLayout} */ barChartLayout =
org.apache.flex.utils.Language.as(this._strand.getBeadByType(org.apache.flex.core.IBeadLayout),
org.apache.flex.charts.beads.layouts.BarChartLayout);

What am I doing wrong?

Thanks,
Om



>  On 1/31/14 7:17 PM, "OmPrakash Muppirala" <bigosma...@gmail.com> wrote:
>
> >On Fri, Jan 31, 2014 at 11:31 AM, Peter Ent <p...@adobe.com> wrote:
> >
> >> Had a chat with Alex. For this particular issue, we were thinking that
> >> Flex's scrollPolicy should be carried over to FlexJS, but enhanced:
> >>
> >> scrollPolicy: on | off | auto | hidden
> >>
> >> which map as follows -
> >>
> >> on:     overflow:scroll, but scrollbars visible always
> >> off:    overflow:visible
> >> auto:   overflow:scroll, but scrollbars visible when necessary
> >> hidden: overflow:hidden
> >>
> >> or something like that. For BarChart, scrollPolicy:off would be the
> >> default.
> >>
> >> For BarChart, the real issue is that the area for the chart isn't really
> >> big enough. I don't think it should use a trick like overflow:visible.
> >
> >
> >You are right.  Setting overflow:visible is more of a hack.  Once we place
> >another visual component below the chart, it will start clipping each
> >other.
> >
> >
> >> The
> >> size that's calculated is big enough for the series, but then the axis
> >>is
> >> added to that same div, forcing the scroll. I believe the area for the
> >> chart should shrink to account for the XAxisBead because an explicit
> >>width
> >> and height are set for the chart and you don't want to increase that on
> >> the developer.
> >>
> >> There are couple of things to do: add scrollPolicy and fix BarChart.
> >>
> >
> >I will take a shot a fixing the BarChart rendering, if you are not already
> >working on it?  I am looking at the logic in
> >BarChartLayout.changeHandler()
> >method.  Is that what you would do as well?
> >
> >Thanks,
> >Om
> >
> >
> >>
> >> Regards,
> >> Peter
> >>
> >> On 1/31/14 12:45 PM, "Alex Harui" <aha...@adobe.com> wrote:
> >>
> >> >
> >> >
> >> >On 1/31/14 7:03 AM, "Peter Ent" <p...@adobe.com> wrote:
> >> >
> >> >>Hi,
> >> >>
> >> >>First, I can confirm that Om's suggestion of *adding* the
> >>createElement
> >> >>override to the cross-compiled/generated BarChart.js does fix the
> >> >>problem.
> >> >>
> >> >>Secondly - how do we make it possible to allow customization of the
> >> >>JavaScript that gets cross-compiled? This is bound to be necessary and
> >> >>clearly solves this problem.
> >> >Well, the current rule is that if you need custom JS, then that class
> >>is
> >> >not available for cross-compilation and needs its own parallel JS file
> >>in
> >> >the repo.
> >> >
> >> >>
> >> >>A bunch of things popped into my head:
> >> >>
> >> >>1. We add createElement to UIBase.as so there is parity with the
> >> >>JavaScript code. We might actually make good use of this on the AS
> >>side,
> >> >>but I haven't given that any thought. Having it though, would allow
> >>the
> >> >>AS
> >> >>BarChart to override the method and introduce AS code that would get
> >> >>cross-compiled into JavaScript.
> >> >We could do that, but it would mess up code coverage tooling.  We could
> >> >add compiler directive so certain code isn't seen by the code coverage
> >> >tooling or even allow JS instead of AS inside comments in the AS file
> >>that
> >> >get output to the JS file as well.  But either way, at some point,
> >>someone
> >> >may have to create a parallel JS file.  These various ideas just reduce
> >> >the probability.
> >> >>
> >> >>2. We need to be able to programmatically set style properties that
> >>get
> >> >>cross-compiled correctly. The key to the BarChart issue is
> >> >>"this.element.style.overflow = 'visible';" or setting the overflow
> >>style
> >> >>to "visible". Perhaps something like:  this.style = "overflow"; on the
> >> >>ActionScript side would coax the compiler to generate the
> >> >>"this.element.style.overflow = 'visible';" on the JavaScript side.
> >> >That's what the CSS file and media query is for.
> >> >>
> >> >>3. Allow JavaScript-specific code to be placed in the ActionScript
> >>code,
> >> >>maybe using metadata:
> >> >>
> >> >>override public function createElement()
> >> >>{
> >> >>[JavaScript]
> >> >>  this.element = document.createElement('div');
> >> >>  this.element.style.overflow = 'visible';
> >> >>  this.positioner = this.element;
> >> >>[JavaScript]
> >> >>[ActionScript]
> >> >>   // code within these [ActionScript] tags does not get
> >>cross-compiled
> >> >>[ActionScript]
> >> >>}
> >> >And an option 4 is to examine the lifecycle in both AS and JS and try
> >>to
> >> >make them more similar.  The problem is that on the AS side, the
> >> >components are the display elements but on the JS side they wrap the
> >> >display elements.
> >> >
> >> >>
> >> >>We really do need to have some way to tweak the JavaScript code,
> >>whether
> >> >>it be styling or something else.
> >> >Well, it would reduce the number of parallel JS files, but really, we
> >> >don't have to have a way to tweak the JS code from the AS side.  I'd
> >>like
> >> >to see if this case can be solved by modifying the CSS file.  Then
> >>we'll
> >> >see how often we hit the need to do this sort of thing again and decide
> >> >what to do.
> >> >
> >> >-Alex
> >> >
> >>
> >>
>
>

Reply via email to