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