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/05/04 17:15:49 UTC
[royale-asjs] 03/05: rename and refactor some interfaces and
implementations so it is easier to replicate hosts in other component sets
like MXRoyale
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 7ff361e8eaf14d1e8c902611cda8f6f9e016210c
Author: Alex Harui <ah...@apache.org>
AuthorDate: Fri May 4 10:12:35 2018 -0700
rename and refactor some interfaces and implementations so it is easier to replicate hosts in other component sets like MXRoyale
---
.../royale/org/apache/royale/core/ContainerBase.as | 2 +-
.../royale/core/ContainerBaseStrandChildren.as | 6 +-
.../org/apache/royale/core/DataContainerBase.as | 53 ++------
.../apache/royale/core/{IList.as => IDataGrid.as} | 22 +--
...ionModel.as => IStrandWithPresentationModel.as} | 16 ++-
.../main/royale/org/apache/royale/core/UIBase.as | 2 +-
.../royale/org/apache/royale/html/DataContainer.as | 8 +-
.../main/royale/org/apache/royale/html/DataGrid.as | 23 ++--
.../src/main/royale/org/apache/royale/html/List.as | 6 +-
.../org/apache/royale/html/beads/ContainerView.as | 27 +++-
.../apache/royale/html/beads/DataContainerView.as | 148 ++++-----------------
.../org/apache/royale/html/beads/DataGridView.as | 15 ++-
.../beads/DataItemRendererFactoryForArrayData.as | 10 +-
.../beads/DataItemRendererFactoryForArrayList.as | 11 +-
.../DynamicAddItemRendererForArrayListData.as | 10 +-
...cRemoveAllByNullItemRendererForArrayListData.as | 9 +-
...DynamicRemoveAllItemRendererForArrayListData.as | 9 +-
.../DynamicRemoveItemRendererForArrayListData.as | 9 +-
.../DynamicUpdateItemRendererForArrayListData.as | 9 +-
.../org/apache/royale/html/beads/ListView.as | 1 -
.../beads/TextItemRendererFactoryForArrayData.as | 10 +-
.../TextItemRendererFactoryForStringVectorData.as | 11 +-
.../org/apache/royale/html/beads/TreeGridView.as | 6 +-
.../royale/html/beads/VirtualDataContainerView.as | 1 -
.../VirtualDataItemRendererFactoryForArrayData.as | 37 +++++-
.../apache/royale/html/beads/VirtualListView.as | 84 +-----------
.../beads/layouts/VirtualListVerticalLayout.as | 15 ++-
.../projects/Core/src/main/royale/CoreClasses.as | 3 +-
...vate.as => IContainerBaseStrandChildrenHost.as} | 9 +-
.../apache/royale/core/IItemRendererProvider.as | 10 --
.../apache/royale/core/IStrandWithModelView.as} | 24 ++--
.../apache/royale/core/ItemRendererClassFactory.as | 2 +-
32 files changed, 245 insertions(+), 363 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBase.as
index 7703f8c..0b62964 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBase.as
@@ -65,7 +65,7 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public class ContainerBase extends GroupBase implements IStrandPrivate
+ public class ContainerBase extends GroupBase implements IContainerBaseStrandChildrenHost
{
/**
* Constructor.
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBaseStrandChildren.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBaseStrandChildren.as
index ef4f8bf..26db4b4 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBaseStrandChildren.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBaseStrandChildren.as
@@ -40,16 +40,16 @@ package org.apache.royale.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
- * @royaleignorecoercion org.apache.royale.core.IStrandPrivate
+ * @royaleignorecoercion org.apache.royale.core.IContainerBaseStrandChildrenHost
*/
public function ContainerBaseStrandChildren(owner:IParent)
{
super();
- this.owner = owner as IStrandPrivate;
+ this.owner = owner as IContainerBaseStrandChildrenHost;
}
- public var owner:IStrandPrivate;
+ public var owner:IContainerBaseStrandChildrenHost;
/**
* @private
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
index c2ee3a6..06440f2 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
@@ -24,7 +24,6 @@ package org.apache.royale.core
import org.apache.royale.events.ItemAddedEvent;
import org.apache.royale.events.ItemRemovedEvent;
import org.apache.royale.html.supportClasses.DataItemRenderer;
- import org.apache.royale.utils.loadBeadFromValuesManager;
/**
* Indicates that the initialization of the list is complete.
@@ -45,7 +44,7 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public class DataContainerBase extends ContainerBase implements IItemRendererParent, IList
+ public class DataContainerBase extends ContainerBase
{
/**
* Constructor.
@@ -78,13 +77,7 @@ package org.apache.royale.core
}
super.addedToParent();
-
- // Even though super.addedToParent dispatched "beadsAdded", DataContainer still needs its data mapper
- // and item factory beads. These beads are added after super.addedToParent is called in case substitutions
- // were made; these are just defaults extracted from CSS.
- loadBeadFromValuesManager(IDataProviderItemRendererMapper, "iDataProviderItemRendererMapper", this);
- loadBeadFromValuesManager(IItemRendererClassFactory, "iItemRendererClassFactory", this);
-
+
dispatchEvent(new Event("initComplete"));
}
@@ -100,18 +93,18 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.0
* @royaleignorecoercion org.apache.royale.html.beads.IListView
- */
public function get dataGroup():IItemRendererParent
{
// The JS-side's view.dataGroup is actually this instance of DataContainerBase
return (view as IListView).dataGroup;
}
+ */
/*
* IItemRendererProvider
*/
- private var _itemRenderer:IFactory;
+ private var _itemRenderer:IFactory = null;
/**
* The class or factory used to display each item.
@@ -129,33 +122,7 @@ package org.apache.royale.core
{
_itemRenderer = value;
}
-
- /**
- * Returns whether or not the itemRenderer property has been set.
- *
- * @see org.apache.royale.core.IItemRendererProvider
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- public function get hasItemRenderer():Boolean
- {
- var result:Boolean = false;
-
- COMPILE::SWF {
- result = _itemRenderer != null;
- }
- COMPILE::JS {
- var test:* = _itemRenderer;
- result = _itemRenderer !== null && test !== undefined;
- }
-
- return result;
- }
-
/*
* IItemRendererParent
*/
@@ -168,12 +135,12 @@ package org.apache.royale.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.8
- */
public function addItemRenderer(renderer:IItemRenderer, dispatchAdded:Boolean):void
{
addElement(renderer, dispatchAdded);
dispatchItemAdded(renderer);
}
+ */
/**
* @copy org.apache.royale.core.IItemRendererParent#addItemRendererAt()
@@ -183,7 +150,6 @@ package org.apache.royale.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9
- */
public function addItemRendererAt(renderer:IItemRenderer, index:int):void
{
addElementAt(renderer, index, true);
@@ -197,6 +163,7 @@ package org.apache.royale.core
dispatchEvent(newEvent);
}
+ */
/**
* @copy org.apache.royale.core.IItemRendererParent#removeItemRenderer()
* @private
@@ -205,7 +172,6 @@ package org.apache.royale.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.8
- */
public function removeItemRenderer(renderer:IItemRenderer):void
{
removeElement(renderer);
@@ -215,6 +181,7 @@ package org.apache.royale.core
dispatchEvent(newEvent);
}
+ */
/**
* @copy org.apache.royale.core.IItemRendererParent#removeAllItemRenderers()
@@ -224,7 +191,6 @@ package org.apache.royale.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.8
- */
public function removeAllItemRenderers():void
{
while (numElements > 0) {
@@ -232,6 +198,7 @@ package org.apache.royale.core
removeElement(child);
}
}
+ */
/**
* @copy org.apache.royale.core.IItemRendererParent#getItemRendererForIndex()
@@ -241,12 +208,12 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.8
* @royaleignorecoercion org.apache.royale.core.IItemRenderer
- */
public function getItemRendererForIndex(index:int):IItemRenderer
{
if (index < 0 || index >= numElements) return null;
return getElementAt(index) as IItemRenderer;
}
+ */
/**
* Refreshes the itemRenderers. Useful after a size change by the data group.
@@ -257,7 +224,6 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.8
* @royaleignorecoercion org.apache.royale.html.supportClasses.DataItemRenderer
- */
public function updateAllItemRenderers():void
{
var n:Number = numElements;
@@ -270,6 +236,7 @@ package org.apache.royale.core
}
}
}
+ */
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IList.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IDataGrid.as
similarity index 64%
rename from frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IList.as
rename to frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IDataGrid.as
index f25d036..ccdcd5e 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IList.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IDataGrid.as
@@ -18,12 +18,10 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.core
{
- import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IItemRendererProvider;
/**
- * The IList interface is implemented by any component that supports being
- * a "list" which means its content is generated by a factory and whose
+ * The IDataGrid interface is implemented by any component that supports being
+ * a "DataGrid" which means its content is generated by a factory and whose
* children are item renderers (IItemRenderer).
*
* @langversion 3.0
@@ -31,18 +29,10 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public interface IList extends IItemRendererProvider
+ public interface IDataGrid extends IParentIUIBase, IContainer, IStrandWithPresentationModel
{
- /**
- * Returns the component within the list (maybe even the list shell itself)
- * which will be the parent of each itemRenderer.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- function get dataGroup():IItemRendererParent;
-
+ function get model():Object;
+ function set model(value:Object):void;
+
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IListWithPresentationModel.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IStrandWithPresentationModel.as
similarity index 69%
copy from frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IListWithPresentationModel.as
copy to frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IStrandWithPresentationModel.as
index 3e24bfc..2d9be95 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IListWithPresentationModel.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IStrandWithPresentationModel.as
@@ -18,29 +18,31 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.core
{
- import org.apache.royale.core.IListPresentationModel;
+ import org.apache.royale.core.IBead;
/**
- * The IListWithPresentationModel interface is implemented by any IList
- * that supports a separate IListPresentationModel
+ * The IStrandWithPresentationModel interface is implemented by any IStrand
+ * that supports a separate bead that is a presentationModel. A presentationModel
+ * is a set of properties that act as parameters to the View as opposed to the
+ * regular model that is the data to be displayed by the view. A simple example
+ * is the rowHeight of a vertical list.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public interface IListWithPresentationModel extends IList
+ public interface IStrandWithPresentationModel
{
/**
- * Returns the component within the list (maybe even the list shell itself)
- * which will be the parent of each itemRenderer.
+ * Returns the bead that holds the properties for the presentationModel.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- function get presentationModel():IListPresentationModel;
+ function get presentationModel():IBead;
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
index fc0b96f..fc91aff 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
@@ -171,7 +171,7 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public class UIBase extends HTMLElementWrapper implements IStrandWithModel, IEventDispatcher, IParentIUIBase, IStyleableObject, ILayoutChild, IRoyaleElement
+ public class UIBase extends HTMLElementWrapper implements IStrandWithModelView, IEventDispatcher, IParentIUIBase, IStyleableObject, ILayoutChild, IRoyaleElement
{
/**
* Constructor.
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as
index 40e8d75..e8d3f9f 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as
@@ -21,6 +21,7 @@ package org.apache.royale.html
import org.apache.royale.core.DataContainerBase;
import org.apache.royale.core.ContainerBaseStrandChildren;
+ import org.apache.royale.core.IBead;
import org.apache.royale.core.IContentViewHost;
import org.apache.royale.core.IChild;
import org.apache.royale.core.IDataProviderItemRendererMapper;
@@ -29,8 +30,7 @@ package org.apache.royale.html
import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IItemRendererParent;
import org.apache.royale.core.ILayoutView;
- import org.apache.royale.core.IList;
- import org.apache.royale.core.IListWithPresentationModel;
+ import org.apache.royale.core.IStrandWithPresentationModel;
import org.apache.royale.core.IListPresentationModel;
import org.apache.royale.core.IRollOverModel;
import org.apache.royale.core.IDataProviderModel;
@@ -74,7 +74,7 @@ package org.apache.royale.html
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public class DataContainer extends DataContainerBase implements IListWithPresentationModel
+ public class DataContainer extends DataContainerBase implements IStrandWithPresentationModel
{
/**
* constructor.
@@ -143,7 +143,7 @@ package org.apache.royale.html
* @productversion Royale 0.9
* @royaleignorecoercion org.apache.royale.core.IListPresentationModel
*/
- public function get presentationModel():IListPresentationModel
+ public function get presentationModel():IBead
{
var presModel:IListPresentationModel = getBeadByType(IListPresentationModel) as IListPresentationModel;
if (presModel == null) {
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataGrid.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataGrid.as
index 7cc59e4..6075eaa 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataGrid.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataGrid.as
@@ -18,15 +18,16 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.html
{
+ import org.apache.royale.core.GroupBase;
import org.apache.royale.core.IBead;
+ import org.apache.royale.core.IChangePropagator;
+ import org.apache.royale.core.IDataGrid;
import org.apache.royale.core.IDataGridModel;
import org.apache.royale.core.IDataGridPresentationModel;
import org.apache.royale.core.UIBase;
- import org.apache.royale.core.GroupBase;
import org.apache.royale.core.ValuesManager;
- import org.apache.royale.html.beads.models.DataGridPresentationModel;
import org.apache.royale.events.Event;
- import org.apache.royale.core.IChangePropagator;
+ import org.apache.royale.html.beads.models.DataGridPresentationModel;
import org.apache.royale.utils.loadBeadFromValuesManager;
[Event(name="change", type="org.apache.royale.events.Event")]
@@ -45,7 +46,7 @@ package org.apache.royale.html
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public class DataGrid extends GroupBase
+ public class DataGrid extends GroupBase implements IDataGrid
{
/**
* constructor.
@@ -146,7 +147,7 @@ package org.apache.royale.html
* @royaleignorecoercion org.apache.royale.core.IDataGridPresentationModel
* @royaleignorecoercion org.apache.royale.core.IBead
*/
- public function get presentationModel():IDataGridPresentationModel
+ public function get presentationModel():IBead
{
if (_presentationModel == null) {
var c:Class = ValuesManager.valuesImpl.getValue(this, "iDataGridPresentationModel");
@@ -161,9 +162,9 @@ package org.apache.royale.html
/**
* @royaleignorecoercion org.apache.royale.core.IDataGridPresentationModel
*/
- public function set presentationModel(value:IDataGridPresentationModel):void
+ public function set presentationModel(value:IBead):void
{
- _presentationModel = value;
+ _presentationModel = value as IDataGridPresentationModel;
}
/**
@@ -173,14 +174,18 @@ package org.apache.royale.html
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9
+ * @royaleignorecoercion org.apache.royale.core.IDataGridPresentationModel
*/
public function get rowHeight():Number
{
- return presentationModel.rowHeight;
+ return (presentationModel as IDataGridPresentationModel).rowHeight;
}
+ /**
+ * @royaleignorecoercion org.apache.royale.core.IDataGridPresentationModel
+ */
public function set rowHeight(value:Number):void
{
- presentationModel.rowHeight = value;
+ (presentationModel as IDataGridPresentationModel).rowHeight = value;
}
override public function addedToParent():void
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/List.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/List.as
index a9e3b50..8124a28 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/List.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/List.as
@@ -18,6 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.html
{
+ import org.apache.royale.core.IListPresentationModel;
import org.apache.royale.core.IRollOverModel;
import org.apache.royale.core.ISelectionModel;
@@ -131,14 +132,15 @@ package org.apache.royale.html
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
+ * @royaleignorecoercion org.apache.royale.core.IListPresentationModel
*/
public function get rowHeight():Number
{
- return presentationModel.rowHeight;
+ return (presentationModel as IListPresentationModel).rowHeight;
}
public function set rowHeight(value:Number):void
{
- presentationModel.rowHeight = value;
+ (presentationModel as IListPresentationModel).rowHeight = value;
}
/**
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ContainerView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ContainerView.as
index f72ebd9..84c40e1 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ContainerView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ContainerView.as
@@ -23,7 +23,7 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBead;
import org.apache.royale.core.IBeadLayout;
import org.apache.royale.core.IBeadView;
- import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
+ import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
import org.apache.royale.core.IChild;
import org.apache.royale.core.IContainer;
import org.apache.royale.core.IContainerView;
@@ -37,9 +37,9 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IUIBase;
import org.apache.royale.core.IViewport;
import org.apache.royale.core.IViewportModel;
- import org.apache.royale.core.layout.EdgeData;
import org.apache.royale.core.UIBase;
import org.apache.royale.core.ValuesManager;
+ import org.apache.royale.core.layout.EdgeData;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.geom.Rectangle;
@@ -219,6 +219,29 @@ package org.apache.royale.html.beads
{
var host:ILayoutChild = this.host as ILayoutChild;
var vm:IViewportModel = viewportModel;
+ COMPILE::SWF
+ {
+ // if earlier layouts set the size of the host
+ // then it won't reflect changes in content size
+ if (host is UIBase)
+ {
+ var uiBase:UIBase = host as UIBase;
+ if (host.isWidthSizedToContent())
+ {
+ if (uiBase.width != uiBase.$width)
+ {
+ host.setWidth(uiBase.$width, true);
+ }
+ }
+ if (host.isHeightSizedToContent())
+ {
+ if (uiBase.height != uiBase.$height)
+ {
+ host.setHeight(uiBase.$height, true);
+ }
+ }
+ }
+ }
var hostWidth:Number = host.width;
var hostHeight:Number = host.height;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
index fc4ba3b..560daf1 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
@@ -24,10 +24,11 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBeadLayout;
import org.apache.royale.core.IBeadModel;
import org.apache.royale.core.IBeadView;
- import org.apache.royale.core.IDataProviderModel;
+ import org.apache.royale.core.IDataProviderItemRendererMapper;
+ import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IItemRenderer;
+ import org.apache.royale.core.IItemRendererClassFactory;
import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IList;
import org.apache.royale.core.IParent;
import org.apache.royale.core.IParentIUIBase;
import org.apache.royale.core.ISelectableItemRenderer;
@@ -42,6 +43,7 @@ package org.apache.royale.html.beads
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.html.supportClasses.Border;
import org.apache.royale.html.supportClasses.DataGroup;
+ import org.apache.royale.utils.loadBeadFromValuesManager;
/**
* The DataContainerView provides the visual elements for the DataContainer.
@@ -52,7 +54,6 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.8
*/
- COMPILE::JS
public class DataContainerView extends ContainerView implements IListView
{
public function DataContainerView()
@@ -73,9 +74,17 @@ package org.apache.royale.html.beads
_strand = value;
super.strand = value;
+ // Even though super.addedToParent dispatched "beadsAdded", DataContainer still needs its data mapper
+ // and item factory beads. These beads are added after super.addedToParent is called in case substitutions
+ // were made; these are just defaults extracted from CSS.
+ loadBeadFromValuesManager(IDataProviderItemRendererMapper, "iDataProviderItemRendererMapper", value);
+ loadBeadFromValuesManager(IItemRendererClassFactory, "iItemRendererClassFactory", value);
+
host.addEventListener("beadsAdded", beadsAddedHandler);
+ //host.addEventListener("itemsCreated", itemsCreatedHandler); in beadsAddedHandler
}
+
protected var dataModel:IDataProviderModel;
/**
@@ -95,14 +104,7 @@ package org.apache.royale.html.beads
host.addEventListener("itemsCreated", itemsCreatedHandler);
dataModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
}
-
- /**
- * @private
- */
- override protected function handleInitComplete(event:Event):void
- {
- super.handleInitComplete(event);
- }
+
/**
* @private
@@ -119,115 +121,23 @@ package org.apache.royale.html.beads
protected function dataProviderChangeHandler(event:Event):void
{
// trace("DataContainerView: dataProviderChangeHandler");
- performLayout(event);
- }
- }
-
- COMPILE::SWF
- public class DataContainerView extends ContainerView implements IListView
- {
- public function DataContainerView()
- {
- super();
- }
-
- protected var dataModel:IDataProviderModel;
-
- /**
- * @private
- */
- override public function get host():IUIBase
- {
- return _strand as IUIBase;
- }
-
- /**
- * @copy org.apache.royale.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.8
- */
- override public function set strand(value:IStrand):void
- {
- _strand = value;
- super.strand = value;
-
- host.addEventListener("beadsAdded", beadsAddedHandler);
- host.addEventListener("itemsCreated", itemsCreatedHandler);
- }
-
- override protected function completeSetup():void
- {
- super.completeSetup();
-
- // list is not interested in UI children, it wants to know when new items
- // have been added or the dataProvider has changed.
-// host.removeEventListener("childrenAdded", childrenChangedHandler);
-// host.removeEventListener("childrenAdded", performLayout);
- }
-
- protected function beadsAddedHandler(event:Event):void
- {
- dataModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
- dataModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
- }
-
- override protected function handleInitComplete(event:Event):void
- {
- super.handleInitComplete(event);
- }
-
- /**
- * The area holding the itemRenderers.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.8
- */
- public function get dataGroup():IItemRendererParent
- {
- return super.contentView as IItemRendererParent;
- }
-
- /**
- * @private
- */
- override public function get resizableView():IUIBase
- {
- return _strand as IUIBase;
- }
-
- /**
- * @private
- */
- protected function itemsCreatedHandler(event:Event):void
- {
- host.dispatchEvent(new Event("layoutNeeded"));
- }
-
- /**
- * @private
- */
- protected function dataProviderChangeHandler(event:Event):void
- {
- host.dispatchEvent(new Event("layoutNeeded"));
- }
-
+ COMPILE::JS
+ {
+ performLayout(event);
+ }
+ COMPILE::SWF
+ {
+ host.dispatchEvent(new Event("layoutNeeded"));
+ }
+ }
+
/**
- * respond to a change in size or request to re-layout everything
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9
+ * @private
*/
- override protected function resizeHandler(event:Event):void
- {
- // might need to do something here, not sure yet.
- super.resizeHandler(event);
- }
+ COMPILE::SWF
+ override public function get resizableView():IUIBase
+ {
+ return _strand as IUIBase;
+ }
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
index fe14fc3..462159c 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
@@ -22,6 +22,7 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBeadModel;
import org.apache.royale.core.IBeadView;
import org.apache.royale.core.IChild;
+ import org.apache.royale.core.IDataGrid;
import org.apache.royale.core.IDataGridModel;
import org.apache.royale.core.IDataGridPresentationModel;
import org.apache.royale.core.IUIBase;
@@ -29,7 +30,6 @@ package org.apache.royale.html.beads
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.html.Container;
- import org.apache.royale.html.DataGrid;
import org.apache.royale.html.DataGridButtonBar;
import org.apache.royale.html.beads.layouts.ButtonBarLayout;
import org.apache.royale.html.supportClasses.DataGridColumnList;
@@ -108,7 +108,7 @@ package org.apache.royale.html.beads
*/
override protected function handleInitComplete(event:Event):void
{
- var host:DataGrid = _strand as DataGrid;
+ var host:IDataGrid = _strand as IDataGrid;
// see if there is a presentation model already in place. if not, add one.
var sharedModel:IDataGridModel = host.model as IDataGridModel;
@@ -131,9 +131,9 @@ package org.apache.royale.html.beads
var bblayout:ButtonBarLayout = new ButtonBarLayout();
_header.addBead(bblayout as IBead);
_header.addBead(new Viewport() as IBead);
- host.addElement(_header as IChild);
+ host.strandChildren.addElement(_header as IChild);
- host.addElement(_listArea as IChild);
+ host.strandChildren.addElement(_listArea as IChild);
handleDataProviderChanged(event);
@@ -204,12 +204,13 @@ package org.apache.royale.html.beads
* @royaleignorecoercion org.apache.royale.core.IDataGridModel
* @royaleignorecoercion org.apache.royale.core.IBead
* @royaleignorecoercion org.apache.royale.core.IChild
- * @royaleignorecoercion org.apache.royale.html.DataGrid
+ * @royaleignorecoercion org.apache.royale.core.IDataGrid
+ * @royaleignorecoercion org.apache.royale.core.IDataGridPresentationModel
* @royaleignorecoercion org.apache.royale.html.supportClasses.IDataGridColumn
*/
private function createLists():void
{
- var host:DataGrid = _strand as DataGrid;
+ var host:IDataGrid = _strand as IDataGrid;
// get the name of the class to use for the columns
var columnClassName:String = ValuesManager.valuesImpl.getValue(host, "columnClassName") as String;
@@ -218,7 +219,7 @@ package org.apache.royale.html.beads
}
var sharedModel:IDataGridModel = host.model as IDataGridModel;
- var presentationModel:IDataGridPresentationModel = host.presentationModel;
+ var presentationModel:IDataGridPresentationModel = host.presentationModel as IDataGridPresentationModel;
_lists = [];
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayData.as
index dc1f1c4..90ce86c 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayData.as
@@ -26,6 +26,7 @@ package org.apache.royale.html.beads
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.core.IUIBase;
import org.apache.royale.core.SimpleCSSStyles;
import org.apache.royale.core.UIBase;
@@ -36,7 +37,7 @@ package org.apache.royale.html.beads
import org.apache.royale.events.ItemRendererEvent;
import org.apache.royale.html.List;
- import org.apache.royale.core.IList;
+ import org.apache.royale.html.beads.IListView;
import org.apache.royale.core.IChild;
import org.apache.royale.core.ILayoutHost;
import org.apache.royale.core.IParentIUIBase;
@@ -158,7 +159,8 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.8
* @royaleignorecoercion Array
- * @royaleignorecoercion org.apache.royale.core.IList
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
* @royaleignorecoercion org.apache.royale.core.IListPresentationModel
* @royaleignorecoercion org.apache.royale.core.UIBase
* @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
@@ -171,8 +173,8 @@ package org.apache.royale.html.beads
if (!dp)
return;
- var list:IList = _strand as IList;
- var dataGroup:IItemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ var dataGroup:IItemRendererParent = view.dataGroup;
dataGroup.removeAllItemRenderers();
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayList.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayList.as
index a24ede7..02e6cd0 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayList.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayList.as
@@ -27,6 +27,7 @@ package org.apache.royale.html.beads
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.core.SimpleCSSStyles;
import org.apache.royale.core.UIBase;
import org.apache.royale.events.Event;
@@ -36,7 +37,7 @@ package org.apache.royale.html.beads
import org.apache.royale.html.supportClasses.DataItemRenderer;
import org.apache.royale.utils.loadBeadFromValuesManager;
- import org.apache.royale.core.IList;
+ import org.apache.royale.html.beads.IListView;
[Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
@@ -146,7 +147,9 @@ package org.apache.royale.html.beads
}
/**
- * @private
+ * @private
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
*/
protected function dataProviderChangeHandler(event:Event):void
{
@@ -154,8 +157,8 @@ package org.apache.royale.html.beads
if (!dp)
return;
- var list:IList = _strand as IList;
- var dataGroup:IItemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ var dataGroup:IItemRendererParent = view.dataGroup;
dataGroup.removeAllItemRenderers();
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicAddItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicAddItemRendererForArrayListData.as
index e8f5ed4..da86642 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicAddItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicAddItemRendererForArrayListData.as
@@ -22,16 +22,18 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IItemRendererClassFactory;
import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IList;
+ import org.apache.royale.core.IItemRendererProvider;
import org.apache.royale.core.IListPresentationModel;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.core.SimpleCSSStyles;
import org.apache.royale.core.UIBase;
import org.apache.royale.events.CollectionEvent;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
+ import org.apache.royale.html.beads.IListView;
import org.apache.royale.utils.loadBeadFromValuesManager;
/**
@@ -165,12 +167,14 @@ package org.apache.royale.html.beads
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
*/
public function get itemRendererParent():IItemRendererParent
{
if (_itemRendererParent == null) {
- var list:IList = _strand as IList;
- _itemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ _itemRendererParent = view.dataGroup;
}
return _itemRendererParent;
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllByNullItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllByNullItemRendererForArrayListData.as
index 8215562..ab64441 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllByNullItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllByNullItemRendererForArrayListData.as
@@ -21,12 +21,13 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBead;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IList;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.events.CollectionEvent;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
+ import org.apache.royale.html.beads.IListView;
/**
* Handles the removal of all itemRenderers once data source is being set to null.
@@ -135,12 +136,14 @@ package org.apache.royale.html.beads
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
*/
public function get itemRendererParent():IItemRendererParent
{
if (_itemRendererParent == null) {
- var list:IList = _strand as IList;
- _itemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ _itemRendererParent = view.dataGroup;
}
return _itemRendererParent;
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as
index 558cf0a..c78805c 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as
@@ -21,12 +21,13 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBead;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IList;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.events.CollectionEvent;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
+ import org.apache.royale.html.beads.IListView;
/**
* Handles the removal of all itemRenderers once the all items has been removed
@@ -149,12 +150,14 @@ package org.apache.royale.html.beads
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
*/
public function get itemRendererParent():IItemRendererParent
{
if (_itemRendererParent == null) {
- var list:IList = _strand as IList;
- _itemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ _itemRendererParent = view.dataGroup;
}
return _itemRendererParent;
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as
index e3f1a00..d0bee21 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as
@@ -21,14 +21,15 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBead;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IList;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.core.UIBase;
import org.apache.royale.events.CollectionEvent;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
+ import org.apache.royale.html.beads.IListView;
/**
* Handles the removal of an itemRenderer once the corresponding datum has been removed
@@ -155,12 +156,14 @@ package org.apache.royale.html.beads
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
*/
public function get itemRendererParent():IItemRendererParent
{
if (_itemRendererParent == null) {
- var list:IList = _strand as IList;
- _itemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ _itemRendererParent = view.dataGroup;
}
return _itemRendererParent;
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicUpdateItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicUpdateItemRendererForArrayListData.as
index d939f9f..7661058 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicUpdateItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicUpdateItemRendererForArrayListData.as
@@ -21,13 +21,14 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBead;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IList;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.events.CollectionEvent;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
+ import org.apache.royale.html.beads.IListView;
/**
* Handles the update of an itemRenderer once the corresponding datum has been updated
@@ -150,12 +151,14 @@ package org.apache.royale.html.beads
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
*/
public function get itemRendererParent():IItemRendererParent
{
if (_itemRendererParent == null) {
- var list:IList = _strand as IList;
- _itemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ _itemRendererParent = view.dataGroup;
}
return _itemRendererParent;
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
index e0d103d..8ff7ad2 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
@@ -24,7 +24,6 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBeadLayout;
import org.apache.royale.core.IBeadModel;
import org.apache.royale.core.IBeadView;
- import org.apache.royale.core.IList;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IItemRendererParent;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as
index 1e3536d..606708d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as
@@ -19,17 +19,18 @@
package org.apache.royale.html.beads
{
import org.apache.royale.core.IBead;
- import org.apache.royale.core.IList;
import org.apache.royale.core.IDataProviderItemRendererMapper;
import org.apache.royale.core.IItemRendererClassFactory;
import org.apache.royale.core.IItemRendererParent;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.core.ValuesManager;
import org.apache.royale.events.Event;
import org.apache.royale.events.EventDispatcher;
import org.apache.royale.events.ItemRendererEvent;
import org.apache.royale.events.IEventDispatcher;
+ import org.apache.royale.html.beads.IListView;
import org.apache.royale.utils.loadBeadFromValuesManager;
[Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
@@ -137,7 +138,8 @@ package org.apache.royale.html.beads
* @royaleignorecoercion Array
* @royaleignorecoercion org.apache.royale.html.beads.ITextItemRenderer
* @royaleignorecoercion org.apache.royale.events.IEventDispatcher
- * @royaleignorecoercion org.apache.royale.core.IList
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
*/
private function dataProviderChangeHandler(event:Event):void
{
@@ -145,8 +147,8 @@ package org.apache.royale.html.beads
if (!dp)
return;
- var list:IList = _strand as IList;
- var dataGroup:IItemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ var dataGroup:IItemRendererParent = view.dataGroup;
dataGroup.removeAllItemRenderers();
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForStringVectorData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForStringVectorData.as
index eceb5f3..7363e3d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForStringVectorData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForStringVectorData.as
@@ -22,14 +22,15 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBead;
import org.apache.royale.core.IItemRendererClassFactory;
import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IList;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.core.ValuesManager;
import org.apache.royale.events.Event;
import org.apache.royale.events.EventDispatcher;
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.events.ItemRendererEvent;
+ import org.apache.royale.html.beads.IListView;
import org.apache.royale.utils.loadBeadFromValuesManager;
[Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
@@ -131,12 +132,16 @@ package org.apache.royale.html.beads
*/
protected var dataGroup:IItemRendererParent;
+ /**
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.core.IListView
+ */
private function dataProviderChangeHandler(event:Event):void
{
var dp:Vector.<String> = selectionModel.dataProvider as Vector.<String>;
- var list:IList = _strand as IList;
- var dataGroup:IItemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ var dataGroup:IItemRendererParent = view.dataGroup;
dataGroup.removeAllItemRenderers();
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
index 7905fc3..757d04b 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
@@ -136,13 +136,14 @@ package org.apache.royale.html.beads
/**
* @private
+ * @royaleignorecoercion org.apache.royale.core.IDataGridPresentationModel
*/
protected function finishSetup(event:Event):void
{
var host:TreeGrid = _strand as TreeGrid;
// see if there is a presentation model already in place. if not, add one.
- var presentationModel:IDataGridPresentationModel = host.presentationModel;
+ var presentationModel:IDataGridPresentationModel = host.presentationModel as IDataGridPresentationModel;
var sharedModel:IDataGridModel = host.model as IDataGridModel;
IEventDispatcher(sharedModel).addEventListener("dataProviderChanged",handleDataProviderChanged);
IEventDispatcher(sharedModel).addEventListener("selectedIndexChanged", handleSelectedIndexChanged);
@@ -248,6 +249,7 @@ package org.apache.royale.html.beads
/**
* @private
+ * @royaleignorecoercion org.apache.royale.core.IDataGridPresentationModel
*/
private function createColumns():void
{
@@ -259,7 +261,7 @@ package org.apache.royale.html.beads
columnClassName = "TreeGridColumn";
}
- var presentationModel:IDataGridPresentationModel = host.presentationModel;
+ var presentationModel:IDataGridPresentationModel = host.presentationModel as IDataGridPresentationModel;
var sharedModel:IDataGridModel = host.model as IDataGridModel;
_lists = new Array();
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataContainerView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataContainerView.as
index 86905b8..0cb7bed 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataContainerView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataContainerView.as
@@ -27,7 +27,6 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IList;
import org.apache.royale.core.IParent;
import org.apache.royale.core.IParentIUIBase;
import org.apache.royale.core.ISelectableItemRenderer;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
index e78e67f..3aeaa44 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
@@ -25,11 +25,11 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IItemRendererClassFactory;
import org.apache.royale.core.IItemRendererParent;
import org.apache.royale.core.ILayoutHost;
- import org.apache.royale.core.IList;
import org.apache.royale.core.IListPresentationModel;
import org.apache.royale.core.IParentIUIBase;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.core.IUIBase;
import org.apache.royale.core.SimpleCSSStyles;
import org.apache.royale.core.UIBase;
@@ -39,6 +39,7 @@ package org.apache.royale.html.beads
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.events.ItemRendererEvent;
import org.apache.royale.html.List;
+ import org.apache.royale.html.beads.IListView;
import org.apache.royale.html.supportClasses.DataItemRenderer;
import org.apache.royale.utils.loadBeadFromValuesManager;
@@ -151,6 +152,8 @@ package org.apache.royale.html.beads
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
*/
protected function dataProviderChangeHandler(event:Event):void
{
@@ -158,23 +161,43 @@ package org.apache.royale.html.beads
if (!dp)
return;
- var list:IList = _strand as IList;
- var dataGroup:IItemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ var dataGroup:IItemRendererParent = view.dataGroup;
dataGroup.removeAllItemRenderers();
}
+ /**
+ * Free an item renderer for a given index.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.0
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
+ */
public function freeItemRendererForIndex(index:int):void
{
var ir:ISelectableItemRenderer = rendererMap[index];
- var list:IList = _strand as IList;
- var dataGroup:IItemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ var dataGroup:IItemRendererParent = view.dataGroup;
dataGroup.removeItemRenderer(ir);
delete rendererMap[index];
}
private var rendererMap:Object = {};
+ /**
+ * Get an item renderer for a given index.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.0
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
+ */
public function getItemRendererForIndex(index:int, elementIndex:int):ISelectableItemRenderer
{
var ir:ISelectableItemRenderer = rendererMap[index];
@@ -185,8 +208,8 @@ package org.apache.royale.html.beads
ir = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer;
var dataItemRenderer:DataItemRenderer = ir as DataItemRenderer;
- var list:IList = _strand as IList;
- var dataGroup:IItemRendererParent = list.dataGroup;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ var dataGroup:IItemRendererParent = view.dataGroup;
dataGroup.addItemRendererAt(ir, elementIndex);
ir.index = index;
ir.labelField = labelField;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
index b689c2a..fcf2dbb 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
@@ -24,9 +24,6 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBeadLayout;
import org.apache.royale.core.IBeadModel;
import org.apache.royale.core.IBeadView;
- import org.apache.royale.core.IList;
- import org.apache.royale.core.IListPresentationModel;
- import org.apache.royale.core.IListWithPresentationModel;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IItemRendererParent;
@@ -59,8 +56,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- COMPILE::JS
- public class VirtualListView extends VirtualDataContainerView
+ public class VirtualListView extends DataContainerView // was VirtualDataContainerView
{
public function VirtualListView()
{
@@ -116,88 +112,22 @@ package org.apache.royale.html.beads
ir.hovered = true;
lastRollOverIndex = (listModel as IRollOverModel).rollOverIndex;
}
- }
-
- COMPILE::SWF
- public class VirtualListView extends VirtualDataContainerView
- {
- public function VirtualListView()
- {
- super();
- }
-
- protected var listModel:ISelectionModel;
-
- /**
- * @copy org.apache.royale.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- override public function set strand(value:IStrand):void
- {
- _strand = value;
- super.strand = value;
- }
-
- /**
- * @private
- */
- override protected function handleInitComplete(event:Event):void
- {
- super.handleInitComplete(event);
-
- listModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
- listModel.addEventListener("selectedIndexChanged", selectionChangeHandler);
- listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler);
- }
-
- protected var lastSelectedIndex:int = -1;
-
- /**
- * @private
- */
- protected function selectionChangeHandler(event:Event):void
- {
- var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastSelectedIndex) as ISelectableItemRenderer;
- if (ir)
- ir.selected = false;
- ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as ISelectableItemRenderer;
- if (ir)
- ir.selected = true;
- lastSelectedIndex = listModel.selectedIndex;
- }
-
- protected var lastRollOverIndex:int = -1;
-
- /**
- * @private
- */
- protected function rollOverIndexChangeHandler(event:Event):void
- {
- var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
- if(ir)
- ir.hovered = false;
- ir = dataGroup.getItemRendererForIndex(IRollOverModel(listModel).rollOverIndex) as ISelectableItemRenderer;
- if(ir)
- ir.hovered = true;
-
- lastRollOverIndex = IRollOverModel(listModel).rollOverIndex;
- }
-
+
+ COMPILE::SWF
override protected function calculateContentSize():Size
{
return _lastContentSize;
}
+ COMPILE::SWF
private var _lastContentSize:Size;
+ COMPILE::SWF
public function set lastContentSize(value:Size):void
{
_lastContentSize = value;
}
+
- }
+ }
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as
index 4ab3896..f62ae94 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as
@@ -20,7 +20,7 @@ package org.apache.royale.html.beads.layouts
{
import org.apache.royale.core.IBeadLayout;
import org.apache.royale.core.IBeadModel;
- import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
+ import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IDataProviderVirtualItemRendererMapper;
import org.apache.royale.core.ILayoutChild;
@@ -28,15 +28,15 @@ package org.apache.royale.html.beads.layouts
import org.apache.royale.core.ILayoutParent;
import org.apache.royale.core.ILayoutView;
import org.apache.royale.core.IListPresentationModel;
- import org.apache.royale.core.IListWithPresentationModel;
import org.apache.royale.core.IParentIUIBase;
- import org.apache.royale.core.IScrollingViewport;
+ import org.apache.royale.core.IScrollingViewport;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithPresentationModel;
import org.apache.royale.core.IUIBase;
- import org.apache.royale.core.layout.EdgeData;
import org.apache.royale.core.LayoutBase;
import org.apache.royale.core.ValuesManager;
+ import org.apache.royale.core.layout.EdgeData;
COMPILE::JS
{
import org.apache.royale.core.WrappedHTMLElement;
@@ -46,6 +46,7 @@ package org.apache.royale.html.beads.layouts
import org.apache.royale.geom.Rectangle;
import org.apache.royale.html.beads.VirtualListView;
import org.apache.royale.utils.CSSUtils;
+
COMPILE::SWF {
import org.apache.royale.geom.Size;
}
@@ -113,6 +114,8 @@ package org.apache.royale.html.beads.layouts
* @productversion Royale 0.0
* @royaleignorecoercion org.apache.royale.core.ILayoutHost
* @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+ * @royaleignorecoercion org.apache.royale.core.IListPresentationModel
+ * @royaleignorecoercion org.apache.royale.core.IStrandWithPresentationModel
*/
override public function layout():Boolean
{
@@ -131,7 +134,7 @@ package org.apache.royale.html.beads.layouts
var maxWidth:Number = 0;
var maxHeight:Number = 0;
var dp:Array = dataProviderModel.dataProvider as Array;
- var presentationModel:IListPresentationModel = (host as IListWithPresentationModel).presentationModel;
+ var presentationModel:IListPresentationModel = (host as IStrandWithPresentationModel).presentationModel as IListPresentationModel;
var hostWidthSizedToContent:Boolean = host.isWidthSizedToContent();
var hostHeightSizedToContent:Boolean = host.isHeightSizedToContent();
var hostWidth:Number = host.width;
@@ -251,7 +254,7 @@ package org.apache.royale.html.beads.layouts
// going off-screen
var contentView:ILayoutView = layoutView;
var dp:Array = dataProviderModel.dataProvider as Array;
- var presentationModel:IListPresentationModel = (host as IListWithPresentationModel).presentationModel;
+ var presentationModel:IListPresentationModel = (host as IStrandWithPresentationModel).presentationModel as IListPresentationModel;
var totalHeight:Number = presentationModel.rowHeight * dp.length;
var viewportTop:Number = Math.max(contentView.element.scrollTop, 0);
var viewportHeight:Number = contentView.element.clientHeight;
diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as b/frameworks/projects/Core/src/main/royale/CoreClasses.as
index a1061dd..6f25cd2 100644
--- a/frameworks/projects/Core/src/main/royale/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as
@@ -103,8 +103,9 @@ internal class CoreClasses
import org.apache.royale.core.ISelectable; ISelectable;
import org.apache.royale.core.ISelectionModel; ISelectionModel;
import org.apache.royale.core.IStrand; IStrand;
- import org.apache.royale.core.IStrandPrivate; IStrandPrivate;
+ import org.apache.royale.core.IContainerBaseStrandChildrenHost; IContainerBaseStrandChildrenHost;
import org.apache.royale.core.IStrandWithModel; IStrandWithModel;
+ import org.apache.royale.core.IStrandWithModelView; IStrandWithModelView;
import org.apache.royale.core.ITextModel; ITextModel;
import org.apache.royale.core.ITitleBarModel; ITitleBarModel;
import org.apache.royale.core.IToggleButtonModel; IToggleButtonModel;
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IStrandPrivate.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IContainerBaseStrandChildrenHost.as
similarity index 80%
rename from frameworks/projects/Core/src/main/royale/org/apache/royale/core/IStrandPrivate.as
rename to frameworks/projects/Core/src/main/royale/org/apache/royale/core/IContainerBaseStrandChildrenHost.as
index 21cb3d7..9fc29bf 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IStrandPrivate.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IContainerBaseStrandChildrenHost.as
@@ -19,15 +19,18 @@
package org.apache.royale.core
{
/**
- * The IStrandPrivate interface is implemented by components that permit
- * access to their direct children.
+ * The IContainerBaseStrandChildrenHost interface is implemented by
+ * components that use a ContainerBaseStrandChildren to proxy
+ * addElement/removeElement calls to an internal child and
+ * has the following APIs so the View can set up the "chrome" around
+ * the internal child.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.8
*/
- public interface IStrandPrivate
+ public interface IContainerBaseStrandChildrenHost
{
function $numElements():int;
function $addElement(c:IChild, dispatchEvent:Boolean = true):void;
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererProvider.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererProvider.as
index 2e0384d..6ec6a0a 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererProvider.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererProvider.as
@@ -33,16 +33,6 @@ package org.apache.royale.core
*/
public interface IItemRendererProvider
{
- /**
- * Returns whether or not the class has an itemRenderer set.
- * @return true if the itemRenderer has been set, false otherwise.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- function get hasItemRenderer():Boolean;
/**
* Returns the class factory that will generate instances of the itemRenderer.
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IListWithPresentationModel.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IStrandWithModelView.as
similarity index 62%
rename from frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IListWithPresentationModel.as
rename to frameworks/projects/Core/src/main/royale/org/apache/royale/core/IStrandWithModelView.as
index 3e24bfc..a2dc035 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IListWithPresentationModel.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IStrandWithModelView.as
@@ -18,29 +18,33 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.core
{
- import org.apache.royale.core.IListPresentationModel;
-
/**
- * The IListWithPresentationModel interface is implemented by any IList
- * that supports a separate IListPresentationModel
+ * The IStrandWithModelView interface is the basic interface for a host component for
+ * a set of plug-ins known as Beads where two of the plugins are a model and a view.
+ * In Royale, the recommended pattern is to break out optional functionality
+ * into small plug-ins that can be re-used in other components, or replaced with
+ * different implementations optimized for different things such as size,
+ * performance, advanced features, debugging, etc.
*
+ * Beads are added to and removed from a Strand and can find and coordinate with
+ * other beads on the strand.
+ *
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public interface IListWithPresentationModel extends IList
+ public interface IStrandWithModelView extends IStrandWithModel
{
/**
- * Returns the component within the list (maybe even the list shell itself)
- * which will be the parent of each itemRenderer.
- *
+ * Each Strand has an view object.
+ *
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- function get presentationModel():IListPresentationModel;
-
+ function get view():IBeadView;
+
}
}
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererClassFactory.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererClassFactory.as
index 1d44130..6031bc9 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererClassFactory.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererClassFactory.as
@@ -71,7 +71,7 @@ package org.apache.royale.core
{
_strand = value;
- if (_strand is IItemRendererProvider && (_strand as IItemRendererProvider).hasItemRenderer) {
+ if (_strand is IItemRendererProvider && (_strand as IItemRendererProvider).itemRenderer) {
itemRendererFactory = (_strand as IItemRendererProvider).itemRenderer;
createFunction = createFromClass;
}
--
To stop receiving notification emails like this one, please contact
aharui@apache.org.