You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by gr...@apache.org on 2020/05/06 10:01:06 UTC

[royale-asjs] branch develop updated (764a3b5 -> 81c7672)

This is an automated email from the ASF dual-hosted git repository.

gregdove pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.


    from 764a3b5  jewel-themes: update for datagrid focus changes
     new 5a2c1f0  Improvements to ADG and DG: make columns safe from external manipulation (as original Flex versions). Support more dataProvider source variation
     new 367e248  Add dataProvider swapping to MXRoyale DataGrids example
     new 81c7672  Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/main/royale/DataGridExample.mxml           | 30 +++++++++++++++++-----
 .../src/main/royale/models/ProductsModel.as        | 13 +++++++---
 .../main/royale/mx/controls/AdvancedDataGrid.as    |  4 ++-
 .../src/main/royale/mx/controls/DataGrid.as        |  4 ++-
 .../controls/beads/DataProviderChangeNotifier.as   | 23 ++++++++---------
 5 files changed, 49 insertions(+), 25 deletions(-)


[royale-asjs] 03/03: Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

Posted by gr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gregdove pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 81c7672f9a154fc15f87b4ae12774add25909cab
Merge: 367e248 764a3b5
Author: greg-dove <gr...@gmail.com>
AuthorDate: Wed May 6 22:00:23 2020 +1200

    Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 .../src/main/resources/defaults.css                                 | 6 ++++++
 36 files changed, 216 insertions(+)


[royale-asjs] 01/03: Improvements to ADG and DG: make columns safe from external manipulation (as original Flex versions). Support more dataProvider source variation

Posted by gr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gregdove pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 5a2c1f062074a829e93900424ba3056647104ad1
Author: greg-dove <gr...@gmail.com>
AuthorDate: Wed May 6 21:57:51 2020 +1200

    Improvements to ADG and DG: make columns safe from external manipulation (as original Flex versions).
    Support more dataProvider source variation
---
 .../main/royale/mx/controls/AdvancedDataGrid.as    |  4 +++-
 .../src/main/royale/mx/controls/DataGrid.as        |  4 +++-
 .../controls/beads/DataProviderChangeNotifier.as   | 23 +++++++++++-----------
 3 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as
index ace3491..7357e24 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as
@@ -9589,7 +9589,8 @@ public class AdvancedDataGrid extends AdvancedListBase implements IDataGrid
      */
     public function get columns():Array
     {
-        return IDataGridModel(model).columns;
+        var arr:Array = IDataGridModel(model).columns;
+        return arr ? arr.slice() : [];
     }
     /**
      * @royaleignorecoercion org.apache.royale.core.IDataGridModel
@@ -9602,6 +9603,7 @@ public class AdvancedDataGrid extends AdvancedListBase implements IDataGrid
             col.owner = this;
             col.colNum = index++;
         }
+        value = value? value.slice() : value;
         IDataGridModel(model).columns = value;
     }
 
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DataGrid.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DataGrid.as
index 7199894..ef1d3b2 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DataGrid.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DataGrid.as
@@ -791,7 +791,8 @@ public class DataGrid extends DataGridListBase/*ListBase*/ implements IDataGrid/
      */
     public function get columns():Array
     {
-        return IDataGridModel(model).columns;
+        var arr:Array = IDataGridModel(model).columns;
+        return arr ? arr.slice() : [];
     }
     /**
      * @royaleignorecoercion org.apache.royale.core.IDataGridModel
@@ -804,6 +805,7 @@ public class DataGrid extends DataGridListBase/*ListBase*/ implements IDataGrid/
             col.owner = this;
             col.colNum = index++;
         }
+        value = value? value.slice() : value;
         IDataGridModel(model).columns = value;
     }
 	
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataProviderChangeNotifier.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataProviderChangeNotifier.as
index 42adc41..25284cf 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataProviderChangeNotifier.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataProviderChangeNotifier.as
@@ -54,23 +54,22 @@ package mx.controls.beads
 		public function set strand(value:IStrand):void
 		{
 			_strand = value;
-			if (model.dataProvider == null)
-			{
-				model.addEventListener("dataProviderChanged", dataProviderChangedHandler);
-			} else
-			{
-				dataProviderChangedHandler(null);
-			}
+			model.addEventListener("dataProviderChanged", dataProviderChangedHandler);
+			dataProviderChangedHandler(null);
 		}
 
 		protected function dataProviderChangedHandler(event:Event):void
 		{
-			if (dataProvider)
-			{
-				detachEventListeners();
+			if (dataProvider != model.dataProvider){
+				if (dataProvider)
+				{
+					detachEventListeners();
+				}
+				dataProvider = model.dataProvider as IEventDispatcher;
+				if (dataProvider) {
+					attachEventListeners();
+				}
 			}
-			dataProvider = model.dataProvider as IEventDispatcher;
-			attachEventListeners();
 		}
 
 		private function get model():ISelectionModel


[royale-asjs] 02/03: Add dataProvider swapping to MXRoyale DataGrids example

Posted by gr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gregdove pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 367e248cd070536e94b3a149b60a5f07f03d1cc2
Author: greg-dove <gr...@gmail.com>
AuthorDate: Wed May 6 21:59:20 2020 +1200

    Add dataProvider swapping to MXRoyale DataGrids example
---
 .../src/main/royale/DataGridExample.mxml           | 30 +++++++++++++++++-----
 .../src/main/royale/models/ProductsModel.as        | 13 +++++++---
 2 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/examples/mxroyale/DataGridExample/src/main/royale/DataGridExample.mxml b/examples/mxroyale/DataGridExample/src/main/royale/DataGridExample.mxml
index 7655a21..0b63588 100644
--- a/examples/mxroyale/DataGridExample/src/main/royale/DataGridExample.mxml
+++ b/examples/mxroyale/DataGridExample/src/main/royale/DataGridExample.mxml
@@ -57,7 +57,10 @@ limitations under the License.
 			import models.ProductsModel;
 
 			private function onInitialize():void{
-				productsModel = new ProductsModel()
+				productsModel = new ProductsModel();
+				//deferred assignment of dataProvider after columns are set
+				_swappedDP = true;
+				onToggleDataProvider();
 			}
 
 
@@ -112,8 +115,8 @@ limitations under the License.
 
 			private function onToggleColumns():void {
 				if (!col1s) {
-					col1s = dataGrid.columns.slice();
-					cols2 = advancedDataGrid.columns.slice();
+					col1s = dataGrid.columns;
+					cols2 = advancedDataGrid.columns;
 				}
 				if (dataGrid.columns.length == 3) {
 					var assigned:Array = col1s.slice();
@@ -123,8 +126,8 @@ limitations under the License.
 					assigned.length=2;
 					advancedDataGrid.columns =assigned;
 				} else {
-					dataGrid.columns = col1s.slice();
-					advancedDataGrid.columns =cols2.slice();
+					dataGrid.columns = col1s;
+					advancedDataGrid.columns =cols2;
 				}
 			}
 
@@ -134,6 +137,18 @@ limitations under the License.
 				advancedDataGrid.columns[0].visible = !advancedDataGrid.columns[0].visible;
 			}
 
+			private var _swappedDP:Boolean;
+			private function onToggleDataProvider():void {
+				if (!_swappedDP) {
+					dataGrid.dataProvider = getCollectionCopy(productsModel.alternateProductList);
+					advancedDataGrid.dataProvider = getCollectionCopy(productsModel.alternateProductList);
+				} else {
+					dataGrid.dataProvider = getCollectionCopy(productsModel.productList);
+					advancedDataGrid.dataProvider = getCollectionCopy(productsModel.productList);
+				}
+				_swappedDP = !_swappedDP;
+			}
+
 		]]>
 	</fx:Script>
 <mx:HBox>
@@ -143,7 +158,7 @@ limitations under the License.
 					 y="130"
 					 width="400" height="350"
 					 dragEnabled="true" dropEnabled="true"
-					 dataProvider="{getCollectionCopy(productsModel.productList)}"
+
 					 change="dataGridChange(dataGrid)"
 					 rowHeight="40">
 			<mx:columns>
@@ -160,7 +175,7 @@ limitations under the License.
 							 y="30"
 							 width="400" height="350"
 							 dragEnabled="true" dropEnabled="true"
-							 dataProvider="{getCollectionCopy(productsModel.productList)}"
+
 							 change="dataGridChange(advancedDataGrid)"
 							 rowHeight="40">
 			<mx:columns>
@@ -184,6 +199,7 @@ limitations under the License.
 
 		<mx:Button label="Swap Columns" click="onToggleColumns()"/>
 		<mx:Button label="Toggle Col1 Visible" click="onToggleColumnVisible()"/>
+		<mx:Button label="Toggle dataProvider" click="onToggleDataProvider()"/>
 	</mx:VBox>
 
 	<mx:Label id="infoLabel" />
diff --git a/examples/mxroyale/DataGridExample/src/main/royale/models/ProductsModel.as b/examples/mxroyale/DataGridExample/src/main/royale/models/ProductsModel.as
index 0c08311..b035569 100644
--- a/examples/mxroyale/DataGridExample/src/main/royale/models/ProductsModel.as
+++ b/examples/mxroyale/DataGridExample/src/main/royale/models/ProductsModel.as
@@ -41,15 +41,20 @@ package models
 			return _productList;
 		}
 		
-		private var _productArray:Array = [
+		private var _productArray:ArrayCollection = new ArrayCollection([
 			new Product("ps100","Blueberries",44,200,"assets/smallbluerect.jpg"),
 			new Product("tx200","Kiwis",5,285,"assets/smallgreenrect.jpg"),
 			new Product("rz300","Bananas",80,105,"assets/smallyellowrect.jpg"),
 			new Product("dh440","Strawberries",10,340,"assets/smallredrect.jpg"),
-			new Product("ps220","Oranges",35,190,"assets/smallorangerect.jpg")
-		];
+			new Product("ps220","Oranges",35,190,"assets/smallorangerect.jpg"),
+			new Product("ps111","Mandarins",414,202,"assets/smallorangerect.jpg"),
+			new Product("tx220","Loquats",51,185,"assets/smallyellowrect.jpg"),
+			new Product("rz303","Guavas",810,1205,"assets/smallredrect.jpg"),
+			new Product("dh490","Pears",120,3420,"assets/smallgreenrect.jpg"),
+			new Product("ps222","Apples",315,1190,"assets/smallredrect.jpg")
+		]);
 		
-		public function get productArray():Array
+		public function get alternateProductList():ArrayCollection
 		{
 			return _productArray;
 		}