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