You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2020/07/24 14:45:00 UTC
[royale-asjs] branch feature/dataprovider-extensiblity updated:
more refactor for extensibility
This is an automated email from the ASF dual-hosted git repository.
carlosrovira pushed a commit to branch feature/dataprovider-extensiblity
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/feature/dataprovider-extensiblity by this push:
new 52575c0 more refactor for extensibility
52575c0 is described below
commit 52575c03224b66f2c5a4722c3b4dddb7a799b5a7
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Fri Jul 24 16:44:47 2020 +0200
more refactor for extensibility
---
.../html/beads/DataItemRendererFactoryBase.as | 25 ++++++++--
.../DataItemRendererFactoryForCollectionView.as | 23 ++-------
.../TableItemRendererFactoryForCollectionView.as | 54 +++++++++++-----------
3 files changed, 53 insertions(+), 49 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
index 2f8cbd8..d3e430c 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
@@ -51,6 +51,12 @@ package org.apache.royale.html.beads
super(target);
}
+ protected function get dataGroup():IItemRendererOwnerView
+ {
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ return view.dataGroup;
+ }
+
/**
* This Factory deletes all renderers, and generates a renderer
* for every data provider item.
@@ -65,13 +71,10 @@ package org.apache.royale.html.beads
* @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView
*/
override protected function dataProviderChangeHandler(event:Event):void
- {
- var view:IListView = (_strand as IStrandWithModelView).view as IListView;
- var dataGroup:IItemRendererOwnerView = view.dataGroup;
-
+ {
removeAllItemRenderers(dataGroup);
- if (!dataProviderModel.dataProvider)
+ if(!dataProviderExist)
return;
createAllItemRenderers(dataGroup);
@@ -80,6 +83,18 @@ package org.apache.royale.html.beads
}
/**
+ * check if model and dataprovider exists. This check is done through all methods
+ * @private
+ */
+ protected function get dataProviderExist():Boolean
+ {
+ if (!dataProviderModel || !dataProviderModel.dataProvider)
+ return false;
+
+ return true;
+ }
+
+ /**
* create all item renderers
*
* @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
index 01f3156..5d60d38 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
@@ -52,20 +52,19 @@ package org.apache.royale.html.beads
*/
override protected function dataProviderChangeHandler(event:Event):void
{
- if (!dataProviderModel)
- return;
-
super.dataProviderChangeHandler(event);
- if (!dataProviderModel.dataProvider)
- return;
-
if(dped)
{
dped.removeEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
dped.removeEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
dped.removeEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
+ dped = null;
}
+
+ if (!dataProviderModel.dataProvider)
+ return;
+
// listen for individual items being added in the future.
dped = dataProviderModel.dataProvider as IEventDispatcher;
dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
@@ -74,18 +73,6 @@ package org.apache.royale.html.beads
}
/**
- * check if model and dataprovider exists. This check is done through all methods
- * @private
- */
- private function get dataProviderExist():Boolean
- {
- if (!dataProviderModel || !dataProviderModel.dataProvider)
- return false;
-
- return true;
- }
-
- /**
* @private
* @royaleignorecoercion org.apache.royale.collections.ICollectionView
* @royaleignorecoercion org.apache.royale.core.IListPresentationModel
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
index efa3510..c7efcfa 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
@@ -23,10 +23,10 @@ package org.apache.royale.jewel.beads.itemRenderers
import org.apache.royale.core.IIndexedItemRendererInitializer;
import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.IParent;
+ import org.apache.royale.core.IStrandWithModelView;
import org.apache.royale.core.UIBase;
import org.apache.royale.events.Event;
import org.apache.royale.html.beads.DataItemRendererFactoryBase;
- import org.apache.royale.html.beads.IListView;
import org.apache.royale.html.supportClasses.StyledDataItemRenderer;
import org.apache.royale.jewel.Label;
import org.apache.royale.jewel.Table;
@@ -35,7 +35,6 @@ package org.apache.royale.jewel.beads.itemRenderers
import org.apache.royale.jewel.beads.views.TableView;
import org.apache.royale.jewel.itemRenderers.TableItemRenderer;
import org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
- import org.apache.royale.jewel.supportClasses.table.TBodyContentArea;
import org.apache.royale.jewel.supportClasses.table.THead;
import org.apache.royale.jewel.supportClasses.table.TableColumn;
import org.apache.royale.jewel.supportClasses.table.TableHeaderCell;
@@ -53,13 +52,24 @@ package org.apache.royale.jewel.beads.itemRenderers
super(target);
}
- protected var labelField:String;
+ private var table:Table;
+ private var view:TableView;
- protected var view:TableView;
- protected var model:TableModel;
- protected var table:Table;
+ override protected function finishSetup(event:Event):void
+ {
+ super.finishSetup(event);
+ table = _strand as Table;
+ }
- private var tbody:TBodyContentArea;
+ override protected function get dataGroup():IItemRendererOwnerView {
+ if(!view)
+ view = (_strand as IStrandWithModelView).view as TableView;
+ return view.dataGroup;
+ }
+
+ protected function get model():TableModel {
+ return dataProviderModel as TableModel;
+ }
/**
* @private
@@ -70,11 +80,6 @@ package org.apache.royale.jewel.beads.itemRenderers
*/
override protected function dataProviderChangeHandler(event:Event):void
{
- view = _strand.getBeadByType(IListView) as TableView;
- tbody = view.dataGroup as TBodyContentArea;
- table = _strand as Table;
- model = dataProviderModel as TableModel;
-
// -- 1) CLEANING PHASE
if (!model)
return;
@@ -85,7 +90,7 @@ package org.apache.royale.jewel.beads.itemRenderers
model.selectedItemProperty = null;
// TBodyContentArea - remove data items
- removeAllItemRenderers(tbody);
+ removeAllItemRenderers(dataGroup);
return;
}
// remove this and better add beads when needed
@@ -96,22 +101,17 @@ package org.apache.royale.jewel.beads.itemRenderers
// dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
// TBodyContentArea - remove data items
- removeAllItemRenderers(tbody);
+ removeAllItemRenderers(dataGroup);
// THEAD - remove header items
removeElements(view.thead);
if(!model.columns)
return;
-
- // -- add the header
- createHeader();
-
- // -- 2) CREATION PHASE
- createAllItemRenderers(tbody);
+
+ createAllItemRenderers(dataGroup);
dispatchItemCreatedEvent();
- // table.dispatchEvent(new Event("layoutNeeded"));
}
/**
@@ -122,8 +122,11 @@ package org.apache.royale.jewel.beads.itemRenderers
*/
override protected function createAllItemRenderers(dataGroup:IItemRendererOwnerView):void
{
+ // -- add the header
+ createHeader();
+
+ // -- 2) CREATION PHASE
var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
- labelField = model.labelField;
var column:TableColumn;
var ir:TableItemRenderer;
@@ -144,17 +147,16 @@ package org.apache.royale.jewel.beads.itemRenderers
ir = itemRendererFactory.createItemRenderer() as TableItemRenderer;
}
- labelField = column.dataField;
- var data:Object = model.dataProvider.getItemAt(i);
+ var data:Object = model.dataProvider.getItemAt(i);
- (ir as StyledDataItemRenderer).dataField = labelField;
+ (ir as StyledDataItemRenderer).dataField = column.dataField;
(ir as StyledDataItemRenderer).rowIndex = i;
(ir as StyledDataItemRenderer).columnIndex = j;
(itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, index);
dataGroup.addItemRendererAt(ir, index);
- ir.labelField = labelField;
+ ir.labelField = column.dataField;
if (presentationModel) {
UIBase(ir).height = presentationModel.rowHeight;