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 2021/11/21 14:51:04 UTC
[royale-asjs] branch develop updated: New bead to apply invisibility to Jewel DataGrid columns marked as invisible
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 fc36b0f New bead to apply invisibility to Jewel DataGrid columns marked as invisible
fc36b0f is described below
commit fc36b0fe671d85db17ca2fe33f9907fb62e1bbb1
Author: Hugo Ferreira <hf...@solidsoft.pt>
AuthorDate: Sun Nov 21 14:51:20 2021 +0000
New bead to apply invisibility to Jewel DataGrid columns marked as invisible
---
.../Jewel/src/main/resources/jewel-manifest.xml | 1 +
...LockedColumn.as => DataGridColumnVisibility.as} | 30 ++++++++--------------
.../controls/datagrid/DataGridLockedColumn.as | 4 ++-
3 files changed, 15 insertions(+), 20 deletions(-)
diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
index 963350c..c19b3f9 100644
--- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
+++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
@@ -62,6 +62,7 @@
<component id="DataGridSort" class="org.apache.royale.jewel.beads.controls.datagrid.DataGridSort"/>
<component id="DataGridLockedHeader" class="org.apache.royale.jewel.beads.controls.datagrid.DataGridLockedHeader"/>
<component id="DataGridLockedColumn" class="org.apache.royale.jewel.beads.controls.datagrid.DataGridLockedColumn"/>
+ <component id="DataGridColumnVisibility" class="org.apache.royale.jewel.beads.controls.datagrid.DataGridColumnVisibility"/>
<component id="ButtonBarItemRenderer" class="org.apache.royale.jewel.itemRenderers.ButtonBarItemRenderer"/>
<component id="IconButtonBarItemRenderer" class="org.apache.royale.jewel.itemRenderers.IconButtonBarItemRenderer"/>
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridLockedColumn.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridColumnVisibility.as
similarity index 71%
copy from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridLockedColumn.as
copy to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridColumnVisibility.as
index 1d70738..01bbbc6 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridLockedColumn.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridColumnVisibility.as
@@ -28,25 +28,26 @@ package org.apache.royale.jewel.beads.controls.datagrid
import org.apache.royale.jewel.supportClasses.datagrid.DataGridListArea;
import org.apache.royale.jewel.supportClasses.datagrid.DataGridColumnList;
import org.apache.royale.jewel.supportClasses.datagrid.DataGridColumnWidth;
+ import org.apache.royale.jewel.supportClasses.datagrid.DataGridColumn;
import org.apache.royale.jewel.itemRenderers.DatagridHeaderRenderer;
import org.apache.royale.jewel.beads.views.DataGridView;
/**
- * The DataGridLockedColumn bead class is a specialty bead that can be use with a Jewel DataGrid control
- * when need to lock the columns
+ * The DataGridColumnVisibility bead class is a specialty bead that can be use with a Jewel DataGrid control
+ * when need to hide columns
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.9
*/
- public class DataGridLockedColumn implements IBead
+ public class DataGridColumnVisibility implements IBead
{
private var view:IDataGridView;
- public var columnCount:int;
+ public var hide:Boolean = true;
- public function DataGridLockedColumn()
+ public function DataGridColumnVisibility()
{
super();
}
@@ -61,26 +62,17 @@ package org.apache.royale.jewel.beads.controls.datagrid
*/
public function set strand(value:IStrand):void
{
- if (columnCount == 0)
- return;
-
- var dg:IDataGrid = value as IDataGrid;
-
- view = (dg as UIBase).view as DataGridView;
- (view.header as DataGridButtonBar).style = "overflow: visible";
- (view.listArea as DataGridListArea).style = "overflow: visible";
+ view = (value as UIBase).view as DataGridView;
view.header.addEventListener("headerLayout", headerLayoutHandler);
}
private function headerLayoutHandler(event:Event):void
{
- var left:int = 0;
- for (var i:int = 0; i < columnCount; i++)
+ for (var i:int = 0; i < view.columnLists.length; i++)
{
- var width:int = ((view.header as DataGridButtonBar).buttonWidths[i] as DataGridColumnWidth).value;
- ((view.header as DataGridButtonBar).getElementAt(i) as DatagridHeaderRenderer).style = "position: sticky; left: " + left + "px; z-index: 100; width: " + width + "px;";
- (view.columnLists[i] as DataGridColumnList).style = "position: sticky; left: " + left + "px; z-index: 50;";
- left += width;
+ var display:String = ((view.columnLists[i] as DataGridColumnList).columnInfo as DataGridColumn).visible ? "block" : "none";
+ ((view.header as DataGridButtonBar).getElementAt(i) as DatagridHeaderRenderer).style = "display: " + display;
+ (view.columnLists[i] as DataGridColumnList).style = "display: " + display;
}
}
}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridLockedColumn.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridLockedColumn.as
index 1d70738..ea61f76 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridLockedColumn.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridLockedColumn.as
@@ -28,6 +28,7 @@ package org.apache.royale.jewel.beads.controls.datagrid
import org.apache.royale.jewel.supportClasses.datagrid.DataGridListArea;
import org.apache.royale.jewel.supportClasses.datagrid.DataGridColumnList;
import org.apache.royale.jewel.supportClasses.datagrid.DataGridColumnWidth;
+ import org.apache.royale.jewel.supportClasses.datagrid.DataGridColumn;
import org.apache.royale.jewel.itemRenderers.DatagridHeaderRenderer;
import org.apache.royale.jewel.beads.views.DataGridView;
@@ -80,7 +81,8 @@ package org.apache.royale.jewel.beads.controls.datagrid
var width:int = ((view.header as DataGridButtonBar).buttonWidths[i] as DataGridColumnWidth).value;
((view.header as DataGridButtonBar).getElementAt(i) as DatagridHeaderRenderer).style = "position: sticky; left: " + left + "px; z-index: 100; width: " + width + "px;";
(view.columnLists[i] as DataGridColumnList).style = "position: sticky; left: " + left + "px; z-index: 50;";
- left += width;
+ if (((view.columnLists[i] as DataGridColumnList).columnInfo as DataGridColumn).visible)
+ left += width;
}
}
}