This is an automated email from the ASF dual-hosted git repository.
carlosrovira pushed a commit to branch feature/jewel-datefield-year-month
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to
refs/heads/feature/jewel-datefield-year-month by this push:
new 9c02ac3 jewel-datechooser: almost finished new year and month
capabilities
9c02ac3 is described below
commit 9c02ac3d54bda06f6a7c2badaf57190d23659e14
Author: Carlos Rovira <[email protected]>
AuthorDate: Sat Mar 23 16:38:05 2019 +0100
jewel-datechooser: almost finished new year and month capabilities
---
.../controllers/DateChooserMouseController.as | 33 ++++++++++++++++------
.../royale/jewel/beads/models/DateChooserModel.as | 23 +++++++++++++--
.../royale/jewel/beads/views/DateChooserView.as | 2 ++
3 files changed, 47 insertions(+), 11 deletions(-)
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/DateChooserMouseController.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/DateChooserMouseController.as
index 18b636b..df9cdc0 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/DateChooserMouseController.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/DateChooserMouseController.as
@@ -52,6 +52,8 @@ package org.apache.royale.jewel.beads.controllers
public function DateChooserMouseController()
{
}
+
+ private var model:DateChooserModel;
private var _strand:IStrand;
@@ -77,15 +79,8 @@ package org.apache.royale.jewel.beads.controllers
IEventDispatcher(view.table).addEventListener(Event.CHANGE,
tableHandler);
}
- private var model:DateChooserModel;
-
- private function tableHandler(event:Event):void
- {
- var table:DateChooserTable = event.target as DateChooserTable;
- model.selectedDate = table.selectedItemProperty as Date;
- }
-
/**
+ *
* @private
*/
private function
previousButtonClickHandler(event:MouseEvent):void
@@ -111,6 +106,7 @@ package org.apache.royale.jewel.beads.controllers
}
/**
+ *
* @private
*/
private function nextButtonClickHandler(event:MouseEvent):void
@@ -136,6 +132,7 @@ package org.apache.royale.jewel.beads.controllers
}
/**
+ *
* @private
*/
private function viewSelectorClickHandler(event:MouseEvent):void
@@ -144,5 +141,25 @@ package org.apache.royale.jewel.beads.controllers
model.viewState = model.viewState == 0 ? 1 :
model.viewState == 1 ? 2 : 0;
}
+
+ /**
+ *
+ * @private
+ */
+ private function tableHandler(event:Event):void
+ {
+ var table:DateChooserTable = event.target as DateChooserTable;
+ var date:Date = table.selectedItemProperty as Date;
+
+ if(model.viewState == 0)
+ {
+ model.selectedDate = date;
+ } else
+ if(model.viewState == 1) {
+ model.changeYear(date.getFullYear());
+ } else {
+ model.changeMonth(date.getMonth());
+ }
+ }
}
}
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/DateChooserModel.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/DateChooserModel.as
index 6002281..bb461e7 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/DateChooserModel.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/DateChooserModel.as
@@ -265,7 +265,25 @@ package org.apache.royale.jewel.beads.models
}
// Utilities
+ public function changeYear(newYear:Number):void
+ {
+ _displayedYear = newYear;
+ _viewState = 2;
+ if(_selectedDate)
+ selectedDate.setFullYear(_displayedYear,
selectedDate.getMonth(), selectedDate.getDate());
+ updateCalendar();
+ dispatchEvent( new Event("yearChanged") );
+ }
+ public function changeMonth(newMonth:Number):void
+ {
+ _displayedMonth = newMonth;
+ _viewState = 0;
+ if(_selectedDate)
+ selectedDate.setMonth(_displayedMonth,
selectedDate.getDate());
+ updateCalendar();
+ dispatchEvent( new Event("monthChanged") );
+ }
/**
* @private
@@ -292,16 +310,15 @@ package org.apache.royale.jewel.beads.models
var yearNumber:int = displayedYear -
NUM_YEARS_VIEW/2;
while(i < NUM_YEARS_VIEW)
{
- _years[i] = new Date(yearNumber + i++,
0, 1);
+ _years[i] = new Date(yearNumber + i++,
_selectedDate.getMonth(), _selectedDate.getDate());
}
} else
{
i = 0;
- var monthNumber:int = displayedMonth;
var numMonths:Number = 12;
while(i < numMonths)
{
- _months[i++] = new Date(displayedYear,
monthNumber++, 1);
+ _months[i] = new Date(displayedYear,
i++, _selectedDate.getDate());
}
}
}
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DateChooserView.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DateChooserView.as
index 18ed775..ad7aa48 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DateChooserView.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DateChooserView.as
@@ -75,6 +75,8 @@ package org.apache.royale.jewel.beads.views
model.addEventListener("dayNamesChanged",
handleModelChange);
model.addEventListener("displayedMonthChanged",
handleModelChange);
model.addEventListener("displayedYearChanged",
handleModelChange);
+ model.addEventListener("yearChanged",
handleModelChange);
+ model.addEventListener("monthChanged",
handleModelChange);
createChildren();
updateDisplay();