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

carlosrovira 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 e8476d9  jewel-DateFieldDateRangeRestriction: new bead to add date 
range restrictions to DateField
e8476d9 is described below

commit e8476d9b94324126ae28f58d311b0c8810bcfd75
Author: Carlos Rovira <[email protected]>
AuthorDate: Thu Dec 31 17:19:34 2020 +0100

    jewel-DateFieldDateRangeRestriction: new bead to add date range 
restrictions to DateField
---
 .../Jewel/src/main/resources/jewel-manifest.xml    |   1 +
 .../datechooser/DateChooserDateRangeRestriction.as |   6 +-
 .../DateFieldDateRangeRestriction.as}              | 100 +++++++--------------
 3 files changed, 38 insertions(+), 69 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml 
b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
index 9422b31..5ca4d25 100644
--- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
+++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
@@ -135,6 +135,7 @@
 
     <component id="DateChooserModel" 
class="org.apache.royale.jewel.beads.models.DateChooserModel"/>
     <component id="DateChooserDateRangeRestriction" 
class="org.apache.royale.jewel.beads.controls.datechooser.DateChooserDateRangeRestriction"/>
+    <component id="DateFieldDateRangeRestriction" 
class="org.apache.royale.jewel.beads.controls.datefield.DateFieldDateRangeRestriction"/>
 
     <component id="ResponsiveView" 
class="org.apache.royale.jewel.ResponsiveView"/>
 
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datechooser/DateChooserDateRangeRestriction.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datechooser/DateChooserDateRangeRestriction.as
index 6f2bd76..77150b4 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datechooser/DateChooserDateRangeRestriction.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datechooser/DateChooserDateRangeRestriction.as
@@ -123,7 +123,11 @@ package org.apache.royale.jewel.beads.controls.datechooser
                private function handleDateChooserInitComplete(event:Event):void
                {
                        (_strand as 
IEventDispatcher).removeEventListener("initComplete", 
handleDateChooserInitComplete);
-                       
+                       setUpBead();
+               }
+
+               public function setUpBead():void
+               {
                        view = _strand.getBeadByType(DateChooserView) as 
DateChooserView;
                        view.previousButton.addEventListener(MouseEvent.CLICK, 
refreshDateRange);
                        view.nextButton.addEventListener(MouseEvent.CLICK, 
refreshDateRange);
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datechooser/DateChooserDateRangeRestriction.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDateRangeRestriction.as
similarity index 53%
copy from 
frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datechooser/DateChooserDateRangeRestriction.as
copy to 
frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDateRangeRestriction.as
index 6f2bd76..811c1a2 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datechooser/DateChooserDateRangeRestriction.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDateRangeRestriction.as
@@ -16,31 +16,27 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.jewel.beads.controls.datechooser
+package org.apache.royale.jewel.beads.controls.datefield
 {
     import org.apache.royale.core.IBead;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.events.Event;
     import org.apache.royale.events.IEventDispatcher;
-    import org.apache.royale.events.MouseEvent;
-    import org.apache.royale.jewel.beads.controls.Disabled;
     import org.apache.royale.jewel.beads.itemRenderers.ITextItemRenderer;
-    import org.apache.royale.jewel.beads.views.DateChooserView;
-    import org.apache.royale.jewel.supportClasses.datechooser.DateChooserTable;
-    import org.apache.royale.jewel.supportClasses.table.TBodyContentArea;
-    import org.apache.royale.jewel.supportClasses.table.TableCell;
-    import org.apache.royale.jewel.supportClasses.table.TableRow;
+    import org.apache.royale.jewel.beads.views.DateFieldView;
+    import org.apache.royale.jewel.DateChooser;
+    import 
org.apache.royale.jewel.beads.controls.datechooser.DateChooserDateRangeRestriction;
                                                                                
                        
        /**
         *  Disable dates which are outside restriction provided by minDate and 
maxDate properties
-        *  in DateChooser component
-        *  
+        *  in DateField component
+     * 
         *  @langversion 3.0
         *  @playerversion Flash 10.2
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.9.8
         */
-       public class DateChooserDateRangeRestriction implements IBead
+       public class DateFieldDateRangeRestriction implements IBead
        {
         /**
                 *  constructor.
@@ -50,7 +46,7 @@ package org.apache.royale.jewel.beads.controls.datechooser
                 *  @playerversion AIR 2.6
                 *  @productversion Royale 0.9.8
                 */
-               public function DateChooserDateRangeRestriction()
+               public function DateFieldDateRangeRestriction()
                {
                }
                
@@ -73,7 +69,7 @@ package org.apache.royale.jewel.beads.controls.datechooser
                        if (_minDate != value)
                        {
                                _minDate = value;
-                               refreshDateRange();
+                               setUpDateRangeRestriction();
                        }
                }
                
@@ -96,7 +92,7 @@ package org.apache.royale.jewel.beads.controls.datechooser
                        if (_maxDate != value)
                        {
                                _maxDate = value;
-                               refreshDateRange();
+                               setUpDateRangeRestriction();
                        }
                }
                
@@ -113,71 +109,39 @@ package org.apache.royale.jewel.beads.controls.datechooser
                public function set strand(value:IStrand):void
                {
                        _strand = value;
-                       (_strand as 
IEventDispatcher).addEventListener("initComplete", 
handleDateChooserInitComplete);
+                       (_strand as 
IEventDispatcher).addEventListener("initComplete", handleDateFieldInitComplete);
                }
 
-               private var view:DateChooserView;
-               private var table:DateChooserTable;
-               private var tableContent:TBodyContentArea;
-
-               private function handleDateChooserInitComplete(event:Event):void
+               private var view:DateFieldView;
+               private var 
dataRangeRestriction:DateChooserDateRangeRestriction;
+               
+               private function handleDateFieldInitComplete(event:Event):void
                {
-                       (_strand as 
IEventDispatcher).removeEventListener("initComplete", 
handleDateChooserInitComplete);
+                       (_strand as 
IEventDispatcher).removeEventListener("initComplete", 
handleDateFieldInitComplete);
+            (_strand as IEventDispatcher).addEventListener('popUpOpened', 
popUpOpenedHandler, false);
                        
-                       view = _strand.getBeadByType(DateChooserView) as 
DateChooserView;
-                       view.previousButton.addEventListener(MouseEvent.CLICK, 
refreshDateRange);
-                       view.nextButton.addEventListener(MouseEvent.CLICK, 
refreshDateRange);
-                       view.viewSelector.addEventListener(MouseEvent.CLICK, 
refreshDateRange);
-            
-                       table = view.table;
-                       view.table.addEventListener(Event.CHANGE, 
refreshDateRange);
+                       view = _strand.getBeadByType(DateFieldView) as 
DateFieldView;
+               }
 
-            tableContent = table.getBeadByType(TBodyContentArea) as 
TBodyContentArea;
-                       
-                       refreshDateRange();
+               private function setUpDateRangeRestriction():void 
+               {
+                       if(!dataRangeRestriction)
+                               dataRangeRestriction = new 
DateChooserDateRangeRestriction();
+
+                       dataRangeRestriction.minDate = minDate;
+                       dataRangeRestriction.maxDate = maxDate;
                }
                
-               public function refreshDateRange():void
+               protected function popUpOpenedHandler():void
                {
             if (!minDate || !maxDate) return;
                        
-            var n:int = table.dataProvider.length;
-                       for (var i:int = 0; i < tableContent.numElements; i++)
-                       {
-                               var row:TableRow = tableContent.getElementAt(i) 
as TableRow;
-                           for(var j:int = 0; j < row.numElements; j++)
-                               {
-                               var tableCell:TableCell = row.getElementAt(j) 
as TableCell;
-                               var renderer:ITextItemRenderer  = 
tableCell.getElementAt(0) as ITextItemRenderer;
-                    disableRenderer(renderer);
-                       }
-                   }
-               }               
-               
-               private function 
disableRenderer(renderer:ITextItemRenderer):void
-               {
-                       var rendererDate:Date = 
renderer.data[renderer.labelField];
-            if (!rendererDate) return;
-                       
-                       var minTime:Number = minDate.getTime();
-                       var maxTime:Number = maxDate.getTime();
-                       var itemTime:Number = rendererDate.getTime();
-                       
-                       var disabled:Disabled = (renderer as 
IStrand).getBeadByType(Disabled) as Disabled;
-                       if (disabled == null)
-                       {
-                           disabled = new Disabled();
-                               (renderer as IStrand).addBead(disabled);
-                       }
+            setUpDateRangeRestriction();
 
-                       if ((itemTime > minTime) && (maxTime > itemTime))
-                       {
-                disabled.disabled = false;
-                       }
-                       else
-                       {
-                disabled.disabled = true;
-                       }
+                       var dateChooser:DateChooser = view.popUp as DateChooser;
+                       dateChooser.addBead(dataRangeRestriction);
+
+                       dataRangeRestriction.setUpBead();
                }
     }
 }
\ No newline at end of file

Reply via email to