You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2020/09/12 11:59:21 UTC
[royale-asjs] branch develop updated: jewel-datagrid: refactor
header to IDataGridHeader so we can change to IconButtonBar or
ToggleButtonBar
This is an automated email from the ASF dual-hosted git repository.
carlosrovira 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 85cb61d jewel-datagrid: refactor header to IDataGridHeader so we can change to IconButtonBar or ToggleButtonBar
85cb61d is described below
commit 85cb61dcd64a7cb3755fcc34ca61c99e4aa1b486
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Sat Sep 12 13:59:08 2020 +0200
jewel-datagrid: refactor header to IDataGridHeader so we can change to IconButtonBar or ToggleButtonBar
---
.../beads/controls/datagrid/DataGridColumnLabelsChange.as | 4 ++--
.../royale/jewel/beads/controls/datagrid/DataGridSort.as | 13 +++++++------
.../org/apache/royale/jewel/beads/views/DataGridView.as | 12 +++++-------
.../jewel/supportClasses/datagrid/DataGridButtonBar.as | 14 +++++---------
4 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridColumnLabelsChange.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridColumnLabelsChange.as
index 1f7371a..14c42b1 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridColumnLabelsChange.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridColumnLabelsChange.as
@@ -20,12 +20,12 @@ package org.apache.royale.jewel.beads.controls.datagrid
{
import org.apache.royale.collections.ArrayList;
import org.apache.royale.core.Bead;
+ import org.apache.royale.core.IDataGridHeader;
import org.apache.royale.core.IDataGridModel;
import org.apache.royale.core.IStrand;
import org.apache.royale.events.Event;
import org.apache.royale.jewel.DataGrid;
import org.apache.royale.jewel.beads.views.DataGridView;
- import org.apache.royale.jewel.supportClasses.datagrid.DataGridButtonBar;
import org.apache.royale.jewel.supportClasses.datagrid.IDataGridColumn;
import org.apache.royale.jewel.supportClasses.datagrid.IDataGridPresentationModel;
@@ -81,7 +81,7 @@ package org.apache.royale.jewel.beads.controls.datagrid
var _dg:DataGrid = _strand as DataGrid;
var _sharedModel:IDataGridModel = _dg.model as IDataGridModel;
var _presentationModel:IDataGridPresentationModel = _dg.presentationModel as IDataGridPresentationModel;
- var _header:DataGridButtonBar = (_dg.view as DataGridView).header as DataGridButtonBar;
+ var _header:IDataGridHeader = (_dg.view as DataGridView).header;
var dp:Array = _sharedModel.columns as Array;
var len:int = dp.length;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridSort.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridSort.as
index 7691e99..8d35e57 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridSort.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datagrid/DataGridSort.as
@@ -28,8 +28,8 @@ package org.apache.royale.jewel.beads.controls.datagrid
import org.apache.royale.events.MouseEvent;
import org.apache.royale.jewel.DataGrid;
import org.apache.royale.jewel.beads.views.DataGridView;
- import org.apache.royale.jewel.supportClasses.datagrid.DataGridButtonBar;
import org.apache.royale.jewel.supportClasses.datagrid.DataGridColumn;
+ import org.apache.royale.core.IDataGridHeader;
/**
* The DataGridSort bead class is a specialty bead that can be use with a Jewel DataGrid control
@@ -50,6 +50,7 @@ package org.apache.royale.jewel.beads.controls.datagrid
}
private var dg:DataGrid;
+ private var header:IDataGridHeader;
private var descending:Boolean;
@@ -64,7 +65,9 @@ package org.apache.royale.jewel.beads.controls.datagrid
public function set strand(value:IStrand):void
{
dg = value as DataGrid;
- (dg.view as DataGridView).header.addEventListener(MouseEvent.CLICK, mouseClickHandler, false);
+ var dgView:DataGridView = dg.view as DataGridView;
+ header = dgView.header;
+ header.addEventListener(MouseEvent.CLICK, mouseClickHandler, false);
}
/**
@@ -77,11 +80,9 @@ package org.apache.royale.jewel.beads.controls.datagrid
*/
protected function mouseClickHandler(event:MouseEvent):void
{
- var dgView:DataGridView = dg.view as DataGridView;
- var buttonBar:DataGridButtonBar = (dgView.header as DataGridButtonBar);
// probably down on one button and up on another button
// so the ButtonBar won't change selection
- if (event.target == buttonBar) return;
+ if (event.target == header) return;
var column:DataGridColumn = event.target.data as DataGridColumn;
var collection:IArrayListView = dg.dataProvider as IArrayListView;
if (collection && collection.length)
@@ -101,7 +102,7 @@ package org.apache.royale.jewel.beads.controls.datagrid
// This way we can't refresh the columns since the dataProvider is the same
// dg.model.dispatchEvent(new Event("dataProviderChanged"));
- buttonBar.model.dispatchEvent(new Event("dataProviderChanged"));
+ header.model.dispatchEvent(new Event("dataProviderChanged"));
dg.dataProvider = null;
dg.dataProvider = collection;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DataGridView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DataGridView.as
index 18ce298..fee95e8 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DataGridView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DataGridView.as
@@ -25,6 +25,7 @@ package org.apache.royale.jewel.beads.views
import org.apache.royale.core.IBeadView;
import org.apache.royale.core.IChild;
import org.apache.royale.core.IDataGrid;
+ import org.apache.royale.core.IDataGridHeader;
import org.apache.royale.core.IDataGridModel;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IParent;
@@ -40,8 +41,6 @@ package org.apache.royale.jewel.beads.views
import org.apache.royale.html.beads.LabelFunction;
import org.apache.royale.jewel.DataGrid;
import org.apache.royale.jewel.beads.models.DataGridColumnListPresentationModel;
- import org.apache.royale.jewel.supportClasses.Viewport;
- import org.apache.royale.jewel.supportClasses.datagrid.DataGridButtonBar;
import org.apache.royale.jewel.supportClasses.datagrid.IDataGridColumn;
import org.apache.royale.jewel.supportClasses.datagrid.IDataGridColumnList;
import org.apache.royale.jewel.supportClasses.datagrid.IDataGridPresentationModel;
@@ -79,7 +78,7 @@ package org.apache.royale.jewel.beads.views
}
private var _dg:IDataGrid = _strand as IDataGrid;
- private var _header:DataGridButtonBar;
+ private var _header:IDataGridHeader;
private var _listArea:IUIBase;
private var _lists:Array = [];
@@ -111,15 +110,14 @@ package org.apache.royale.jewel.beads.views
{
// header
var headerClass:Class = ValuesManager.valuesImpl.getValue(host, "headerClass") as Class;
- _header = new headerClass() as DataGridButtonBar;
+ _header = new headerClass() as IDataGridHeader;
_header.dataProvider = new ArrayList(sharedModel.columns);
- _header.emphasis = (_dg as IEmphasis).emphasis;
+ (_header as IEmphasis).emphasis = (_dg as IEmphasis).emphasis;
_header.labelField = "label";
var headerLayoutClass:Class = ValuesManager.valuesImpl.getValue(host, "headerLayoutClass") as Class;
var bblayout:IBead = new headerLayoutClass() as IBeadLayout;
_header.addBead(bblayout /*as IBead*/);
- _header.addBead(new Viewport() as IBead);
sharedModel.headerModel = _header.model as IBeadModel;
_dg.strandChildren.addElement(_header as IChild);
@@ -314,7 +312,7 @@ package org.apache.royale.jewel.beads.views
/**
* Returns the component used as the header for the DataGrid.
*/
- public function get header():IUIBase
+ public function get header():IDataGridHeader
{
return _header;
}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridButtonBar.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridButtonBar.as
index e95e35b..8e1d7cd 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridButtonBar.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridButtonBar.as
@@ -18,23 +18,19 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel.supportClasses.datagrid
{
- import org.apache.royale.jewel.ButtonBar;
-
- COMPILE::JS
- {
- import org.apache.royale.core.WrappedHTMLElement;
- }
+ import org.apache.royale.core.IDataGridHeader;
+ import org.apache.royale.jewel.ButtonBar;
/**
- * The DataGridButtonBar class extends ButtonBar and provides a class for styling
- * the header region of the DataGrid.
+ * The DataGridButtonBar class is an IDataGridHeader that extends ButtonBar
+ * and provides a class for styling the header region of the DataGrid.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.7
*/
- public class DataGridButtonBar extends ButtonBar
+ public class DataGridButtonBar extends ButtonBar implements IDataGridHeader
{
/**
* constructor.