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


The following commit(s) were added to refs/heads/develop by this push:
     new 51aa3d7  Show text field as default popup value in mx date field.
     new 9657265  Merge branch 'develop' of 
https://gitbox.apache.org/repos/asf/royale-asjs into develop
51aa3d7 is described below

commit 51aa3d7d2a5d114f5e7fd0c729c43b45b0dbbd29
Author: DESKTOP-RH4S838\Yishay <[email protected]>
AuthorDate: Sat May 16 16:56:45 2020 +0300

    Show text field as default popup value in mx date field.
---
 .../org/apache/royale/html/beads/DateFieldView.as  |  6 +--
 .../main/royale/mx/controls/beads/DateFieldView.as | 55 ++++++++++++++++++++++
 2 files changed, 58 insertions(+), 3 deletions(-)

diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DateFieldView.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DateFieldView.as
index 67c3d04..161bb02 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DateFieldView.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DateFieldView.as
@@ -72,7 +72,7 @@ package org.apache.royale.html.beads
                }
 
                protected var _textInput:ITextInput;
-               private var _button:TextButton;
+               protected var _button:TextButton;
 
                /**
                 *  The TextButton that triggers the display of the DateChooser 
pop-up.
@@ -171,7 +171,7 @@ package org.apache.royale.html.beads
                        return _popUp;
                }
 
-               private var _popUpVisible:Boolean;
+               protected var _popUpVisible:Boolean;
 
                /**
                 *  This property is true if the pop-up selection list is 
currently visible.
@@ -185,7 +185,7 @@ package org.apache.royale.html.beads
                {
                        return _popUpVisible;
                }
-               private var _showingPopup:Boolean;
+               protected var _showingPopup:Boolean;
                public function set popUpVisible(value:Boolean):void
                {
                        // prevent resursive calls
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as
index f35cd4b..f51ff32 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as
@@ -29,6 +29,13 @@ package mx.controls.beads
     import org.apache.royale.html.supportClasses.IDateChooser;
     import org.apache.royale.html.beads.DateFieldView;
     import mx.controls.TextInput;
+    import org.apache.royale.core.IDateChooserModel;
+    import org.apache.royale.core.IDateChooserModelWithChangeCheck;
+    import org.apache.royale.core.IPopUpHost;
+    import org.apache.royale.utils.UIUtils;
+    import org.apache.royale.geom.Point;
+    import org.apache.royale.utils.PointUtils;
+    import mx.controls.DateField;
        
     /**
      *  The NumericStepperView class overrides the Basic
@@ -79,6 +86,54 @@ package mx.controls.beads
             return _popUp;
         }
 
+               override public function set popUpVisible(value:Boolean):void
+               {
+                       // prevent resursive calls
+                       // setting _popUp.selectedDate below triggers a change 
event
+                       // which tries to close the popup causing a recursive 
call.
+                       // There might be a better way to resolve this problem, 
but this works for now...
+                       if(_showingPopup)
+                               return;
+
+                       if (value != _popUpVisible)
+                       {
+                               _showingPopup = true;
+                               _popUpVisible = value;
+                               if (value)
+                               {
+                                       if (!_popUp)
+                    {
+                        _popUp = ValuesManager.valuesImpl.newInstance(_strand, 
"iPopUp") as IDateChooser;
+                    }
+
+                    var parseFunction:Function = (_strand as 
DateField).parseFunction;
+                    var dateField:DateField = _strand as DateField;
+                    if (dateField.parseFunction)
+                    {
+                        _popUp.selectedDate = 
dateField.parseFunction(_textInput.text, dateField.formatString);
+                    }
+                    var popUpModel:IDateChooserModelWithChangeCheck = 
_popUp.getBeadByType(IDateChooserModelWithChangeCheck) as 
IDateChooserModelWithChangeCheck;
+                    popUpModel.disableChangeCheck = true;
+
+                                       var host:IPopUpHost = 
UIUtils.findPopUpHost(getHost());
+                                       var point:Point = new 
Point(_textInput.width, _button.height);
+                                       var p2:Point = 
PointUtils.localToGlobal(point, _strand);
+                                       var p3:Point = 
PointUtils.globalToLocal(p2, host);
+                                       _popUp.x = p3.x;
+                                       _popUp.y = p3.y;
+                                       COMPILE::JS {
+                                               _popUp.element.style.position = 
"absolute";
+                                       }
+
+                                       host.popUpParent.addElement(_popUp);
+                               }
+                               else
+                               {
+                                       UIUtils.removePopUp(_popUp);
+                               }
+                       }
+                       _showingPopup = false;
+               }
 
        }
 }

Reply via email to