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.