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;
+ }
}
}