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 b711188  jewel-datagrid: add 
RemoveDataGridItemRendererForArrayListData bead used to remove a whole item 
record (row) from the DataGrid
b711188 is described below

commit b711188f292b895dcaae0544a427008d12a2ad55
Author: Carlos Rovira <[email protected]>
AuthorDate: Sun Jan 12 18:54:37 2020 +0100

    jewel-datagrid: add RemoveDataGridItemRendererForArrayListData bead used to 
remove a whole item record (row) from the DataGrid
---
 .../src/main/royale/DataGridPlayGround.mxml        |  12 +-
 .../Jewel/src/main/resources/jewel-manifest.xml    |   1 +
 .../AddDataGridItemRendererForArrayListData.as     | 168 ---------------------
 .../RemoveDataGridItemRendererForArrayListData.as  |  74 +++++++++
 .../RemoveListItemRendererForArrayListData.as      |  12 +-
 5 files changed, 92 insertions(+), 175 deletions(-)

diff --git 
a/examples/royale/TourDeJewel/src/main/royale/DataGridPlayGround.mxml 
b/examples/royale/TourDeJewel/src/main/royale/DataGridPlayGround.mxml
index 13cb9d1..38710bf 100644
--- a/examples/royale/TourDeJewel/src/main/royale/DataGridPlayGround.mxml
+++ b/examples/royale/TourDeJewel/src/main/royale/DataGridPlayGround.mxml
@@ -50,15 +50,15 @@ limitations under the License.
                        grid.dataProvider = data;
                }
 
-               private function addData():void
+               private function addRow():void
                {
                        var product:Product = new Product("xx100","New 
Item",44,10,"assets/smallbluerect.jpg");
                        productModel.productList.addItem(product);
                }
                
-               private function removeData():void
+               private function removeFirstRow():void
                {
-                       productModel.productList.removeItemAt(2);
+                       productModel.productList.removeItemAt(0);
                }
 
                [Bindable]
@@ -121,15 +121,15 @@ limitations under the License.
                                        </j:columns>
                                        <j:beads>
                                                
<j:AddDataGridItemRendererForArrayListData/>
+                                               
<j:RemoveDataGridItemRendererForArrayListData/>
                                        </j:beads>
                                </j:DataGrid>
 
                                <j:Label id="datagrid2_lb" text="DataGrid 
selection will be shown here"/>
 
                                <j:HGroup gap="3">
-                                       <!-- <j:Button text="Refresh Grid" 
click="refreshGrid(datagrid2, (productModel as ProductModel).productList)"/> -->
-                                       <j:Button text="Add Row" 
click="addData()" emphasis="primary"/>
-                                       <j:Button text="Remove Row" 
click="removeData()"/>
+                                       <j:Button text="Add Row" 
click="addRow()" emphasis="primary"/>
+                                       <j:Button text="Remove First Row" 
click="removeFirstRow()"/>
                                </j:HGroup>
                        </j:Card>
                </j:GridCell>
diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml 
b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
index 6d8614d..a8987c0 100644
--- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
+++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
@@ -213,6 +213,7 @@
     <component id="CollectionChangeUpdateForArrayListData" 
class="org.apache.royale.jewel.beads.itemRenderers.CollectionChangeUpdateForArrayListData"
 />
     
     <component id="AddDataGridItemRendererForArrayListData" 
class="org.apache.royale.jewel.beads.itemRenderers.AddDataGridItemRendererForArrayListData"
 />
+    <component id="RemoveDataGridItemRendererForArrayListData" 
class="org.apache.royale.jewel.beads.itemRenderers.RemoveDataGridItemRendererForArrayListData"
 />
 
     <component id="AddTableRowForArrayListData" 
class="org.apache.royale.jewel.beads.itemRenderers.AddTableRowForArrayListData" 
/>
     <component id="RemoveTableRowForArrayListData" 
class="org.apache.royale.jewel.beads.itemRenderers.RemoveTableRowForArrayListData"
 />
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddDataGridItemRendererForArrayListData.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddDataGridItemRendererForArrayListData.as
index 4e67575..39e58c0 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddDataGridItemRendererForArrayListData.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/AddDataGridItemRendererForArrayListData.as
@@ -71,173 +71,5 @@ package org.apache.royale.jewel.beads.itemRenderers
                                // 
IEventDispatcher(list).addEventListener("initComplete", initComplete);
             }
                }
-
-               /**
-                *  finish setup
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.9.7
-                */
-               // protected function initComplete(event:Event):void
-               // {
-               //      _dataProviderModel = 
_strand.getBeadByType(ISelectionModel) as ISelectionModel;
-                       
-               //      for (var i:int=0; i < view.columnLists.length; i++)
-        //     {
-               //              var list:IDataGridColumnList = 
view.columnLists[i] as IDataGridColumnList;
-               //              
IEventDispatcher(list).removeEventListener("initComplete", initComplete);
-                       
-               //              labelFields[list] = 
_dataProviderModel.labelField;
-               //      }
-
-               //      
dataProviderModel.addEventListener("dataProviderChanged", 
dataProviderChangeHandler);
-
-               //      // invoke now in case "dataProviderChanged" has already 
been dispatched.
-               //      dataProviderChangeHandler(null);
-               // }
-
-               // private var dp:IEventDispatcher;
-               /**
-                * @private
-                */
-               // protected function 
dataProviderChangeHandler(event:Event):void
-               // {
-               //      if(dp)
-               //      {
-               //              
dp.removeEventListener(CollectionEvent.ITEM_ADDED, handleItemAdded);
-               //      }
-               //      dp = dataProviderModel.dataProvider as IEventDispatcher;
-               //      if (!dp)
-               //              return;
-
-               //      // listen for individual items being added in the 
future.
-               //      dp.addEventListener(CollectionEvent.ITEM_ADDED, 
handleItemAdded);
-               // }
-
-               /**
-                *  Handles the itemAdded event by adding the item.
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.9.7
-                *  @royaleignorecoercion 
org.apache.royale.core.ISelectableItemRenderer
-                *  @royaleignorecoercion 
org.apache.royale.events.IEventDispatcher
-         *  @royaleignorecoercion org.apache.royale.core.ISelectionModel
-                */
-               // protected function 
handleItemAdded(event:CollectionEvent):void
-               // {
-        //     var presentationModel:IDataGridPresentationModel = 
_strand.getBeadByType(IDataGridPresentationModel) as IDataGridPresentationModel;
-        //     var ir:ISelectableItemRenderer = 
itemRendererFactory.createItemRenderer(itemRendererParent) as 
ISelectableItemRenderer;
-
-        //     fillRenderer(event.index, event.item, ir, presentationModel);
-
-
-               //      // update the index values in the itemRenderers to 
correspond to their shifted positions.
-               //      var n:int = itemRendererParent.numItemRenderers;
-               //      for (var i:int = event.index; i < n; i++)
-               //      {
-               //              ir = itemRendererParent.getItemRendererAt(i) as 
ISelectableItemRenderer;
-               //              ir.index = i;
-               //      }
-        //     //adjust the model's selectedIndex, if applicable
-               //      if (event.index <= 
ISelectionModel(_dataProviderModel).selectedIndex) {
-        //         ISelectionModel(_dataProviderModel).selectedIndex = 
ISelectionModel(_dataProviderModel).selectedIndex + 1;
-               //      }
-
-               //      (_strand as IEventDispatcher).dispatchEvent(new 
Event("layoutNeeded"));
-               // }
-
-               // private var _dataProviderModel: IDataProviderModel;
-
-               /**
-                *  The org.apache.royale.core.IDataProviderModel that contains 
the
-                *  data source.
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.9.7
-                */
-               // public function get dataProviderModel(): IDataProviderModel
-               // {
-               //      if (_dataProviderModel == null) {
-               //              _dataProviderModel = 
_strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
-               //      }
-               //      return _dataProviderModel;
-               // }
-
-               // private var _itemRendererParent: IItemRendererParent;
-
-               /**
-                *  The org.apache.royale.core.IItemRendererParent used
-                *  to generate instances of item renderers.
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.9.7
-                */
-               // public function get itemRendererParent():IItemRendererParent
-               // {
-               //      if (_itemRendererParent == null) {
-               //              var view:IListView = (_strand as 
IStrandWithModelView).view as IListView;
-               //              _itemRendererParent = view.dataGroup;
-               //      }
-               //      return _itemRendererParent;
-               // }
-
-        // private var _itemRendererFactory:IItemRendererClassFactory;
-
-        /**
-         *  The org.apache.royale.core.IItemRendererClassFactory used
-         *  to generate instances of item renderers.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.7
-         */
-        // public function get itemRendererFactory():IItemRendererClassFactory
-        // {
-        //     if(!_itemRendererFactory)
-        //         _itemRendererFactory = 
loadBeadFromValuesManager(IItemRendererClassFactory, 
"iItemRendererClassFactory", _strand) as IItemRendererClassFactory;
-
-        //     return _itemRendererFactory;
-        // }
-
-        /**
-         * @private
-         */
-        // protected function fillRenderer(index:int,
-        //                                 item:Object,
-        //                                 
itemRenderer:ISelectableItemRenderer,
-        //                                 
presentationModel:IListPresentationModel):void
-        // {
-        //     itemRendererParent.addItemRendererAt(itemRenderer, index);
-
-        //     itemRenderer.labelField = labelField;
-
-        //     if (presentationModel) {
-        //         // var style:SimpleCSSStyles = new SimpleCSSStyles();
-        //         // style.marginBottom = 
presentationModel.separatorThickness;
-        //         // UIBase(itemRenderer).style = style;
-        //         UIBase(itemRenderer).height = presentationModel.rowHeight;
-        //         //UIBase(itemRenderer).percentWidth = 100;
-        //     }
-
-        //     setData(itemRenderer, item, index);
-        // }
-
-        // /**
-        //  * @private
-        //  */
-        // protected function setData(itemRenderer:ISelectableItemRenderer, 
data:Object, index:int):void
-        // {
-        //     itemRenderer.index = index;
-        //     itemRenderer.data = data;
-        // }
        }
 }
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveDataGridItemRendererForArrayListData.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveDataGridItemRendererForArrayListData.as
new file mode 100644
index 0000000..b12d4d3
--- /dev/null
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveDataGridItemRendererForArrayListData.as
@@ -0,0 +1,74 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.jewel.beads.itemRenderers
+{
+       import org.apache.royale.core.IBead;
+       import org.apache.royale.core.IStrand;
+       import org.apache.royale.core.UIBase;
+       import org.apache.royale.jewel.beads.views.DataGridView;
+       import 
org.apache.royale.jewel.supportClasses.datagrid.IDataGridColumnList;
+
+    /**
+        *  Handles the removal of an itemRenderer in a DataGrid component once 
the corresponding datum has been added
+        *  from the IDataProviderModel.
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10.2
+        *  @playerversion AIR 2.6
+        *  @productversion Royale 0.9.7
+        */
+       public class RemoveDataGridItemRendererForArrayListData implements IBead
+       {
+               /**
+                * Constructor
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.7
+                */
+               public function RemoveDataGridItemRendererForArrayListData()
+               {
+               }
+               
+               private var view:DataGridView;
+
+               protected var _strand:IStrand;
+               /**
+                * @copy org.apache.royale.core.IStrand
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.7
+                */
+               public function set strand(value:IStrand):void
+               {
+                       _strand = value;
+                       view = UIBase(_strand).view as DataGridView;
+            for (var i:int=0; i < view.columnLists.length; i++)
+            {
+                var list:IDataGridColumnList = view.columnLists[i] as 
IDataGridColumnList;
+                               var 
removeItemBead:RemoveListItemRendererForArrayListData = new 
RemoveListItemRendererForArrayListData();
+                               list.addBead(removeItemBead);
+                               removeItemBead.setUp();
+            }
+               }
+       }
+}
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveListItemRendererForArrayListData.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveListItemRendererForArrayListData.as
index 978461a..bfde9b5 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveListItemRendererForArrayListData.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/RemoveListItemRendererForArrayListData.as
@@ -54,7 +54,6 @@ package org.apache.royale.jewel.beads.itemRenderers
                }
 
                private var _strand:IStrand;
-
                /**
                 *  @copy org.apache.royale.core.IStrand
                 *
@@ -79,6 +78,17 @@ package org.apache.royale.jewel.beads.itemRenderers
                 */
                protected function initComplete(event:Event):void
                {
+                       setUp();
+               }
+               
+               /**
+                * This method is called when List is composed to conform a 
DataGrid
+                * In that case DataGrid uses 
AddDataGridItemRendererForArrayListData,
+                * that add this bead to the each column List and calls this 
method at
+                * initialization time.
+                */
+               public function setUp():void
+               {
                        
IEventDispatcher(_strand).removeEventListener("initComplete", initComplete);
 
                        _dataProviderModel = 
_strand.getBeadByType(ISelectionModel) as ISelectionModel;

Reply via email to