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 <[email protected]>
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;
}
}
}