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

hugoferreira 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 4075123  VirtualDataGrid is now able to scroll on the full data
     new f9a6e8d  Merge branch 'develop' of 
https://github.com/apache/royale-asjs into develop
4075123 is described below

commit 4075123060b6ec55f1b236b293ce9461e0e1c42b
Author: Hugo Ferreira <[email protected]>
AuthorDate: Sun Nov 29 22:13:24 2020 +0000

    VirtualDataGrid is now able to scroll on the full data
    
    Know issues: The scroll shows on all columns and should be visible only on 
the last column to emulate the normal DataGrid
---
 .../projects/Jewel/src/main/resources/defaults.css | 12 +++-
 .../Jewel/src/main/resources/jewel-manifest.xml    |  2 +
 .../beads/layouts/VirtualDataGridListAreaLayout.as | 71 ++++++++++++++++++++++
 .../datagrid/VirtualDataGridListArea.as            | 32 ++++++++++
 .../Jewel/src/main/sass/components/_datagrid.sass  | 22 ++++---
 5 files changed, 129 insertions(+), 10 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css 
b/frameworks/projects/Jewel/src/main/resources/defaults.css
index ecbc6a4..fb044fd 100644
--- a/frameworks/projects/Jewel/src/main/resources/defaults.css
+++ b/frameworks/projects/Jewel/src/main/resources/defaults.css
@@ -558,14 +558,22 @@ j|VirtualDataGrid {
   columnClass: 
ClassReference("org.apache.royale.jewel.supportClasses.datagrid.VirtualDataGridColumnList");
 }
 
+j|VirtualDataGridListArea {
+  IBeadView: ClassReference("org.apache.royale.html.beads.ContainerView");
+  IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.HorizontalLayout");
+  listAreaClass: 
ClassReference("org.apache.royale.jewel.supportClasses.datagrid.VirtualDataGrid");
+  IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport");
+}
+
 j|VirtualDataGridColumnList {
+  IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.VirtualDataGridListAreaLayout");
   IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
   IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.DataGridItemRenderer");
   IItemRendererInitializer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataGridColumnListItemRendererInitializer");
   ISelectableItemRenderer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListSelectableItemRendererBead");
-  IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport");
+  IViewport: 
ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport");
 }
-
+  
 .jewel.datechooser .jewel.table {
   min-width: 324px;
   min-height: 364px;
diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml 
b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
index 6b30ee3..19e21a7 100644
--- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
+++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
@@ -54,6 +54,8 @@
     <component id="DataGridButtonBar" 
class="org.apache.royale.jewel.supportClasses.datagrid.DataGridButtonBar"/>
     
     <component id="VirtualDataGrid" 
class="org.apache.royale.jewel.VirtualDataGrid"/>
+    <component id="VirtualDataGridListArea" 
class="org.apache.royale.jewel.supportClasses.datagrid.VirtualDataGridListArea"/>
+    <component id="VirtualDataGridListAreaLayout" 
class="org.apache.royale.jewel.beads.layouts.VirtualDataGridListAreaLayout"/>   
 
     <component id="VirtualDataGridColumnList" 
class="org.apache.royale.jewel.supportClasses.datagrid.VirtualDataGridColumnList"/>
     
     <component id="DataGridColumnLabelsChange" 
class="org.apache.royale.jewel.beads.controls.datagrid.DataGridColumnLabelsChange"/>
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/VirtualDataGridListAreaLayout.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/VirtualDataGridListAreaLayout.as
new file mode 100644
index 0000000..42df754
--- /dev/null
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/VirtualDataGridListAreaLayout.as
@@ -0,0 +1,71 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.layouts
+{
+    import org.apache.royale.events.Event;
+    import org.apache.royale.html.beads.IDataGridView;
+    import org.apache.royale.core.IDataGrid;
+    import org.apache.royale.jewel.Container;
+    import org.apache.royale.jewel.supportClasses.datagrid.IDataGridColumnList;
+        
+       /**
+        *  The VirtualDataGridListAreaLayout class is used for Jewel 
VirtualDataGrid
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10.2
+        *  @playerversion AIR 2.6
+        *  @productversion Royale 0.9.7
+        */
+       public class VirtualDataGridListAreaLayout extends 
VirtualListVerticalLayout
+       {
+               /**
+                *  Constructor.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.7
+         *  @royaleignorecoercion HTMLDivElement
+                */
+               public function VirtualDataGridListAreaLayout()
+               {
+                       super();
+               }
+
+        private function getListArea():Container
+        {
+            var datagrid:IDataGrid = (host as IDataGridColumnList).datagrid;
+            var view:IDataGridView = datagrid.getBeadByType(IDataGridView) as 
IDataGridView;
+            return view.listArea as Container;
+        }
+
+        override protected function scrollHandler(e:Event):void
+        {
+            super.scrollHandler(e);
+
+            var listArea:Container = getListArea();
+
+            for (var i:int = 0; i < listArea.numElements; i++)
+            {
+                if (listArea.getElementAt(i) != host)
+                    listArea.getElementAt(i).element.scrollTop = 
host.element.scrollTop;
+            }
+        }
+       }
+}
\ No newline at end of file
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/VirtualDataGridListArea.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/VirtualDataGridListArea.as
new file mode 100644
index 0000000..9e8966d
--- /dev/null
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/VirtualDataGridListArea.as
@@ -0,0 +1,32 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 "Licens"); 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.supportClasses.datagrid
+{
+    import org.apache.royale.jewel.Container;
+
+    public class VirtualDataGridListArea extends DataGridListArea
+    {
+        public function VirtualDataGridListArea()
+        {
+            super();
+
+                       typeNames = 'listarea';
+        }
+    }
+}
\ No newline at end of file
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass 
b/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass
index 30bb170..970c0c7 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass
@@ -84,14 +84,20 @@ j|DataGridColumnList
 j|DataGridButtonBar
     IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.DatagridHeaderRenderer")
 
-
 j|VirtualDataGrid
-    IBeadView: 
ClassReference("org.apache.royale.jewel.beads.views.VirtualDataGridView")
-    columnClass: 
ClassReference("org.apache.royale.jewel.supportClasses.datagrid.VirtualDataGridColumnList")
   
+  IBeadView: 
ClassReference("org.apache.royale.jewel.beads.views.VirtualDataGridView")
+  columnClass: 
ClassReference("org.apache.royale.jewel.supportClasses.datagrid.VirtualDataGridColumnList")
+
+j|VirtualDataGridListArea
+  IBeadView: ClassReference("org.apache.royale.html.beads.ContainerView")
+  IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.HorizontalLayout")
+  listAreaClass: 
ClassReference("org.apache.royale.jewel.supportClasses.datagrid.VirtualDataGrid")
+  IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport")
 
 j|VirtualDataGridColumnList
-    IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory")
-    IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.DataGridItemRenderer")
-    IItemRendererInitializer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataGridColumnListItemRendererInitializer")
-    ISelectableItemRenderer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListSelectableItemRendererBead")
-    IViewport: 
ClassReference("org.apache.royale.jewel.supportClasses.Viewport")
\ No newline at end of file
+  IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.VirtualDataGridListAreaLayout")
+  IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory")
+  IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.DataGridItemRenderer")
+  IItemRendererInitializer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataGridColumnListItemRendererInitializer")
+  ISelectableItemRenderer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListSelectableItemRendererBead")
+  IViewport: 
ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport")
\ No newline at end of file

Reply via email to