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 2020/01/10 20:50:05 UTC
[royale-asjs] branch develop updated: handle column overflow based
on horizontalScrollPolicy. Should fix #666
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
The following commit(s) were added to refs/heads/develop by this push:
new 86aa474 handle column overflow based on horizontalScrollPolicy. Should fix #666
86aa474 is described below
commit 86aa4748051c99301af350268c41be3d89ea977d
Author: Alex Harui <ah...@apache.org>
AuthorDate: Fri Jan 10 12:49:01 2020 -0800
handle column overflow based on horizontalScrollPolicy. Should fix #666
---
.../mx/controls/beads/DataGridColumnResizeBead.as | 8 +++-
.../mx/controls/beads/layouts/DataGridLayout.as | 55 +++++++++++++++-------
2 files changed, 43 insertions(+), 20 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridColumnResizeBead.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridColumnResizeBead.as
index 2efdd99..8f0ea82 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridColumnResizeBead.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridColumnResizeBead.as
@@ -21,6 +21,7 @@ package mx.controls.beads
import mx.collections.ICollectionView;
import mx.controls.AdvancedDataGrid;
import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
+ import mx.core.ScrollPolicy;
import mx.events.AdvancedDataGridEvent;
import org.apache.royale.core.IBead;
@@ -342,8 +343,11 @@ package mx.controls.beads
}
columns[columnIndex].width += deltaWidth;
columns[columnIndex].columnWidth += deltaWidth;
- columns[columnIndex + 1].columnWidth -= deltaWidth;
- columns[columnIndex + 1].width -= deltaWidth;
+ if (adg.horizontalScrollPolicy == ScrollPolicy.OFF)
+ {
+ columns[columnIndex + 1].columnWidth -= deltaWidth;
+ columns[columnIndex + 1].width -= deltaWidth;
+ }
adg.dispatchEvent(new Event("layoutNeeded"));
drawLines(null);
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/DataGridLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/DataGridLayout.as
index 05312a6..f39b42a 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/DataGridLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/DataGridLayout.as
@@ -27,6 +27,8 @@ package mx.controls.beads.layouts
import org.apache.royale.html.beads.layouts.DataGridLayout;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.controls.beads.DataGridView;
+ import mx.core.ScrollControlBase;
+ import mx.core.ScrollPolicy;
/**
* The DataGridLayout class.
@@ -91,30 +93,47 @@ package mx.controls.beads.layouts
return true;
}
- if (unspecifiedWidths > 0 && totalWidths > 0)
+ if ((uiHost as ScrollControlBase).horizontalScrollPolicy == ScrollPolicy.OFF)
{
- // some widths are specified, others are not, so fit the unspecified
- // in the remaining space
- var remainingSpace:Number = useWidth - totalWidths;
- var proportionateShare:Number = remainingSpace / unspecifiedWidths;
- for(i=0; i < view.visibleColumns.length; i++) {
- columnDef = view.visibleColumns[i] as DataGridColumn;
- if (!isNaN(columnDef.width))
- columnDef.columnWidth = columnDef.width;
- else
- columnDef.columnWidth = proportionateShare;
- }
- }
- else if (totalWidths > 0)
- {
- if (totalWidths != useWidth)
+ if (unspecifiedWidths > 0 && totalWidths > 0)
{
- var factor:Number = useWidth / totalWidths;
+ // some widths are specified, others are not, so fit the unspecified
+ // in the remaining space
+ var remainingSpace:Number = useWidth - totalWidths;
+ var proportionateShare:Number = remainingSpace / unspecifiedWidths;
for(i=0; i < view.visibleColumns.length; i++) {
columnDef = view.visibleColumns[i] as DataGridColumn;
- columnDef.columnWidth = columnDef.width * factor;
+ if (!isNaN(columnDef.width))
+ columnDef.columnWidth = columnDef.width;
+ else
+ columnDef.columnWidth = proportionateShare;
}
}
+ else if (totalWidths > 0)
+ {
+ if (totalWidths != useWidth)
+ {
+ var factor:Number = useWidth / totalWidths;
+ for(i=0; i < view.visibleColumns.length; i++) {
+ columnDef = view.visibleColumns[i] as DataGridColumn;
+ columnDef.columnWidth = columnDef.width * factor;
+ }
+ }
+ }
+ }
+ else
+ {
+ COMPILE::JS
+ {
+ view.header.element.scrollLeft = view.listArea.element.scrollLeft;
+ }
+ for(i=0; i < view.visibleColumns.length; i++) {
+ columnDef = view.visibleColumns[i] as DataGridColumn;
+ if (!isNaN(columnDef.width))
+ columnDef.columnWidth = 100; // hopefully won't get here
+ else
+ columnDef.columnWidth = columnDef.width;
+ }
}
return super.layout();