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

aharui 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 028a621  some improvements to item renderers and editors
028a621 is described below

commit 028a621ba1a6a12d06650268c9c7ebad622436ae
Author: Alex Harui <[email protected]>
AuthorDate: Thu Mar 12 22:11:22 2020 -0700

    some improvements to item renderers and editors
---
 .../src/main/royale/mx/controls/AdvancedDataGrid.as        | 14 ++++++++++----
 .../MXRoyale/src/main/royale/mx/controls/Button.as         |  9 ++++++++-
 .../projects/MXRoyale/src/main/royale/mx/controls/Label.as |  8 +++++++-
 .../projects/MXRoyale/src/main/royale/mx/core/Container.as |  2 +-
 .../royale/spark/components/supportClasses/GroupBase.as    |  4 ++--
 .../MXAdvancedDataGridItemRenderer.as                      |  8 ++++++--
 6 files changed, 34 insertions(+), 11 deletions(-)

diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as
index af71475..0e070a7 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as
@@ -86,6 +86,7 @@ package mx.controls
     import org.apache.royale.core.IDataGrid;
     import org.apache.royale.core.IDataGridModel;
     import org.apache.royale.core.IDataGridPresentationModel;
+       import org.apache.royale.core.IItemRenderer;
     import org.apache.royale.core.IItemRendererOwnerView;
     import org.apache.royale.core.IParent;
     import org.apache.royale.core.IUIBase;
@@ -2415,8 +2416,13 @@ public class AdvancedDataGrid extends AdvancedListBase 
implements IDataGrid
      *  @private
      *
      */
-    /* override protected function 
mouseEventToItemRenderer(event:MouseEvent):IListItemRenderer
+    override protected function 
mouseEventToItemRenderer(event:MouseEvent):IItemRenderer
     {
+               if (itemEditorInstance && itemEditorInstance.owns(event.target 
as IUIBase))
+                       return null;
+                       
+               return super.mouseEventToItemRenderer(event);
+               /*
         if(!columnGrouping)
         {
             return super.mouseEventToItemRenderer(event);
@@ -2447,8 +2453,8 @@ public class AdvancedDataGrid extends AdvancedListBase 
implements IDataGrid
 
             return r == itemEditorInstance ? null : r;
 
-        }
-    } */
+        }*/
+    }
 
     /**
      *  @private
@@ -10397,7 +10403,7 @@ public class AdvancedDataGrid extends AdvancedListBase 
implements IDataGrid
 
         // get the actual references for the column, row, and item
         var item:IListItemRenderer;
-        if (columns[actualRowIndex] && 
getListItem(actualRowIndex,actualColIndex))
+        if (columns[actualColIndex] && getListItem(actualRowIndex, 
actualColIndex))
             item = getListItem(actualRowIndex,actualColIndex);
         if (!item)
         {
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Button.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Button.as
index 1c925dc..69121a0 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Button.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Button.as
@@ -429,6 +429,9 @@ public class Button extends UIComponent implements 
IDataRenderer, IListItemRende
                return _data;
        }
        
+       private var bindingAdded:Boolean;
+       
+       
        /**
         *  @private
         */
@@ -437,7 +440,11 @@ public class Button extends UIComponent implements 
IDataRenderer, IListItemRende
         var newSelected:*;
         var newLabel:*;
 
-               addBead(new ItemRendererDataBinding());
+               if (!bindingAdded)
+               {
+                       addBead(new ItemRendererDataBinding());
+                       bindingAdded = true;
+               }
                dispatchEvent(new Event("initBindings"));
                
         _data = value;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Label.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Label.as
index c66eaa4..ffa5330 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Label.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Label.as
@@ -416,6 +416,8 @@ public class Label extends UIComponent
         return _data;
     }
 
+       private var bindingAdded:Boolean;
+       
     /**
      *  @private
      */
@@ -424,7 +426,11 @@ public class Label extends UIComponent
         var newText:*;
 
                _data = value;
-               addBead(new ItemRendererDataBinding());
+               if (!bindingAdded)
+               {
+                       addBead(new ItemRendererDataBinding());
+                       bindingAdded = true;
+               }
                dispatchEvent(new Event("initBindings"));
                
         if (_listData)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/Container.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/core/Container.as
index ae11c35..b8b875f 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/Container.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/Container.as
@@ -825,7 +825,7 @@ public class Container extends UIComponent
     {
         super.createChildren();
         
-        if (getBeadByType(DataBindingBase) == null)
+        if (getBeadByType(DataBindingBase) == null && mxmlDocument == this)
             addBead(new ContainerDataBinding());
 
         dispatchEvent(new Event("initBindings"));
diff --git 
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/GroupBase.as
 
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/GroupBase.as
index 46eb68b..6367276 100644
--- 
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/GroupBase.as
+++ 
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/GroupBase.as
@@ -55,7 +55,7 @@ import org.apache.royale.events.Event;
 import org.apache.royale.events.ValueEvent;
 import org.apache.royale.geom.Point;
 import org.apache.royale.utils.MXMLDataInterpreter;
-import org.apache.royale.utils.loadBeadFromValuesManager;
+import org.apache.royale.utils.loadBeadFromValuesManager;
 
 //import spark.utils.FTETextUtil;
 //import spark.utils.MaskUtil;
@@ -1219,7 +1219,7 @@ public class GroupBase extends UIComponent implements 
ILayoutParent, IContainer,
         
         super.createChildren();
         
-        if (getBeadByType(DataBindingBase) == null)
+        if (getBeadByType(DataBindingBase) == null && mxmlDocument == this)
             addBead(new ContainerDataBinding());
         
         dispatchEvent(new Event("initBindings"));
diff --git 
a/frameworks/projects/SparkRoyale/src/main/royale/spark/controls/advancedDataGridClasses/MXAdvancedDataGridItemRenderer.as
 
b/frameworks/projects/SparkRoyale/src/main/royale/spark/controls/advancedDataGridClasses/MXAdvancedDataGridItemRenderer.as
index 0066e4f..57d6080 100644
--- 
a/frameworks/projects/SparkRoyale/src/main/royale/spark/controls/advancedDataGridClasses/MXAdvancedDataGridItemRenderer.as
+++ 
b/frameworks/projects/SparkRoyale/src/main/royale/spark/controls/advancedDataGridClasses/MXAdvancedDataGridItemRenderer.as
@@ -82,10 +82,14 @@ public class MXAdvancedDataGridItemRenderer extends 
ItemRenderer implements ILis
     {
         super();
        // focusEnabled = false;
-               addBead(new ItemRendererDataBinding());
-               dispatchEvent(new Event("initBindings"));
     }
     
+       override protected function createChildren():void
+       {
+               addBead(new ItemRendererDataBinding());
+               super.createChildren();
+       }
+       
     //----------------------------------
     //  listData
     //----------------------------------

Reply via email to