You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by hi...@apache.org on 2022/06/02 01:47:09 UTC

[royale-asjs] branch develop updated: [jewel/InterfaceInputButton] Rename "IInputAndButtonView" by "IViewWi… (#1201)

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

hiedra 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 73ad4bdc62 [jewel/InterfaceInputButton] Rename "IInputAndButtonView" by "IViewWi… (#1201)
73ad4bdc62 is described below

commit 73ad4bdc62a040c98b9370260830a5cc8a87caa1
Author: Hiedra <55...@users.noreply.github.com>
AuthorDate: Thu Jun 2 03:47:05 2022 +0200

    [jewel/InterfaceInputButton] Rename "IInputAndButtonView" by "IViewWi… (#1201)
    
    * [jewel/InterfaceInputButton] Rename "IInputAndButtonView" by "IViewWithTextInputAndButton".
    Generals beads: "Disabled", "ReadOnly", "TextPrompt" and "TruncateText".
    Change, in IViewWithTextInputAndButton" bead, "Object" by more specifique type: "popup" is IPopup, "button" is IStyledUIBase and "textinput" is TextInputBase
    
    * [jewel/InterfaceInputButton] To align the js and js-swf builds change the reference type of the "button" sub-component from IStyledUIBase to IUIBase
---
 .../Jewel/src/main/resources/jewel-manifest.xml    |  6 ++--
 .../projects/Jewel/src/main/royale/JewelClasses.as |  2 +-
 .../royale/org/apache/royale/jewel/DateChooser.as  |  3 +-
 .../beads/controllers/DateFieldMouseController.as  |  3 +-
 ...led.as => TextInputAndButtonControlDisabled.as} | 12 ++++----
 ...nly.as => TextInputAndButtonControlReadOnly.as} | 14 ++++-----
 ...tPrompt.as => TextInputSubControlTextPrompt.as} | 18 +++++-------
 ...eText.as => TextInputSubControlTruncateText.as} | 21 ++++++-------
 .../beads/controls/combobox/ComboBoxDisabled.as    |  4 +--
 .../controls/combobox/ComboBoxListCloseOnClick.as  | 10 ++++---
 .../beads/controls/combobox/ComboBoxReadOnly.as    |  4 +--
 .../beads/controls/combobox/ComboBoxTextPrompt.as  | 17 ++---------
 .../controls/combobox/ComboBoxTruncateText.as      | 21 ++-----------
 .../jewel/beads/controls/combobox/IComboBoxView.as |  7 +++--
 .../jewel/beads/controls/combobox/SearchFilter.as  |  4 ++-
 .../beads/controls/datefield/DateFieldDisabled.as  |  4 +--
 .../controls/datefield/DateFieldTextPrompt.as      | 20 ++-----------
 .../royale/jewel/beads/views/ComboBoxView.as       | 14 +++++----
 .../royale/jewel/beads/views/DateFieldView.as      | 34 ++++++++++++++--------
 ...uttonView.as => IViewWithTextInputAndButton.as} | 13 +++++----
 20 files changed, 103 insertions(+), 128 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
index b3e0bb4e73..0b4587faf4 100644
--- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
+++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
@@ -185,13 +185,15 @@
     <component id="BadgeWithMouseClick" class="org.apache.royale.jewel.beads.controls.BadgeWithMouseClick"/>
     <component id="ToolTip" class="org.apache.royale.jewel.beads.controls.ToolTip"/>
     <component id="Disabled" class="org.apache.royale.jewel.beads.controls.Disabled"/>
-    <component id="InputAndButtonControlDisabled" class="org.apache.royale.jewel.beads.controls.InputAndButtonControlDisabled"/>
     <component id="SizeControl" class="org.apache.royale.jewel.beads.controls.SizeControl"/>
     <component id="ResponsiveSize" class="org.apache.royale.jewel.beads.controls.ResponsiveSize"/>
     <component id="TextAlign" class="org.apache.royale.jewel.beads.controls.TextAlign"/>
     <component id="ResponsiveVisibility" class="org.apache.royale.jewel.beads.layouts.ResponsiveVisibility"/>
     <component id="ReadOnly" class="org.apache.royale.jewel.beads.controls.ReadOnly"/>
-    <component id="InputAndButtonControlReadOnly" class="org.apache.royale.jewel.beads.controls.InputAndButtonControlReadOnly"/>
+    <component id="TextInputAndButtonControlReadOnly" class="org.apache.royale.jewel.beads.controls.TextInputAndButtonControlReadOnly"/>
+    <component id="TextInputAndButtonControlDisabled" class="org.apache.royale.jewel.beads.controls.TextInputAndButtonControlDisabled"/>
+    <component id="TextInputSubControlTextPrompt" class="org.apache.royale.jewel.beads.controls.TextInputSubControlTextPrompt"/>
+    <component id="TextInputSubControlTruncateText" class="org.apache.royale.jewel.beads.controls.TextInputSubControlTruncateText"/>
 
     <component id="ResponsiveDrawer" class="org.apache.royale.jewel.beads.controls.drawer.ResponsiveDrawer"/>
 
diff --git a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
index 3bcfd45a7f..8011f4bcdc 100644
--- a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
+++ b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
@@ -64,7 +64,7 @@ import org.apache.royale.utils.observeElementSize;
         import org.apache.royale.jewel.beads.controllers.WizardController; WizardController;
 
         import org.apache.royale.jewel.beads.views.PopUpView; PopUpView;
-        import org.apache.royale.jewel.beads.views.IInputAndButtonView; IInputAndButtonView;
+        import org.apache.royale.jewel.beads.views.IViewWithTextInputAndButton; IViewWithTextInputAndButton;
         import org.apache.royale.jewel.beads.views.ImageView; ImageView;
         import org.apache.royale.jewel.beads.views.SpinnerView; SpinnerView;
         import org.apache.royale.jewel.beads.views.NumericStepperView; NumericStepperView;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DateChooser.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DateChooser.as
index 0ed3d41e00..3432ae160e 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DateChooser.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DateChooser.as
@@ -20,6 +20,7 @@ package org.apache.royale.jewel
 {
 	import org.apache.royale.core.IDateChooserModel;
 	import org.apache.royale.jewel.Group;
+	import org.apache.royale.core.IPopUp;
 
 	/**
 	 * The change event is dispatched when the selectedDate is changed.
@@ -35,7 +36,7 @@ package org.apache.royale.jewel
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class DateChooser extends Group
+	public class DateChooser extends Group implements IPopUp
 	{
 		/**
 		 *  constructor.
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/DateFieldMouseController.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/DateFieldMouseController.as
index f1e1f1a124..dc7443ae2b 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/DateFieldMouseController.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/DateFieldMouseController.as
@@ -33,6 +33,7 @@ package org.apache.royale.jewel.beads.controllers
 	import org.apache.royale.jewel.beads.views.DateFieldView;
 	import org.apache.royale.core.IStrandWithModel;
 	import org.apache.royale.html.util.getModelByType;
+	import org.apache.royale.core.UIBase;
 	
 	/**
 	 * The DateFieldMouseController class is responsible for monitoring
@@ -103,7 +104,7 @@ package org.apache.royale.jewel.beads.controllers
             // t.start();
 
 			// viewBead.popUp is DateChooser that fills 100% of browser window-> We want Table inside
-			table = (viewBead.popUp.getBeadByType(DateChooserView) as DateChooserView).table;
+			table = ((viewBead.popUp as UIBase).getBeadByType(DateChooserView) as DateChooserView).table;
 
 			IEventDispatcher(table).addEventListener(MouseEvent.MOUSE_DOWN, handleControlMouseDown);
 			IUIBase(viewBead.popUp).addEventListener(MouseEvent.MOUSE_DOWN, removePopUpWhenClickOutside);
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/InputAndButtonControlDisabled.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputAndButtonControlDisabled.as
similarity index 85%
rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/InputAndButtonControlDisabled.as
rename to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputAndButtonControlDisabled.as
index 2f59342daf..72063c1fa8 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/InputAndButtonControlDisabled.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputAndButtonControlDisabled.as
@@ -25,18 +25,18 @@ package org.apache.royale.jewel.beads.controls
 	}
 	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.jewel.beads.controls.Disabled;
-    import org.apache.royale.jewel.beads.views.IInputAndButtonView;
+    import org.apache.royale.jewel.beads.views.IViewWithTextInputAndButton;
 	
 	/**
-	 *  The InputAndButtonControlDisabled bead class is a generic Disabled bead that can be used to disable a 
-	 *  Jewel control that implements the IInputAndButtonView interface.
+	 *  The TextInputAndButtonControlDisabled bead class is a generic Disabled bead that can be used to disable a 
+	 *  Jewel control that implements the IViewWithTextInputAndButton interface.
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.6
 	 */
-	public class InputAndButtonControlDisabled extends Disabled
+	public class TextInputAndButtonControlDisabled extends Disabled
 	{
 		/**
 		 *  constructor.
@@ -46,7 +46,7 @@ package org.apache.royale.jewel.beads.controls
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.6
 		 */
-		public function InputAndButtonControlDisabled()
+		public function TextInputAndButtonControlDisabled()
 		{
 		}
 
@@ -59,7 +59,7 @@ package org.apache.royale.jewel.beads.controls
 		{
 			COMPILE::JS
 			{
-			var view:IInputAndButtonView = (_strand as UIBase).view as IInputAndButtonView;
+			var view:IViewWithTextInputAndButton = (_strand as UIBase).view as IViewWithTextInputAndButton;
 
 			if (view) {
 				var pos:HTMLElement = (_strand as IUIBase).positioner;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/InputAndButtonControlReadOnly.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputAndButtonControlReadOnly.as
similarity index 85%
rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/InputAndButtonControlReadOnly.as
rename to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputAndButtonControlReadOnly.as
index ed1922f316..4892690f4d 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/InputAndButtonControlReadOnly.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputAndButtonControlReadOnly.as
@@ -21,22 +21,22 @@ package org.apache.royale.jewel.beads.controls
 	COMPILE::JS
 	{
 	import org.apache.royale.core.HTMLElementWrapper;
-	import org.apache.royale.core.UIBase;
-    import org.apache.royale.jewel.beads.views.IInputAndButtonView;
+    import org.apache.royale.jewel.beads.views.IViewWithTextInputAndButton;
 	}
 	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.jewel.beads.controls.ReadOnly;
+	import org.apache.royale.core.UIBase;
 	
 	/**
-	 *  The InputAndButtonControlReadOnly bead class is a generic ReadOnly bead that can be used to lock a 
-	 *  Jewel control that implements the IInputAndButtonView interface.
+	 *  The TextInputAndButtonControlReadOnly bead class is a generic ReadOnly bead that can be used to lock a 
+	 *  Jewel control that implements the IViewWithTextInputAndButton interface.
 	 * 
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.6
 	 */
-	public class InputAndButtonControlReadOnly extends ReadOnly
+	public class TextInputAndButtonControlReadOnly extends ReadOnly
 	{
 		/**
 		 *  constructor.
@@ -46,7 +46,7 @@ package org.apache.royale.jewel.beads.controls
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.9
 		 */
-		public function InputAndButtonControlReadOnly()
+		public function TextInputAndButtonControlReadOnly()
 		{
 		}
 
@@ -59,7 +59,7 @@ package org.apache.royale.jewel.beads.controls
 		{
 			COMPILE::JS
 			{
-			var view:IInputAndButtonView = (_strand as UIBase).view as IInputAndButtonView;
+			var view:IViewWithTextInputAndButton = (_strand as UIBase).view as IViewWithTextInputAndButton;
 
 			if (view) {
 				var pos:HTMLElement = (_strand as IUIBase).positioner;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldTextPrompt.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputSubControlTextPrompt.as
similarity index 76%
copy from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldTextPrompt.as
copy to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputSubControlTextPrompt.as
index 1cc0b829da..b7e60907f8 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldTextPrompt.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputSubControlTextPrompt.as
@@ -16,27 +16,25 @@
 //  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.jewel.beads.controls.datefield
-{
-	COMPILE::SWF
+package org.apache.royale.jewel.beads.controls
+{	COMPILE::SWF
 	{
 	import flash.utils.setTimeout;
     }
 	import org.apache.royale.core.UIBase;
 	import org.apache.royale.jewel.beads.controls.textinput.TextPrompt;
-	import org.apache.royale.jewel.beads.views.DateFieldView;
+	import org.apache.royale.jewel.beads.views.IViewWithTextInputAndButton;
 	
 	/**
-	 *  The DateFieldTextPrompt class is a specialty bead that can be used with
-	 *  any DateField control. The bead places a string into the sub TextInput component
-	 *  when there is no value associated with the text property.
+	 *  The InputControlTextPrompt bead class is a generic TextPrompt bead that can be used to 
+	 *  Jewel control that implements the IViewWithTextInputAndButton interface.
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class DateFieldTextPrompt extends TextPrompt
+	public class TextInputSubControlTextPrompt extends TextPrompt
 	{
 		/**
 		 *  constructor.
@@ -46,7 +44,7 @@ package org.apache.royale.jewel.beads.controls.datefield
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function DateFieldTextPrompt()
+		public function TextInputSubControlTextPrompt()
 		{
 		}
 
@@ -61,7 +59,7 @@ package org.apache.royale.jewel.beads.controls.datefield
 		COMPILE::JS
 		override protected function updatePromptText():void
 		{
-			((_strand as UIBase).view as DateFieldView).textInput.input.placeholder = prompt;
+			((_strand as UIBase).view as IViewWithTextInputAndButton).textinput.input.placeholder = prompt;
 		}
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTruncateText.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputSubControlTruncateText.as
similarity index 69%
copy from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTruncateText.as
copy to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputSubControlTruncateText.as
index 9fec20971a..36a3932d46 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTruncateText.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/TextInputSubControlTruncateText.as
@@ -16,25 +16,26 @@
 //  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.jewel.beads.controls.combobox
+package org.apache.royale.jewel.beads.controls
 {
 	import org.apache.royale.core.IBead;
 	import org.apache.royale.core.IStrand;
-	import org.apache.royale.core.IStyledUIBase;
+	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.core.StyledUIBase;
 	import org.apache.royale.jewel.beads.controls.textinput.TruncateText;
+	import org.apache.royale.jewel.beads.views.IViewWithTextInputAndButton;
 	
 	/**
-	 *  The ComboBoxTruncateText class is a specialty bead that can be used with
-	 *  a Jewel ComboBox control. The bead truncate the text when no space is available
-	 *  using "..."
+	 *  The TextInputSubControlTruncateText bead class is a generic TruncateText bead that can be used to 
+	 *  Jewel control that implements the IViewWithTextInputAndButton interface.
+	 *  The bead truncate the text when no space is available using "..."
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
-	 *  @productversion Royale 0.9.7
+	 *  @productversion Royale 0.9.4
 	 */
-	public class ComboBoxTruncateText implements IBead
+	public class TextInputSubControlTruncateText implements IBead
 	{
 		/**
 		 *  constructor.
@@ -42,9 +43,9 @@ package org.apache.royale.jewel.beads.controls.combobox
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
+		 *  @productversion Royale 0.9.4
 		 */
-		public function ComboBoxTruncateText()
+		public function TextInputSubControlTruncateText()
 		{
 		}
 
@@ -58,7 +59,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 		 */
 		public function set strand(value:IStrand):void
 		{
-			(((value as StyledUIBase).view as IComboBoxView).textinput as IStyledUIBase).addBead(new TruncateText());
+			(((value as StyledUIBase).view as IViewWithTextInputAndButton).textinput as IUIBase).addBead(new TruncateText());
 		}
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxDisabled.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxDisabled.as
index 4fa08cedc4..c21b363c39 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxDisabled.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxDisabled.as
@@ -18,7 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.beads.controls.combobox
 {
-	import org.apache.royale.jewel.beads.controls.InputAndButtonControlDisabled;
+	import org.apache.royale.jewel.beads.controls.TextInputAndButtonControlDisabled;
 	
 	/**
 	 *  The ComboBoxDisabled bead class is a specialty bead that can be used to disable a Jewel ComboBox.
@@ -28,7 +28,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.6
 	 */
-	public class ComboBoxDisabled extends InputAndButtonControlDisabled
+	public class ComboBoxDisabled extends TextInputAndButtonControlDisabled
 	{
 		/**
 		 *  constructor.
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxListCloseOnClick.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxListCloseOnClick.as
index 9bffe3ee97..805724e2f9 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxListCloseOnClick.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxListCloseOnClick.as
@@ -25,7 +25,9 @@ package org.apache.royale.jewel.beads.controls.combobox
     import org.apache.royale.events.MouseEvent;
     import org.apache.royale.jewel.ComboBox;
     import org.apache.royale.jewel.List;
-    import org.apache.royale.jewel.beads.views.ComboBoxView;
+    import org.apache.royale.jewel.beads.controls.combobox.IComboBoxView;
+    import org.apache.royale.core.IStrandWithModelView;
+    import org.apache.royale.jewel.beads.views.ComboBoxPopUpView;
 
     /**
 	 *  The ComboBoxListCloseOnClick bead class is a specialty bead that can be used with
@@ -54,14 +56,14 @@ package org.apache.royale.jewel.beads.controls.combobox
         }
 
         private var _list:List;
-        private var comboView:ComboBoxView;
+        private var comboView:IComboBoxView;
         
         public override function set strand(value:IStrand):void
 		{
             super.strand = value;
 
             var comboBox:ComboBox = (value as ComboBox);
-            comboView = (comboBox.view as ComboBoxView);
+            comboView = (comboBox.view as IComboBoxView);
             var itemRendererClass:Class = ValuesManager.valuesImpl.getValue(comboView.host, "iItemRenderer") as Class;
             // Checking that the bead is applied to a Jewel ComboBox and has a custom item renderer assigned
             if (comboView && (comboBox.itemRenderer || itemRendererClass != null)){
@@ -71,7 +73,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 		}
 
         protected function popUpOpenedHandler():void {
-			list = comboView.popup.view.list;
+			list = ((comboView.popup as IStrandWithModelView).view as ComboBoxPopUpView).list;
 		}
 
 		protected function popUpClosedHandler():void {
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxReadOnly.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxReadOnly.as
index 6b6f295e97..afd15cae9b 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxReadOnly.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxReadOnly.as
@@ -18,7 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.beads.controls.combobox
 {
-	import org.apache.royale.jewel.beads.controls.InputAndButtonControlReadOnly;
+	import org.apache.royale.jewel.beads.controls.TextInputAndButtonControlReadOnly;
 	
 	/**
 	 *  The ComboBoxReadOnly bead class is a specialty ReadOnly bead that can be used to lock a Jewel ComboBox.
@@ -30,7 +30,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.6
 	 */
-	public class ComboBoxReadOnly extends InputAndButtonControlReadOnly
+	public class ComboBoxReadOnly extends TextInputAndButtonControlReadOnly
 	{
 		/**
 		 *  constructor.
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTextPrompt.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTextPrompt.as
index 7ae0303052..c1cd4c6fea 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTextPrompt.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTextPrompt.as
@@ -21,6 +21,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 	import org.apache.royale.core.UIBase;
 	import org.apache.royale.jewel.beads.controls.combobox.IComboBoxView;
 	import org.apache.royale.jewel.beads.controls.textinput.TextPrompt;
+	import org.apache.royale.jewel.beads.controls.TextInputSubControlTextPrompt;
 	
 	/**
 	 *  The ComboBoxTextPrompt class is a specialty bead that can be used with
@@ -32,7 +33,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class ComboBoxTextPrompt extends TextPrompt
+	public class ComboBoxTextPrompt extends TextInputSubControlTextPrompt
 	{
 		/**
 		 *  constructor.
@@ -45,19 +46,5 @@ package org.apache.royale.jewel.beads.controls.combobox
 		public function ComboBoxTextPrompt()
 		{
 		}
-
-		/**
-         *  @copy org.apache.royale.jewel.beads.controls.textinput.TextPrompt#updatePromptText()
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.7
-         */
-		COMPILE::JS
-		override protected function updatePromptText():void
-		{
-			((_strand as UIBase).view as IComboBoxView).textinput.input.placeholder = prompt;
-		}
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTruncateText.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTruncateText.as
index 9fec20971a..9e8fd3d4d3 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTruncateText.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxTruncateText.as
@@ -18,11 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.beads.controls.combobox
 {
-	import org.apache.royale.core.IBead;
-	import org.apache.royale.core.IStrand;
-	import org.apache.royale.core.IStyledUIBase;
-	import org.apache.royale.core.StyledUIBase;
-	import org.apache.royale.jewel.beads.controls.textinput.TruncateText;
+	import org.apache.royale.jewel.beads.controls.TextInputSubControlTruncateText;
 	
 	/**
 	 *  The ComboBoxTruncateText class is a specialty bead that can be used with
@@ -34,7 +30,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.7
 	 */
-	public class ComboBoxTruncateText implements IBead
+	public class ComboBoxTruncateText extends TextInputSubControlTruncateText
 	{
 		/**
 		 *  constructor.
@@ -47,18 +43,5 @@ package org.apache.royale.jewel.beads.controls.combobox
 		public function ComboBoxTruncateText()
 		{
 		}
-
-		/**
-		 *  @copy org.apache.royale.core.IBead#strand
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		public function set strand(value:IStrand):void
-		{
-			(((value as StyledUIBase).view as IComboBoxView).textinput as IStyledUIBase).addBead(new TruncateText());
-		}
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/IComboBoxView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/IComboBoxView.as
index 5293457590..bd25df6889 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/IComboBoxView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/IComboBoxView.as
@@ -18,7 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.beads.controls.combobox
 {
-    import org.apache.royale.jewel.beads.views.IInputAndButtonView;
+    import org.apache.royale.jewel.beads.views.IViewWithTextInputAndButton;
+    import org.apache.royale.core.IPopUp;
     
 	/**
 	 *  The IComboBoxView interface provides the protocol for any bead that
@@ -29,7 +30,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public interface IComboBoxView extends IInputAndButtonView
+	public interface IComboBoxView extends IViewWithTextInputAndButton
 	{		
 		/**
 		 *  The component housing the selection list. The main component must be a placeholder
@@ -41,7 +42,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		function get popup():Object;
+		function get popup():IPopUp;
 		
 		/**
 		 *  Determines whether or not the pop-up with the selection list is visible or not.
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
index 822e1fefd4..94cb6c230e 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
@@ -26,6 +26,8 @@ package org.apache.royale.jewel.beads.controls.combobox
 	import org.apache.royale.jewel.List;
     import org.apache.royale.events.MouseEvent;
     import org.apache.royale.events.IEventDispatcher;
+    import org.apache.royale.core.IStrandWithModelView;
+    import org.apache.royale.jewel.beads.views.ComboBoxPopUpView;
 
 	/**
 	 *  The SearchFilter bead class is a specialty bead that can be used with
@@ -110,7 +112,7 @@ package org.apache.royale.jewel.beads.controls.combobox
 
 		protected function popUpOpenedHandler():void {
 			// fill "list" with the internal list in the combobox popup
-			list = comboView.popup.view.list;
+			list = ((comboView.popup as IStrandWithModelView).view as ComboBoxPopUpView).list;
 		}
 
 		protected function popUpClosedHandler():void {
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDisabled.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDisabled.as
index 13f63b511f..7a9ff89579 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDisabled.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDisabled.as
@@ -18,7 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.beads.controls.datefield
 {
-	import org.apache.royale.jewel.beads.controls.InputAndButtonControlDisabled;
+	import org.apache.royale.jewel.beads.controls.TextInputAndButtonControlDisabled;
 
 	/**
 	 *  The DateFieldDisabled bead class is a specialty bead that can be used to disable a Jewel DateField control.
@@ -29,7 +29,7 @@ package org.apache.royale.jewel.beads.controls.datefield
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.6
 	 */
-	public class DateFieldDisabled extends InputAndButtonControlDisabled
+	public class DateFieldDisabled extends TextInputAndButtonControlDisabled
 	{
 		/**
 		 *  constructor.
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldTextPrompt.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldTextPrompt.as
index 1cc0b829da..1cadcfe088 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldTextPrompt.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldTextPrompt.as
@@ -22,9 +22,7 @@ package org.apache.royale.jewel.beads.controls.datefield
 	{
 	import flash.utils.setTimeout;
     }
-	import org.apache.royale.core.UIBase;
-	import org.apache.royale.jewel.beads.controls.textinput.TextPrompt;
-	import org.apache.royale.jewel.beads.views.DateFieldView;
+	import org.apache.royale.jewel.beads.controls.TextInputSubControlTextPrompt;
 	
 	/**
 	 *  The DateFieldTextPrompt class is a specialty bead that can be used with
@@ -36,7 +34,7 @@ package org.apache.royale.jewel.beads.controls.datefield
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class DateFieldTextPrompt extends TextPrompt
+	public class DateFieldTextPrompt extends TextInputSubControlTextPrompt
 	{
 		/**
 		 *  constructor.
@@ -49,19 +47,5 @@ package org.apache.royale.jewel.beads.controls.datefield
 		public function DateFieldTextPrompt()
 		{
 		}
-
-		/**
-         *  @copy org.apache.royale.jewel.beads.controls.textinput.TextPrompt#updatePromptText()
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.7
-         */
-		COMPILE::JS
-		override protected function updatePromptText():void
-		{
-			((_strand as UIBase).view as DateFieldView).textInput.input.placeholder = prompt;
-		}
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as
index b66bbabb87..0dbd0c9111 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as
@@ -31,10 +31,13 @@ package org.apache.royale.jewel.beads.views
 	import org.apache.royale.core.IItemRendererProvider;
 	import org.apache.royale.core.ILayoutChild;
 	import org.apache.royale.core.IParent;
+	import org.apache.royale.core.IPopUp;
 	import org.apache.royale.core.IStrand;
+	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.core.ValuesManager;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.html.util.getLabelFromData;
+	import org.apache.royale.html.util.getModelByType;
 	import org.apache.royale.jewel.Button;
 	import org.apache.royale.jewel.ComboBox;
 	import org.apache.royale.jewel.List;
@@ -42,10 +45,9 @@ package org.apache.royale.jewel.beads.views
 	import org.apache.royale.jewel.beads.controls.combobox.IComboBoxView;
 	import org.apache.royale.jewel.beads.models.IJewelSelectionModel;
 	import org.apache.royale.jewel.supportClasses.combobox.ComboBoxPopUp;
-	import org.apache.royale.utils.UIUtils;
+    import org.apache.royale.jewel.supportClasses.textinput.TextInputBase;
 	import org.apache.royale.utils.sendStrandEvent;
-	import org.apache.royale.html.util.getModelByType;
-
+	import org.apache.royale.utils.UIUtils;
 	/**
 	 *  The ComboBoxView class creates the visual elements of the org.apache.royale.jewel.ComboBox
 	 *  component. The job of the view bead is to put together the parts of the ComboBox such as the TextInput
@@ -75,7 +77,7 @@ package org.apache.royale.jewel.beads.views
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function get textinput():Object
+		public function get textinput():TextInputBase
 		{
 			return _textinput;
 		}
@@ -91,7 +93,7 @@ package org.apache.royale.jewel.beads.views
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function get button():Object
+		public function get button():IUIBase
 		{
 			return _button;
 		}
@@ -110,7 +112,7 @@ package org.apache.royale.jewel.beads.views
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function get popup():Object
+		public function get popup():IPopUp
 		{
 			return _comboPopUp;
 		}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DateFieldView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DateFieldView.as
index 19948f59b8..aebdf22d28 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DateFieldView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DateFieldView.as
@@ -29,15 +29,18 @@ package org.apache.royale.jewel.beads.views
 	import org.apache.royale.jewel.supportClasses.util.positionInsideBoundingClientRect;
 	}
 	import org.apache.royale.core.BeadViewBase;
-	import org.apache.royale.jewel.beads.views.IInputAndButtonView;
 	import org.apache.royale.core.IDateChooserModel;
 	import org.apache.royale.core.IDateFormatter;
 	import org.apache.royale.core.IFormatter;
 	import org.apache.royale.core.ILayoutChild;
+	import org.apache.royale.core.IPopUp;
 	import org.apache.royale.core.IPopUpHost;
 	import org.apache.royale.core.IStrand;
+	import org.apache.royale.core.IStrandWithModelView;
+	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.core.UIBase;
 	import org.apache.royale.core.ValuesManager;
+	import org.apache.royale.html.util.getModelByType;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.jewel.Button;
@@ -45,12 +48,13 @@ package org.apache.royale.jewel.beads.views
 	import org.apache.royale.jewel.DateField;
 	import org.apache.royale.jewel.Table;
 	import org.apache.royale.jewel.TextInput;
+	import org.apache.royale.jewel.beads.controls.combobox.IComboBoxView;
 	import org.apache.royale.jewel.beads.controls.datefield.DateFieldMaskedTextInput;
 	import org.apache.royale.jewel.beads.controls.textinput.MaxNumberCharacters;
 	import org.apache.royale.jewel.beads.views.DateChooserView;
-	import org.apache.royale.utils.UIUtils;
+    import org.apache.royale.jewel.supportClasses.textinput.TextInputBase;
 	import org.apache.royale.utils.sendStrandEvent;
-	import org.apache.royale.html.util.getModelByType;
+	import org.apache.royale.utils.UIUtils;
 
 	/**
 	 * The DateFieldView class is a bead for DateField that creates the
@@ -63,7 +67,7 @@ package org.apache.royale.jewel.beads.views
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class DateFieldView extends BeadViewBase implements IInputAndButtonView
+	public class DateFieldView extends BeadViewBase implements IComboBoxView
 	{
 		/**
 		 *  constructor.
@@ -88,14 +92,14 @@ package org.apache.royale.jewel.beads.views
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function get button():Object
+		public function get button():IUIBase
 		{
-			return _button;
+			return _button as IUIBase;
 		}
 		/**
 		 * deprecated
 		 */
-		public function get menuButton():Object
+		public function get menuButton():IUIBase
 		{
 			return _button;
 		}
@@ -108,14 +112,14 @@ package org.apache.royale.jewel.beads.views
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function get textinput():Object
+		public function get textinput():TextInputBase
 		{
 			return _textInput;
 		}
 		/**
 		 * deprecated
 		 */
-		public function get textInput():Object
+		public function get textInput():TextInputBase
 		{
 			return _textInput;
 		}
@@ -231,7 +235,14 @@ package org.apache.royale.jewel.beads.views
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		public function get popUp():DateChooser
+		public function get popup():IPopUp
+		{
+			return _popUp;
+		}
+		/**
+		 * deprecated
+		 */
+		public function get popUp():IPopUp
 		{
 			return _popUp;
 		}
@@ -280,8 +291,7 @@ package org.apache.royale.jewel.beads.views
 					var host:IPopUpHost = UIUtils.findPopUpHost(getHost()) as IPopUpHost;
 					host.popUpParent.addElement(_popUp);
 					// viewBead.popUp is DateChooser that fills 100% of browser window-> We want Table inside
-					table = (popUp.view as DateChooserView).table;
-
+					table = ((popUp as IStrandWithModelView).view as DateChooserView).table
 					// rq = requestAnimationFrame(prepareForPopUp); // not work in Chrome/Firefox, while works in Safari, IE11, setInterval/Timer as well doesn't work right in Firefox
 					
 					COMPILE::JS
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/IInputAndButtonView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/IViewWithTextInputAndButton.as
similarity index 79%
rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/IInputAndButtonView.as
rename to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/IViewWithTextInputAndButton.as
index 0d7142e9f9..63439ee313 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/IInputAndButtonView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/IViewWithTextInputAndButton.as
@@ -19,17 +19,18 @@
 package org.apache.royale.jewel.beads.views
 {
     import org.apache.royale.core.IBeadView;
-    
+    import org.apache.royale.core.IUIBase;
+    import org.apache.royale.jewel.supportClasses.textinput.TextInputBase;
 	/**
-	 *  The IInputAndButtonView interface provides the protocol for any bead that
-	 *  creates the visual parts for a control containing a input and a button.
+	 *  The IViewWithTextInputAndButton interface provides the protocol for any bead that
+	 *  creates the visual parts for a control containing a text area and a button.
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public interface IInputAndButtonView extends IBeadView
+	public interface IViewWithTextInputAndButton extends IBeadView
 	{
 		/**
 		 *  The sub-component used for the input area of the Control.
@@ -39,7 +40,7 @@ package org.apache.royale.jewel.beads.views
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		function get textinput():Object;
+		function get textinput():TextInputBase;
 		
 		/**
 		 *  The sub-component used for the button to activate the pop-up.
@@ -49,6 +50,6 @@ package org.apache.royale.jewel.beads.views
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
 		 */
-		function get button():Object;
+		function get button():IUIBase;
 	}
 }