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/08/18 17:45:56 UTC

[royale-asjs] branch develop updated: remove item handling code in favor of use of beads

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 967fd9b  remove item handling code in favor of use of beads
967fd9b is described below

commit 967fd9b8a6873514a83c66084e8aa4a015f48c7d
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Sat Aug 18 19:45:51 2018 +0200

    remove item handling code in favor of use of beads
---
 .../src/main/royale/ListPlayGround.mxml            |   2 +-
 .../DataItemRendererFactoryForCollectionView.as    | 131 +++++++++++----------
 .../TableItemRendererFactoryForCollectionView.as   |  29 +++--
 3 files changed, 83 insertions(+), 79 deletions(-)

diff --git a/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml b/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
index 8b603eb..63eb8d3 100644
--- a/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
+++ b/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
@@ -50,7 +50,7 @@ limitations under the License.
 
 			public function removeAllData():void
 			{
-				simple.removeAll();
+				(list.dataProvider as ArrayList).removeAll();
 			}
 		]]>
 	</fx:Script>
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
index 544b013..4a47ec8 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
@@ -163,11 +163,12 @@ package org.apache.royale.jewel.beads.itemRenderers
 			if (!dp)
 				return;
 			
+			// remove this and better add beads when needed
 			// listen for individual items being added in the future.
-			var dped:IEventDispatcher = dp as IEventDispatcher;
-			dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
-			dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
-			dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
+			// var dped:IEventDispatcher = dp as IEventDispatcher;
+			// dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
+			// dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
+			// dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
 			
 			dataGroup.removeAllItemRenderers();
 			
@@ -192,37 +193,37 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
 		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 		 */
-		protected function itemAddedHandler(event:CollectionEvent):void
-		{
-			if (!dataProviderModel)
-				return;
-			var dp:ICollectionView = dataProviderModel.dataProvider as ICollectionView;
-			if (!dp)
-				return;
+		// protected function itemAddedHandler(event:CollectionEvent):void
+		// {
+		// 	if (!dataProviderModel)
+		// 		return;
+		// 	var dp:ICollectionView = dataProviderModel.dataProvider as ICollectionView;
+		// 	if (!dp)
+		// 		return;
 			
-			var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
-			var ir:ISelectableItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer;
-			labelField = dataProviderModel.labelField;
+		// 	var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
+		// 	var ir:ISelectableItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer;
+		// 	labelField = dataProviderModel.labelField;
 			
-			fillRenderer(event.index, event.item, ir, presentationModel);
+		// 	fillRenderer(event.index, event.item, ir, presentationModel);
 			
-			// update the index values in the itemRenderers to correspond to their shifted positions.
-			var n:int = dataGroup.numElements;
-			for (var i:int = event.index; i < n; i++)
-			{
-				ir = dataGroup.getElementAt(i) as ISelectableItemRenderer;
-				ir.index = i;
+		// 	// update the index values in the itemRenderers to correspond to their shifted positions.
+		// 	var n:int = dataGroup.numElements;
+		// 	for (var i:int = event.index; i < n; i++)
+		// 	{
+		// 		ir = dataGroup.getElementAt(i) as ISelectableItemRenderer;
+		// 		ir.index = i;
 				
-				// could let the IR know its index has been changed (eg, it might change its
-				// UI based on the index). Instead (PAYG), allow another bead to detect
-				// this event and do this as not every IR will need to be updated.
-				//var ubase:UIItemRendererBase = ir as UIItemRendererBase;
-				//if (ubase) ubase.updateRenderer()
-			}
+		// 		// could let the IR know its index has been changed (eg, it might change its
+		// 		// UI based on the index). Instead (PAYG), allow another bead to detect
+		// 		// this event and do this as not every IR will need to be updated.
+		// 		//var ubase:UIItemRendererBase = ir as UIItemRendererBase;
+		// 		//if (ubase) ubase.updateRenderer()
+		// 	}
 			
-			(_strand as IEventDispatcher).dispatchEvent(new Event("itemsCreated"));
-			(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
-		}
+		// 	(_strand as IEventDispatcher).dispatchEvent(new Event("itemsCreated"));
+		// 	(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
+		// }
 		
 		/**
 		 * @private
@@ -231,52 +232,52 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
 		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 		 */
-		protected function itemRemovedHandler(event:CollectionEvent):void
-		{
-			if (!dataProviderModel)
-				return;
-			var dp:ICollectionView = dataProviderModel.dataProvider as ICollectionView;
-			if (!dp)
-				return;
+		// protected function itemRemovedHandler(event:CollectionEvent):void
+		// {
+		// 	if (!dataProviderModel)
+		// 		return;
+		// 	var dp:ICollectionView = dataProviderModel.dataProvider as ICollectionView;
+		// 	if (!dp)
+		// 		return;
 			
-			var ir:ISelectableItemRenderer = dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
-			dataGroup.removeItemRenderer(ir);
+		// 	var ir:ISelectableItemRenderer = dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
+		// 	dataGroup.removeItemRenderer(ir);
 			
-			// adjust the itemRenderers' index to adjust for the shift
-			var n:int = dataGroup.numElements;
-			for (var i:int = event.index; i < n; i++)
-			{
-				ir = dataGroup.getElementAt(i) as ISelectableItemRenderer;
-				ir.index = i;
+		// 	// adjust the itemRenderers' index to adjust for the shift
+		// 	var n:int = dataGroup.numElements;
+		// 	for (var i:int = event.index; i < n; i++)
+		// 	{
+		// 		ir = dataGroup.getElementAt(i) as ISelectableItemRenderer;
+		// 		ir.index = i;
 				
-				// could let the IR know its index has been changed (eg, it might change its
-				// UI based on the index). Instead (PAYG), allow another bead to detect
-				// this event and do this as not every IR will need to be updated.
-				//var ubase:UIItemRendererBase = ir as UIItemRendererBase;
-				//if (ubase) ubase.updateRenderer()
-			}
+		// 		// could let the IR know its index has been changed (eg, it might change its
+		// 		// UI based on the index). Instead (PAYG), allow another bead to detect
+		// 		// this event and do this as not every IR will need to be updated.
+		// 		//var ubase:UIItemRendererBase = ir as UIItemRendererBase;
+		// 		//if (ubase) ubase.updateRenderer()
+		// 	}
 			
-			(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
-		}
+		// 	(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
+		// }
 		
 		/**
 		 * @private
 		 * @royaleignorecoercion org.apache.royale.collections.ICollectionView
 		 * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
 		 */
-		protected function itemUpdatedHandler(event:CollectionEvent):void
-		{
-			if (!dataProviderModel)
-				return;
-			var dp:ICollectionView = dataProviderModel.dataProvider as ICollectionView;
-			if (!dp)
-				return;
+		// protected function itemUpdatedHandler(event:CollectionEvent):void
+		// {
+		// 	if (!dataProviderModel)
+		// 		return;
+		// 	var dp:ICollectionView = dataProviderModel.dataProvider as ICollectionView;
+		// 	if (!dp)
+		// 		return;
 
-			// update the given renderer with (possibly) new information so it can change its
-			// appearence or whatever.
-			var ir:ISelectableItemRenderer = dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
-			setData(ir, event.item, event.index);
-		}
+		// 	// update the given renderer with (possibly) new information so it can change its
+		// 	// appearence or whatever.
+		// 	var ir:ISelectableItemRenderer = dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
+		// 	setData(ir, event.item, event.index);
+		// }
 		
 		/**
 		 * @private
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 da09088..e064583 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
@@ -176,11 +176,13 @@ package org.apache.royale.jewel.beads.itemRenderers
 			if (!dp)
 				return;
 			
+			// remove this and better add beads when needed
 			// listen for individual items being added in the future.
-			var dped:IEventDispatcher = dp as IEventDispatcher;
-			dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
-			dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
-			dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
+			// var dped:IEventDispatcher = dp as IEventDispatcher;
+			// dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
+			// dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
+			// dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
+			
 			
             // THEAD - remove header items
 			removeElements(view.thead);
@@ -207,6 +209,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 					
 			        if(column.itemRenderer != null)
                     {
+						trace("create ir: " + column.itemRenderer);
                         ir = column.itemRenderer.newInstance() as ITextItemRenderer;
                     } else
                     {
@@ -324,9 +327,9 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
 		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 		 */
-		protected function itemAddedHandler(event:CollectionEvent):void
-		{
-		}
+		// protected function itemAddedHandler(event:CollectionEvent):void
+		// {
+		// }
 
 		/**
 		 * @private
@@ -335,17 +338,17 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
 		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 		 */
-		protected function itemRemovedHandler(event:CollectionEvent):void
-		{
-		}
+		// protected function itemRemovedHandler(event:CollectionEvent):void
+		// {
+		// }
 
 		/**
 		 * @private
 		 * @royaleignorecoercion org.apache.royale.collections.ICollectionView
 		 * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
 		 */
-		protected function itemUpdatedHandler(event:CollectionEvent):void
-		{
-		}
+		// protected function itemUpdatedHandler(event:CollectionEvent):void
+		// {
+		// }
     }
 }
\ No newline at end of file


Re: [royale-asjs] branch develop updated: remove item handling code in favor of use of beads

Posted by Piotr Zarzycki <pi...@gmail.com>.
Hi Carlos,

Thanks for explanation, just wanted to make sure, cause that's what I
thought in case of the reason why it is duplicated.

Piotr

niedz., 19 sie 2018 o 22:23 Carlos Rovira <ca...@apache.org>
napisał(a):

> Hi Piotr,
> yes. As you remember, I did a huge refactor that made all of us invest many
> time in discussions. That discussions make some things solve and approved
> some others, but while I think we talked about a refactor in our way to
> 1.0, we left in that point. I propose to make that refactor, but I don't
> saw a clear point to go forward at that time. So while I'm a huge advocate
> of no code duplication, as well, a point is even more important to me: not
> make Jewel dependent from the *actual* Basic library.  I think many beads
> in Basic can be usable cross Royale, but they need to be in a common
> library not Basic (what I called "Foundation.swc" through the discussion.
> Or separate the Basic UI set to another lib. As well that classes need a
> refactor of packages and maybe names. In Jewel package organization is very
> important, and I think that should be in all Royale code to ease
> development for our users. As Harbs said, actually is very hard for others
> that come to know what we have, and where find it.
>
> But instead, I work as well to change the package names to old structure to
> release 0.9.3, instead of going from that point to something more final,
> for me a step back, but ok to release 0.9.3, but no one has started the
> release process of 0.9.3...
>
> I hope, some time in the future, we can remove the duplicated code and
> refactor things before reach 1.0. But maybe is not the right time, since I
> see Alex very productive with emulation branch, and maybe a refactor not
> could be a problem for him when trying to merge and could result in more
> unwanted work. As well I'm finishing some key components, since in few
> days/weeks we'll start a Royale project, so I need to finish those
> components before I can invest time in refactor. So I hope if we release
> 0.9.3 by September, I can propose to start the refactor with Jewel almost
> finished and emulation branch integrated by October? But anyway, as well I
> hope all people understand that a refactor will implied changes in many
> names and packages, and that could bring many discussions to the table that
> can as well make us lose many time on that front, while Royale need (as any
> other code) need that to be a 1.0 that can live long time without huge
> modifications that affect many users code bases...
>
>
>
>
>
>
>
> El dom., 19 ago. 2018 a las 9:56, Piotr Zarzycki (<
> piotrzarzycki21@gmail.com>)
> escribió:
>
> > Carlos,
> >
> > So you did exact copy of beads from Basic?
> >
> > Thanks,
> > Piotr
> >
> > On Sat, Aug 18, 2018, 7:45 PM <ca...@apache.org> wrote:
> >
> > > This is an automated email from the ASF dual-hosted git repository.
> > >
> > > carlosrovira pushed a commit to branch develop
> > > in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
> > >
> > >
> > > The following commit(s) were added to refs/heads/develop by this push:
> > >      new 967fd9b  remove item handling code in favor of use of beads
> > > 967fd9b is described below
> > >
> > > commit 967fd9b8a6873514a83c66084e8aa4a015f48c7d
> > > Author: Carlos Rovira <ca...@apache.org>
> > > AuthorDate: Sat Aug 18 19:45:51 2018 +0200
> > >
> > >     remove item handling code in favor of use of beads
> > > ---
> > >  .../src/main/royale/ListPlayGround.mxml            |   2 +-
> > >  .../DataItemRendererFactoryForCollectionView.as    | 131
> > > +++++++++++----------
> > >  .../TableItemRendererFactoryForCollectionView.as   |  29 +++--
> > >  3 files changed, 83 insertions(+), 79 deletions(-)
> > >
> > > diff --git
> > > a/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> > > b/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> > > index 8b603eb..63eb8d3 100644
> > > --- a/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> > > +++ b/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> > > @@ -50,7 +50,7 @@ limitations under the License.
> > >
> > >                         public function removeAllData():void
> > >                         {
> > > -                               simple.removeAll();
> > > +                               (list.dataProvider as
> > > ArrayList).removeAll();
> > >                         }
> > >                 ]]>
> > >         </fx:Script>
> > > diff --git
> > >
> >
> a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> > >
> >
> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> > > index 544b013..4a47ec8 100644
> > > ---
> > >
> >
> a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> > > +++
> > >
> >
> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> > > @@ -163,11 +163,12 @@ package
> org.apache.royale.jewel.beads.itemRenderers
> > >                         if (!dp)
> > >                                 return;
> > >
> > > +                       // remove this and better add beads when needed
> > >                         // listen for individual items being added in
> the
> > > future.
> > > -                       var dped:IEventDispatcher = dp as
> > IEventDispatcher;
> > > -
>  dped.addEventListener(CollectionEvent.ITEM_ADDED,
> > > itemAddedHandler);
> > > -
> > >  dped.addEventListener(CollectionEvent.ITEM_REMOVED,
> itemRemovedHandler);
> > > -
> > >  dped.addEventListener(CollectionEvent.ITEM_UPDATED,
> itemUpdatedHandler);
> > > +                       // var dped:IEventDispatcher = dp as
> > > IEventDispatcher;
> > > +                       //
> > > dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
> > > +                       //
> > > dped.addEventListener(CollectionEvent.ITEM_REMOVED,
> itemRemovedHandler);
> > > +                       //
> > > dped.addEventListener(CollectionEvent.ITEM_UPDATED,
> itemUpdatedHandler);
> > >
> > >                         dataGroup.removeAllItemRenderers();
> > >
> > > @@ -192,37 +193,37 @@ package
> org.apache.royale.jewel.beads.itemRenderers
> > >                  * @royaleignorecoercion
> > > org.apache.royale.core.ISelectableItemRenderer
> > >                  * @royaleignorecoercion
> > > org.apache.royale.events.IEventDispatcher
> > >                  */
> > > -               protected function
> > > itemAddedHandler(event:CollectionEvent):void
> > > -               {
> > > -                       if (!dataProviderModel)
> > > -                               return;
> > > -                       var dp:ICollectionView =
> > > dataProviderModel.dataProvider as ICollectionView;
> > > -                       if (!dp)
> > > -                               return;
> > > +               // protected function
> > > itemAddedHandler(event:CollectionEvent):void
> > > +               // {
> > > +               //      if (!dataProviderModel)
> > > +               //              return;
> > > +               //      var dp:ICollectionView =
> > > dataProviderModel.dataProvider as ICollectionView;
> > > +               //      if (!dp)
> > > +               //              return;
> > >
> > > -                       var presentationModel:IListPresentationModel =
> > > _strand.getBeadByType(IListPresentationModel) as
> IListPresentationModel;
> > > -                       var ir:ISelectableItemRenderer =
> > > itemRendererFactory.createItemRenderer(dataGroup) as
> > > ISelectableItemRenderer;
> > > -                       labelField = dataProviderModel.labelField;
> > > +               //      var presentationModel:IListPresentationModel =
> > > _strand.getBeadByType(IListPresentationModel) as
> IListPresentationModel;
> > > +               //      var ir:ISelectableItemRenderer =
> > > itemRendererFactory.createItemRenderer(dataGroup) as
> > > ISelectableItemRenderer;
> > > +               //      labelField = dataProviderModel.labelField;
> > >
> > > -                       fillRenderer(event.index, event.item, ir,
> > > presentationModel);
> > > +               //      fillRenderer(event.index, event.item, ir,
> > > presentationModel);
> > >
> > > -                       // update the index values in the itemRenderers
> > to
> > > correspond to their shifted positions.
> > > -                       var n:int = dataGroup.numElements;
> > > -                       for (var i:int = event.index; i < n; i++)
> > > -                       {
> > > -                               ir = dataGroup.getElementAt(i) as
> > > ISelectableItemRenderer;
> > > -                               ir.index = i;
> > > +               //      // update the index values in the itemRenderers
> > to
> > > correspond to their shifted positions.
> > > +               //      var n:int = dataGroup.numElements;
> > > +               //      for (var i:int = event.index; i < n; i++)
> > > +               //      {
> > > +               //              ir = dataGroup.getElementAt(i) as
> > > ISelectableItemRenderer;
> > > +               //              ir.index = i;
> > >
> > > -                               // could let the IR know its index has
> > > been changed (eg, it might change its
> > > -                               // UI based on the index). Instead
> > (PAYG),
> > > allow another bead to detect
> > > -                               // this event and do this as not every
> IR
> > > will need to be updated.
> > > -                               //var ubase:UIItemRendererBase = ir as
> > > UIItemRendererBase;
> > > -                               //if (ubase) ubase.updateRenderer()
> > > -                       }
> > > +               //              // could let the IR know its index has
> > > been changed (eg, it might change its
> > > +               //              // UI based on the index). Instead
> > (PAYG),
> > > allow another bead to detect
> > > +               //              // this event and do this as not every
> IR
> > > will need to be updated.
> > > +               //              //var ubase:UIItemRendererBase = ir as
> > > UIItemRendererBase;
> > > +               //              //if (ubase) ubase.updateRenderer()
> > > +               //      }
> > >
> > > -                       (_strand as IEventDispatcher).dispatchEvent(new
> > > Event("itemsCreated"));
> > > -                       (_strand as IEventDispatcher).dispatchEvent(new
> > > Event("layoutNeeded"));
> > > -               }
> > > +               //      (_strand as IEventDispatcher).dispatchEvent(new
> > > Event("itemsCreated"));
> > > +               //      (_strand as IEventDispatcher).dispatchEvent(new
> > > Event("layoutNeeded"));
> > > +               // }
> > >
> > >                 /**
> > >                  * @private
> > > @@ -231,52 +232,52 @@ package
> org.apache.royale.jewel.beads.itemRenderers
> > >                  * @royaleignorecoercion
> > > org.apache.royale.core.ISelectableItemRenderer
> > >                  * @royaleignorecoercion
> > > org.apache.royale.events.IEventDispatcher
> > >                  */
> > > -               protected function
> > > itemRemovedHandler(event:CollectionEvent):void
> > > -               {
> > > -                       if (!dataProviderModel)
> > > -                               return;
> > > -                       var dp:ICollectionView =
> > > dataProviderModel.dataProvider as ICollectionView;
> > > -                       if (!dp)
> > > -                               return;
> > > +               // protected function
> > > itemRemovedHandler(event:CollectionEvent):void
> > > +               // {
> > > +               //      if (!dataProviderModel)
> > > +               //              return;
> > > +               //      var dp:ICollectionView =
> > > dataProviderModel.dataProvider as ICollectionView;
> > > +               //      if (!dp)
> > > +               //              return;
> > >
> > > -                       var ir:ISelectableItemRenderer =
> > > dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> > > -                       dataGroup.removeItemRenderer(ir);
> > > +               //      var ir:ISelectableItemRenderer =
> > > dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> > > +               //      dataGroup.removeItemRenderer(ir);
> > >
> > > -                       // adjust the itemRenderers' index to adjust
> for
> > > the shift
> > > -                       var n:int = dataGroup.numElements;
> > > -                       for (var i:int = event.index; i < n; i++)
> > > -                       {
> > > -                               ir = dataGroup.getElementAt(i) as
> > > ISelectableItemRenderer;
> > > -                               ir.index = i;
> > > +               //      // adjust the itemRenderers' index to adjust
> for
> > > the shift
> > > +               //      var n:int = dataGroup.numElements;
> > > +               //      for (var i:int = event.index; i < n; i++)
> > > +               //      {
> > > +               //              ir = dataGroup.getElementAt(i) as
> > > ISelectableItemRenderer;
> > > +               //              ir.index = i;
> > >
> > > -                               // could let the IR know its index has
> > > been changed (eg, it might change its
> > > -                               // UI based on the index). Instead
> > (PAYG),
> > > allow another bead to detect
> > > -                               // this event and do this as not every
> IR
> > > will need to be updated.
> > > -                               //var ubase:UIItemRendererBase = ir as
> > > UIItemRendererBase;
> > > -                               //if (ubase) ubase.updateRenderer()
> > > -                       }
> > > +               //              // could let the IR know its index has
> > > been changed (eg, it might change its
> > > +               //              // UI based on the index). Instead
> > (PAYG),
> > > allow another bead to detect
> > > +               //              // this event and do this as not every
> IR
> > > will need to be updated.
> > > +               //              //var ubase:UIItemRendererBase = ir as
> > > UIItemRendererBase;
> > > +               //              //if (ubase) ubase.updateRenderer()
> > > +               //      }
> > >
> > > -                       (_strand as IEventDispatcher).dispatchEvent(new
> > > Event("layoutNeeded"));
> > > -               }
> > > +               //      (_strand as IEventDispatcher).dispatchEvent(new
> > > Event("layoutNeeded"));
> > > +               // }
> > >
> > >                 /**
> > >                  * @private
> > >                  * @royaleignorecoercion
> > > org.apache.royale.collections.ICollectionView
> > >                  * @royaleignorecoercion
> > > org.apache.royale.core.ISelectableItemRenderer
> > >                  */
> > > -               protected function
> > > itemUpdatedHandler(event:CollectionEvent):void
> > > -               {
> > > -                       if (!dataProviderModel)
> > > -                               return;
> > > -                       var dp:ICollectionView =
> > > dataProviderModel.dataProvider as ICollectionView;
> > > -                       if (!dp)
> > > -                               return;
> > > +               // protected function
> > > itemUpdatedHandler(event:CollectionEvent):void
> > > +               // {
> > > +               //      if (!dataProviderModel)
> > > +               //              return;
> > > +               //      var dp:ICollectionView =
> > > dataProviderModel.dataProvider as ICollectionView;
> > > +               //      if (!dp)
> > > +               //              return;
> > >
> > > -                       // update the given renderer with (possibly)
> new
> > > information so it can change its
> > > -                       // appearence or whatever.
> > > -                       var ir:ISelectableItemRenderer =
> > > dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> > > -                       setData(ir, event.item, event.index);
> > > -               }
> > > +               //      // update the given renderer with (possibly)
> new
> > > information so it can change its
> > > +               //      // appearence or whatever.
> > > +               //      var ir:ISelectableItemRenderer =
> > > dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> > > +               //      setData(ir, event.item, event.index);
> > > +               // }
> > >
> > >                 /**
> > >                  * @private
> > > 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 da09088..e064583 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
> > > @@ -176,11 +176,13 @@ package
> org.apache.royale.jewel.beads.itemRenderers
> > >                         if (!dp)
> > >                                 return;
> > >
> > > +                       // remove this and better add beads when needed
> > >                         // listen for individual items being added in
> the
> > > future.
> > > -                       var dped:IEventDispatcher = dp as
> > IEventDispatcher;
> > > -
>  dped.addEventListener(CollectionEvent.ITEM_ADDED,
> > > itemAddedHandler);
> > > -
> > >  dped.addEventListener(CollectionEvent.ITEM_REMOVED,
> itemRemovedHandler);
> > > -
> > >  dped.addEventListener(CollectionEvent.ITEM_UPDATED,
> itemUpdatedHandler);
> > > +                       // var dped:IEventDispatcher = dp as
> > > IEventDispatcher;
> > > +                       //
> > > dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
> > > +                       //
> > > dped.addEventListener(CollectionEvent.ITEM_REMOVED,
> itemRemovedHandler);
> > > +                       //
> > > dped.addEventListener(CollectionEvent.ITEM_UPDATED,
> itemUpdatedHandler);
> > > +
> > >
> > >              // THEAD - remove header items
> > >                         removeElements(view.thead);
> > > @@ -207,6 +209,7 @@ package org.apache.royale.jewel.beads.itemRenderers
> > >
> > >                                 if(column.itemRenderer != null)
> > >                      {
> > > +                                               trace("create ir: " +
> > > column.itemRenderer);
> > >                          ir = column.itemRenderer.newInstance() as
> > > ITextItemRenderer;
> > >                      } else
> > >                      {
> > > @@ -324,9 +327,9 @@ package org.apache.royale.jewel.beads.itemRenderers
> > >                  * @royaleignorecoercion
> > > org.apache.royale.core.ISelectableItemRenderer
> > >                  * @royaleignorecoercion
> > > org.apache.royale.events.IEventDispatcher
> > >                  */
> > > -               protected function
> > > itemAddedHandler(event:CollectionEvent):void
> > > -               {
> > > -               }
> > > +               // protected function
> > > itemAddedHandler(event:CollectionEvent):void
> > > +               // {
> > > +               // }
> > >
> > >                 /**
> > >                  * @private
> > > @@ -335,17 +338,17 @@ package
> org.apache.royale.jewel.beads.itemRenderers
> > >                  * @royaleignorecoercion
> > > org.apache.royale.core.ISelectableItemRenderer
> > >                  * @royaleignorecoercion
> > > org.apache.royale.events.IEventDispatcher
> > >                  */
> > > -               protected function
> > > itemRemovedHandler(event:CollectionEvent):void
> > > -               {
> > > -               }
> > > +               // protected function
> > > itemRemovedHandler(event:CollectionEvent):void
> > > +               // {
> > > +               // }
> > >
> > >                 /**
> > >                  * @private
> > >                  * @royaleignorecoercion
> > > org.apache.royale.collections.ICollectionView
> > >                  * @royaleignorecoercion
> > > org.apache.royale.core.ISelectableItemRenderer
> > >                  */
> > > -               protected function
> > > itemUpdatedHandler(event:CollectionEvent):void
> > > -               {
> > > -               }
> > > +               // protected function
> > > itemUpdatedHandler(event:CollectionEvent):void
> > > +               // {
> > > +               // }
> > >      }
> > >  }
> > > \ No newline at end of file
> > >
> > >
> >
> > --
> > Carlos Rovira
> > http://about.me/carlosrovira
> >
> >
> >
> >
>


-- 

Piotr Zarzycki

Patreon: *https://www.patreon.com/piotrzarzycki
<https://www.patreon.com/piotrzarzycki>*

Re: [royale-asjs] branch develop updated: remove item handling code in favor of use of beads

Posted by Carlos Rovira <ca...@apache.org>.
Hi Piotr,
yes. As you remember, I did a huge refactor that made all of us invest many
time in discussions. That discussions make some things solve and approved
some others, but while I think we talked about a refactor in our way to
1.0, we left in that point. I propose to make that refactor, but I don't
saw a clear point to go forward at that time. So while I'm a huge advocate
of no code duplication, as well, a point is even more important to me: not
make Jewel dependent from the *actual* Basic library.  I think many beads
in Basic can be usable cross Royale, but they need to be in a common
library not Basic (what I called "Foundation.swc" through the discussion.
Or separate the Basic UI set to another lib. As well that classes need a
refactor of packages and maybe names. In Jewel package organization is very
important, and I think that should be in all Royale code to ease
development for our users. As Harbs said, actually is very hard for others
that come to know what we have, and where find it.

But instead, I work as well to change the package names to old structure to
release 0.9.3, instead of going from that point to something more final,
for me a step back, but ok to release 0.9.3, but no one has started the
release process of 0.9.3...

I hope, some time in the future, we can remove the duplicated code and
refactor things before reach 1.0. But maybe is not the right time, since I
see Alex very productive with emulation branch, and maybe a refactor not
could be a problem for him when trying to merge and could result in more
unwanted work. As well I'm finishing some key components, since in few
days/weeks we'll start a Royale project, so I need to finish those
components before I can invest time in refactor. So I hope if we release
0.9.3 by September, I can propose to start the refactor with Jewel almost
finished and emulation branch integrated by October? But anyway, as well I
hope all people understand that a refactor will implied changes in many
names and packages, and that could bring many discussions to the table that
can as well make us lose many time on that front, while Royale need (as any
other code) need that to be a 1.0 that can live long time without huge
modifications that affect many users code bases...







El dom., 19 ago. 2018 a las 9:56, Piotr Zarzycki (<pi...@gmail.com>)
escribió:

> Carlos,
>
> So you did exact copy of beads from Basic?
>
> Thanks,
> Piotr
>
> On Sat, Aug 18, 2018, 7:45 PM <ca...@apache.org> wrote:
>
> > This is an automated email from the ASF dual-hosted git repository.
> >
> > carlosrovira pushed a commit to branch develop
> > in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
> >
> >
> > The following commit(s) were added to refs/heads/develop by this push:
> >      new 967fd9b  remove item handling code in favor of use of beads
> > 967fd9b is described below
> >
> > commit 967fd9b8a6873514a83c66084e8aa4a015f48c7d
> > Author: Carlos Rovira <ca...@apache.org>
> > AuthorDate: Sat Aug 18 19:45:51 2018 +0200
> >
> >     remove item handling code in favor of use of beads
> > ---
> >  .../src/main/royale/ListPlayGround.mxml            |   2 +-
> >  .../DataItemRendererFactoryForCollectionView.as    | 131
> > +++++++++++----------
> >  .../TableItemRendererFactoryForCollectionView.as   |  29 +++--
> >  3 files changed, 83 insertions(+), 79 deletions(-)
> >
> > diff --git
> > a/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> > b/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> > index 8b603eb..63eb8d3 100644
> > --- a/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> > +++ b/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> > @@ -50,7 +50,7 @@ limitations under the License.
> >
> >                         public function removeAllData():void
> >                         {
> > -                               simple.removeAll();
> > +                               (list.dataProvider as
> > ArrayList).removeAll();
> >                         }
> >                 ]]>
> >         </fx:Script>
> > diff --git
> >
> a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> >
> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> > index 544b013..4a47ec8 100644
> > ---
> >
> a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> > +++
> >
> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> > @@ -163,11 +163,12 @@ package org.apache.royale.jewel.beads.itemRenderers
> >                         if (!dp)
> >                                 return;
> >
> > +                       // remove this and better add beads when needed
> >                         // listen for individual items being added in the
> > future.
> > -                       var dped:IEventDispatcher = dp as
> IEventDispatcher;
> > -                       dped.addEventListener(CollectionEvent.ITEM_ADDED,
> > itemAddedHandler);
> > -
> >  dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
> > -
> >  dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
> > +                       // var dped:IEventDispatcher = dp as
> > IEventDispatcher;
> > +                       //
> > dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
> > +                       //
> > dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
> > +                       //
> > dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
> >
> >                         dataGroup.removeAllItemRenderers();
> >
> > @@ -192,37 +193,37 @@ package org.apache.royale.jewel.beads.itemRenderers
> >                  * @royaleignorecoercion
> > org.apache.royale.core.ISelectableItemRenderer
> >                  * @royaleignorecoercion
> > org.apache.royale.events.IEventDispatcher
> >                  */
> > -               protected function
> > itemAddedHandler(event:CollectionEvent):void
> > -               {
> > -                       if (!dataProviderModel)
> > -                               return;
> > -                       var dp:ICollectionView =
> > dataProviderModel.dataProvider as ICollectionView;
> > -                       if (!dp)
> > -                               return;
> > +               // protected function
> > itemAddedHandler(event:CollectionEvent):void
> > +               // {
> > +               //      if (!dataProviderModel)
> > +               //              return;
> > +               //      var dp:ICollectionView =
> > dataProviderModel.dataProvider as ICollectionView;
> > +               //      if (!dp)
> > +               //              return;
> >
> > -                       var presentationModel:IListPresentationModel =
> > _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
> > -                       var ir:ISelectableItemRenderer =
> > itemRendererFactory.createItemRenderer(dataGroup) as
> > ISelectableItemRenderer;
> > -                       labelField = dataProviderModel.labelField;
> > +               //      var presentationModel:IListPresentationModel =
> > _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
> > +               //      var ir:ISelectableItemRenderer =
> > itemRendererFactory.createItemRenderer(dataGroup) as
> > ISelectableItemRenderer;
> > +               //      labelField = dataProviderModel.labelField;
> >
> > -                       fillRenderer(event.index, event.item, ir,
> > presentationModel);
> > +               //      fillRenderer(event.index, event.item, ir,
> > presentationModel);
> >
> > -                       // update the index values in the itemRenderers
> to
> > correspond to their shifted positions.
> > -                       var n:int = dataGroup.numElements;
> > -                       for (var i:int = event.index; i < n; i++)
> > -                       {
> > -                               ir = dataGroup.getElementAt(i) as
> > ISelectableItemRenderer;
> > -                               ir.index = i;
> > +               //      // update the index values in the itemRenderers
> to
> > correspond to their shifted positions.
> > +               //      var n:int = dataGroup.numElements;
> > +               //      for (var i:int = event.index; i < n; i++)
> > +               //      {
> > +               //              ir = dataGroup.getElementAt(i) as
> > ISelectableItemRenderer;
> > +               //              ir.index = i;
> >
> > -                               // could let the IR know its index has
> > been changed (eg, it might change its
> > -                               // UI based on the index). Instead
> (PAYG),
> > allow another bead to detect
> > -                               // this event and do this as not every IR
> > will need to be updated.
> > -                               //var ubase:UIItemRendererBase = ir as
> > UIItemRendererBase;
> > -                               //if (ubase) ubase.updateRenderer()
> > -                       }
> > +               //              // could let the IR know its index has
> > been changed (eg, it might change its
> > +               //              // UI based on the index). Instead
> (PAYG),
> > allow another bead to detect
> > +               //              // this event and do this as not every IR
> > will need to be updated.
> > +               //              //var ubase:UIItemRendererBase = ir as
> > UIItemRendererBase;
> > +               //              //if (ubase) ubase.updateRenderer()
> > +               //      }
> >
> > -                       (_strand as IEventDispatcher).dispatchEvent(new
> > Event("itemsCreated"));
> > -                       (_strand as IEventDispatcher).dispatchEvent(new
> > Event("layoutNeeded"));
> > -               }
> > +               //      (_strand as IEventDispatcher).dispatchEvent(new
> > Event("itemsCreated"));
> > +               //      (_strand as IEventDispatcher).dispatchEvent(new
> > Event("layoutNeeded"));
> > +               // }
> >
> >                 /**
> >                  * @private
> > @@ -231,52 +232,52 @@ package org.apache.royale.jewel.beads.itemRenderers
> >                  * @royaleignorecoercion
> > org.apache.royale.core.ISelectableItemRenderer
> >                  * @royaleignorecoercion
> > org.apache.royale.events.IEventDispatcher
> >                  */
> > -               protected function
> > itemRemovedHandler(event:CollectionEvent):void
> > -               {
> > -                       if (!dataProviderModel)
> > -                               return;
> > -                       var dp:ICollectionView =
> > dataProviderModel.dataProvider as ICollectionView;
> > -                       if (!dp)
> > -                               return;
> > +               // protected function
> > itemRemovedHandler(event:CollectionEvent):void
> > +               // {
> > +               //      if (!dataProviderModel)
> > +               //              return;
> > +               //      var dp:ICollectionView =
> > dataProviderModel.dataProvider as ICollectionView;
> > +               //      if (!dp)
> > +               //              return;
> >
> > -                       var ir:ISelectableItemRenderer =
> > dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> > -                       dataGroup.removeItemRenderer(ir);
> > +               //      var ir:ISelectableItemRenderer =
> > dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> > +               //      dataGroup.removeItemRenderer(ir);
> >
> > -                       // adjust the itemRenderers' index to adjust for
> > the shift
> > -                       var n:int = dataGroup.numElements;
> > -                       for (var i:int = event.index; i < n; i++)
> > -                       {
> > -                               ir = dataGroup.getElementAt(i) as
> > ISelectableItemRenderer;
> > -                               ir.index = i;
> > +               //      // adjust the itemRenderers' index to adjust for
> > the shift
> > +               //      var n:int = dataGroup.numElements;
> > +               //      for (var i:int = event.index; i < n; i++)
> > +               //      {
> > +               //              ir = dataGroup.getElementAt(i) as
> > ISelectableItemRenderer;
> > +               //              ir.index = i;
> >
> > -                               // could let the IR know its index has
> > been changed (eg, it might change its
> > -                               // UI based on the index). Instead
> (PAYG),
> > allow another bead to detect
> > -                               // this event and do this as not every IR
> > will need to be updated.
> > -                               //var ubase:UIItemRendererBase = ir as
> > UIItemRendererBase;
> > -                               //if (ubase) ubase.updateRenderer()
> > -                       }
> > +               //              // could let the IR know its index has
> > been changed (eg, it might change its
> > +               //              // UI based on the index). Instead
> (PAYG),
> > allow another bead to detect
> > +               //              // this event and do this as not every IR
> > will need to be updated.
> > +               //              //var ubase:UIItemRendererBase = ir as
> > UIItemRendererBase;
> > +               //              //if (ubase) ubase.updateRenderer()
> > +               //      }
> >
> > -                       (_strand as IEventDispatcher).dispatchEvent(new
> > Event("layoutNeeded"));
> > -               }
> > +               //      (_strand as IEventDispatcher).dispatchEvent(new
> > Event("layoutNeeded"));
> > +               // }
> >
> >                 /**
> >                  * @private
> >                  * @royaleignorecoercion
> > org.apache.royale.collections.ICollectionView
> >                  * @royaleignorecoercion
> > org.apache.royale.core.ISelectableItemRenderer
> >                  */
> > -               protected function
> > itemUpdatedHandler(event:CollectionEvent):void
> > -               {
> > -                       if (!dataProviderModel)
> > -                               return;
> > -                       var dp:ICollectionView =
> > dataProviderModel.dataProvider as ICollectionView;
> > -                       if (!dp)
> > -                               return;
> > +               // protected function
> > itemUpdatedHandler(event:CollectionEvent):void
> > +               // {
> > +               //      if (!dataProviderModel)
> > +               //              return;
> > +               //      var dp:ICollectionView =
> > dataProviderModel.dataProvider as ICollectionView;
> > +               //      if (!dp)
> > +               //              return;
> >
> > -                       // update the given renderer with (possibly) new
> > information so it can change its
> > -                       // appearence or whatever.
> > -                       var ir:ISelectableItemRenderer =
> > dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> > -                       setData(ir, event.item, event.index);
> > -               }
> > +               //      // update the given renderer with (possibly) new
> > information so it can change its
> > +               //      // appearence or whatever.
> > +               //      var ir:ISelectableItemRenderer =
> > dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> > +               //      setData(ir, event.item, event.index);
> > +               // }
> >
> >                 /**
> >                  * @private
> > 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 da09088..e064583 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
> > @@ -176,11 +176,13 @@ package org.apache.royale.jewel.beads.itemRenderers
> >                         if (!dp)
> >                                 return;
> >
> > +                       // remove this and better add beads when needed
> >                         // listen for individual items being added in the
> > future.
> > -                       var dped:IEventDispatcher = dp as
> IEventDispatcher;
> > -                       dped.addEventListener(CollectionEvent.ITEM_ADDED,
> > itemAddedHandler);
> > -
> >  dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
> > -
> >  dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
> > +                       // var dped:IEventDispatcher = dp as
> > IEventDispatcher;
> > +                       //
> > dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
> > +                       //
> > dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
> > +                       //
> > dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
> > +
> >
> >              // THEAD - remove header items
> >                         removeElements(view.thead);
> > @@ -207,6 +209,7 @@ package org.apache.royale.jewel.beads.itemRenderers
> >
> >                                 if(column.itemRenderer != null)
> >                      {
> > +                                               trace("create ir: " +
> > column.itemRenderer);
> >                          ir = column.itemRenderer.newInstance() as
> > ITextItemRenderer;
> >                      } else
> >                      {
> > @@ -324,9 +327,9 @@ package org.apache.royale.jewel.beads.itemRenderers
> >                  * @royaleignorecoercion
> > org.apache.royale.core.ISelectableItemRenderer
> >                  * @royaleignorecoercion
> > org.apache.royale.events.IEventDispatcher
> >                  */
> > -               protected function
> > itemAddedHandler(event:CollectionEvent):void
> > -               {
> > -               }
> > +               // protected function
> > itemAddedHandler(event:CollectionEvent):void
> > +               // {
> > +               // }
> >
> >                 /**
> >                  * @private
> > @@ -335,17 +338,17 @@ package org.apache.royale.jewel.beads.itemRenderers
> >                  * @royaleignorecoercion
> > org.apache.royale.core.ISelectableItemRenderer
> >                  * @royaleignorecoercion
> > org.apache.royale.events.IEventDispatcher
> >                  */
> > -               protected function
> > itemRemovedHandler(event:CollectionEvent):void
> > -               {
> > -               }
> > +               // protected function
> > itemRemovedHandler(event:CollectionEvent):void
> > +               // {
> > +               // }
> >
> >                 /**
> >                  * @private
> >                  * @royaleignorecoercion
> > org.apache.royale.collections.ICollectionView
> >                  * @royaleignorecoercion
> > org.apache.royale.core.ISelectableItemRenderer
> >                  */
> > -               protected function
> > itemUpdatedHandler(event:CollectionEvent):void
> > -               {
> > -               }
> > +               // protected function
> > itemUpdatedHandler(event:CollectionEvent):void
> > +               // {
> > +               // }
> >      }
> >  }
> > \ No newline at end of file
> >
> >
>
> --
> Carlos Rovira
> http://about.me/carlosrovira
>
>
>
>

Re: [royale-asjs] branch develop updated: remove item handling code in favor of use of beads

Posted by Piotr Zarzycki <pi...@gmail.com>.
Carlos,

So you did exact copy of beads from Basic?

Thanks,
Piotr

On Sat, Aug 18, 2018, 7:45 PM <ca...@apache.org> wrote:

> This is an automated email from the ASF dual-hosted git repository.
>
> carlosrovira pushed a commit to branch develop
> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>
>
> The following commit(s) were added to refs/heads/develop by this push:
>      new 967fd9b  remove item handling code in favor of use of beads
> 967fd9b is described below
>
> commit 967fd9b8a6873514a83c66084e8aa4a015f48c7d
> Author: Carlos Rovira <ca...@apache.org>
> AuthorDate: Sat Aug 18 19:45:51 2018 +0200
>
>     remove item handling code in favor of use of beads
> ---
>  .../src/main/royale/ListPlayGround.mxml            |   2 +-
>  .../DataItemRendererFactoryForCollectionView.as    | 131
> +++++++++++----------
>  .../TableItemRendererFactoryForCollectionView.as   |  29 +++--
>  3 files changed, 83 insertions(+), 79 deletions(-)
>
> diff --git
> a/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> b/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> index 8b603eb..63eb8d3 100644
> --- a/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> +++ b/examples/royale/JewelExample/src/main/royale/ListPlayGround.mxml
> @@ -50,7 +50,7 @@ limitations under the License.
>
>                         public function removeAllData():void
>                         {
> -                               simple.removeAll();
> +                               (list.dataProvider as
> ArrayList).removeAll();
>                         }
>                 ]]>
>         </fx:Script>
> diff --git
> a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> index 544b013..4a47ec8 100644
> ---
> a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> +++
> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
> @@ -163,11 +163,12 @@ package org.apache.royale.jewel.beads.itemRenderers
>                         if (!dp)
>                                 return;
>
> +                       // remove this and better add beads when needed
>                         // listen for individual items being added in the
> future.
> -                       var dped:IEventDispatcher = dp as IEventDispatcher;
> -                       dped.addEventListener(CollectionEvent.ITEM_ADDED,
> itemAddedHandler);
> -
>  dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
> -
>  dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
> +                       // var dped:IEventDispatcher = dp as
> IEventDispatcher;
> +                       //
> dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
> +                       //
> dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
> +                       //
> dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
>
>                         dataGroup.removeAllItemRenderers();
>
> @@ -192,37 +193,37 @@ package org.apache.royale.jewel.beads.itemRenderers
>                  * @royaleignorecoercion
> org.apache.royale.core.ISelectableItemRenderer
>                  * @royaleignorecoercion
> org.apache.royale.events.IEventDispatcher
>                  */
> -               protected function
> itemAddedHandler(event:CollectionEvent):void
> -               {
> -                       if (!dataProviderModel)
> -                               return;
> -                       var dp:ICollectionView =
> dataProviderModel.dataProvider as ICollectionView;
> -                       if (!dp)
> -                               return;
> +               // protected function
> itemAddedHandler(event:CollectionEvent):void
> +               // {
> +               //      if (!dataProviderModel)
> +               //              return;
> +               //      var dp:ICollectionView =
> dataProviderModel.dataProvider as ICollectionView;
> +               //      if (!dp)
> +               //              return;
>
> -                       var presentationModel:IListPresentationModel =
> _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
> -                       var ir:ISelectableItemRenderer =
> itemRendererFactory.createItemRenderer(dataGroup) as
> ISelectableItemRenderer;
> -                       labelField = dataProviderModel.labelField;
> +               //      var presentationModel:IListPresentationModel =
> _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
> +               //      var ir:ISelectableItemRenderer =
> itemRendererFactory.createItemRenderer(dataGroup) as
> ISelectableItemRenderer;
> +               //      labelField = dataProviderModel.labelField;
>
> -                       fillRenderer(event.index, event.item, ir,
> presentationModel);
> +               //      fillRenderer(event.index, event.item, ir,
> presentationModel);
>
> -                       // update the index values in the itemRenderers to
> correspond to their shifted positions.
> -                       var n:int = dataGroup.numElements;
> -                       for (var i:int = event.index; i < n; i++)
> -                       {
> -                               ir = dataGroup.getElementAt(i) as
> ISelectableItemRenderer;
> -                               ir.index = i;
> +               //      // update the index values in the itemRenderers to
> correspond to their shifted positions.
> +               //      var n:int = dataGroup.numElements;
> +               //      for (var i:int = event.index; i < n; i++)
> +               //      {
> +               //              ir = dataGroup.getElementAt(i) as
> ISelectableItemRenderer;
> +               //              ir.index = i;
>
> -                               // could let the IR know its index has
> been changed (eg, it might change its
> -                               // UI based on the index). Instead (PAYG),
> allow another bead to detect
> -                               // this event and do this as not every IR
> will need to be updated.
> -                               //var ubase:UIItemRendererBase = ir as
> UIItemRendererBase;
> -                               //if (ubase) ubase.updateRenderer()
> -                       }
> +               //              // could let the IR know its index has
> been changed (eg, it might change its
> +               //              // UI based on the index). Instead (PAYG),
> allow another bead to detect
> +               //              // this event and do this as not every IR
> will need to be updated.
> +               //              //var ubase:UIItemRendererBase = ir as
> UIItemRendererBase;
> +               //              //if (ubase) ubase.updateRenderer()
> +               //      }
>
> -                       (_strand as IEventDispatcher).dispatchEvent(new
> Event("itemsCreated"));
> -                       (_strand as IEventDispatcher).dispatchEvent(new
> Event("layoutNeeded"));
> -               }
> +               //      (_strand as IEventDispatcher).dispatchEvent(new
> Event("itemsCreated"));
> +               //      (_strand as IEventDispatcher).dispatchEvent(new
> Event("layoutNeeded"));
> +               // }
>
>                 /**
>                  * @private
> @@ -231,52 +232,52 @@ package org.apache.royale.jewel.beads.itemRenderers
>                  * @royaleignorecoercion
> org.apache.royale.core.ISelectableItemRenderer
>                  * @royaleignorecoercion
> org.apache.royale.events.IEventDispatcher
>                  */
> -               protected function
> itemRemovedHandler(event:CollectionEvent):void
> -               {
> -                       if (!dataProviderModel)
> -                               return;
> -                       var dp:ICollectionView =
> dataProviderModel.dataProvider as ICollectionView;
> -                       if (!dp)
> -                               return;
> +               // protected function
> itemRemovedHandler(event:CollectionEvent):void
> +               // {
> +               //      if (!dataProviderModel)
> +               //              return;
> +               //      var dp:ICollectionView =
> dataProviderModel.dataProvider as ICollectionView;
> +               //      if (!dp)
> +               //              return;
>
> -                       var ir:ISelectableItemRenderer =
> dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> -                       dataGroup.removeItemRenderer(ir);
> +               //      var ir:ISelectableItemRenderer =
> dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> +               //      dataGroup.removeItemRenderer(ir);
>
> -                       // adjust the itemRenderers' index to adjust for
> the shift
> -                       var n:int = dataGroup.numElements;
> -                       for (var i:int = event.index; i < n; i++)
> -                       {
> -                               ir = dataGroup.getElementAt(i) as
> ISelectableItemRenderer;
> -                               ir.index = i;
> +               //      // adjust the itemRenderers' index to adjust for
> the shift
> +               //      var n:int = dataGroup.numElements;
> +               //      for (var i:int = event.index; i < n; i++)
> +               //      {
> +               //              ir = dataGroup.getElementAt(i) as
> ISelectableItemRenderer;
> +               //              ir.index = i;
>
> -                               // could let the IR know its index has
> been changed (eg, it might change its
> -                               // UI based on the index). Instead (PAYG),
> allow another bead to detect
> -                               // this event and do this as not every IR
> will need to be updated.
> -                               //var ubase:UIItemRendererBase = ir as
> UIItemRendererBase;
> -                               //if (ubase) ubase.updateRenderer()
> -                       }
> +               //              // could let the IR know its index has
> been changed (eg, it might change its
> +               //              // UI based on the index). Instead (PAYG),
> allow another bead to detect
> +               //              // this event and do this as not every IR
> will need to be updated.
> +               //              //var ubase:UIItemRendererBase = ir as
> UIItemRendererBase;
> +               //              //if (ubase) ubase.updateRenderer()
> +               //      }
>
> -                       (_strand as IEventDispatcher).dispatchEvent(new
> Event("layoutNeeded"));
> -               }
> +               //      (_strand as IEventDispatcher).dispatchEvent(new
> Event("layoutNeeded"));
> +               // }
>
>                 /**
>                  * @private
>                  * @royaleignorecoercion
> org.apache.royale.collections.ICollectionView
>                  * @royaleignorecoercion
> org.apache.royale.core.ISelectableItemRenderer
>                  */
> -               protected function
> itemUpdatedHandler(event:CollectionEvent):void
> -               {
> -                       if (!dataProviderModel)
> -                               return;
> -                       var dp:ICollectionView =
> dataProviderModel.dataProvider as ICollectionView;
> -                       if (!dp)
> -                               return;
> +               // protected function
> itemUpdatedHandler(event:CollectionEvent):void
> +               // {
> +               //      if (!dataProviderModel)
> +               //              return;
> +               //      var dp:ICollectionView =
> dataProviderModel.dataProvider as ICollectionView;
> +               //      if (!dp)
> +               //              return;
>
> -                       // update the given renderer with (possibly) new
> information so it can change its
> -                       // appearence or whatever.
> -                       var ir:ISelectableItemRenderer =
> dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> -                       setData(ir, event.item, event.index);
> -               }
> +               //      // update the given renderer with (possibly) new
> information so it can change its
> +               //      // appearence or whatever.
> +               //      var ir:ISelectableItemRenderer =
> dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
> +               //      setData(ir, event.item, event.index);
> +               // }
>
>                 /**
>                  * @private
> 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 da09088..e064583 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
> @@ -176,11 +176,13 @@ package org.apache.royale.jewel.beads.itemRenderers
>                         if (!dp)
>                                 return;
>
> +                       // remove this and better add beads when needed
>                         // listen for individual items being added in the
> future.
> -                       var dped:IEventDispatcher = dp as IEventDispatcher;
> -                       dped.addEventListener(CollectionEvent.ITEM_ADDED,
> itemAddedHandler);
> -
>  dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
> -
>  dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
> +                       // var dped:IEventDispatcher = dp as
> IEventDispatcher;
> +                       //
> dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
> +                       //
> dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
> +                       //
> dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
> +
>
>              // THEAD - remove header items
>                         removeElements(view.thead);
> @@ -207,6 +209,7 @@ package org.apache.royale.jewel.beads.itemRenderers
>
>                                 if(column.itemRenderer != null)
>                      {
> +                                               trace("create ir: " +
> column.itemRenderer);
>                          ir = column.itemRenderer.newInstance() as
> ITextItemRenderer;
>                      } else
>                      {
> @@ -324,9 +327,9 @@ package org.apache.royale.jewel.beads.itemRenderers
>                  * @royaleignorecoercion
> org.apache.royale.core.ISelectableItemRenderer
>                  * @royaleignorecoercion
> org.apache.royale.events.IEventDispatcher
>                  */
> -               protected function
> itemAddedHandler(event:CollectionEvent):void
> -               {
> -               }
> +               // protected function
> itemAddedHandler(event:CollectionEvent):void
> +               // {
> +               // }
>
>                 /**
>                  * @private
> @@ -335,17 +338,17 @@ package org.apache.royale.jewel.beads.itemRenderers
>                  * @royaleignorecoercion
> org.apache.royale.core.ISelectableItemRenderer
>                  * @royaleignorecoercion
> org.apache.royale.events.IEventDispatcher
>                  */
> -               protected function
> itemRemovedHandler(event:CollectionEvent):void
> -               {
> -               }
> +               // protected function
> itemRemovedHandler(event:CollectionEvent):void
> +               // {
> +               // }
>
>                 /**
>                  * @private
>                  * @royaleignorecoercion
> org.apache.royale.collections.ICollectionView
>                  * @royaleignorecoercion
> org.apache.royale.core.ISelectableItemRenderer
>                  */
> -               protected function
> itemUpdatedHandler(event:CollectionEvent):void
> -               {
> -               }
> +               // protected function
> itemUpdatedHandler(event:CollectionEvent):void
> +               // {
> +               // }
>      }
>  }
> \ No newline at end of file
>
>