// 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; } } }