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 2018/09/05 18:23:43 UTC

[royale-asjs] branch feature/new_merge updated: fix table add/remove/update and refactor names to something more close to use case

This is an automated email from the ASF dual-hosted git repository.

carlosrovira pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/feature/new_merge by this push:
     new 54e04a5  fix table add/remove/update and refactor names to something more close to use case
54e04a5 is described below

commit 54e04a5748874cb1f7615cda31fca1df1d797bc3
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Wed Sep 5 20:23:38 2018 +0200

    fix table add/remove/update and refactor names to something more close to use case
---
 .../src/main/royale/TablePlayGround.mxml           |  6 +++---
 .../Jewel/src/main/resources/jewel-manifest.xml    |  6 +++---
 ...yListData.as => AddTableRowForArrayListData.as} | 23 ++++++++--------------
 .../RemoveAllItemRendererForArrayListData.as       |  5 +++--
 ...stData.as => RemoveTableRowForArrayListData.as} | 21 ++++++++------------
 .../UpdateListItemRendererForArrayListData.as      |  5 +++--
 ...stData.as => UpdateTableRowForArrayListData.as} |  9 ++++++---
 .../jewel/supportClasses/table/TBodyContentArea.as | 10 +++++++++-
 8 files changed, 43 insertions(+), 42 deletions(-)

diff --git a/examples/royale/JewelExample/src/main/royale/TablePlayGround.mxml b/examples/royale/JewelExample/src/main/royale/TablePlayGround.mxml
index 619a623..617511d 100644
--- a/examples/royale/JewelExample/src/main/royale/TablePlayGround.mxml
+++ b/examples/royale/JewelExample/src/main/royale/TablePlayGround.mxml
@@ -191,9 +191,9 @@ limitations under the License.
 							<j:TableColumn dataField="album" label="Album" align="center" columnLabelAlign="center"/>
 							<j:TableColumn dataField="year" label="Release Year" align="right" columnLabelAlign="right"/>
 							<j:beads>
-								<j:AddTableItemRendererForArrayListData/>
-								<j:RemoveTableItemRendererForArrayListData/>
-								<j:UpdateTableItemRendererForArrayListData/>
+								<j:AddTableRowForArrayListData/>
+								<j:RemoveTableRowForArrayListData/>
+								<j:UpdateTableRowForArrayListData/>
 								<j:RemoveAllItemRendererForArrayListData/>
 							</j:beads>
 						</j:Table>
diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
index 493dcee..e01b5a7 100644
--- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
+++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
@@ -139,9 +139,9 @@
     <component id="RemoveListItemRendererForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.RemoveListItemRendererForArrayListData" />
     <component id="UpdateListItemRendererForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.UpdateListItemRendererForArrayListData" />
     
-    <component id="AddTableItemRendererForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.AddTableItemRendererForArrayListData" />
-    <component id="RemoveTableItemRendererForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.RemoveTableItemRendererForArrayListData" />
-    <component id="UpdateTableItemRendererForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.UpdateTableItemRendererForArrayListData" />
+    <component id="AddTableRowForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.AddTableRowForArrayListData" />
+    <component id="RemoveTableRowForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.RemoveTableRowForArrayListData" />
+    <component id="UpdateTableRowForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.UpdateTableRowForArrayListData" />
     
     <component id="RemoveAllItemRendererForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.RemoveAllItemRendererForArrayListData" />
     
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddTableItemRendererForArrayListData.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddTableRowForArrayListData.as
similarity index 92%
rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddTableItemRendererForArrayListData.as
rename to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddTableRowForArrayListData.as
index 3b42e67..d02d122 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddTableItemRendererForArrayListData.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddTableRowForArrayListData.as
@@ -24,6 +24,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 	import org.apache.royale.core.IListPresentationModel;
 	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;
@@ -46,7 +47,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class AddTableItemRendererForArrayListData implements IBead
+	public class AddTableRowForArrayListData implements IBead
 	{
 		/**
 		 *  Constructor
@@ -56,7 +57,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function AddTableItemRendererForArrayListData()
+		public function AddTableRowForArrayListData()
 		{
 		}
 		
@@ -161,20 +162,12 @@ package org.apache.royale.jewel.beads.itemRenderers
 
 			// update the index values in the itemRenderers to correspond to their shifted positions.
 			// adjust the itemRenderers' index to adjust for the shift
-			var cell:TableCell;
-			var processedRow:TableRow;
 			var len:int = itemRendererParent.numItemRenderers;
 			for (var i:int = event.index; i < len; i++)
 			{
-				processedRow = itemRendererParent.getItemRendererAt(i) as TableRow;
-				var n:int = processedRow.numElements;
-				for (j = 0; j < n; j++)
-				{
-					cell = processedRow.getElementAt(j) as TableCell;
-					ir = cell.getElementAt(0) as TableItemRenderer;
-					ir.index = i;
-					ir.rowIndex = i;
-				}
+				ir = itemRendererParent.getItemRendererAt(i) as TableItemRenderer;
+				ir.index = i;
+				ir.rowIndex = i;
 			}
 
 			(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
@@ -194,8 +187,8 @@ package org.apache.royale.jewel.beads.itemRenderers
 		public function get itemRendererParent():IItemRendererParent
 		{
 			if (_itemRendererParent == null) {
-				var listView:IListView = _strand.getBeadByType(IListView) as IListView;
-				_itemRendererParent = listView.dataGroup;
+				var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+				_itemRendererParent = view.dataGroup;
 			}
 			return _itemRendererParent;
 		}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveAllItemRendererForArrayListData.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveAllItemRendererForArrayListData.as
index 9729aa5..fecf921 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveAllItemRendererForArrayListData.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveAllItemRendererForArrayListData.as
@@ -23,6 +23,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 	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.events.CollectionEvent;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.IEventDispatcher;
@@ -158,8 +159,8 @@ package org.apache.royale.jewel.beads.itemRenderers
 		public function get itemRendererParent():IItemRendererParent
 		{
 			if (_itemRendererParent == null) {
-				var listView:IListView = _strand.getBeadByType(IListView) as IListView;
-				_itemRendererParent = listView.dataGroup;
+				var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+				_itemRendererParent = view.dataGroup;
 			}
 			return _itemRendererParent;
 		}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveTableItemRendererForArrayListData.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveTableRowForArrayListData.as
similarity index 89%
rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveTableItemRendererForArrayListData.as
rename to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveTableRowForArrayListData.as
index f3cac9a..83ada71 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveTableItemRendererForArrayListData.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveTableRowForArrayListData.as
@@ -19,6 +19,7 @@
 package org.apache.royale.jewel.beads.itemRenderers
 {
 	import org.apache.royale.core.IBead;
+	import org.apache.royale.core.UIBase;
 	import org.apache.royale.core.IItemRendererParent;
 	import org.apache.royale.core.ISelectionModel;
 	import org.apache.royale.core.IStrand;
@@ -41,7 +42,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class RemoveTableItemRendererForArrayListData implements IBead
+	public class RemoveTableRowForArrayListData implements IBead
 	{
 		/**
 		 *  Constructor
@@ -51,7 +52,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function RemoveTableItemRendererForArrayListData()
+		public function RemoveTableRowForArrayListData()
 		{
 		}
 
@@ -125,7 +126,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 		{
 			var ir:DataItemRenderer;
 			var cell:TableCell;
-			var processedRow:TableRow = itemRendererParent.getItemRendererAt(event.index) as TableRow;
+			var processedRow:TableRow = (itemRendererParent as UIBase).getElementAt(event.index) as TableRow;
 			while (processedRow.numElements > 0) {
 				cell = processedRow.getElementAt(0) as TableCell;
 				ir = cell.getElementAt(0) as DataItemRenderer;
@@ -133,21 +134,15 @@ package org.apache.royale.jewel.beads.itemRenderers
 				cell.removeElement(ir);
 				processedRow.removeElement(cell);
 			}
-			itemRendererParent.removeItemRenderer(processedRow as IItemRenderer);
+			(itemRendererParent as UIBase).removeElement(processedRow);
 
 			// adjust the itemRenderers' index to adjust for the shift
 			var len:int = itemRendererParent.numItemRenderers;
 			for (var i:int = event.index; i < len; i++)
 			{
-				processedRow = itemRendererParent.getItemRendererAt(i) as TableRow;
-				var n:int = processedRow.numElements;
-				for (var j:int = 0; j < n; j++)
-				{
-					cell = processedRow.getElementAt(j) as TableCell;
-					ir = cell.getElementAt(0) as DataItemRenderer;
-					ir.index = i;
-					ir.rowIndex = i;
-				}
+				ir = itemRendererParent.getItemRendererAt(i) as DataItemRenderer;
+				ir.index = i;
+				ir.rowIndex = i;
 			}
 
 			(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateListItemRendererForArrayListData.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateListItemRendererForArrayListData.as
index 10499ec..245eea4 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateListItemRendererForArrayListData.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateListItemRendererForArrayListData.as
@@ -24,6 +24,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 	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;
@@ -164,8 +165,8 @@ package org.apache.royale.jewel.beads.itemRenderers
 		public function get itemRendererParent():IItemRendererParent
 		{
 			if (_itemRendererParent == null) {
-				var listView:IListView = _strand.getBeadByType(IListView) as IListView;
-				_itemRendererParent = listView.dataGroup;
+				var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+				_itemRendererParent = view.dataGroup;
 			}
 			return _itemRendererParent;
 		}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateTableItemRendererForArrayListData.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateTableRowForArrayListData.as
similarity index 94%
rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateTableItemRendererForArrayListData.as
rename to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateTableRowForArrayListData.as
index b2bf166..1d811e4 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateTableItemRendererForArrayListData.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/UpdateTableRowForArrayListData.as
@@ -19,6 +19,7 @@
 package org.apache.royale.jewel.beads.itemRenderers
 {
 	import org.apache.royale.core.IBead;
+	import org.apache.royale.core.UIBase;
 	import org.apache.royale.core.IDataProviderModel;
     import org.apache.royale.core.IItemRendererParent;
 	import org.apache.royale.core.ISelectableItemRenderer;
@@ -31,6 +32,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 	import org.apache.royale.jewel.supportClasses.table.TableCell;
 	import org.apache.royale.jewel.supportClasses.table.TableRow;
 	import org.apache.royale.html.beads.IListView;
+	import org.apache.royale.jewel.itemRenderers.TableItemRenderer;
 
     /**
 	 *  Handles the update of an itemRenderer in a Table component once the corresponding 
@@ -41,7 +43,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class UpdateTableItemRendererForArrayListData implements IBead
+	public class UpdateTableRowForArrayListData implements IBead
 	{
 		/**
 		 *  Constructor
@@ -51,7 +53,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function UpdateTableItemRendererForArrayListData()
+		public function UpdateTableRowForArrayListData()
 		{
 		}
 
@@ -131,9 +133,10 @@ package org.apache.royale.jewel.beads.itemRenderers
 		protected function handleItemUpdated(event:CollectionEvent):void
 		{
 			var ir:ISelectableItemRenderer;
+			var processedRow:TableRow = (itemRendererParent as UIBase).getElementAt(event.index) as TableRow;
 			var cell:TableCell;
-			var processedRow:TableRow = itemRendererParent.getItemRendererAt(event.index) as TableRow;
 			var n:int = processedRow.numElements;
+
 			for (var i:int = 0; i < n; i++)
 			{
 				cell = processedRow.getElementAt(i) as TableCell;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as
index 2bcfbec..dd6012b 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as
@@ -129,7 +129,7 @@ package org.apache.royale.jewel.supportClasses.table
 			tableCell.addElement(r);
 
 			var row:TableRow;
-			if(r.rowIndex > numElements -1)
+			if(r.rowIndex > numElements - 1)
 			{
 				row = new TableRow();
 				addElementAt(row, r.rowIndex, false);
@@ -249,6 +249,14 @@ package org.apache.royale.jewel.supportClasses.table
 				}
 			}
 		}
+
+		/**
+         *  @copy org.apache.royale.core.IItemRendererParent#numItemRenderers()
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.4
+         */
 		public function get numItemRenderers():int{
 			return numElements;
 		}