// Copyright 2007. Adobe Systems Incorporated. All Rights Reserved. package fl.controls.dataGridClasses { import fl.controls.ButtonLabelPlacement; import fl.controls.LabelButton; import fl.core.UIComponent; import flash.events.Event; import flash.events.MouseEvent; //-------------------------------------- // Styles //-------------------------------------- /** * @copy fl.controls.LabelButton#style:selectedDisabledSkin * * @default student_ar_fl_controls_dataGridClasses_HeaderRenderer_selectedDisabledSkin * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ [Style(name="selectedDisabledSkin", type="Class")] /** * @copy fl.controls.LabelButton#style:selectedUpSkin * * @default student_ar_fl_controls_dataGridClasses_HeaderRenderer_selectedUpSkin * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ [Style(name="selectedUpSkin", type="Class")] /** * @copy fl.controls.LabelButton#style:selectedDownSkin * * @default student_ar_fl_controls_dataGridClasses_HeaderRenderer_selectedDownSkin * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ [Style(name="selectedDownSkin", type="Class")] /** * @copy fl.controls.LabelButton#style:selectedOverSkin * * @default student_ar_fl_controls_dataGridClasses_HeaderRenderer_selectedOverSkin * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ [Style(name="selectedOverSkin", type="Class")] //-------------------------------------- // Class description //-------------------------------------- /** * The student_ar_fl_controls_dataGridClasses_HeaderRenderer class displays the column header for the current * DataGrid column. This class extends the LabelButton class and adds a * column property that associates the current header with its * DataGrid column. * * @see fl.controls.DataGrid DataGrid * * @includeExample examples/student_ar_fl_controls_dataGridClasses_HeaderRendererExample.as * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ public class student_ar_fl_controls_dataGridClasses_HeaderRenderer extends LabelButton { /** * @private * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ public var _column:uint; /** * Creates a new student_ar_fl_controls_dataGridClasses_HeaderRenderer instance. * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ public function student_ar_fl_controls_dataGridClasses_HeaderRenderer():void { super(); focusEnabled = false; } /** * @private * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ private static var defaultStyles:Object = { upSkin: "student_ar_fl_controls_dataGridClasses_HeaderRenderer_upSkin", downSkin: "student_ar_fl_controls_dataGridClasses_HeaderRenderer_downSkin", overSkin: "student_ar_fl_controls_dataGridClasses_HeaderRenderer_overSkin", disabledSkin: "student_ar_fl_controls_dataGridClasses_HeaderRenderer_disabledSkin", selectedDisabledSkin: "student_ar_fl_controls_dataGridClasses_HeaderRenderer_selectedDisabledSkin", selectedUpSkin: "student_ar_fl_controls_dataGridClasses_HeaderRenderer_selectedUpSkin", selectedDownSkin: "student_ar_fl_controls_dataGridClasses_HeaderRenderer_selectedDownSkin", selectedOverSkin: "student_ar_fl_controls_dataGridClasses_HeaderRenderer_selectedOverSkin", textFormat: null, disabledTextFormat: null, textPadding: 5 }; /** * @copy fl.core.UIComponent#getStyleDefinition() * * @includeExample ../../core/examples/UIComponent.getStyleDefinition.1.as -noswf * * @see fl.core.UIComponent#getStyle() * @see fl.core.UIComponent#setStyle() * @see fl.managers.StyleManager * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ public static function getStyleDefinition():Object { return defaultStyles; } /** * The index of the column that belongs to this student_ar_fl_controls_dataGridClasses_HeaderRenderer instance. * *

You do not need to know how to get or set this property * because it is internal. However, if you create your own * student_ar_fl_controls_dataGridClasses_HeaderRenderer, be sure to expose it; the student_ar_fl_controls_dataGridClasses_HeaderRenderer is used * by the DataGrid to maintain a reference between the header * and the related DataGridColumn.

* * @langversion 3.0 * @playerversion Flash 9.0.28.0 * @internal Adobe: [LM] Added more details. This *could* be marked (at)private. */ public function get column():uint { return _column; } /** * @private (setter) * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ public function set column(value:uint):void { _column = value; } /** * @private (protected) * * @langversion 3.0 * @playerversion Flash 9.0.28.0 */ override protected function drawLayout():void { var txtPad:Number = Number(getStyleValue("textPadding")); textField.height = textField.textHeight + 4; textField.visible = (label.length > 0); var txtW:Number = textField.textWidth + 4; var txtH:Number = textField.textHeight + 4; var paddedIconW:Number = (icon == null) ? 0 : icon.width + 4; var tmpWidth:Number = Math.max(0, Math.min(txtW, width - 2 * txtPad - paddedIconW)); if (icon != null) { icon.x = width - txtPad - icon.width - 2; icon.y = Math.round((height - icon.height) / 2); } textField.width = tmpWidth; textField.x = txtPad; textField.y = Math.round((height - textField.height) / 2); background.width = width; background.height = height; } } }