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/23 16:04:52 UTC

[royale-asjs] branch develop updated: jewel-presentationmodels: remove PM proxy methods in TLCs

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 b836d33  jewel-presentationmodels: remove PM proxy methods in TLCs
b836d33 is described below

commit b836d330689d899026531cc5ecd7eebbf281e407
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Wed Sep 23 18:04:37 2020 +0200

    jewel-presentationmodels: remove PM proxy methods in TLCs
---
 .../src/main/royale/ComboBoxPlayGround.mxml        | 16 +++++---
 .../src/main/royale/DataGridPlayGround.mxml        | 22 ++++++----
 .../src/main/royale/ListPlayGround.mxml            |  5 ++-
 .../src/main/royale/TabBarPlayGround.mxml          |  3 +-
 .../src/main/royale/VirtualListsPlayGround.mxml    | 16 ++++----
 .../Jewel/src/main/resources/jewel-manifest.xml    |  1 +
 .../royale/org/apache/royale/jewel/ButtonBar.as    |  2 +-
 .../royale/org/apache/royale/jewel/ComboBox.as     | 40 +-----------------
 .../royale/org/apache/royale/jewel/DataGrid.as     | 21 ----------
 .../main/royale/org/apache/royale/jewel/List.as    | 47 +---------------------
 .../royale/org/apache/royale/jewel/Navigation.as   |  2 +-
 .../beads/models/ComboBoxPresentationModel.as      |  1 +
 .../beads/models/DataGridPresentationModel.as      |  1 +
 .../jewel/beads/models/ListPresentationModel.as    |  3 ++
 .../royale/jewel/beads/views/ComboBoxPopUpView.as  | 12 ++++--
 15 files changed, 56 insertions(+), 136 deletions(-)

diff --git a/examples/jewel/TourDeJewel/src/main/royale/ComboBoxPlayGround.mxml b/examples/jewel/TourDeJewel/src/main/royale/ComboBoxPlayGround.mxml
index 73ced64..832dc18 100644
--- a/examples/jewel/TourDeJewel/src/main/royale/ComboBoxPlayGround.mxml
+++ b/examples/jewel/TourDeJewel/src/main/royale/ComboBoxPlayGround.mxml
@@ -259,7 +259,11 @@ limitations under the License.
 						<j:html><![CDATA[<p>Following <b>ComboBox</b> width size is managed by a slider.</p>]]></j:html>
 					</j:Label>
 
-					<j:ComboBox localId="cmb3" labelField="label" dataProvider="{listModel.avengers}"/>
+					<j:ComboBox localId="cmb3" labelField="label" dataProvider="{listModel.avengers}">
+						<j:beads>
+							<j:ComboBoxPresentationModel localId="cmb3pm"/>
+						</j:beads>
+					</j:ComboBox>
 					
 				</j:CardPrimaryContent>
 				<j:CardActions itemsVerticalAlign="itemsCenter">
@@ -271,12 +275,12 @@ limitations under the License.
 						<j:HSlider width="250" value="200" minimum="100" maximum="400" valueChange="cmb3.width = event.target.value;"/>
 					</j:HGroup>
 					<j:HGroup gap="3" itemsVerticalAlign="itemsCenter">
-						<j:Label text="rowHeight: {cmb3.rowHeight}"/>
-						<j:HSlider width="150" value="34" minimum="34" maximum="52" valueChange="cmb3.rowHeight = event.target.value;"/>
+						<j:Label text="rowHeight: {cmb3pm.rowHeight}"/>
+						<j:HSlider width="150" value="34" minimum="34" maximum="52" valueChange="cmb3pm.rowHeight = event.target.value;"/>
 					</j:HGroup>
 					<j:HGroup gap="3" itemsVerticalAlign="itemsCenter">
-						<j:Label text="rowCount: {cmb3.rowCount}"/>
-						<j:HSlider width="150" value="5" minimum="3" maximum="8" valueChange="cmb3.rowCount = event.target.value;"/>
+						<j:Label text="rowCount: {cmb3pm.rowCount}"/>
+						<j:HSlider width="150" value="5" minimum="3" maximum="8" valueChange="cmb3pm.rowCount = event.target.value;"/>
 					</j:HGroup>
 				</j:CardActions>
 			</j:Card>
@@ -365,9 +369,9 @@ limitations under the License.
 					</j:Label>
 
 					<j:ComboBox className="cmbSimpleiIconListItemRenderer" labelField="label"
-								rowCount="4" rowHeight="52"
 								dataProvider="{listModel.avengers}">
 						<j:beads>
+							<j:ComboBoxPresentationModel rowCount="4" rowHeight="52"/>
 							<j:ComboBoxTextPrompt prompt="Icons and Text..."/>
 							<j:SearchFilter/>
 						</j:beads>
diff --git a/examples/jewel/TourDeJewel/src/main/royale/DataGridPlayGround.mxml b/examples/jewel/TourDeJewel/src/main/royale/DataGridPlayGround.mxml
index 7b416ba..62c09ff 100644
--- a/examples/jewel/TourDeJewel/src/main/royale/DataGridPlayGround.mxml
+++ b/examples/jewel/TourDeJewel/src/main/royale/DataGridPlayGround.mxml
@@ -401,8 +401,7 @@ limitations under the License.
 					<j:Label text="Using specific column widths, rowHeight=54 and height=220, first column uses a custom renderer and last column has right alignment"
 						multiline="true"/>
 					
-					<j:DataGrid localId="dg4" height="205"
-						rowHeight="54" emphasis="primary" 
+					<j:DataGrid localId="dg4" height="205" emphasis="primary" 
 						change="dataGridChange(event.target as DataGrid, lb4)"
 						dataProvider="{productModel.productList}">
 						<j:columns>
@@ -412,6 +411,7 @@ limitations under the License.
 							<j:DataGridColumn label="Sales" dataField="sales" columnWidth="80" align="right"/>
 						</j:columns>
 						<j:beads>
+							<j:DataGridPresentationModel rowHeight="54"/>
 							<j:RemoveAllDataGridItemRendererForArrayListData/>
 						</j:beads>
 					</j:DataGrid>
@@ -467,9 +467,10 @@ limitations under the License.
 					<j:Label text="Basic configuration, width = 100%, no column widths, rowHeight=42 and emphasis='secondary', middle column has center alignment. Clicking on row icon, remove the entire row."
 						multiline="true"/>
 
-					<j:DataGrid localId="dg5" width="100%" height="240" emphasis="secondary" rowHeight="42"
+					<j:DataGrid localId="dg5" width="100%" height="240" emphasis="secondary"
 						change="dataGridChange(event.target as DataGrid, lb5)">
 						<j:beads>
+							<j:DataGridPresentationModel rowHeight="42"/>
 							<js:ConstantBinding
 								sourceID="listModel"
 								sourcePropertyName="iconDetailListData"
@@ -500,8 +501,7 @@ limitations under the License.
 					<j:Label text="Using specific column widths, rowHeight=40 and emphasis='emphasized'"
 						multiline="true"/>
 
-					<j:DataGrid localId="dg6" height="246"
-						rowHeight="40" emphasis="emphasized" 
+					<j:DataGrid localId="dg6" height="246" emphasis="emphasized" 
 						change="dataGridChange(event.target as DataGrid, lb6)"
 						dataProvider="{listModel.iconListData}">
 						<j:columns>
@@ -509,6 +509,9 @@ limitations under the License.
 												itemRenderer="itemRenderers.IconDataGridItemRenderer"/>
 							<j:DataGridColumn label="Label" dataField="label" columnWidth="200"/>
 						</j:columns>
+						<j:beads>
+							<j:DataGridPresentationModel rowHeight="40"/>
+						</j:beads>
 					</j:DataGrid>
 
 					<j:Label localId="lb6" text="DataGrid selection will be shown here"/>
@@ -550,8 +553,9 @@ limitations under the License.
 					<j:Label text="width = 100%, no column widths, rowHeight=42 and emphasis='secondary', middle column has center alignment, last column has columnWidth=75. Clicking on row icon, remove the entire row."
 						multiline="true"/>
 
-					<j:DataGrid width="100%" height="240" emphasis="secondary" rowHeight="42">
+					<j:DataGrid width="100%" height="240" emphasis="secondary">
 						<j:beads>
+							<j:DataGridPresentationModel rowHeight="42"/>
 							<js:ConstantBinding
 								sourceID="listModel"
 								sourcePropertyName="iconDetailListData"
@@ -577,8 +581,9 @@ limitations under the License.
 					<j:Label text="Toggle fixed size of DataGrid between 240px and 500px via button. Last column has columnWidth=75. Toggle dataprovider between null and test data set via button"
 							 multiline="true"/>
 
-					<j:DataGrid localId="dgFixedWidth" height="240" emphasis="secondary" rowHeight="42">
+					<j:DataGrid localId="dgFixedWidth" height="240" emphasis="secondary">
 						<j:beads>
+							<j:DataGridPresentationModel rowHeight="42"/>
 							<js:ConstantBinding
 									sourceID="listModel"
 									sourcePropertyName="iconDetailListData"
@@ -610,8 +615,9 @@ limitations under the License.
 					<j:Label text="Provides example of changing column order and also removing/adding a column. "
 							 multiline="true"/>
 
-					<j:DataGrid localId="columns1Grid" width="100%" height="240" emphasis="secondary" rowHeight="42">
+					<j:DataGrid localId="columns1Grid" width="100%" height="240" emphasis="secondary">
 						<j:beads>
+							<j:DataGridPresentationModel rowHeight="42"/>
 							<js:ConstantBinding
 									sourceID="listModel"
 									sourcePropertyName="iconDetailListData"
diff --git a/examples/jewel/TourDeJewel/src/main/royale/ListPlayGround.mxml b/examples/jewel/TourDeJewel/src/main/royale/ListPlayGround.mxml
index 7383039..e002184 100644
--- a/examples/jewel/TourDeJewel/src/main/royale/ListPlayGround.mxml
+++ b/examples/jewel/TourDeJewel/src/main/royale/ListPlayGround.mxml
@@ -223,10 +223,11 @@ limitations under the License.
 				<j:CardPrimaryContent>
 					<j:Label text="Notice variableRowHeight should be false to use rowHeight. Click on render's icon will remove that renderer" multiline="true"/>
 					
-					<j:List localId="list2" width="200" height="300" variableRowHeight="false"
+					<j:List localId="list2" width="200" height="300"
 						className="iconListItemRenderer" labelField="label"
-						emphasis="secondary" rowHeight="52">
+						emphasis="secondary">
 						<j:beads>
+							<j:ListPresentationModel rowHeight="52" variableRowHeight="false"/>
 							<js:ConstantBinding sourceID="listModel" sourcePropertyName="iconListData" destinationPropertyName="dataProvider"/>
 							<j:RemoveAllItemRendererForArrayListData/>
 						</j:beads>
diff --git a/examples/jewel/TourDeJewel/src/main/royale/TabBarPlayGround.mxml b/examples/jewel/TourDeJewel/src/main/royale/TabBarPlayGround.mxml
index 35d5868..0237923 100644
--- a/examples/jewel/TourDeJewel/src/main/royale/TabBarPlayGround.mxml
+++ b/examples/jewel/TourDeJewel/src/main/royale/TabBarPlayGround.mxml
@@ -217,8 +217,9 @@ limitations under the License.
 					<j:Label multiline="true">
 						<j:html><![CDATA[This <b>TabBar</b> has an <b>ItemRenderer</b> composed by just a label (default <b>TabBarButtonItemRenderer</b>). By default <b>TabBar</b> doesn't set <i>rowHeight</i>. This one set it to 60, so all renders has that height.]]></j:html>
 					</j:Label>
-					<j:TabBar rowHeight="60">
+					<j:TabBar>
 						<j:beads>
+							<j:TabBarPresentationModel rowHeight="60"/>
 							<js:ConstantBinding sourcePropertyName="tabBarDataSample"
 												destinationPropertyName="dataProvider"/>
 							<j:AssignTabContent selectedContentProperty="content">
diff --git a/examples/jewel/TourDeJewel/src/main/royale/VirtualListsPlayGround.mxml b/examples/jewel/TourDeJewel/src/main/royale/VirtualListsPlayGround.mxml
index a63f896..68be394 100644
--- a/examples/jewel/TourDeJewel/src/main/royale/VirtualListsPlayGround.mxml
+++ b/examples/jewel/TourDeJewel/src/main/royale/VirtualListsPlayGround.mxml
@@ -110,13 +110,12 @@ limitations under the License.
 					<j:VGroup gap="3">
 						<j:VirtualList localId="virtualIconList" width="200" height="300"
 										className="simpleiIconListItemRenderer" labelField="label"
-										emphasis="secondary" rowHeight="52"
-										dataProvider="{listModel.bigIconListVOData}"
-										selectedIndex="4"
-										>
-							<!-- <j:beads>
-								<j:RemoveAllItemRendererForArrayListData/>
-							</j:beads> -->
+										emphasis="secondary" selectedIndex="4"
+										dataProvider="{listModel.bigIconListVOData}">
+							<j:beads>
+								<j:ListPresentationModel rowHeight="52"/>
+								<!-- <j:RemoveAllItemRendererForArrayListData/> -->
+							</j:beads>
 						</j:VirtualList>
 								<!-- change="onChange(event)" -->
 						<!-- <j:Label text="Click on render's icon will remove that renderer" multiline="true" width="200"/> -->
@@ -152,8 +151,9 @@ limitations under the License.
 				
 				<j:VirtualComboBox localId="virtualIconCmb"
 							className="cmbSimpleiIconListItemRenderer" labelField="label"
-							dataProvider="{listModel.bigIconListVOData}" rowCount="4" rowHeight="52">
+							dataProvider="{listModel.bigIconListVOData}">
 					<j:beads>
+						<j:ComboBoxPresentationModel rowCount="4" rowHeight="52"/>
 						<j:ComboBoxTextPrompt prompt="Some text here..."/>
 					</j:beads>
 				</j:VirtualComboBox>			
diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
index 2436252..fb47b86 100644
--- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
+++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
@@ -234,6 +234,7 @@
     <component id="DropDownListItemRenderer" class="org.apache.royale.jewel.itemRenderers.DropDownListItemRenderer"/>
 
     <component id="ListPresentationModel" class="org.apache.royale.jewel.beads.models.ListPresentationModel"/>
+    <component id="ComboBoxPresentationModel" class="org.apache.royale.jewel.beads.models.ComboBoxPresentationModel"/>
     <component id="TabBarPresentationModel" class="org.apache.royale.jewel.beads.models.TabBarPresentationModel"/>
     <component id="DataGridColumnListPresentationModel" class="org.apache.royale.jewel.beads.models.DataGridColumnListPresentationModel"/>
     <component id="DataGridPresentationModel" class="org.apache.royale.jewel.beads.models.DataGridPresentationModel"/>
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ButtonBar.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ButtonBar.as
index 18c26e7..97f3797 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ButtonBar.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ButtonBar.as
@@ -64,7 +64,7 @@ package org.apache.royale.jewel
             typeNames = "jewel buttonbar";
 
 			// default height and rowHeight
-			height = rowHeight = 38;
+			//height = rowHeight = 38;
 		}
 		
 		/**
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ComboBox.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ComboBox.as
index d408f83..beced70 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ComboBox.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ComboBox.as
@@ -182,45 +182,6 @@ package org.apache.royale.jewel
 			ISelectionModel(model).selectedItem = value;
 		}
 
-		[Bindable("rowHeightChanged")]
-		/**
-		 *  The default height of each cell in every column
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 *  @royaleignorecoercion org.apache.royale.jewel.supportClasses.combobox.IComboBoxPresentationModel
-		 */
-        public function get rowHeight():Number
-        {
-            return (presentationModel as IComboBoxPresentationModel).rowHeight;
-        }
-        public function set rowHeight(value:Number):void
-        {
-            (presentationModel as IComboBoxPresentationModel).rowHeight = value;
-        }
-
-		[Bindable("rowCountChanged")]
-		/**
-		 *  Maximum number of rows visible in the ComboBox popup list.
-		 *  If there are fewer items in the dataProvider, the ComboBox shows only as many items as there are in the dataProvider.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 *  @royaleignorecoercion org.apache.royale.jewel.supportClasses.combobox.IComboBoxPresentationModel
-		 */
-        public function get rowCount():int
-        {
-            return (presentationModel as IComboBoxPresentationModel).rowCount;
-        }
-        public function set rowCount(value:int):void
-        {
-            (presentationModel as IComboBoxPresentationModel).rowCount = value;
-        }
-
 		/**
 		 *  The presentation model for the combobox.
 		 *
@@ -228,6 +189,7 @@ package org.apache.royale.jewel
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
+		 *  @royaleignorecoercion org.apache.royale.core.IBead
 		 *  @royaleignorecoercion org.apache.royale.jewel.supportClasses.combobox.IComboBoxPresentationModel
 		 */
 		public function get presentationModel():IComboBoxPresentationModel
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DataGrid.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DataGrid.as
index a011d59..f529508 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DataGrid.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DataGrid.as
@@ -227,27 +227,6 @@ package org.apache.royale.jewel
 			}
 			return presModel;
 		}
-				
-		/**
-		 *  The default height of each cell in every column
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 *  @royaleignorecoercion org.apache.royale.jewel.supportClasses.datagrid.IDataGridPresentationModel
-		 */
-		public function get rowHeight():Number
-		{
-			return (presentationModel as IDataGridPresentationModel).rowHeight;
-		}
-        /**
-         * @royaleignorecoercion org.apache.royale.jewel.supportClasses.datagrid.IDataGridPresentationModel
-         */
-		public function set rowHeight(value:Number):void
-		{
-			(presentationModel as IDataGridPresentationModel).rowHeight = value;
-		}
 
 		/**
          *  load necesary beads. This method can be override in subclasses to
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
index acba7e1..0fa8106 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
@@ -21,9 +21,7 @@ package org.apache.royale.jewel
 	import org.apache.royale.core.IBeadKeyController;
 	import org.apache.royale.core.IRollOverModel;
 	import org.apache.royale.core.ISelectionModel;
-	import org.apache.royale.jewel.beads.layouts.IVariableRowHeight;
 	import org.apache.royale.jewel.beads.views.IScrollToIndexView;
-	import org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
 	import org.apache.royale.utils.loadBeadFromValuesManager;
 
 	/**
@@ -69,7 +67,7 @@ package org.apache.royale.jewel
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class List extends DataContainer implements IVariableRowHeight
+	public class List extends DataContainer 
 	{
 		/**
 		 *  constructor.
@@ -132,24 +130,6 @@ package org.apache.royale.jewel
 		}
 
 		/**
-		 *  The default height of each cell in every column
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 *  @royaleignorecoercion org.apache.royale.core.IListPresentationModel
-		 */
-        public function get rowHeight():Number
-        {
-            return (presentationModel as IListPresentationModel).rowHeight;
-        }
-        public function set rowHeight(value:Number):void
-        {
-            (presentationModel as IListPresentationModel).rowHeight = value;
-        }
-
-		/**
 		 *  The item currently selected. Changing this value also
 		 *  changes the selectedIndex property.
 		 *
@@ -171,31 +151,6 @@ package org.apache.royale.jewel
 		{
 			ISelectionModel(model).selectedItem = value;
 		}
-		
-		protected var _variableRowHeight:Boolean;
-		/**
-		 *  Specifies whether layout elements are allocated their preferred height.
-		 *  Setting this property to false specifies fixed height rows.
-		 *  
-		 *  If false, the actual height of each layout element is the value of rowHeight.
-		 *  The default value is true. 
-		 *  
-		 *  Note: From Flex but we should see what to do in Royale -> Setting this property to false causes the layout to ignore the layout elements' percentHeight property.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		[Bindable("variableRowHeightChanged")]
-        public function get variableRowHeight():Boolean
-        {
-			return (presentationModel as IListPresentationModel).variableRowHeight;
-        }
-        public function set variableRowHeight(value:Boolean):void
-        {
-			(presentationModel as IListPresentationModel).variableRowHeight = value;
-        }
 
 		/**
 		 *  Ensures that the data provider item at the given index is visible.
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Navigation.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Navigation.as
index f89172c..1c81aa8 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Navigation.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Navigation.as
@@ -53,7 +53,7 @@ package org.apache.royale.jewel
             typeNames = "jewel navigation";
 
 			// rowHeight is not set by default, so set it to NaN
-			rowHeight = NaN;
+			//rowHeight = NaN;
 
 			addEventListener(MouseEvent.CLICK, internalMouseHandler);
 		}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ComboBoxPresentationModel.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ComboBoxPresentationModel.as
index 1254c1c..63aa9c3 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ComboBoxPresentationModel.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ComboBoxPresentationModel.as
@@ -57,6 +57,7 @@ package org.apache.royale.jewel.beads.models
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.7
 		 */
+		[Bindable("rowCountChanged")]
 		public function get rowCount():int
 		{
 			return _rowCount;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/DataGridPresentationModel.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/DataGridPresentationModel.as
index f1859ad..f01da6d 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/DataGridPresentationModel.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/DataGridPresentationModel.as
@@ -56,6 +56,7 @@ package org.apache.royale.jewel.beads.models
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.7
 		 */
+		[Bindable("columnLabelsChanged")]
 		public function get columnLabels():Array
 		{
 			return _columnLabels;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ListPresentationModel.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ListPresentationModel.as
index b381176..c16111f 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ListPresentationModel.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ListPresentationModel.as
@@ -60,6 +60,7 @@ package org.apache.royale.jewel.beads.models
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
+        [Bindable("rowHeightChanged")]
 		public function get rowHeight():Number
 		{
 			return _rowHeight;
@@ -82,6 +83,7 @@ package org.apache.royale.jewel.beads.models
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.7
 		 */
+		[Bindable("alignChanged")]
 		public function get align():String
 		{
 			return _align;
@@ -104,6 +106,7 @@ package org.apache.royale.jewel.beads.models
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.7
 		 */
+		[Bindable("variableRowHeightChanged")]
 		public function get variableRowHeight():Boolean
 		{
 			return _variableRowHeight;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxPopUpView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxPopUpView.as
index fe6bb19..eec592c 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxPopUpView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxPopUpView.as
@@ -29,6 +29,7 @@ package org.apache.royale.jewel.beads.views
     import org.apache.royale.jewel.List;
     import org.apache.royale.jewel.supportClasses.combobox.ComboBoxPopUp;
     import org.apache.royale.jewel.supportClasses.combobox.IComboBoxPresentationModel;
+    import org.apache.royale.jewel.beads.models.ListPresentationModel;
     
     /**
 	 * The ComboBoxPopUpView class is a view bead for the ComboBoxPopUp.
@@ -75,8 +76,7 @@ package org.apache.royale.jewel.beads.views
 
             // set rowHeight
             var _presentationModel:IComboBoxPresentationModel = (_strand as ComboBoxPopUp).presentationModel as IComboBoxPresentationModel;
-            list.rowHeight = _presentationModel.rowHeight;
-
+            
             // set height based on rowCount
             var rowCount:int = _presentationModel.rowCount;
             var len:int;
@@ -90,7 +90,13 @@ package org.apache.royale.jewel.beads.views
                     rowCount = len;
             }
             
-            list.height = rowCount * list.rowHeight;
+            trace("_presentationModel.rowHeight: ", _presentationModel.rowHeight);
+            if(isNaN( _presentationModel.rowHeight))
+                _presentationModel.rowHeight = ListPresentationModel.DEFAULT_ROW_HEIGHT;
+            trace("rowCount: ", rowCount);
+            trace("list.height: ", list.height);
+            list.height = rowCount * _presentationModel.rowHeight;
+            trace(" list.height: ", list.height);
 
             IParent(_strand).addElement(list);
 		}