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

harbs 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 f8e719f098 Only trigger events for nodes with children
f8e719f098 is described below

commit f8e719f098edcfa97a319afcbadb1ce29b9a1db9
Author: Harbs <[email protected]>
AuthorDate: Wed Dec 20 20:20:45 2023 +0200

    Only trigger events for nodes with children
---
 .../org/apache/royale/collections/FlattenedList.as | 90 +++++++++++-----------
 1 file changed, 46 insertions(+), 44 deletions(-)

diff --git 
a/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/FlattenedList.as
 
b/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/FlattenedList.as
index 646ada7109..1409971af4 100644
--- 
a/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/FlattenedList.as
+++ 
b/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/FlattenedList.as
@@ -23,34 +23,34 @@ package org.apache.royale.collections
        import org.apache.royale.events.Event;
        import org.apache.royale.events.EventDispatcher;
        import org.apache.royale.events.IEventDispatcher;
-    import org.apache.royale.collections.parsers.IInputParser;
-    import org.apache.royale.collections.converters.IItemConverter;
-    
-    
-    /**
-     *  The FlattenedList class takes a HierarchicalData object and "flattens" 
it
+       import org.apache.royale.collections.parsers.IInputParser;
+       import org.apache.royale.collections.converters.IItemConverter;
+       
+       
+       /**
+        *  The FlattenedList class takes a HierarchicalData object and 
"flattens" it
         *  using all of the open members.
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.6
-     *  @productversion Royale 0.0
-     * 
-     *  @royalesuppresspublicvarwarning
-     */
+        * 
+        *  @langversion 3.0
+        *  @playerversion Flash 10.2
+        *  @playerversion AIR 2.6
+        *  @productversion Royale 0.0
+        * 
+        *  @royalesuppresspublicvarwarning
+        */
        public class FlattenedList extends ArrayList
        {
                public var hdata:IHierarchicalData;
                public var openNodes:Array;
                
-        /**
-         *  Constructor.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
-         */
+               /**
+                *  Constructor.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.0
+                */
                public function FlattenedList(hdata:IHierarchicalData)
                {
                        super();
@@ -61,11 +61,11 @@ package org.apache.royale.collections
                
                /**
                 * Resets the list so that only the top root node is open.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.0
                 */
                public function reset():void
                {
@@ -92,11 +92,11 @@ package org.apache.royale.collections
                
                /**
                 * Returns true if the node has children nodes.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.0
                 */
                public function hasChildren(node:Object):Boolean
                {
@@ -105,11 +105,11 @@ package org.apache.royale.collections
                
                /**
                 * Returns true if the node is currently open.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.0
                 */
                public function isOpen(node:Object):Boolean
                {
@@ -118,11 +118,11 @@ package org.apache.royale.collections
                
                /**
                 * Opens the given node. The array data now contains more 
elements.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.0
                 */
                public function openNode(node:Object):void
                {
@@ -148,10 +148,11 @@ package org.apache.royale.collections
                 */
                public function closeNode(node:Object):void
                {
+                       var hasChildren:Boolean = hdata.hasChildren(node);
                        var i:int = openNodes.indexOf(node);
                        if (i != -1) {
                                
-                               if (hdata.hasChildren(node)) {
+                               if (hasChildren) {
                                        var children:Array = 
hdata.getChildren(node) as Array;
                                        var n:int = children.length;
                                        for (var j:int=0; j < n; j++) {
@@ -170,7 +171,8 @@ package org.apache.royale.collections
                                        super.removeItemAt(i--);
                                }
                        }
-                       updateNode(node);
+                       if(hasChildren)
+                               updateNode(node);
                }
                
                /**

Reply via email to