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 2019/03/24 19:46:16 UTC

[royale-asjs] branch develop updated: jewel-datechooser: navigation of years should not cause a change on the current selected year

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 6a68643  jewel-datechooser: navigation of years should not cause a change on the current selected year
6a68643 is described below

commit 6a68643f9aa7a7875335e44c3a6fc9558f3c9d92
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Sun Mar 24 20:46:09 2019 +0100

    jewel-datechooser: navigation of years should not cause a change on the current selected year
---
 .../controllers/DateChooserMouseController.as      | 12 ++++-----
 .../royale/jewel/beads/models/DateChooserModel.as  | 31 ++++++++++++++++++++--
 .../royale/jewel/beads/views/DateChooserView.as    |  7 ++---
 3 files changed, 39 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 ddba742..7720df1 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
@@ -97,12 +97,12 @@ package org.apache.royale.jewel.beads.controllers
 					year--;
 				}
 				model.displayedMonth = month;
+				model.displayedYear = year;
 			} else if(model.viewState == 1) {
-				year = year - DateChooserModel.NUM_YEARS_VIEW;
+				model.navigateYears = model.navigateYears - DateChooserModel.NUM_YEARS_VIEW;
 			} else {
-				year--;
+				model.displayedYear = --year;
 			}
-			model.displayedYear = year;
 		}
 		
 		/**
@@ -123,12 +123,12 @@ package org.apache.royale.jewel.beads.controllers
 					year++;
 				}
 				model.displayedMonth = month;
+				model.displayedYear = year;
 			} else if(model.viewState == 1) {
-				year = year + DateChooserModel.NUM_YEARS_VIEW;
+				model.navigateYears = model.navigateYears + DateChooserModel.NUM_YEARS_VIEW;
 			} else {
-				year++;
+				model.displayedYear = ++year;
 			}
-			model.displayedYear = year;
 		}
 
 		/**
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 09ca4d8..137b1fa 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
@@ -138,6 +138,33 @@ package org.apache.royale.jewel.beads.models
 				dispatchEvent( new Event("displayedYearChanged") );
 			}
 		}
+
+		private var navigateYearsChanged:Boolean;
+		private var _navigateYears:Number;
+		/**
+		 *  The year currently displayed while navigating in year view
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.4
+		 */
+		public function get navigateYears():Number
+		{
+			if(!_navigateYears)
+				return _displayedYear;
+			return _navigateYears;
+		}
+		public function set navigateYears(value:Number):void
+		{
+			if (value != _navigateYears) {
+				_navigateYears = value;
+				navigateYearsChanged = true;
+				updateCalendar();
+				navigateYearsChanged = false;
+				dispatchEvent( new Event("displayedYearChanged") );
+			}
+		}
 		
 		private var _displayedMonth:Number;
 		/**
@@ -146,7 +173,7 @@ package org.apache.royale.jewel.beads.models
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
+		 *  @productversion Royale 0.9.6
 		 */
 		public function get displayedMonth():Number
 		{
@@ -316,7 +343,7 @@ package org.apache.royale.jewel.beads.models
 			} else if(viewState == 1)
 			{
 				i = 0;
-				var yearNumber:int = displayedYear - NUM_YEARS_VIEW/2;
+				var yearNumber:int = (navigateYearsChanged ? navigateYears : displayedYear ) - NUM_YEARS_VIEW/2;
 				while(i < NUM_YEARS_VIEW) 
 				{
 					_years[i] = new Date(yearNumber + i++, displayedMonth, 1);
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 84969f2..04d047b 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
@@ -238,7 +238,7 @@ package org.apache.royale.jewel.beads.views
 			} else if(model.viewState == 1)
 			{
 				// display "2016-2039"
-				_viewSelector.text = String(model.displayedYear - DateChooserModel.NUM_YEARS_VIEW/2) + "-" + String(model.displayedYear + DateChooserModel.NUM_YEARS_VIEW/2 - 1);
+				_viewSelector.text = String(model.navigateYears - DateChooserModel.NUM_YEARS_VIEW/2) + "-" + String(model.navigateYears + DateChooserModel.NUM_YEARS_VIEW/2 - 1);
 				tableHeader.expandColumns = 4;
 			} else
 			{
@@ -296,7 +296,6 @@ package org.apache.royale.jewel.beads.views
 				for(index = 0; index < NUM_COLS_YEARS_OR_MONTHS; index++)
 				{
 					column = columns[index];
-					// column.columnLabelAlign = "center";
 					column.label = null; // all column labels == null means hide header
 				}
 				_table.columns = columns;
@@ -304,7 +303,9 @@ package org.apache.royale.jewel.beads.views
 		}
 
 		/**
-		 *  Only display days if viewState is calendar view (== 0)
+		 *  Display days if viewState is calendar view (== 0)
+		 *  Display years if viewState is calendar view (== 1)
+		 *  Display months if viewState is calendar view (== 2)
 		 */
 		private function fillTable():void
 		{