On 6/11/13 3:36 PM, "Justin Mclean" <jus...@classsoftware.com> wrote:

>Hi,
>
>Given that there's only an issue with the test and it work fine in the
>browser and in 99% of cases (an assumption but not an unreasonable one)
>the performance is significantly better I think we try and get the test
>to pass rather than adding back the validateNow.
Well, I'm not sure it is only an issue with the test.  Here's a
modification of the test case you sent out.  All it does is spread out the
work of the old init() method into buttons so the renderers have to update
after the ADG creation is complete.  Start the app, hit the "Grouped Data"
button, then the "Expand All" button, then the "rtl" button.  Compare with
4.9.  I haven't looked into it any further, but this kind of difference in
behavior makes me nervous.

Thoughts?
-Alex

<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="vertical" height="700" width="850"
                xmlns:fx="http://ns.adobe.com/mxml/2009";
                xmlns:s="library://ns.adobe.com/flex/spark"
                xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="init(event)">
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
            
            import mx.collections.*;
            import mx.controls.NumericStepper;
            import mx.formatters.CurrencyFormatter;
            import mx.styles.StyleManager;
            import mx.controls.advancedDataGridClasses.*;
            
            protected function init(event:FlexEvent):void
            {
                createColumnGroups();
            }
            
            
            [Bindable]
            private var ac:ArrayCollection = new ArrayCollection();
            
            public var companies:AdvancedDataGridColumn = new
AdvancedDataGridColumn("Company");
            public  var quarters:AdvancedDataGridColumn = new
AdvancedDataGridColumn("Quarter");
            public  var india:AdvancedDataGridColumn = new
AdvancedDataGridColumn("India");
            public  var veeranistan:AdvancedDataGridColumn = new
AdvancedDataGridColumn("Veeranistan");
            public  var pareestan:AdvancedDataGridColumn = new
AdvancedDataGridColumn("Pareestan");
            public  var licenses:AdvancedDataGridColumn = new
AdvancedDataGridColumn("Licenses");
            public var countries:AdvancedDataGridColumnGroup = new
AdvancedDataGridColumnGroup();
            public var toplevel:AdvancedDataGridColumnGroup = new
AdvancedDataGridColumnGroup();
            [Bindable]
            public var hierarch_data:Array = [
                
                { feature:"ADG", children:[
                    { feature:"ADG", subFeature:"Multi column sorting",
startDate:{day:"Monday", Year:2007}, endDate:"1/07/07" },
                    { feature:"ADG", subFeature:"Custom rows",
startDate:{day:"Monday", Year:2009}, endDate:"01/18/07" },
                    { feature:"ADG", subFeature:"Tree Views",
startDate:{day:"Monday", Year:2006}, endDate:"01/29/07" },
                    { feature:"ADG", subFeature:"Collections",
startDate:{day:"Monday", Year:2004},  endDate:"04/25/07" }
                ] }
                
            ];
            
            [Bindable]
            private var mydata:ArrayCollection = new ArrayCollection ([
                {Company:"Adobe", Quarter:1, India:"2 million",
Veeranistan:"2 million", Pareestan:"3 million", Licenses:433764538},
                {Company:"IBM", Quarter:1, India:"9 million",
Veeranistan:"1 million", Pareestan:"5 million", Licenses:456789002},
                {Company:"KaashifSoft", Quarter:1, India:"99 million",
Veeranistan:"99 million", Pareestan:"99 million", Licenses:456712340},
                {Company:"NisheetSoft", Quarter:1, India:"0 million",
Veeranistan:"0 million", Pareestan:"0 million", Licenses:456782313},
                {Company:"Microsoft", Quarter:1, India:"6 million",
Veeranistan:"5 million", Pareestan:"6 million", Licenses:354216789},
                {Company:"Satyam", Quarter:1, India:"1 million",
Veeranistan:"3 million", Pareestan:"2 million", Licenses:325146789},
                {Company:"Subex", Quarter:1, India:"2 million",
Veeranistan:"9 million", Pareestan:"1 million", Licenses:321456978},
                {Company:"Infosys", Quarter:1, India:"0.89 million",
Veeranistan:"12 million", Pareestan:"4.5 million", Licenses:321475689},
    
                {Company:"MCAfee", Quarter:1, India:"3 million",
Veeranistan:"5.98 million", Pareestan:"6.2 million", Licenses:321467589},
                {Company:"MPhasis", Quarter:1, India:"2 million",
Veeranistan:"1.5 million", Pareestan:"6.7 million", Licenses:123456789},
                {Company:"Symphony", Quarter:1, India:"3.4 million",
Veeranistan:"6.1 million", Pareestan:"7.8 million", Licenses:341256789},
                {Company:"Wipro", Quarter:1, India:"5 million",
Veeranistan:"2 million", Pareestan:"7 million", Licenses:321654789},
                {Company:"Google", Quarter:1, India:"3 million",
Veeranistan:"4 million", Pareestan:"1 million", Licenses:321458769 } ]);
            
            public function createColumnGroups():void {         
                countries.headerText="Countries";
                
                toplevel.headerText="Top Level";
                
                var countriesarr:Array = new Array();
                var toplevelarr:Array = new Array();
                countriesarr.push(india);
                countriesarr.push(pareestan);
                countriesarr.push(veeranistan);
                toplevelarr.push(quarters);
                mydatagrid.dataProvider=mydata;
                countries.children = countriesarr;
                toplevelarr.push(countries);
                toplevel.children=toplevelarr;
                mydatagrid.groupedColumns=[companies, toplevel, licenses];
                mydatagrid.dataProvider.refresh();
                companies.dataField="Company";
                quarters.dataField="Quarter";
                licenses.dataField="Licenses";
            }
            
            public function groupedData():void {
                var mygroup:GroupingCollection2 = new
GroupingCollection2();
                mygroup.source=mydata;
                var group:Grouping = new Grouping();
                group.fields = [new GroupingField("Company"), new
GroupingField("Licenses")];
                group.label = "Company";
                mygroup.grouping = group;
                mygroup.refresh();
                mydatagrid.dataProvider = mygroup;
                mydatagrid.validateNow();
            }
            
            public function insertColumns():void {                      
                var mycols:AdvancedDataGridColumn = new
AdvancedDataGridColumn("ggg");
                var mycolsarr:Array = mydatagrid.groupedColumns;
                mycolsarr.push(mycols);
                mydatagrid.groupedColumns = mycolsarr;
            }
            
            public function insertColumngroups():void
            {
                var mycolgroup:AdvancedDataGridColumnGroup = new
AdvancedDataGridColumnGroup();
                mycolgroup.headerText = "topmost ";
                var mycolsarr:Array = new
Array(mydatagrid.groupedColumns[0]);
                mycolgroup.children = mycolsarr;
                var tempCols:Array =
mydatagrid.groupedColumns.slice(1,mydatagrid.groupedColumns.length);
                mydatagrid.groupedColumns = [mycolgroup].concat(tempCols);
                        
            }
            
            public function hierarchicaldata_setter():void {
                var hierarchs:HierarchicalData = new HierarchicalData();
                hierarchs.source = hierarch_data;
                mydatagrid..dataProvider = hierarchs;
                companies.dataField = "feature";
                quarters.dataField = "subFeature";
                licenses.dataField = "endDate";
            }
            
            public function vrHeight():void {                           
                for(var i:int=0;i<20;i++)
                {
                    var rnd:* = Math.random();
                    var obj:Object =
{Company:"column-A0",Quarter:"column-B"+rnd,India:"column-C"+rnd,Veeranista
n:"Column-D"+rnd,Pareestan:"Column-E"+rnd,Licenses:"Column-F"+rnd}
                    ac.addItem(obj);
                }
                
                mydatagrid.dataProvider = ac;
                mydatagrid.variableRowHeight = true;
                mydatagrid.wordWrap = true;
            }
            
            public function headerRenderer():void {
                countries.headerRenderer = new
ClassFactory(mx.controls.NumericStepper);
                toplevel.headerRenderer = new
ClassFactory(mx.controls.TextArea);
                quarters.headerRenderer = new
ClassFactory(mx.controls.TextInput);                    
            }
            
            public function customHeaderRenderer():void {
                //toplevel.headerRenderer = new ClassFactory(myheads);          
            }
            
            public function visibleColumns():void {
                toplevel.visible = false;
            }
            
            public function headerSkin():void {
                
//StyleManager.getStyleDeclaration("AdvancedDataGrid").setStyle("headerHori
zontalSeparatorSkin",myhorskin);
            }
            
            public function
myStyleFunction(data:Object,col:AdvancedDataGridColumn):Object          {
                return { color:0xFF0000};
            }
            
            public function myFormatting():void {                               
                mydatagrid.styleFunction = myStyleFunction;
                mydata.refresh();
                var forms:CurrencyFormatter = new CurrencyFormatter();
                forms.currencySymbol = "$";
                createColumnGroups();
                licenses.formatter = forms;
                mydatagrid.dataProvider.refresh();                      
            }
            
            public function myColumnSpan():void {                       
                var renders:AdvancedDataGridRendererProvider = new
AdvancedDataGridRendererProvider();
                renders.column = companies;
                var renderarr:Array = new Array();
                renders.dataField = "Company";
                renders.columnSpan = 2;
                renders.renderer = new
ClassFactory(mx.controls.NumericStepper);
                renderarr.push(renders);
                mydatagrid.rendererProviders = renderarr;
            }
            
            public function generateXML():void {                        
                mydatagrid.dataProvider = comps;
            }
            
            
        ]]>
    </fx:Script>
    <fx:Declarations>
        <fx:XMLList id="comps">
            <companylist>
                <Company>AalishaanSoft</Company>
                <Quarter> 1 </Quarter>
                <India>34 million</India>
                <Veeranistan>1.5 million</Veeranistan>
                <Pareestan>5 million</Pareestan>
                <Licenses>321475987</Licenses>
            </companylist>
            <companylist>
                <Company>MughaleAzamSoft</Company>
                <Quarter> 1 </Quarter>
                <India>3.4 million</India>
                <Veeranistan>2 million</Veeranistan>
                <Pareestan>5.4 million</Pareestan>
                <Licenses>321475987</Licenses>
            </companylist>
            <companylist>
                <Company>SheeshMahalSoft</Company>
                <Quarter> 1 </Quarter>
                <India>45 million</India>
                <Veeranistan>15 million</Veeranistan>
                <Pareestan>5.1 million</Pareestan>
                <Licenses>321745987</Licenses>
            </companylist>
            <companylist>
                <Company>AjnabeeSoft</Company>
                <Quarter> 1 </Quarter>
                <India>14 million</India>
                <Veeranistan>11 million</Veeranistan>
                <Pareestan>5.7 million</Pareestan>
                <Licenses>321479587</Licenses>
            </companylist>
        </fx:XMLList>
    </fx:Declarations>
    <mx:VBox>
    <mx:Canvas id="box" width="100%" height="100%">
        <mx:AdvancedDataGrid id="mydatagrid" />
    </mx:Canvas>
    <mx:TextInput id="ti"/>
        <mx:HBox>
            <mx:Button label="grouped data" click="groupedData()" />
            <mx:Button label="expand all" click="mydatagrid.expandAll();"
/>
            <mx:Button label="rtl"
click="mydatagrid.setStyle('layoutDirection', 'rtl')" />
            <mx:Button label="color" click="mydatagrid.setStyle('color',
0xFF0000)" />
        </mx:HBox>
    </mx:VBox>
</mx:Application>




Reply via email to