You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2019/11/13 07:33:25 UTC

[royale-asjs] branch develop updated (2cb71e1 -> 73457e2)

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

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


    from 2cb71e1  canvas resize must propagate layout to children
     new 8959923  fix invisible columns.  Fixes #557
     new 73457e2  try a different virtual scrolling trick.  Should fix #554

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../AdvancedDataGridColumn.as                      |  3 ++
 .../mx/controls/beads/AdvancedDataGridView.as      | 24 +++++++++++--
 .../beads/layouts/AdvancedDataGridLayout.as        | 41 +++++++++-------------
 3 files changed, 42 insertions(+), 26 deletions(-)


[royale-asjs] 01/02: fix invisible columns. Fixes #557

Posted by ah...@apache.org.
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

commit 8959923bba8087d43f6bd185d0ae5fc9da6168c9
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Nov 12 22:58:59 2019 -0800

    fix invisible columns.  Fixes #557
---
 .../AdvancedDataGridColumn.as                      |  3 +++
 .../mx/controls/beads/AdvancedDataGridView.as      | 24 ++++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridColumn.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridColumn.as
index 7e14643..3faccd6 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridColumn.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridColumn.as
@@ -23,6 +23,7 @@ package mx.controls.advancedDataGridClasses
 /* import flash.display.DisplayObject;
 import flash.events.Event;
  */
+import org.apache.royale.core.UIBase;
 import org.apache.royale.events.Event;
 
 import mx.controls.AdvancedDataGrid; //BaseEx;
@@ -300,6 +301,8 @@ public class AdvancedDataGridColumn extends DataGridColumn
      */
     mx_internal var owner:AdvancedDataGrid; //BaseEx;
 
+    mx_internal var list:UIBase; //BaseEx;
+    
     /**
      *  @private
      */
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
index c3bcfe7..b5fe4aa 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
@@ -33,6 +33,9 @@ package mx.controls.beads
     import mx.controls.advancedDataGridClasses.AdvancedDataGridColumnList;
     import mx.controls.AdvancedDataGrid;
 	
+    import mx.core.mx_internal;
+    use namespace mx_internal;
+
     /**
      *  The AlertView class.
      * 
@@ -73,15 +76,19 @@ package mx.controls.beads
             var sharedModel:IDataGridModel = (host.model as IDataGridModel);
             
             var visibleColumns:Array = [];
-            for (var i:int=0; i < columnLists.length; i++)
+            columnLists.length = 0;
+            for (var i:int=0; i < sharedModel.columns.length; i++)
             {
-                var list:AdvancedDataGridColumnList = columnLists[i] as AdvancedDataGridColumnList;
+                var list:AdvancedDataGridColumnList = (sharedModel.columns[i] as AdvancedDataGridColumn).list as AdvancedDataGridColumnList;
                 var adgColumnListModel:DataGridColumnICollectionViewModel = list.getBeadByType(DataGridColumnICollectionViewModel) as DataGridColumnICollectionViewModel;
                 adgColumnListModel.columnIndex = i;
                 list.visible = (sharedModel.columns[i] as AdvancedDataGridColumn).visible;
                 list.addEventListener(ItemClickEvent.ITEM_CLICK, itemClickHandler);
                 if (list.visible)
+                {
                     visibleColumns.push(sharedModel.columns[i]);
+                    columnLists.push(list);
+                }
             }
             (header as DataGridButtonBar).dataProvider = visibleColumns;
             
@@ -92,5 +99,18 @@ package mx.controls.beads
         {
             host.dispatchEvent(event);
         }
+        
+        override protected function createLists():void
+        {
+            super.createLists();
+            var host:IDataGrid = _strand as IDataGrid;
+            var sharedModel:IDataGridModel = (host.model as IDataGridModel);
+            
+            for (var i:int=0; i < sharedModel.columns.length; i++)
+            {
+                (sharedModel.columns[i] as AdvancedDataGridColumn).list = columnLists[i];
+            }
+        }
+
 	}
 }


[royale-asjs] 02/02: try a different virtual scrolling trick. Should fix #554

Posted by ah...@apache.org.
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

commit 73457e254b9872c4d8921fffef9e027cbe2ad836
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Nov 12 23:33:05 2019 -0800

    try a different virtual scrolling trick.  Should fix #554
---
 .../beads/layouts/AdvancedDataGridLayout.as        | 41 +++++++++-------------
 1 file changed, 17 insertions(+), 24 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
index 6bf8694..2f2d660 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
@@ -63,10 +63,7 @@ package mx.controls.beads.layouts
         }
         
         COMPILE::JS
-        protected var topSpacer:HTMLDivElement;
-        
-        COMPILE::JS
-        protected var bottomSpacer:HTMLDivElement;
+        protected var spacer:HTMLDivElement;
         
         COMPILE::JS
         private var listening:Boolean;
@@ -108,6 +105,22 @@ package mx.controls.beads.layouts
                 var topSpacerHeight:Number = Math.floor(listArea.element.scrollTop / presentationModel.rowHeight)
                     * presentationModel.rowHeight;
                 }
+                var model:IDataGridModel = uiHost.model as IDataGridModel;
+                if (model.dataProvider && model.dataProvider.length)
+                {
+                    var totalHeight:Number = model.dataProvider.length * presentationModel.rowHeight;
+                    COMPILE::JS
+                    {
+                        if (!spacer)
+                        {
+                            spacer = document.createElement("div") as HTMLDivElement;
+                            listArea.element.appendChild(spacer);
+                        }
+                        // the lists are "absolute" so they float over the spacer
+                        spacer.style.height = totalHeight.toString() + "px";
+                        topSpacerHeight = Math.min(topSpacerHeight, totalHeight - useHeight);
+                    }
+                }
                 for (var i:int = 0; i < n; i++)
                 {
                     var columnList:UIBase = displayedColumns[i] as UIBase;
@@ -119,26 +132,6 @@ package mx.controls.beads.layouts
                         columnList.dispatchEvent(new Event("layoutNeeded"));
                     }
                 }
-                var model:IDataGridModel = uiHost.model as IDataGridModel;
-                if (model.dataProvider && model.dataProvider.length)
-                {
-                    var totalHeight:Number = model.dataProvider.length * presentationModel.rowHeight;
-                    COMPILE::JS
-                    {
-                        if (!topSpacer)
-                        {
-                            topSpacer = document.createElement("div") as HTMLDivElement;
-                            listArea.element.insertBefore(topSpacer, (listArea as UIBase).internalChildren()[0]);
-                        }
-                        topSpacer.style.height = topSpacerHeight.toString() + "px";
-                        if (!bottomSpacer)
-                        {
-                            bottomSpacer = document.createElement("div") as HTMLDivElement;
-                            listArea.element.appendChild(bottomSpacer);
-                        }
-                        bottomSpacer.style.height = (totalHeight - useHeight - topSpacerHeight).toString() + "px";  
-                    }
-                }
             }            
             return retval;
         }