You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2020/12/31 16:19:46 UTC
[royale-asjs] branch develop updated:
jewel-DateFieldDateRangeRestriction: new bead to add date range
restrictions to DateField
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 <ca...@apache.org>
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