You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by al...@apache.org on 2018/05/07 10:20:38 UTC
[royale-asjs] branch feature/MXRoyale updated:
AdvancedDataGridHeaderRenderer.as Added
This is an automated email from the ASF dual-hosted git repository.
alinakazi pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/feature/MXRoyale by this push:
new d0471f1 AdvancedDataGridHeaderRenderer.as Added
d0471f1 is described below
commit d0471f1a96102e572172208a4b0e1ad2aa55adb0
Author: alinakazi <AL...@GMAIL.COM>
AuthorDate: Mon May 7 15:20:36 2018 +0500
AdvancedDataGridHeaderRenderer.as Added
---
.../AdvancedDataGridHeaderRenderer.as | 871 +++++++++++++++++++++
1 file changed, 871 insertions(+)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderRenderer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderRenderer.as
new file mode 100644
index 0000000..870be51
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderRenderer.as
@@ -0,0 +1,871 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls.advancedDataGridClasses
+{
+
+/* import flash.display.DisplayObject;
+import flash.display.Sprite;
+import flash.events.Event;
+import flash.events.MouseEvent;
+import flash.geom.Point;
+import flash.geom.Rectangle;
+import flash.text.TextLineMetrics;
+
+import mx.controls.AdvancedDataGrid;
+import mx.controls.listClasses.BaseListData;
+import mx.controls.listClasses.IDropInListItemRenderer;
+import mx.controls.listClasses.IListItemRenderer; */
+import mx.core.ClassFactory;
+//import mx.core.IDataRenderer;
+import mx.core.IFactory;
+import mx.core.IInvalidating;
+import mx.core.IToolTip;
+//import mx.core.IUITextField;
+import mx.core.UIComponent;
+//import mx.core.UITextField;
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+//import mx.events.ToolTipEvent;
+
+use namespace mx_internal;
+
+//--------------------------------------
+// Events
+//--------------------------------------
+
+/**
+ * Dispatched when the <code>data</code> property changes.
+ *
+ * <p>When you use a component as an item renderer,
+ * the <code>data</code> property contains the data to display.
+ * You can listen for this event and update the component
+ * when the <code>data</code> property changes.</p>
+ *
+ * @eventType mx.events.FlexEvent.DATA_CHANGE
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Event(name="dataChange", type="mx.events.FlexEvent")]
+
+//--------------------------------------
+// Styles
+//--------------------------------------
+
+/**
+ * Text color of a component label.
+ * @default 0x0B333C
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="color", type="uint", format="Color", inherit="yes")]
+
+/**
+ * Color of the separator between the text part and icon part.
+ * @default 0xCCCCCC
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="separatorColor", type="uint", format="Color", inherit="yes")]
+
+
+/**
+ * Horizontal alignment of the header text.
+ * Possible values are <code>"left"</code>, <code>"center"</code>,
+ * and <code>"right"</code>.
+ *
+ * @default "center"
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+[Style(name="horizontalAlign", type="String", enumeration="left,center,right", inherit="no")]
+
+/**
+ * Vertical alignment of the header text.
+ * Possible values are <code>"top"</code>, <code>"middle"</code>,
+ * and <code>"bottom"</code>.
+ *
+ * @default "middle"
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="verticalAlign", type="String", enumeration="top,middle,bottom", inherit="no")]
+
+/**
+ * The AdvancedDataGridHeaderRenderer class defines the default header
+ * renderer for a AdvancedDataGrid control.
+ * By default, the header renderer
+ * draws the text associated with each header in the list, and an optional
+ * sort arrow (if sorted by that column).
+ *
+ * <p> By default, the custom header renderer uses the default
+ * sort item renderer defined by the AdvancedDataGridSortItemRenderer class.
+ * The sort item renderer controls the display of the
+ * sort icon and sort sequence number.
+ * You can specify a custom sort item renderer by using
+ * the <code>sortItemRenderer</code> property.</p>
+ *
+ * <p>You can override the default header renderer by creating a custom
+ * header renderer.
+ * The only requirement for a custom header renderer is that it
+ * must include the size of the <code>sortItemRenderer</code>
+ * in any size calculations performed by an override of the
+ * <code>measure()</code> and <code>updateDisplayList()</code> methods.</p>
+ *
+ * <p>You can customize when the sorting gets triggered by
+ * handling or dispatching the <code>AdvancedDataGridEvent.SORT</code> event.</p>
+ *
+ * @see mx.controls.AdvancedDataGrid
+ * @see mx.controls.advancedDataGridClasses.AdvancedDataGridSortItemRenderer
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class AdvancedDataGridHeaderRenderer
+ extends UIComponent
+
+{
+ /* implements IDataRenderer,
+ IDropInListItemRenderer,
+ IListItemRenderer */
+ // include "../../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function AdvancedDataGridHeaderRenderer()
+ {
+ super();
+
+ // InteractiveObject variables.
+ /* tabEnabled = false;
+
+ addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler); */
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ // private var grid:AdvancedDataGrid;
+
+ /**
+ * @private
+ * The value of the unscaledWidth parameter during the most recent
+ * call to updateDisplayList
+ */
+ // private var oldUnscaledWidth:Number = -1;
+
+ /**
+ * @private
+ * header separator skin
+ */
+ // private var partsSeparatorSkinClass:Class;
+ // private var partsSeparatorSkin:DisplayObject;
+
+ /**
+ * @private
+ * Storage for the sortItemRenderer property
+ */
+ // private var sortItemRendererInstance:UIComponent;
+ // private var sortItemRendererChanged:Boolean = false;
+
+ /**
+ * The internal UITextField that displays the text in this renderer.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ // protected var label:IUITextField;
+
+ /**
+ * This background is used as a mouseShield so that the mouse clicks do not pass
+ * through to the parent component, but all mouse events within the header area
+ * are handled by the header itself.
+ *
+ * Inspired by mouseShield in mx/core/Container.as and mx/skins/halo/HaloBorder.as.
+ *
+ * @private
+ */
+ // protected var background:Sprite;
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden properties: UIComponent
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // baselinePosition
+ //----------------------------------
+
+ /**
+ * @private
+ */
+ /* override public function get baselinePosition():Number
+ {
+ return label.baselinePosition;
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // data
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the data property.
+ */
+ /* private var _data:Object;
+
+ [Bindable("dataChange")]
+ */
+ /**
+ * The implementation of the <code>data</code> property
+ * as defined by the IDataRenderer interface.
+ * When set, it stores the value and invalidates the component
+ * to trigger a relayout of the component.
+ *
+ * @see mx.core.IDataRenderer
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* public function get data():Object
+ {
+ return _data;
+ }
+ */
+ /**
+ * @private
+ */
+ /* public function set data(value:Object):void
+ {
+ _data = value;
+
+ invalidateProperties();
+
+ dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
+ } */
+
+ //----------------------------------
+ // sortItemRenderer
+ //----------------------------------
+
+ /* private var _sortItemRenderer:IFactory;
+
+ [Inspectable(category="Data")] */
+ /**
+ * Specifies a custom sort item renderer.
+ * By default, the AdvancedDataGridHeaderRenderer class uses
+ * AdvancedDataGridSortItemRenderer as the sort item renderer.
+ *
+ * <p>Note that the sort item renderer controls the display of the
+ * sort icon and sort sequence number.
+ * A custom header renderer must include code to display the
+ * sort item renderer, regardless of whether it is the default or custom
+ * sort item renderer.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* public function get sortItemRenderer():IFactory
+ {
+ return _sortItemRenderer;
+ } */
+
+ /**
+ * @private
+ */
+ /* public function set sortItemRenderer(value:IFactory):void
+ {
+ _sortItemRenderer = value;
+
+ sortItemRendererChanged = true;
+ invalidateSize();
+ invalidateDisplayList();
+
+ dispatchEvent(new Event("sortItemRendererChanged"));
+ } */
+
+ //----------------------------------
+ // listData
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the listData property.
+ */
+ /* private var _listData:AdvancedDataGridListData;
+
+ [Bindable("dataChange")] */
+
+ /**
+ * The implementation of the <code>listData</code> property
+ * as defined by the IDropInListItemRenderer interface.
+ *
+ * @see mx.controls.listClasses.IDropInListItemRenderer
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* public function get listData():BaseListData
+ {
+ return _listData;
+ } */
+
+ /**
+ * @private
+ */
+ /* public function set listData(value:BaseListData):void
+ {
+ _listData = AdvancedDataGridListData(value);
+ grid = AdvancedDataGrid(_listData.owner);
+
+ invalidateProperties();
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods: UIComponent
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ /* override protected function createChildren():void
+ {
+ super.createChildren();
+
+ if (!label)
+ {
+ label = IUITextField(createInFontContext(UITextField));
+ addChild(DisplayObject(label));
+ }
+
+ if (!background)
+ {
+ background = new UIComponent();
+ addChild(background);
+ }
+ } */
+
+ /**
+ * @private
+ * Apply the data and listData.
+ * Create an instance of the sort item renderer if specified,
+ * and set the text into the text field.
+ */
+ /* override protected function commitProperties():void
+ {
+ super.commitProperties();
+
+ if (!initialized)
+ label.styleName = this;
+
+ if (!sortItemRendererInstance || sortItemRendererChanged)
+ {
+ if (!sortItemRenderer)
+ sortItemRenderer = ClassFactory(grid.sortItemRenderer);
+
+ if (sortItemRenderer)
+ {
+ sortItemRendererInstance = sortItemRenderer.newInstance();
+
+ // TODO Ideally, we should be doing this, but commenting out
+ // now because of Bug 204187:
+ //
+ // sortItemRendererInstance.owner = grid;
+
+ addChild( DisplayObject(sortItemRendererInstance) );
+ }
+
+ sortItemRendererChanged = false;
+ }
+
+ // Handle skin for the separator between the text and icon parts
+ var oldPartsSeparatorSkinClass:Class = partsSeparatorSkinClass;
+ if (!partsSeparatorSkinClass
+ || partsSeparatorSkinClass != grid.getStyle("headerSortSeparatorSkin"))
+ {
+ partsSeparatorSkinClass = grid.getStyle("headerSortSeparatorSkin");
+ }
+ if (grid.sortExpertMode || partsSeparatorSkinClass != oldPartsSeparatorSkinClass)
+ {
+ if (partsSeparatorSkin)
+ removeChild(partsSeparatorSkin);
+ if (!grid.sortExpertMode)
+ {
+ partsSeparatorSkin = new partsSeparatorSkinClass();
+ addChild(partsSeparatorSkin);
+ }
+ }
+ if (partsSeparatorSkin)
+ partsSeparatorSkin.visible = !(_data is AdvancedDataGridColumnGroup);
+
+ if (_data != null)
+ {
+ label.text = listData.label ? listData.label : " ";
+ label.multiline = grid.variableRowHeight;
+ if( _data is AdvancedDataGridColumn)
+ label.wordWrap = grid.columnHeaderWordWrap(_data as AdvancedDataGridColumn);
+
+
+// if (listData.columnIndex > -1)
+// label.wordWrap = grid.columnHeaderWordWrap(grid.columns[listData.columnIndex]);
+ else
+ label.wordWrap = grid.wordWrap;
+
+ if (_data is AdvancedDataGridColumn)
+ {
+ var column:AdvancedDataGridColumn =
+ _data as AdvancedDataGridColumn;
+
+ var dataTips:Boolean = grid.showDataTips;
+ if (column.showDataTips == true)
+ dataTips = true;
+ if (column.showDataTips == false)
+ dataTips = false;
+ if (dataTips)
+ {
+ if (label.textWidth > label.width
+ || column.dataTipFunction || column.dataTipField
+ || grid.dataTipFunction || grid.dataTipField)
+ {
+ toolTip = column.itemToDataTip(_data);
+ }
+ else
+ {
+ toolTip = null;
+ }
+ }
+ else
+ {
+ toolTip = null;
+ }
+ }
+ }
+ else
+ {
+ label.text = " ";
+ toolTip = null;
+ }
+
+ if (sortItemRendererInstance is IInvalidating)
+ IInvalidating(sortItemRendererInstance).invalidateProperties();
+ } */
+
+ /**
+ * @private
+ */
+ /* override protected function measure():void
+ {
+ super.measure();
+
+ // Cache padding values
+ var paddingLeft:int = getStyle("paddingLeft");
+ var paddingRight:int = getStyle("paddingRight");
+ var paddingTop:int = getStyle("paddingTop");
+ var paddingBottom:int = getStyle("paddingBottom");
+
+ // Measure sortItemRenderer
+ var sortItemRendererWidth:Number = sortItemRendererInstance ?
+ sortItemRendererInstance.getExplicitOrMeasuredWidth() : 0;
+ var sortItemRendererHeight:Number = sortItemRendererInstance ?
+ sortItemRendererInstance.getExplicitOrMeasuredHeight() : 0;
+ if (grid.sortExpertMode && getFieldSortInfo() == null)
+ {
+ sortItemRendererWidth = 0;
+ sortItemRendererHeight = 0;
+ }
+
+ var horizontalGap:Number = getStyle("horizontalGap");
+ if (sortItemRendererWidth == 0)
+ horizontalGap = 0;
+
+ // Measure text
+ var labelWidth:Number = 0;
+ var labelHeight:Number = 0;
+ var w:Number = 0;
+ var h:Number = 0;
+
+ // By default, we already get the column's width
+ if (!isNaN(explicitWidth))
+ {
+ w = explicitWidth;
+ labelWidth = w - sortItemRendererWidth
+ - horizontalGap
+ - (partsSeparatorSkin ? partsSeparatorSkin.width + 10 : 0)
+ - paddingLeft - paddingRight;
+ label.width = labelWidth;
+ // Inspired by mx.controls.Label#measureTextFieldBounds():
+ // In order to display the text completely,
+ // a TextField must be 4-5 pixels larger.
+ labelHeight = label.textHeight + UITextField.TEXT_HEIGHT_PADDING;
+ }
+ else
+ {
+ var lineMetrics:TextLineMetrics = measureText(label.text);
+ labelWidth = lineMetrics.width + UITextField.TEXT_WIDTH_PADDING;
+ labelHeight = lineMetrics.height + UITextField.TEXT_HEIGHT_PADDING;
+ w = labelWidth + horizontalGap
+ + (partsSeparatorSkin ? partsSeparatorSkin.width : 0)
+ + sortItemRendererWidth
+ }
+
+ h = Math.max(labelHeight, sortItemRendererHeight);
+ h = Math.max(h, (partsSeparatorSkin ? partsSeparatorSkin.height : 0));
+
+ // Add padding
+ w += paddingLeft + paddingRight;
+ h += paddingTop + paddingBottom;
+
+ // Set required width and height
+ measuredMinWidth = measuredWidth = w;
+ measuredMinHeight = measuredHeight = h;
+ } */
+
+ /**
+ * @private
+ */
+ /* override protected function updateDisplayList(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+ if (unscaledWidth == 0)
+ return;
+
+ // Cache padding values
+ var paddingLeft:int = getStyle("paddingLeft");
+ var paddingRight:int = getStyle("paddingRight");
+ var paddingTop:int = getStyle("paddingTop");
+ var paddingBottom:int = getStyle("paddingBottom");
+
+ // Size of sortItemRenderer
+ var sortItemRendererWidth:Number = sortItemRendererInstance ?
+ sortItemRendererInstance.getExplicitOrMeasuredWidth() : 0;
+ var sortItemRendererHeight:Number = sortItemRendererInstance ?
+ sortItemRendererInstance.getExplicitOrMeasuredHeight() : 0;
+ if (sortItemRendererInstance)
+ sortItemRendererInstance.setActualSize(sortItemRendererWidth,
+ sortItemRendererHeight);
+ if (grid.sortExpertMode && getFieldSortInfo() == null)
+ {
+ sortItemRendererWidth = 0;
+ sortItemRendererHeight = 0;
+ }
+
+ var horizontalGap:Number = getStyle("horizontalGap");
+ if (sortItemRendererWidth == 0)
+ horizontalGap = 0;
+
+ // Adjust to given width
+ var lineMetrics:TextLineMetrics = measureText(label.text);
+ var labelWidth:Number = lineMetrics.width + UITextField.TEXT_WIDTH_PADDING;
+ var maxLabelWidth:int = unscaledWidth - sortItemRendererWidth
+ - horizontalGap - paddingLeft - paddingRight;
+ if (maxLabelWidth < 0)
+ maxLabelWidth = 0; // set the max width to 0, if its < 0
+
+ var truncate:Boolean = false;
+
+ if (maxLabelWidth < labelWidth)
+ {
+ truncate = true;
+ labelWidth = maxLabelWidth;
+ }
+
+ // Adjust to given height
+ var labelHeight:Number = label.textHeight + UITextField.TEXT_HEIGHT_PADDING;
+ var maxLabelHeight:int = unscaledHeight - paddingTop - paddingBottom;
+
+ if (maxLabelHeight < labelHeight)
+ {
+ truncate = true;
+ labelHeight = maxLabelHeight;
+ }
+
+ // Size of label
+ label.setActualSize(labelWidth, labelHeight);
+
+ // truncate only if the truncate flag is set
+ if (truncate && !label.multiline)
+ label.truncateToFit();
+
+ // Calculate position of label, by default center it
+ var labelX:Number;
+ var horizontalAlign:String = getStyle("horizontalAlign");
+ if (horizontalAlign == "left")
+ {
+ labelX = paddingLeft;
+ }
+ else if (horizontalAlign == "right")
+ {
+ labelX = unscaledWidth - paddingRight - sortItemRendererWidth
+ - horizontalGap - labelWidth;
+ }
+ else // if (horizontalAlign == "center")
+ {
+ labelX = (unscaledWidth - labelWidth - paddingLeft
+ - paddingRight - horizontalGap
+ - sortItemRendererWidth)/2 + paddingLeft;
+ }
+ labelX = Math.max(labelX, 0);
+
+ var labelY:Number;
+ var verticalAlign:String = getStyle("verticalAlign");
+ if (verticalAlign == "top")
+ {
+ labelY = paddingTop;
+ }
+ else if (verticalAlign == "bottom")
+ {
+ labelY = unscaledHeight - labelHeight - paddingBottom + 2; // 2 for gutter
+ }
+ else // if (verticalAlign == "middle")
+ {
+ labelY = (unscaledHeight - labelHeight - paddingBottom - paddingTop)/2
+ + paddingTop;
+ }
+ labelY = Math.max(labelY, 0);
+
+ // Set positions
+ label.x = Math.round(labelX);
+ label.y = Math.round(labelY);
+
+ if (sortItemRendererInstance)
+ {
+ // Calculate position of sortItemRenderer (to the right of the headerRenderer)
+ var sortItemRendererX:Number = unscaledWidth
+ - sortItemRendererWidth
+ - paddingRight
+ ;
+ var sortItemRendererY:Number = (unscaledHeight - sortItemRendererHeight
+ - paddingTop - paddingBottom
+ ) / 2
+ + paddingTop;
+
+ sortItemRendererInstance.x = Math.round(sortItemRendererX);
+ sortItemRendererInstance.y = Math.round(sortItemRendererY);
+ }
+
+ // Draw the separator
+ graphics.clear();
+ if (sortItemRendererInstance && !grid.sortExpertMode
+ && !(_data is AdvancedDataGridColumnGroup))
+ {
+ if (!partsSeparatorSkinClass)
+ {
+ graphics.lineStyle(1, getStyle("separatorColor") !== undefined
+ ? getStyle("separatorColor") : 0xCCCCCC);
+ graphics.moveTo(sortItemRendererInstance.x - 1, 1);
+ graphics.lineTo(sortItemRendererInstance.x - 1, unscaledHeight - 1);
+ }
+ else
+ {
+ partsSeparatorSkin.x = sortItemRendererInstance.x
+ - horizontalGap - partsSeparatorSkin.width;
+ partsSeparatorSkin.y = (unscaledHeight - partsSeparatorSkin.height) / 2;
+ }
+ }
+
+ // Set text color
+ var labelColor:Number;
+
+ if (data && parent)
+ {
+ if (!enabled)
+ labelColor = getStyle("disabledColor");
+ else if (grid.isItemHighlighted(listData.uid))
+ labelColor = getStyle("textRollOverColor");
+ else if (grid.isItemSelected(listData.uid))
+ labelColor = getStyle("textSelectedColor");
+ else
+ labelColor = getStyle("color");
+
+ label.setColor(labelColor);
+ }
+
+ // Set background size, position, color
+ if (background)
+ {
+ background.graphics.clear();
+ background.graphics.beginFill(0xFFFFFF, 0.0); // transparent
+ background.graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
+ background.graphics.endFill();
+ setChildIndex( DisplayObject(background), 0 );
+ }
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Indicates if the mouse pointer was over the text part or icon part
+ * of the header when the mouse event occurred.
+ *
+ * <p>This method has to be implemented in custom header renderers for sorting
+ * to work. Note that this implicitly means you will need to display both
+ * text (which can be displayed any way the custom header renderer
+ * wants; by default, Flex display text) and an icon (which is the
+ * default or custom sort item renderer).</p>
+ *
+ * @param event The mouse event.
+ *
+ * @return <code>AdvancedDataGrid.HEADERTEXTPART</code> if the mouse was over the header text,
+ * and <code>AdvancedDataGrid.HEADERICONPART</code> if the mouse was over the header icon.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* public function mouseEventToHeaderPart(event:MouseEvent):String
+ {
+ if(sortItemRendererInstance == null)
+ return AdvancedDataGrid.HEADER_TEXT_PART;
+
+ var point:Point = new Point(event.stageX, event.stageY);
+ point = globalToLocal(point);
+
+ // Needs to be in sync with the logic in measure() and updateDisplayList()
+ return point.x < sortItemRendererInstance.x
+ ? AdvancedDataGrid.HEADER_TEXT_PART
+ : AdvancedDataGrid.HEADER_ICON_PART;
+ } */
+
+ /**
+ * Returns the sort information for this column from the AdvancedDataGrid control
+ * so that the control can display the column's number in the sort sequence,
+ * and whether the sort is ascending or descending.
+ * The sorting information is represented by an instance of the SortInfo class,
+ * where each column in the AdvancedDataGrid control has an associated
+ * SortInfo instance.
+ *
+ * @return A SortInfo instance.
+ *
+ * @see mx.controls.advancedDataGridClasses.SortInfo
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* protected function getFieldSortInfo():SortInfo
+ {
+ return grid.getFieldSortInfo(grid.mx_internal::rawColumns[listData.columnIndex]);
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Event handlers
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Positions the tooltip in the header.
+ *
+ * @param The Event object.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* protected function toolTipShowHandler(event:ToolTipEvent):void
+ {
+ var toolTip:IToolTip = event.toolTip;
+ var xPos:int = DisplayObject(systemManager).mouseX + 11;
+ var yPos:int = DisplayObject(systemManager).mouseY + 22;
+ // Calculate global position of label.
+ var pt:Point = new Point(xPos, yPos);
+ pt = DisplayObject(systemManager).localToGlobal(pt);
+ pt = DisplayObject(systemManager.getSandboxRoot()).globalToLocal(pt);
+
+ toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);
+
+ var screen:Rectangle = toolTip.screen;
+ var screenRight:Number = screen.x + screen.width;
+ if (toolTip.x + toolTip.width > screenRight)
+ toolTip.move(screenRight - toolTip.width, toolTip.y);
+
+ } */
+
+ /**
+ * @private
+ */
+ /* mx_internal function getLabel():IUITextField
+ {
+ return label;
+ } */
+
+} // end class
+
+} // end package
--
To stop receiving notification emails like this one, please contact
alinakazi@apache.org.