I extended the AdvDataGridHeaderRenderer and added a TextInput for 
displaying column totals.
All is fine except that i want my TextInput to occupy the complete 
column width (=100%) and push the sortItemRenderer down.
Any comments anybody?
=======================================================
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>    
    <mx:AdvancedDataGrid 
        id="advancedDataGrid" 
        headerRenderer="SimpleADGHeaderRenderer" 
        variableRowHeight="true">
        <mx:columns>
                <mx:AdvancedDataGridColumn  dataField="index" 
width="180"  textAlign="right"/>                        
                <mx:AdvancedDataGridColumn  dataField="food"  
width="180"/>
                <mx:AdvancedDataGridColumn  dataField="type"  
width="180"/>
        </mx:columns>
        <mx:dataProvider>
                <mx:Array>
                        <mx:Object index="1" food="Apple" 
type="Fruit"/>
                        <mx:Object index="2" food="Pear" 
type="Fruit"/>
                        <mx:Object index="3" food="Banana" 
type="Fruit"/>
                        <mx:Object index="4" food="Chicken" 
type="Meat"/>
                        <mx:Object index="5" food="Beef" type="Meat"/>
                        <mx:Object index="6" food="Milk" 
type="Dairy"/>
                </mx:Array>
        </mx:dataProvider>      
    </mx:AdvancedDataGrid>        
</mx:Application>
=============================================
package  {      
                
        import mx.controls.TextInput;   
        import 
mx.controls.advancedDataGridClasses.AdvancedDataGridHeaderRenderer;
        
        public class SimpleADGHeaderRenderer extends 
AdvancedDataGridHeaderRenderer{
                
                protected var headerLabel:TextInput;            
                
                public function SimpleADGHeaderRenderer(){
                        super();                
                        setStyle("verticalAlign","bottom");     
                        
                }
                
                /**
                 * @protected
                 */
                override protected function createChildren():void {
                
                        super.createChildren();
                        if(!headerLabel){                       
        
                                headerLabel = new TextInput();  
                                
                                headerLabel.styleName = this;
                                headerLabel.setStyle
("editable",false);             
                                headerLabel.setStyle
("borderSides","bottom");
                                headerLabel.setStyle
("borderStyle","solid");
                                headerLabel.setStyle
("fontWeight","bold");                          
                                headerLabel.setStyle
("backgroundAlpha",0);
                                headerLabel.setStyle
("themeColor",getStyle("backgroundColor"));             
                                headerLabel.text = "$11.734699"; 
                                addChild(headerLabel);
                        }                       
                }
                /**
                 * @protected
                 */
                override protected function commitProperties():void {
                
                        super.commitProperties();               
        
                }
                /**
                 * @protected
                 */
                override protected function measure():void {    
        
                        super.measure();
                        measuredHeight = measuredHeight + 
headerLabel.getExplicitOrMeasuredHeight();                      
                
                }
                
                /**
                 * @protected
                 */
                override protected function updateDisplayList 
(unscaledWidth:Number, unscaledHeight:Number):void{             
                        super.updateDisplayList(unscaledWidth, 
unscaledHeight);
                        headerLabel.setActualSize
(headerLabel.getExplicitOrMeasuredWidth
(),headerLabel.getExplicitOrMeasuredHeight());  
                        //sortItemRenderer.setActualSize
(sortItemRenderer.getExplicitOrMeasuredWidth(),);               
                }
                
        }
}
=========================================

Reply via email to