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

aharui 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 a9c66d7  allow DateField dropdown to close when the selectedDate is 
clicked on.  Should fix #700
a9c66d7 is described below

commit a9c66d7d04ae3c67071f3d1ad4d78aead3d2f72a
Author: Alex Harui <[email protected]>
AuthorDate: Wed Jan 29 23:04:22 2020 -0800

    allow DateField dropdown to close when the selectedDate is clicked on.  
Should fix #700
---
 .../org/apache/royale/html/beads/DateFieldView.as  |  2 ++
 .../royale/html/beads/models/DateChooserModel.as   | 22 +++++++++++++++++++++-
 .../org/apache/royale/core/IDateChooserModel.as    | 14 ++++++++++++++
 3 files changed, 37 insertions(+), 1 deletion(-)

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 4ca4e6e..6188cf1 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
@@ -206,6 +206,8 @@ package org.apache.royale.html.beads
 
                                        var model:IDateChooserModel = 
_strand.getBeadByType(IDateChooserModel) as IDateChooserModel;
                                        _popUp.selectedDate = 
model.selectedDate;
+                    var popUpModel:IDateChooserModel = 
_popUp.getBeadByType(IDateChooserModel) as IDateChooserModel;
+                    popUpModel.disableChangeCheck = true;
 
                                        var host:IPopUpHost = 
UIUtils.findPopUpHost(getHost());
                                        var point:Point = new 
Point(_textInput.width, _button.height);
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DateChooserModel.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DateChooserModel.as
index e202b1f..39ca423 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DateChooserModel.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/DateChooserModel.as
@@ -65,6 +65,7 @@ package org.apache.royale.html.beads.models
                private var _displayedMonth:Number;
                private var _firstDayOfWeek:Number = 0;
                private var _selectedDate:Date;
+        private var _disableChangeCheck:Boolean;
                
                /**
                 *  An array of strings used to name the days of the week with 
Sunday being the
@@ -195,7 +196,7 @@ package org.apache.royale.html.beads.models
             COMPILE::JS
             {
                 // in JS, date compare does not compare values, only if same 
instance
-                if (value != null && _selectedDate != null && value.getTime() 
== _selectedDate.getTime())
+                if (!disableChangeCheck && value != null && _selectedDate != 
null && value.getTime() == _selectedDate.getTime())
                     return;
             }
                        if (value != _selectedDate) {
@@ -216,6 +217,25 @@ package org.apache.royale.html.beads.models
                 
                 dispatchEvent( new Event("selectedDateChanged") );
             }
+            else if (disableChangeCheck)
+                dispatchEvent( new Event("selectedDateChanged") );
+        }
+        
+        /**
+         *  The currently selected date or null if no date has been selected.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.0
+         */
+        public function get disableChangeCheck():Boolean
+        {
+            return _disableChangeCheck;
+        }
+        public function set disableChangeCheck(value:Boolean):void
+        {
+            _disableChangeCheck = value;
         }
         
         // Utilities
diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IDateChooserModel.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IDateChooserModel.as
index a0aaf5c..57caeaf 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IDateChooserModel.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IDateChooserModel.as
@@ -97,5 +97,19 @@ package org.apache.royale.core
                 */
                function get selectedDate():Date;
                function set selectedDate(value:Date):void;
+        
+        /**
+         *  If true, the DateChooser will dispatch change
+         *  events even if the date clicked is the selected date.
+         *  This flag is used by DateField to get the
+         *  dropdown to dismiss when clicking the selected date.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.0
+         */
+        function get disableChangeCheck():Boolean;
+        function set disableChangeCheck(value:Boolean):void;
        }
 }

Reply via email to