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 2018/12/04 06:33:48 UTC
[royale-asjs] 03/03: get Spark List working on SkinnableContainer
and move the SkinnableDataContainer APIs out of SkinnableComponent and into
ListBase
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 ce3fca99665f19628d98f70d779ac0fead1edf67
Author: Alex Harui <ah...@apache.org>
AuthorDate: Mon Dec 3 22:33:08 2018 -0800
get Spark List working on SkinnableContainer and move the SkinnableDataContainer APIs out of SkinnableComponent and into ListBase
---
.../src/main/royale/spark/components/DataGrid.as | 8 +-
.../spark/components/supportClasses/ListBase.as | 122 ++++++++++++++++++++-
.../supportClasses/SkinnableComponent.as | 79 -------------
3 files changed, 125 insertions(+), 84 deletions(-)
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/DataGrid.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/DataGrid.as
index 6707fed..3766cb4 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/DataGrid.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/DataGrid.as
@@ -1465,7 +1465,7 @@ public class DataGrid extends SkinnableContainerBase
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
- override public function get dataProvider():IList
+ public function get dataProvider():IList
{
return getGridProperty("dataProvider");
}
@@ -1473,7 +1473,7 @@ public class DataGrid extends SkinnableContainerBase
/**
* @private
*/
- override public function set dataProvider(value:IList):void
+ public function set dataProvider(value:IList):void
{
if (setGridProperty("dataProvider", value))
dispatchChangeEvent("dataProviderChanged");
@@ -2077,7 +2077,7 @@ public class DataGrid extends SkinnableContainerBase
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
- override public function get itemRenderer():IFactory
+ public function get itemRenderer():IFactory
{
return getGridProperty("itemRenderer");
}
@@ -2085,7 +2085,7 @@ public class DataGrid extends SkinnableContainerBase
/**
* @private
*/
- override public function set itemRenderer(value:IFactory):void
+ public function set itemRenderer(value:IFactory):void
{
if (setGridProperty("itemRenderer", value))
dispatchChangeEvent("itemRendererChanged");
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ListBase.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ListBase.as
index 660e28d..60706c5 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ListBase.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ListBase.as
@@ -41,8 +41,17 @@ import spark.events.ListEvent;
import spark.events.RendererExistenceEvent;
import spark.layouts.supportClasses.LayoutBase;
import spark.utils.LabelUtil;*/
+import mx.collections.IList;
+import mx.core.IFactory;
import mx.core.mx_internal;
+import spark.components.DataGroup;
+import spark.components.SkinnableContainer;
+import spark.components.beads.SkinnableContainerView;
+
+import org.apache.royale.core.IBeadLayout;
+import org.apache.royale.core.ItemRendererClassFactory;
+
use namespace mx_internal; //ListBase and List share selection properties that are mx_internal
/**
@@ -166,7 +175,7 @@ use namespace mx_internal; //ListBase and List share selection properties that
* @productversion Royale 0.9.4
* @royalesuppresspublicvarwarning
*/
-public class ListBase extends SkinnableComponent
+public class ListBase extends SkinnableContainer
{ //extends SkinnableDataContainer implements IDataProviderEnhance
//include "../../core/Version.as";
@@ -443,6 +452,83 @@ public class ListBase extends SkinnableComponent
return _caretIndex;
}
+ //----------------------------------
+ // dataProvider copied from SkinnableDataContainer
+ //----------------------------------
+
+ /**
+ * @copy spark.components.DataGroup#dataProvider
+ *
+ * @see #itemRenderer
+ * @see #itemRendererFunction
+ * @see mx.collections.IList
+ * @see mx.collections.ArrayCollection
+ * @see mx.collections.ArrayList
+ * @see mx.collections.XMLListCollection
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10
+ * @playerversion AIR 1.5
+ * @productversion Royale 0.9.4
+ *
+ * @royaleignorecoercion spark.components.DataGroup
+ * @royaleignorecoercion spark.components.beads.SkinnableContainerView
+ */
+ [Bindable("dataProviderChanged")]
+ [Inspectable(category="Data")]
+
+ public function get dataProvider():IList
+ {
+ return ((view as SkinnableContainerView).contentView as DataGroup).dataProvider;
+ }
+
+ /**
+ * @private
+ * @royaleignorecoercion spark.components.DataGroup
+ * @royaleignorecoercion spark.components.beads.SkinnableContainerView
+ */
+ public function set dataProvider(value:IList):void
+ {
+ ((view as SkinnableContainerView).contentView as DataGroup).dataProvider = value;
+ }
+
+ //----------------------------------
+ // itemRenderer copied from SkinnableDataContainer
+ //----------------------------------
+
+ [Inspectable(category="Data")]
+
+ /**
+ * @copy spark.components.DataGroup#itemRenderer
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10
+ * @playerversion AIR 1.5
+ * @productversion Royale 0.9.4
+ *
+ * @royaleignorecoercion spark.components.DataGroup
+ * @royaleignorecoercion spark.components.beads.SkinnableContainerView
+ */
+ public function get itemRenderer():IFactory
+ {
+ return ((view as SkinnableContainerView).contentView as DataGroup).itemRenderer;
+ }
+
+ /**
+ * @private
+ * @royaleignorecoercion spark.components.DataGroup
+ * @royaleignorecoercion spark.components.beads.SkinnableContainerView
+ */
+ public function set itemRenderer(value:IFactory):void
+ {
+ ((view as SkinnableContainerView).contentView as DataGroup).itemRenderer = value;
+ // the ItemRendererFactory was already put on the DataGroup's strand and
+ // determined which factory to use so we have to set it up later here.
+ var factory:ItemRendererClassFactory = ((view as SkinnableContainerView).contentView as DataGroup).getBeadByType(ItemRendererClassFactory) as ItemRendererClassFactory;
+ factory.createFunction = factory.createFromClass;
+ factory.itemRendererFactory = value;
+ }
+
/**
* @private
*/
@@ -2071,6 +2157,40 @@ public class ListBase extends SkinnableComponent
}
} */
+
+
+ /**
+ * @private
+ * @royaleignorecoercion spark.components.DataGroup
+ * @royaleignorecoercion spark.components.beads.SkinnableContainerView
+ */
+ override public function addedToParent():void
+ {
+ if (!getBeadByType(IBeadLayout))
+ addBead(new ListBaseLayout());
+ super.addedToParent();
+ setActualSize(getExplicitOrMeasuredWidth(), getExplicitOrMeasuredHeight());
+ }
+
+ override public function setActualSize(w:Number, h:Number):void
+ {
+ super.setActualSize(w, h);
+ ((view as SkinnableContainerView).contentView as DataGroup).setActualSize(w, h);
+ }
}
}
+
+import spark.components.supportClasses.ListBase;
+import org.apache.royale.core.LayoutBase;
+
+// this disables any layouts from trying to layout the inner DataGroup.
+class ListBaseLayout extends LayoutBase
+{
+ override public function layout():Boolean
+ {
+ var list:ListBase = host as ListBase;
+ return false;
+ }
+}
+
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableComponent.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableComponent.as
index cedeafc..b7caff6 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableComponent.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableComponent.as
@@ -249,85 +249,6 @@ public class SkinnableComponent extends UIComponent
}
- //----------------------------------
- // dataProvider copied from SkinnableDataContainer
- //----------------------------------
-
- /**
- * @copy spark.components.DataGroup#dataProvider
- *
- * @see #itemRenderer
- * @see #itemRendererFunction
- * @see mx.collections.IList
- * @see mx.collections.ArrayCollection
- * @see mx.collections.ArrayList
- * @see mx.collections.XMLListCollection
- *
- * @langversion 3.0
- * @playerversion Flash 10
- * @playerversion AIR 1.5
- * @productversion Royale 0.9.4
- */
- [Bindable("dataProviderChanged")]
- [Inspectable(category="Data")]
-
- public function get dataProvider():IList
- {
- return null;
- /* return (dataGroup)
- ? dataGroup.dataProvider
- : dataGroupProperties.dataProvider; */
- }
-
- public function set dataProvider(value:IList):void
- {
- /* if (dataGroup)
- {
- dataGroup.dataProvider = value;
- dataGroupProperties = BitFlagUtil.update(dataGroupProperties as uint,
- DATA_PROVIDER_PROPERTY_FLAG, true);
- }
- else
- dataGroupProperties.dataProvider = value;
- dispatchEvent(new Event("dataProviderChanged")); */
- }
-
- //----------------------------------
- // itemRenderer copied from SkinnableDataContainer
- //----------------------------------
-
- [Inspectable(category="Data")]
-
- /**
- * @copy spark.components.DataGroup#itemRenderer
- *
- * @langversion 3.0
- * @playerversion Flash 10
- * @playerversion AIR 1.5
- * @productversion Royale 0.9.4
- */
- public function get itemRenderer():IFactory
- {
- /* return (dataGroup)
- ? dataGroup.itemRenderer
- : dataGroupProperties.itemRenderer; */ return null;
- }
-
- /**
- * @private
- */
- public function set itemRenderer(value:IFactory):void
- {
- /* if (dataGroup)
- {
- dataGroup.itemRenderer = value;
- dataGroupProperties = BitFlagUtil.update(dataGroupProperties as uint,
- ITEM_RENDERER_PROPERTY_FLAG, true);
- }
- else
- dataGroupProperties.itemRenderer = value; */
- }
-
//----------------------------------
// skin