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 {
