You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2019/12/30 00:35:44 UTC
[royale-asjs] 01/13: Try using AdvancedDataGridHeaderRenderer in
AdvancedDataGrid
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 9f95a39c6a14e3b5319445b255b1cd745a5dec27
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Thu Dec 5 16:29:42 2019 +0200
Try using AdvancedDataGridHeaderRenderer in AdvancedDataGrid
Reference #593
---
.../MXRoyale/src/main/resources/defaults.css | 6 +-
.../MXRoyale/src/main/royale/MXRoyaleClasses.as | 1 +
.../AdvancedDataGridButtonBar.as | 45 ++++
.../AdvancedDataGridHeaderRenderer.as | 232 ++++++++++++---------
4 files changed, 186 insertions(+), 98 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
index 05c1de5..cc1e8d4 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
@@ -75,6 +75,10 @@ Basic|DataGridButtonBar {
IItemRenderer: ClassReference("mx.controls.buttonBarClasses.TextButtonDataGridColumnItemRenderer");
}
+adg|AdvancedDataGridButtonBar {
+ IItemRenderer: ClassReference("mx.controls.advancedDataGridClasses.AdvancedDataGridHeaderRenderer");
+}
+
AdvancedDataGrid
{
alternatingItemColors: #F7F7F7, #FFFFFF;
@@ -85,7 +89,7 @@ AdvancedDataGrid
IBeadLayout: ClassReference("mx.controls.beads.layouts.AdvancedDataGridLayout");
IDataProviderNotifier: ClassReference("mx.controls.beads.DataProviderChangeNotifier");
columnClass: ClassReference("mx.controls.advancedDataGridClasses.AdvancedDataGridColumnList");
- columnContainerClass: ClassReference("org.apache.royale.html.DataGridButtonBar");
+ columnContainerClass: ClassReference("mx.controls.advancedDataGridClasses.AdvancedDataGridButtonBar");
columnLayoutClass: ClassReference("org.apache.royale.html.beads.layouts.ButtonBarLayout");
listAreaClass: ClassReference("mx.controls.advancedDataGridClasses.AdvancedDataGridListArea");
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index 25cca50..7c38a53 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -167,6 +167,7 @@ internal class MXRoyaleClasses
import mx.events.ProgressEvent; ProgressEvent;
import mx.events.ColorPickerEvent; ColorPickerEvent;
import mx.controls.advancedDataGridClasses.AdvancedDataGridColumnList; AdvancedDataGridColumnList;
+ import mx.controls.advancedDataGridClasses.AdvancedDataGridButtonBar; AdvancedDataGridButtonBar;
import mx.controls.advancedDataGridClasses.AdvancedDataGridListArea; AdvancedDataGridListArea;
import mx.controls.advancedDataGridClasses.AdvancedDataGridSingleSelectionMouseController; AdvancedDataGridSingleSelectionMouseController;
import mx.controls.dataGridClasses.DataGridColumnList; DataGridColumnList;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridButtonBar.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridButtonBar.as
new file mode 100644
index 0000000..1fbfb95
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridButtonBar.as
@@ -0,0 +1,45 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 org.apache.royale.html.DataGridButtonBar;
+
+ /**
+ * The AdvancedDataGridButtonBar class extends DataGridButtonBar to allow some specialized css
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.7
+ * @royalesuppresspublicvarwarning
+ */
+ public class AdvancedDataGridButtonBar extends DataGridButtonBar
+ {
+ public function AdvancedDataGridButtonBar()
+ {
+ super();
+ typeNames += " AdvancedDataGridButtonBar";
+
+ }
+
+ }
+
+}
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
index 870be51..7e5bf48 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderRenderer.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderRenderer.as
@@ -27,22 +27,28 @@ 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.controls.listClasses.IListItemRenderer;
import mx.core.ClassFactory;
-//import mx.core.IDataRenderer;
+import mx.core.IDataRenderer;
import mx.core.IFactory;
import mx.core.IInvalidating;
import mx.core.IToolTip;
-//import mx.core.IUITextField;
+import mx.core.IUITextField;
import mx.core.UIComponent;
-//import mx.core.UITextField;
+import mx.core.UITextField;
import mx.core.mx_internal;
import mx.events.FlexEvent;
-//import mx.events.ToolTipEvent;
+import mx.events.ToolTipEvent;
+import mx.core.IUIComponent;
+import org.apache.royale.geom.Point;
+import org.apache.royale.core.TextLineMetrics;
+import org.apache.royale.geom.Rectangle;
+import org.apache.royale.events.Event;
+import org.apache.royale.events.MouseEvent;
use namespace mx_internal;
@@ -65,7 +71,7 @@ use namespace mx_internal;
* @playerversion AIR 1.1
* @productversion Flex 3
*/
-//[Event(name="dataChange", type="mx.events.FlexEvent")]
+[Event(name="dataChange", type="mx.events.FlexEvent")]
//--------------------------------------
// Styles
@@ -154,13 +160,10 @@ use namespace mx_internal;
* @playerversion AIR 1.1
* @productversion Flex 3
*/
-public class AdvancedDataGridHeaderRenderer
- extends UIComponent
+public class AdvancedDataGridHeaderRenderer extends UIComponent implements IDataRenderer,
+ IDropInListItemRenderer, IListItemRenderer
{
- /* implements IDataRenderer,
- IDropInListItemRenderer,
- IListItemRenderer */
// include "../../core/Version.as";
//--------------------------------------------------------------------------
@@ -182,9 +185,9 @@ public class AdvancedDataGridHeaderRenderer
super();
// InteractiveObject variables.
- /* tabEnabled = false;
+ tabEnabled = false;
- addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler); */
+ addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler);
}
//--------------------------------------------------------------------------
@@ -196,28 +199,28 @@ public class AdvancedDataGridHeaderRenderer
/**
* @private
*/
- // private var grid:AdvancedDataGrid;
+ private var grid:AdvancedDataGrid;
/**
* @private
* The value of the unscaledWidth parameter during the most recent
* call to updateDisplayList
*/
- // private var oldUnscaledWidth:Number = -1;
+ private var oldUnscaledWidth:Number = -1;
/**
* @private
* header separator skin
*/
- // private var partsSeparatorSkinClass:Class;
- // private var partsSeparatorSkin:DisplayObject;
+ private var partsSeparatorSkinClass:Class;
+ private var partsSeparatorSkin:IUIComponent;
/**
* @private
* Storage for the sortItemRenderer property
*/
- // private var sortItemRendererInstance:UIComponent;
- // private var sortItemRendererChanged:Boolean = false;
+ private var sortItemRendererInstance:UIComponent;
+ private var sortItemRendererChanged:Boolean = false;
/**
* The internal UITextField that displays the text in this renderer.
@@ -227,7 +230,7 @@ public class AdvancedDataGridHeaderRenderer
* @playerversion AIR 1.1
* @productversion Flex 3
*/
- // protected var label:IUITextField;
+ protected var label:IUITextField;
/**
* This background is used as a mouseShield so that the mouse clicks do not pass
@@ -238,7 +241,7 @@ public class AdvancedDataGridHeaderRenderer
*
* @private
*/
- // protected var background:Sprite;
+ protected var background:UIComponent;
//--------------------------------------------------------------------------
//
@@ -253,10 +256,11 @@ public class AdvancedDataGridHeaderRenderer
/**
* @private
*/
- /* override public function get baselinePosition():Number
+ override public function get baselinePosition():Number
{
- return label.baselinePosition;
- } */
+ // return label.baselinePosition;
+ return 0;
+ }
//--------------------------------------------------------------------------
//
@@ -272,10 +276,10 @@ public class AdvancedDataGridHeaderRenderer
* @private
* Storage for the data property.
*/
- /* private var _data:Object;
+ private var _data:Object;
[Bindable("dataChange")]
- */
+
/**
* The implementation of the <code>data</code> property
* as defined by the IDataRenderer interface.
@@ -289,30 +293,31 @@ public class AdvancedDataGridHeaderRenderer
* @playerversion AIR 1.1
* @productversion Flex 3
*/
- /* public function get data():Object
+ public function get data():Object
{
return _data;
}
- */
+
/**
* @private
*/
- /* public function set data(value:Object):void
+ public function set data(value:Object):void
{
_data = value;
invalidateProperties();
+ commitProperties();
dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
- } */
+ }
//----------------------------------
// sortItemRenderer
//----------------------------------
- /* private var _sortItemRenderer:IFactory;
+ private var _sortItemRenderer:IFactory;
- [Inspectable(category="Data")] */
+ [Inspectable(category="Data")]
/**
* Specifies a custom sort item renderer.
* By default, the AdvancedDataGridHeaderRenderer class uses
@@ -329,24 +334,24 @@ public class AdvancedDataGridHeaderRenderer
* @playerversion AIR 1.1
* @productversion Flex 3
*/
- /* public function get sortItemRenderer():IFactory
+ public function get sortItemRenderer():IFactory
{
return _sortItemRenderer;
- } */
+ }
/**
* @private
*/
- /* public function set sortItemRenderer(value:IFactory):void
+ public function set sortItemRenderer(value:IFactory):void
{
_sortItemRenderer = value;
sortItemRendererChanged = true;
invalidateSize();
invalidateDisplayList();
-
+ updateDisplayList(getExplicitOrMeasuredWidth(), getExplicitOrMeasuredHeight());
dispatchEvent(new Event("sortItemRendererChanged"));
- } */
+ }
//----------------------------------
// listData
@@ -356,9 +361,9 @@ public class AdvancedDataGridHeaderRenderer
* @private
* Storage for the listData property.
*/
- /* private var _listData:AdvancedDataGridListData;
+ private var _listData:AdvancedDataGridListData;
- [Bindable("dataChange")] */
+ [Bindable("dataChange")]
/**
* The implementation of the <code>listData</code> property
@@ -371,21 +376,21 @@ public class AdvancedDataGridHeaderRenderer
* @playerversion AIR 1.1
* @productversion Flex 3
*/
- /* public function get listData():BaseListData
+ public function get listData():BaseListData
{
return _listData;
- } */
+ }
/**
* @private
*/
- /* public function set listData(value:BaseListData):void
+ public function set listData(value:BaseListData):void
{
_listData = AdvancedDataGridListData(value);
grid = AdvancedDataGrid(_listData.owner);
invalidateProperties();
- } */
+ }
//--------------------------------------------------------------------------
//
@@ -396,14 +401,14 @@ public class AdvancedDataGridHeaderRenderer
/**
* @private
*/
- /* override protected function createChildren():void
+ override protected function createChildren():void
{
super.createChildren();
if (!label)
{
label = IUITextField(createInFontContext(UITextField));
- addChild(DisplayObject(label));
+ addChild(IUIComponent(label));
}
if (!background)
@@ -411,7 +416,7 @@ public class AdvancedDataGridHeaderRenderer
background = new UIComponent();
addChild(background);
}
- } */
+ }
/**
* @private
@@ -419,7 +424,7 @@ public class AdvancedDataGridHeaderRenderer
* Create an instance of the sort item renderer if specified,
* and set the text into the text field.
*/
- /* override protected function commitProperties():void
+ override protected function commitProperties():void
{
super.commitProperties();
@@ -428,8 +433,8 @@ public class AdvancedDataGridHeaderRenderer
if (!sortItemRendererInstance || sortItemRendererChanged)
{
- if (!sortItemRenderer)
- sortItemRenderer = ClassFactory(grid.sortItemRenderer);
+ // if (!sortItemRenderer)
+ // sortItemRenderer = ClassFactory(grid.sortItemRenderer);
if (sortItemRenderer)
{
@@ -440,7 +445,7 @@ public class AdvancedDataGridHeaderRenderer
//
// sortItemRendererInstance.owner = grid;
- addChild( DisplayObject(sortItemRendererInstance) );
+ addChild( IUIComponent(sortItemRendererInstance) );
}
sortItemRendererChanged = false;
@@ -469,15 +474,15 @@ public class AdvancedDataGridHeaderRenderer
if (_data != null)
{
label.text = listData.label ? listData.label : " ";
- label.multiline = grid.variableRowHeight;
- if( _data is AdvancedDataGridColumn)
- label.wordWrap = grid.columnHeaderWordWrap(_data as AdvancedDataGridColumn);
+ // 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;
+ // else
+ // label.wordWrap = grid.wordWrap;
if (_data is AdvancedDataGridColumn)
{
@@ -491,16 +496,16 @@ public class AdvancedDataGridHeaderRenderer
dataTips = false;
if (dataTips)
{
- if (label.textWidth > label.width
- || column.dataTipFunction || column.dataTipField
- || grid.dataTipFunction || grid.dataTipField)
- {
- toolTip = column.itemToDataTip(_data);
- }
- else
- {
- toolTip = null;
- }
+ // if (label.textWidth > label.width
+ // || column.dataTipFunction || column.dataTipField
+ // || grid.dataTipFunction || grid.dataTipField)
+ // {
+ // toolTip = column.itemToDataTip(_data);
+ // }
+ // else
+ // {
+ // toolTip = null;
+ // }
}
else
{
@@ -516,12 +521,12 @@ public class AdvancedDataGridHeaderRenderer
if (sortItemRendererInstance is IInvalidating)
IInvalidating(sortItemRendererInstance).invalidateProperties();
- } */
+ }
/**
* @private
*/
- /* override protected function measure():void
+ override protected function measure():void
{
super.measure();
@@ -586,12 +591,12 @@ public class AdvancedDataGridHeaderRenderer
// Set required width and height
measuredMinWidth = measuredWidth = w;
measuredMinHeight = measuredHeight = h;
- } */
+ }
/**
* @private
*/
- /* override protected function updateDisplayList(unscaledWidth:Number,
+ override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
@@ -653,8 +658,8 @@ public class AdvancedDataGridHeaderRenderer
label.setActualSize(labelWidth, labelHeight);
// truncate only if the truncate flag is set
- if (truncate && !label.multiline)
- label.truncateToFit();
+ // if (truncate && !label.multiline)
+ // label.truncateToFit();
// Calculate position of label, by default center it
var labelX:Number;
@@ -740,8 +745,8 @@ public class AdvancedDataGridHeaderRenderer
{
if (!enabled)
labelColor = getStyle("disabledColor");
- else if (grid.isItemHighlighted(listData.uid))
- labelColor = getStyle("textRollOverColor");
+ // else if (grid.isItemHighlighted(listData.uid))
+ // labelColor = getStyle("textRollOverColor");
else if (grid.isItemSelected(listData.uid))
labelColor = getStyle("textSelectedColor");
else
@@ -757,9 +762,9 @@ public class AdvancedDataGridHeaderRenderer
background.graphics.beginFill(0xFFFFFF, 0.0); // transparent
background.graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
background.graphics.endFill();
- setChildIndex( DisplayObject(background), 0 );
+ setChildIndex( IUIComponent(background), 0 );
}
- } */
+ }
//--------------------------------------------------------------------------
//
@@ -787,19 +792,20 @@ public class AdvancedDataGridHeaderRenderer
* @playerversion AIR 1.1
* @productversion Flex 3
*/
- /* public function mouseEventToHeaderPart(event:MouseEvent):String
+ public function mouseEventToHeaderPart(event:MouseEvent):String
{
- if(sortItemRendererInstance == null)
- return AdvancedDataGrid.HEADER_TEXT_PART;
+ return null;
+ // if(sortItemRendererInstance == null)
+ // return AdvancedDataGrid.HEADER_TEXT_PART;
- var point:Point = new Point(event.stageX, event.stageY);
- point = globalToLocal(point);
+ // 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;
- } */
+ // // 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
@@ -818,10 +824,12 @@ public class AdvancedDataGridHeaderRenderer
* @playerversion AIR 1.1
* @productversion Flex 3
*/
- /* protected function getFieldSortInfo():SortInfo
+ // protected function getFieldSortInfo():SortInfo
+ protected function getFieldSortInfo():Object
{
- return grid.getFieldSortInfo(grid.mx_internal::rawColumns[listData.columnIndex]);
- } */
+ // return grid.getFieldSortInfo(grid.mx_internal::rawColumns[listData.columnIndex]);
+ return null;
+ }
//--------------------------------------------------------------------------
//
@@ -839,15 +847,15 @@ public class AdvancedDataGridHeaderRenderer
* @playerversion AIR 1.1
* @productversion Flex 3
*/
- /* protected function toolTipShowHandler(event:ToolTipEvent):void
+ 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;
+ var xPos:int = IUIComponent(systemManager).mouseX + 11;
+ var yPos:int = IUIComponent(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);
+ pt = UIComponent(systemManager).localToGlobal(pt);
+ pt = UIComponent(systemManager.getSandboxRoot()).globalToLocal(pt);
toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);
@@ -856,16 +864,46 @@ public class AdvancedDataGridHeaderRenderer
if (toolTip.x + toolTip.width > screenRight)
toolTip.move(screenRight - toolTip.width, toolTip.y);
- } */
+ }
/**
* @private
*/
- /* mx_internal function getLabel():IUITextField
+ mx_internal function getLabel():IUITextField
{
return label;
- } */
+ }
+
+
+ public function get nestLevel():int
+ {
+ throw new Error("Method not implemented.");
+ }
+
+ public function set nestLevel(value:int):void
+ {
+ throw new Error("Method not implemented.");
+ }
+ public function get processedDescriptors():Boolean
+ {
+ throw new Error("Method not implemented.");
+ }
+
+ public function set processedDescriptors(value:Boolean):void
+ {
+ throw new Error("Method not implemented.");
+ }
+
+ public function get updateCompletePendingFlag():Boolean
+ {
+ throw new Error("Method not implemented.");
+ }
+
+ public function set updateCompletePendingFlag(value:Boolean):void
+ {
+ throw new Error("Method not implemented.");
+ }
} // end class
} // end package