You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by pe...@apache.org on 2018/01/18 21:28:12 UTC

[royale-asjs] branch develop updated: DataGrid now defaults its model et al to support Array dataProvider; for other data types, change the beads or use the new .DynamicDataGrid style for convenience. Style class names fixed for DataGrid, Tree, and TreeGrid.

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

pent 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 5b68129  DataGrid now defaults its model et al to support Array dataProvider; for other data types, change the beads or use the new .DynamicDataGrid style for convenience. Style class names fixed for DataGrid, Tree, and TreeGrid.
5b68129 is described below

commit 5b68129cf5dae853d792ad02894d1cd7ca2bad6e
Author: Peter Ent <pe...@apache.org>
AuthorDate: Thu Jan 18 16:30:06 2018 -0500

    DataGrid now defaults its model et al to support Array dataProvider; for other data types, change the beads or use the new .DynamicDataGrid style for convenience. Style class names fixed for DataGrid, Tree, and TreeGrid.
---
 .../projects/Basic/src/main/resources/defaults.css | 56 ++++++++++++++++++----
 .../src/main/royale/org/apache/royale/html/Tree.as |  1 +
 .../royale/html/beads/DataGridPercentageView.as    | 11 ++---
 .../org/apache/royale/html/beads/DataGridView.as   | 40 ++++++++++------
 .../org/apache/royale/html/beads/TreeGridView.as   | 31 ++++++++----
 .../beads/models/DataGridCollectionViewModel.as    |  2 +-
 .../royale/html/beads/models/DataGridModel.as      |  6 +--
 .../html/supportClasses/DataGridColumnList.as      |  2 +-
 8 files changed, 106 insertions(+), 43 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css b/frameworks/projects/Basic/src/main/resources/defaults.css
index 0ac8a4d..8fbf1b0 100644
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@ -174,9 +174,7 @@ DataGrid
 	IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalFlexLayout");
 	
 	background-color: #FFFFFF;
-	border-style: solid;
-	border-color: #222222;
-	border-width: 1px;
+	border: solid 0.5px #222222;
 }
 
 DataGridButtonBar
@@ -197,7 +195,7 @@ DataGridColumnList {
 	IBeadView:  ClassReference("org.apache.royale.html.beads.ListView");			
 	IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
 	IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalFlexLayout");
-	IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayList");
+	IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData");
 	IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
 	IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
 	IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport");
@@ -213,6 +211,32 @@ DataGridColumnList {
 	IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
 }
 
+.DynamicDataGrid {
+	IChangePropagator: ClassReference("org.apache.royale.html.beads.DataGridColumnChangePropagator");
+	IDataGridPresentationModel: ClassReference("org.apache.royale.html.beads.models.DataGridPresentationModel");
+	IBeadView: ClassReference("org.apache.royale.html.beads.DataGridView");
+	IBeadModel: ClassReference("org.apache.royale.html.beads.models.DataGridCollectionViewModel");
+	IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalFlexLayout");
+	ColumnClassName: "DynamicDataGridColumnList";
+	
+	background-color: #FFFFFF;
+	border: solid 0.5px #222222;
+}
+
+.DynamicDataGridColumnList {
+	IBeadModel: ClassReference("org.apache.royale.html.beads.models.DataGridModel");
+	IBeadView:  ClassReference("org.apache.royale.html.beads.ListView");			
+	IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
+	IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalFlexLayout");
+	IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForCollectionView");
+	IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+	IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+	IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport");
+	IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
+	border-style: none;
+	background-color: #FFFFFF;
+}
+
 /* DateChooser */
 
 DateChooser {
@@ -365,6 +389,20 @@ List
 	IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
 	IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
 	IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
+	border: solid 0.5px #222222;
+}
+
+.DynamicList
+{
+	IBeadModel: ClassReference("org.apache.royale.html.beads.models.SingleSelectionCollectionViewModel");
+	IBeadView:  ClassReference("org.apache.royale.html.beads.ListView");			
+	IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
+	IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
+	IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForCollectionView");
+	IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+	IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+	IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
+	IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
 	border-style: solid;
 	border-color: #222222;
 	background-color: #FFFFFF;
@@ -415,8 +453,7 @@ Tree
 	IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.TreeItemRenderer");
 	IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
 	IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
-	border-style: solid;
-	border-color: #222222;
+	border: solid 0.5px #222222;
 }
 
 TreeGrid
@@ -424,8 +461,11 @@ TreeGrid
 	IBeadModel: ClassReference("org.apache.royale.html.beads.models.TreeGridModel");
 	IBeadView: ClassReference("org.apache.royale.html.beads.TreeGridView");
 	IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.TreeGridLayout");
-	border-style: solid;
-	border-color: #222222;
+	border: solid 0.5px #222222;
+}
+
+TreeGrid .TreeGridColumn {
+	border: none
 }
 
 .opt_org-apache.royale-html-TreeGrid_ListArea {
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Tree.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Tree.as
index 43b1c29..ec4b46a 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Tree.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Tree.as
@@ -45,6 +45,7 @@ package org.apache.royale.html
 		public function Tree()
 		{
 			super();
+			className = "Tree";
 		}
 		
 		/**
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridPercentageView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridPercentageView.as
index 2136788..0bf5ce7 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridPercentageView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridPercentageView.as
@@ -19,12 +19,11 @@
 package org.apache.royale.html.beads
 {
 	import org.apache.royale.core.IDataGridModel;
+	import org.apache.royale.core.UIBase;
 	import org.apache.royale.events.Event;
-	import org.apache.royale.html.DataGrid;
 	import org.apache.royale.html.DataGridButtonBar;
 	import org.apache.royale.html.beads.models.ButtonBarModel;
-	import org.apache.royale.html.supportClasses.DataGridColumn;
-	import org.apache.royale.html.supportClasses.DataGridColumnList;
+	import org.apache.royale.html.supportClasses.IDataGridColumn;
 
 	/**
 	 *  The DataGridPercentageView class is the visual bead for the org.apache.royale.html.DataGrid.
@@ -62,18 +61,18 @@ package org.apache.royale.html.beads
 
             if (columnLists)
 			{
-                var host:DataGrid = _strand as DataGrid;
+                var host:UIBase = _strand as UIBase;
                 var sharedModel:IDataGridModel = host.model as IDataGridModel;
 				var columnListCount:int = sharedModel.columns.length;
                 var buttonWidths:Array = [];
 
 				for (var i:int = 0; i < columnListCount; i++)
 				{
-                    var dgc:DataGridColumn = sharedModel.columns[i] as DataGridColumn;
+                    var dgc:IDataGridColumn = sharedModel.columns[i] as IDataGridColumn;
                     var colWidth:Number = dgc.columnWidth;
                     buttonWidths.push(colWidth);
 
-                    var list:DataGridColumnList = columnLists[i] as DataGridColumnList;
+                    var list:UIBase = columnLists[i] as UIBase;
                     if (!isNaN(dgc.columnWidth))
                     {
 						list.width = NaN;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
index d3dbb68..6cc2bbe 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
@@ -18,23 +18,25 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.beads
 {
+	import org.apache.royale.core.IBead;
 	import org.apache.royale.core.IBeadModel;
 	import org.apache.royale.core.IBeadView;
-	import org.apache.royale.core.IDataGridModel;
 	import org.apache.royale.core.IChild;
+	import org.apache.royale.core.IDataGridModel;
 	import org.apache.royale.core.IDataGridPresentationModel;
+	import org.apache.royale.core.IUIBase;
+	import org.apache.royale.core.ValuesManager;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.IEventDispatcher;
-    import org.apache.royale.core.IBead;
-    import org.apache.royale.core.IUIBase;
+	import org.apache.royale.html.Container;
 	import org.apache.royale.html.DataGrid;
 	import org.apache.royale.html.DataGridButtonBar;
-	import org.apache.royale.html.Container;
 	import org.apache.royale.html.beads.layouts.ButtonBarLayout;
 	import org.apache.royale.html.beads.models.ButtonBarModel;
 	import org.apache.royale.html.supportClasses.DataGridColumn;
 	import org.apache.royale.html.supportClasses.DataGridColumnList;
 	import org.apache.royale.html.supportClasses.Viewport;
+	import org.apache.royale.utils.loadBeadFromValuesManager;
 
 	COMPILE::SWF {
 		import org.apache.royale.core.SimpleCSSStylesWithFlex;
@@ -242,6 +244,12 @@ package org.apache.royale.html.beads
 			private function createLists():void
 			{
 				var host:DataGrid = _strand as DataGrid;
+				
+				// get the name of the class to use for the columns
+				var columnClassName:String = ValuesManager.valuesImpl.getValue(host, "columnClassName") as String;
+				if (columnClassName == null) {
+					columnClassName = "DataGridColumnList";
+				}
 
 				var sharedModel:IDataGridModel = host.model as IDataGridModel;
 				var presentationModel:IDataGridPresentationModel = host.presentationModel;
@@ -251,28 +259,30 @@ package org.apache.royale.html.beads
 				for (var i:int=0; i < sharedModel.columns.length; i++)
 				{
 					var dataGridColumn:DataGridColumn = sharedModel.columns[i] as DataGridColumn;
+					var useClassName:String = columnClassName;
+					if (dataGridColumn.className != null) useClassName = dataGridColumn.className;
 
 					var list:DataGridColumnList = new DataGridColumnList();
-					if (dataGridColumn.className != null) list.className = dataGridColumn.className;
-					list.id = "dataGridColumn"+String(i);
-					list.dataProvider = sharedModel.dataProvider;
-					list.itemRenderer = dataGridColumn.itemRenderer;
-					list.labelField = dataGridColumn.dataField;
-					list.addEventListener('change',handleColumnListChange);
-					list.addBead(presentationModel as IBead);
-
+					
 					if (i == 0)
 					{
-						list.typeNames = "first";
+						list.className = "first "+useClassName;
 					}
 					else if (i == sharedModel.columns.length-1)
 					{
-						list.typeNames = "last";
+						list.className = "last "+useClassName;
 					}
 					else
 					{
-						list.typeNames = "middle";
+						list.className = "middle "+useClassName;
 					}
+					
+					list.id = "dataGridColumn"+String(i);
+					list.dataProvider = sharedModel.dataProvider;
+					list.itemRenderer = dataGridColumn.itemRenderer;
+					list.labelField = dataGridColumn.dataField;
+					list.addEventListener('change',handleColumnListChange);
+					list.addBead(presentationModel as IBead);
 
 					_listArea.addElement(list as IChild);
 					_lists.push(list);
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
index fd99b6c..b2bc41f 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
@@ -267,6 +267,12 @@ package org.apache.royale.html.beads
 		{
 			var host:TreeGrid = _strand as TreeGrid;
 			
+			// get the name of the class to use for the columns
+			var columnClassName:String = ValuesManager.valuesImpl.getValue(host, "columnClassName") as String;
+			if (columnClassName == null) {
+				columnClassName = "TreeGridColumn";
+			}
+			
 			var presentationModel:IDataGridPresentationModel = host.presentationModel;
 			var sharedModel:IDataGridModel = host.model as IDataGridModel;
 			
@@ -274,8 +280,23 @@ package org.apache.royale.html.beads
 			
 			for (var i:int=0; i < sharedModel.columns.length; i++) {
 				var columnDef:IDataGridColumn = sharedModel.columns[i] as IDataGridColumn;
+				var useClassName:String = columnClassName;
+				if (columnDef.className != null) useClassName = columnDef.className;
+				
 				var column:List = columnDef.createColumn() as List;
-				if (columnDef.className != null) column.className = columnDef.className;
+				
+				if (i == 0)
+				{
+					column.className = "first "+useClassName;
+				}
+				else if (i == sharedModel.columns.length-1)
+				{
+					column.className = "last "+useClassName;
+				}
+				else
+				{
+					column.className = "middle "+useClassName;
+				}
 				
 				// For the TreeGrid, the List columns must use this
 				// model and itemRenderer factory to be compatible 
@@ -293,14 +314,6 @@ package org.apache.royale.html.beads
 				column.addBead(new Viewport());
 				column.addEventListener('change', handleColumnListChange);
 				
-				if (i == 0) {
-					column.typeNames = "first";
-				} else if (i == sharedModel.columns.length-1) {
-					column.typeNames = "last";
-				} else {
-					column.typeNames = "middle";
-				}
-				
 				_listArea.addElement(column);
 				_lists.push(column);
 				
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DataGridCollectionViewModel.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DataGridCollectionViewModel.as
index 3266654..c615036 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DataGridCollectionViewModel.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DataGridCollectionViewModel.as
@@ -25,7 +25,7 @@ package org.apache.royale.html.beads.models
 	/**
 	 *  The DataGridCollectiomModel class bead extends org.apache.royale.html.beads.models.SingleSelectionCollectionViewModel
 	 *  to facilitate using an ICollectionView as the dataProvider for the DataGrid. Use this with
-	 *  org.apache.royale.html.beads.DataItemRenderFactoryForCollectionView.
+	 *  org.apache.royale.html.beads.DataItemRenderFactoryForCollectionView for each DataGridColumn.
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DataGridModel.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DataGridModel.as
index 419f124..9ce6797 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DataGridModel.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DataGridModel.as
@@ -23,15 +23,15 @@ package org.apache.royale.html.beads.models
 	import org.apache.royale.events.Event;
 
 	/**
-	 *  The DataGridModel class bead extends org.apache.royale.html.beads.models.ArrayListSelectionModel
-	 *  to facilitate using an ArrayList as the dataProvider for the DataGrid.
+	 *  The DataGridModel class bead extends org.apache.royale.html.beads.models.ArraySelectionModel
+	 *  to facilitate using an Array as the dataProvider for the DataGrid.
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.0
 	 */
-	public class DataGridModel extends ArrayListSelectionModel implements IDataGridModel
+	public class DataGridModel extends ArraySelectionModel implements IDataGridModel
 	{
 		/**
 		 *  constructor.
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGridColumnList.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGridColumnList.as
index a7d9fb2..a127562 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGridColumnList.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGridColumnList.as
@@ -56,7 +56,7 @@ package org.apache.royale.html.supportClasses
 		public function DataGridColumnList()
 		{
 			super();
-			typeNames = "DataGridColumnList";
+			className = "DataGridColumnList";
 		}
 		
 		public var columnInfo: DataGridColumn;

-- 
To stop receiving notification emails like this one, please contact
['"commits@royale.apache.org" <co...@royale.apache.org>'].