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 6f2316a13f Fix: The DataGridNavigateItems navigation issue
6f2316a13f is described below

commit 6f2316a13f7dba8284af8da2f93dc6c870ab118b
Author: Hugo Ferreira <[email protected]>
AuthorDate: Sun Jan 15 01:27:14 2023 +0000

    Fix: The DataGridNavigateItems navigation issue
    
    The DataGridNavigateItems bead did not work on VirtualDataGrid after move 
to a new row not visible on the screen (out of the screen).
    Now it work perfectly: The VirtualDataGrid scrolls for new rows and the 
cursor continue until the end.
---
 .../controls/datagrid/DataGridNavigateItems.as     | 23 ++++++++++------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridNavigateItems.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridNavigateItems.as
index 7a605f5aee..c750174918 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridNavigateItems.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridNavigateItems.as
@@ -31,6 +31,8 @@ package org.apache.royale.jewel.beads.controls.datagrid
     import org.apache.royale.jewel.supportClasses.datagrid.IDataGridColumnList;
     import org.apache.royale.jewel.VirtualDataGrid;
     import 
org.apache.royale.jewel.supportClasses.datagrid.VirtualDataGridColumnList;
+    import org.apache.royale.jewel.beads.views.VirtualListView;
+    import org.apache.royale.jewel.beads.views.ListView;
 
        /**
         *  The DataGridNavigateItems bead class is a specialty bead that can 
be use with a Jewel DataGrid and VirtualDataGrid control
@@ -81,9 +83,9 @@ package org.apache.royale.jewel.beads.controls.datagrid
                 var selectedColumnIndex:int = 
dataGridView.columnLists.indexOf(selectedColumnList);
                 var dataGridItemRenderer:EditableDataGridItemRenderer;
                 if (dataGrid is VirtualDataGrid)
-                    dataGridItemRenderer = 
(dataGridView.columnLists[selectedColumnIndex] as 
VirtualDataGridColumnList).getElementAt((dataGrid as 
VirtualDataGrid).selectedIndex + 1) as EditableDataGridItemRenderer;
+                    dataGridItemRenderer = 
((dataGridView.columnLists[selectedColumnIndex] as 
VirtualDataGridColumnList).view as 
VirtualListView).getItemRendererForIndex((dataGrid as 
VirtualDataGrid).selectedIndex) as EditableDataGridItemRenderer;
                 else
-                    dataGridItemRenderer = 
(dataGridView.columnLists[selectedColumnIndex] as 
DataGridColumnList).getElementAt((dataGrid as DataGrid).selectedIndex) as 
EditableDataGridItemRenderer;
+                    dataGridItemRenderer = 
((dataGridView.columnLists[selectedColumnIndex] as DataGridColumnList).view as 
ListView).getItemRendererForIndex((dataGrid as DataGrid).selectedIndex) as 
EditableDataGridItemRenderer;
                 var dataProviderSize:int = ((dataGrid as 
DataGrid).dataProvider as ICollectionView).length;
 
                 dataGridItemRenderer.endEditMode();
@@ -102,17 +104,12 @@ package org.apache.royale.jewel.beads.controls.datagrid
                         selectedColumnIndex++;
                 }
 
-                       COMPILE::JS
-                       {
-                    setTimeout(function():void
-                    {
-                        if (dataGrid is VirtualDataGrid)
-                            dataGridItemRenderer = 
(dataGridView.columnLists[selectedColumnIndex] as 
VirtualDataGridColumnList).getElementAt((dataGrid as 
VirtualDataGrid).selectedIndex + 1) as EditableDataGridItemRenderer;
-                        else
-                            dataGridItemRenderer = 
(dataGridView.columnLists[selectedColumnIndex] as 
DataGridColumnList).getElementAt((dataGrid as DataGrid).selectedIndex) as 
EditableDataGridItemRenderer;
-                        dataGridItemRenderer.goToEditMode();
-                                   }, 1);
-                }
+                if (dataGrid is VirtualDataGrid)
+                    dataGridItemRenderer = 
((dataGridView.columnLists[selectedColumnIndex] as 
VirtualDataGridColumnList).view as 
VirtualListView).getItemRendererForIndex((dataGrid as 
VirtualDataGrid).selectedIndex) as EditableDataGridItemRenderer;
+                else
+                    dataGridItemRenderer = 
((dataGridView.columnLists[selectedColumnIndex] as DataGridColumnList).view as 
ListView).getItemRendererForIndex((dataGrid as DataGrid).selectedIndex) as 
EditableDataGridItemRenderer;
+
+                dataGridItemRenderer.goToEditMode();
             }
         }
     }

Reply via email to