You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by hu...@apache.org on 2023/01/15 01:27:27 UTC

[royale-asjs] branch develop updated: Fix: The DataGridNavigateItems navigation issue

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 <hf...@solidsoft.pt>
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();
             }
         }
     }