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/06/24 13:01:05 UTC

[royale-asjs] branch develop updated: jewel-disabled-beads: fix rest of disabled beads

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 152b087  jewel-disabled-beads: fix rest of disabled beads
152b087 is described below

commit 152b087aea0839f560adc936297b80e9cd8ce37a
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Wed Jun 24 15:00:25 2020 +0200

    jewel-disabled-beads: fix rest of disabled beads
---
 .../apache/royale/jewel/beads/controls/Disabled.as | 29 ++++++------
 .../beads/controls/combobox/ComboBoxDisabled.as    | 54 +++++++++++-----------
 .../beads/controls/datefield/DateFieldDisabled.as  | 46 ++++++++++--------
 .../royale/jewel/beads/views/NumericStepperView.as |  1 -
 4 files changed, 70 insertions(+), 60 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/Disabled.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/Disabled.as
index 2229c95..47455ae 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/Disabled.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/Disabled.as
@@ -51,7 +51,9 @@ package org.apache.royale.jewel.beads.controls
 		}
 
 		COMPILE::JS
-		protected var lastTabVal:String;
+		protected var lastElementTabVal:String = null;
+
+		protected var initialized:Boolean = false;
 
 		private var _disabled:Boolean = true;
         /**
@@ -71,17 +73,15 @@ package org.apache.royale.jewel.beads.controls
         {
 			if(value != _disabled)
 			{
+				_disabled = value;
 				COMPILE::JS
 				{
-				if(value && _strand)
-					lastTabVal = (_strand as HTMLElementWrapper).element.getAttribute("tabindex");
-				}
-				_disabled = value;
 				if(_strand)
 				{
 					updateHost();
 					sendStrandEvent(_strand, new ValueEvent("disabledChange", disabled));
-				}	
+				}
+				}
 			}
         }
 
@@ -97,10 +97,6 @@ package org.apache.royale.jewel.beads.controls
 		override public function set strand(value:IStrand):void
 		{
 			_strand = value;
-			COMPILE::JS
-            {
-            lastTabVal = (_strand as HTMLElementWrapper).element.getAttribute("tabindex");
-            }
 			updateHost();
 		}
 
@@ -111,12 +107,17 @@ package org.apache.royale.jewel.beads.controls
 			var elem:HTMLElement = (_strand as HTMLElementWrapper).element;
 			var pos:HTMLElement = (_strand as IUIBase).positioner;
 			
+			if(!initialized){
+				initialized = true;
+            	lastElementTabVal = elem.getAttribute("tabindex");
+			}
+			
 			if(_disabled) {
-				setDisableAndTabIndex(elem);
 				setDisableAndTabIndex(pos, true);
+				setDisableAndTabIndex(elem);
 			} else {
-				removeDisableAndTabIndex(elem);
 				removeDisableAndTabIndex(pos, true);
+				removeDisableAndTabIndex(elem, false, lastElementTabVal);
 			}
 			}
 		}
@@ -130,11 +131,11 @@ package org.apache.royale.jewel.beads.controls
 		}
 
 		COMPILE::JS
-		protected function removeDisableAndTabIndex(o:*, positioner:Boolean = false):void
+		protected function removeDisableAndTabIndex(o:*, positioner:Boolean = false, lastTabVal:String = null):void
 		{
 			o.removeAttribute("disabled");
 			if(!positioner)
-				o.tabIndex = lastTabVal ? lastTabVal : null;
+				o.tabIndex = (lastTabVal == null) ? null : lastTabVal;
 		}
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxDisabled.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxDisabled.as
index 34dbf03..ca7fb61 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxDisabled.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxDisabled.as
@@ -20,9 +20,11 @@ package org.apache.royale.jewel.beads.controls.combobox
 {
 	COMPILE::JS
 	{
+	import org.apache.royale.core.HTMLElementWrapper;
 	import org.apache.royale.core.UIBase;
 	import org.apache.royale.jewel.beads.views.ComboBoxView;
 	}
+	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.jewel.beads.controls.Disabled;
 	
 	/**
@@ -47,42 +49,40 @@ package org.apache.royale.jewel.beads.controls.combobox
 		{
 		}
 
+		COMPILE::JS
+		protected var lastTextInputElementTabVal:String = null;
+		COMPILE::JS
+		protected var lastButtonElementTabVal:String = null;
+
 		override protected function updateHost():void
 		{
-			super.updateHost();
-			
 			COMPILE::JS
 			{
 			var view:ComboBoxView = (_strand as UIBase).view as ComboBoxView;
 
 			if (view) {
+				var pos:HTMLElement = (_strand as IUIBase).positioner;
+				
+				if(!initialized)
+				{
+					initialized = true;
+					lastElementTabVal = (_strand as HTMLElementWrapper).element.getAttribute("tabindex");
+					lastTextInputElementTabVal = view.textinput.element.getAttribute("tabindex");
+					lastButtonElementTabVal = view.button.element.getAttribute("tabindex");
+				}
+				
                 if(disabled) {
-					view.textinput.element.setAttribute('disabled', '');
-					view.textinput.positioner.setAttribute('disabled', '');
-					view.button.element.setAttribute('disabled', '');
-					view.button.positioner.setAttribute('disabled', '');
-					
-					view.textinput.element.setAttribute('tabindex', '-1');
-					view.textinput.positioner.setAttribute('tabindex', '-1');
-					view.button.element.setAttribute('tabindex', '-1');
-					view.button.positioner.setAttribute('tabindex', '-1');
+					setDisableAndTabIndex(pos, true);
+					setDisableAndTabIndex(view.textinput.positioner, true);
+					setDisableAndTabIndex(view.textinput.element);
+					setDisableAndTabIndex(view.button.positioner, true);
+					setDisableAndTabIndex(view.button.element);
 				} else {
-					view.textinput.element.removeAttribute('disabled');
-					view.textinput.positioner.removeAttribute('disabled');
-					view.button.element.removeAttribute('disabled');
-					view.button.positioner.removeAttribute('disabled');
-
-					if(lastTabVal) {
-						view.textinput.element.setAttribute('tabindex', lastTabVal);
-						view.textinput.positioner.setAttribute('tabindex', lastTabVal);
-						view.button.element.setAttribute('tabindex', lastTabVal);
-						view.button.positioner.setAttribute('tabindex', lastTabVal);
-					} else {
-						view.textinput.element.removeAttribute('tabindex');
-						view.textinput.positioner.removeAttribute('tabindex');
-						view.button.element.removeAttribute('tabindex');
-						view.button.positioner.removeAttribute('tabindex');
-					}
+					removeDisableAndTabIndex(pos, true);
+					removeDisableAndTabIndex(view.textinput.positioner, true);
+					removeDisableAndTabIndex(view.textinput.element, false, lastTextInputElementTabVal);
+					removeDisableAndTabIndex(view.button.positioner, true);
+					removeDisableAndTabIndex(view.button.element, false, lastButtonElementTabVal);
 				}
             }
 			}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDisabled.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDisabled.as
index e30bd50..05d0bc0 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDisabled.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/datefield/DateFieldDisabled.as
@@ -20,9 +20,11 @@ package org.apache.royale.jewel.beads.controls.datefield
 {
 	COMPILE::JS
 	{
+	import org.apache.royale.core.HTMLElementWrapper;
 	import org.apache.royale.jewel.DateField;
 	import org.apache.royale.jewel.beads.views.DateFieldView;
 	}
+	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.jewel.beads.controls.Disabled;
 
 	/**
@@ -47,33 +49,41 @@ package org.apache.royale.jewel.beads.controls.datefield
 		public function DateFieldDisabled()
 		{
 		}
+		
+		COMPILE::JS
+		protected var lastTextInputElementTabVal:String = null;
+		COMPILE::JS
+		protected var lastButtonElementTabVal:String = null;
 
 		override protected function updateHost():void
 		{
-			super.updateHost();
-
 			COMPILE::JS
 			{
 			var view:DateFieldView = (_strand as DateField).view as DateFieldView;
-
+			
 			if (view) {
-				if (disabled) {
-					view.textInput.element.setAttribute('disabled', '');
-					view.menuButton.element.setAttribute('disabled', '');
+				var pos:HTMLElement = (_strand as IUIBase).positioner;
 
-					view.textInput.element.setAttribute('tabindex', '-1');
-					view.menuButton.element.setAttribute('tabindex', '-1');
-				} else {
-					view.textInput.element.removeAttribute('disabled');
-					view.menuButton.element.removeAttribute('disabled');
+				if(!initialized)
+				{
+					initialized = true;
+					lastElementTabVal = (_strand as HTMLElementWrapper).element.getAttribute("tabindex");
+					lastTextInputElementTabVal = view.textInput.element.getAttribute("tabindex");
+					lastButtonElementTabVal = view.menuButton.element.getAttribute("tabindex");
+				}
 
-					if(lastTabVal) {
-						view.textInput.element.setAttribute('tabindex', lastTabVal);
-						view.menuButton.element.setAttribute('tabindex', lastTabVal);
-					} else {
-						view.textInput.element.removeAttribute('tabindex');
-						view.menuButton.element.removeAttribute('tabindex');
-					}
+				if (disabled) {
+					setDisableAndTabIndex(pos, true);
+					setDisableAndTabIndex(view.textInput.positioner, true);
+					setDisableAndTabIndex(view.textInput.element);
+					setDisableAndTabIndex(view.menuButton.positioner, true);
+					setDisableAndTabIndex(view.menuButton.element);
+				} else {
+					removeDisableAndTabIndex(pos, true);
+					removeDisableAndTabIndex(view.textInput.positioner, true);
+					removeDisableAndTabIndex(view.textInput.element, false, lastTextInputElementTabVal);
+					removeDisableAndTabIndex(view.menuButton.positioner, true);
+					removeDisableAndTabIndex(view.menuButton.element, false, lastButtonElementTabVal);
 				}
 			}
 			}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/NumericStepperView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/NumericStepperView.as
index 66f3a1e..cff68e6 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/NumericStepperView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/NumericStepperView.as
@@ -94,7 +94,6 @@ package org.apache.royale.jewel.beads.views
 			// on phones and tablets, we want to reorder elements (again flexbox) and position :
 			// button down + text input + button up
 			var spinnerview:SpinnerView = spinner.getBeadByType(IBeadView) as SpinnerView;
-			trace(spinnerview);
 			(value as IParent).addElement(spinnerview.increment as IChild);
 			(value as IParent).addElement(spinnerview.decrement as IChild);