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

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

commit ff414d715320c71b3029eb0888f9221bc543ab17
Author: Yishay Weiss <[email protected]>
AuthorDate: Tue Jul 19 15:08:25 2022 +0300

    Implement editable in emulation but this time allow input click
---
 .../src/main/royale/mx/controls/ComboBase.as       | 10 ++++++---
 .../main/royale/mx/controls/beads/ComboBoxView.as  | 24 ++++++++++++++++++++++
 2 files changed, 31 insertions(+), 3 deletions(-)

diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/ComboBase.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/ComboBase.as
index 7b5a0369c4..c601be772d 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/ComboBase.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/ComboBase.as
@@ -573,10 +573,10 @@ public class ComboBase extends UIComponent implements 
/*IIMESupport,*/ IFocusMan
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+    private var _editable:Boolean;
     public function get editable():Boolean
     {
-        trace("ComboBox.editable not implemented");
-        return true;
+        return _editable;
     }
 
     /**
@@ -584,7 +584,11 @@ public class ComboBase extends UIComponent implements 
/*IIMESupport,*/ IFocusMan
      */
     public function set editable(value:Boolean):void
     {
-        trace("ComboBox.editable not implemented");
+        if (value != _editable)
+        {
+            _editable = value;
+            dispatchEvent(new Event("editableChanged"));
+        }
     }
 
 
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ComboBoxView.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ComboBoxView.as
index 338d5fc9a5..7d6b30ae35 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ComboBoxView.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ComboBoxView.as
@@ -26,6 +26,9 @@ package mx.controls.beads
        import org.apache.royale.html.util.getModelByType;
     import org.apache.royale.html.util.getLabelFromXMLData;
     import org.apache.royale.html.TextInput;
+    import org.apache.royale.core.IStrand;
+    import mx.controls.ComboBase;
+    import org.apache.royale.core.IRenderedObject;
        
     /**
      *  The ComboBoxView class.
@@ -65,6 +68,27 @@ package mx.controls.beads
             if (sendClose)
                 IEventDispatcher(_strand).dispatchEvent(new Event("close"));
         }
+        
+        override public function set strand(value:IStrand):void
+               {
+                       super.strand = value;
+            (value as IEventDispatcher).addEventListener("editableChanged", 
syncEditable);
+                       syncEditable();
+               }
+
+        protected function syncEditable(event:Event=null):void
+        {
+            COMPILE::JS
+            {
+                if ((_strand as ComboBase).editable)
+                {
+                    (textInputField as 
IRenderedObject).element.removeAttribute("readonly");
+                } else
+                {
+                    (textInputField as 
IRenderedObject).element.setAttribute("readonly", true);
+                }
+            }
+        }
 
         override protected function itemChangeAction():void
         {

Reply via email to