Solve a bug in change text field that was not removing prompt. But must be 
revisited since this should be handled through model and not directly from 
component, but model is missing when queried…


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/fadd9f0a
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/fadd9f0a
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/fadd9f0a

Branch: refs/heads/feature/fontawesome
Commit: fadd9f0a2d3d039383f1d21f55c7c39e392ca51a
Parents: 81bf74d
Author: Carlos Rovira <[email protected]>
Authored: Sun Jan 1 20:39:06 2017 +0100
Committer: Carlos Rovira <[email protected]>
Committed: Sun Jan 1 20:39:06 2017 +0100

----------------------------------------------------------------------
 .../org/apache/flex/mdl/beads/TextPrompt.as     | 71 ++++++++++++++------
 .../src/main/resources/defaults.css             | 14 ++++
 2 files changed, 63 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fadd9f0a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/TextPrompt.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/TextPrompt.as
 
b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/TextPrompt.as
index 413892a..31178b6 100644
--- 
a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/TextPrompt.as
+++ 
b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/TextPrompt.as
@@ -32,6 +32,7 @@ package org.apache.flex.mdl.beads
        import org.apache.flex.events.IEventDispatcher;
 
     import org.apache.flex.mdl.supportClasses.ITextField;
+       import org.apache.flex.mdl.supportClasses.TextFieldBase;
        
        /**
         *  The TextPrompt class is a specialty bead that can be used with
@@ -92,15 +93,15 @@ package org.apache.flex.mdl.beads
                {
                        _strand = value;
                        
+                       //var model:Object = UIBase(_strand).model;
+                       // listen for changes in text to hide or show the prompt
+                       //if (!model.hasOwnProperty("text")) {
+                       //      throw new Error("Model requires a text property 
when used with TextPromptBead");
+                       //}
+                       
IEventDispatcher(UIBase(_strand)).addEventListener("textChange", 
handleTextChange);
+
                        COMPILE::SWF
                        {
-                               // listen for changes in text to hide or show 
the prompt
-                               var model:Object = UIBase(_strand).model;
-                               if (!model.hasOwnProperty("text")) {
-                                       throw new Error("Model requires a text 
property when used with TextPromptBead");
-                               }
-                               
IEventDispatcher(model).addEventListener("textChange", handleTextChange);
-                               
                                // create a TextField that displays the prompt 
- it shows
                                // and hides based on the model's content
                                promptField = new CSSTextField();
@@ -114,37 +115,63 @@ package org.apache.flex.mdl.beads
                                // trigger the event handler to display if 
needed
                                handleTextChange(null);                         
        
                        }
+
                        COMPILE::JS
                        {
-                               var mdlTi:ITextField = value as ITextField;
+                               mdlTi = value as ITextField;
                 mdlTi.textNode.nodeValue = prompt;
+                               
                                //var e:HTMLInputElement = host.element as 
HTMLInputElement;
                                //e.placeholder = prompt;
                        }
                }
                
+               private var promptAdded:Boolean;
+               
+               COMPILE::JS
+               private var mdlTi:ITextField;
+
                COMPILE::SWF
                private var promptField:CSSTextField;
-               private var promptAdded:Boolean;
+               
                
                /**
                 * @private
                 */
-               COMPILE::SWF
                private function handleTextChange( event:Event ):void
-               {       
-                       // see what the model currently has to determine if the 
prompt should be
-                       // displayed or not.
-                       var model:Object = UIBase(_strand).model;
-                       
-                       if (model.text != null && model.text.length > 0 ) {
-                               if (promptAdded) 
UIBase(_strand).$displayObjectContainer.removeChild(promptField);
-                               promptAdded = false;
+               {
+                       COMPILE::SWF
+                       {
+                               // see what the model currently has to 
determine if the prompt should be
+                               // displayed or not.
+                               var model:Object = UIBase(_strand).model;
+                               
+                               if (model.text != null && model.text.length > 0 
) {
+                                       if (promptAdded) 
UIBase(_strand).$displayObjectContainer.removeChild(promptField);
+                                       promptAdded = false;
+                               }
+                               else {
+                                       if (!promptAdded) 
UIBase(_strand).$displayObjectContainer.addChild(promptField);
+                                       promptField.text = prompt;
+                                       promptAdded = true;
+                               }
                        }
-                       else {
-                               if (!promptAdded) 
UIBase(_strand).$displayObjectContainer.addChild(promptField);
-                               promptField.text = prompt;
-                               promptAdded = true;
+
+                       COMPILE::JS
+                       {
+                               // see what the model currently has to 
determine if the prompt should be
+                               // displayed or not.
+                               var model:Object = UIBase(_strand).model;
+                               
+                               if (TextFieldBase(mdlTi).text != null && 
TextFieldBase(mdlTi).text.length > 0 )
+                               {
+                                       mdlTi.textNode.nodeValue = "";
+                               } 
+                               else 
+                               {
+                                       mdlTi.textNode.nodeValue = prompt;
+                               }
+                               
                        }
                }
        }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fadd9f0a/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css 
b/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
index 1ebf7dc..681d838 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
+++ b/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
@@ -20,6 +20,20 @@
 
 @namespace "library://ns.apache.org/flexjs/mdl";
 
+TextField
+{
+    IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
+    /*IBeadView: 
ClassReference("org.apache.flex.html.beads.TextInputWithBorderView");
+    IBeadController: 
ClassReference("org.apache.flex.html.beads.controllers.EditableTextKeyboardController");*/
+}
+
+TextArea
+{
+    IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
+    /*IBeadView: 
ClassReference("org.apache.flex.html.beads.TextInputWithBorderView");
+    IBeadController: 
ClassReference("org.apache.flex.html.beads.controllers.EditableTextKeyboardController");*/
+}
+
 CheckBox
 {
     IBeadModel: 
ClassReference("org.apache.flex.html.beads.models.ToggleButtonModel");          
       

Reply via email to