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/03/06 09:31:34 UTC

[royale-asjs] branch develop updated: jewel-disabled-beads: add tabindex=-1

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 a54e23e  jewel-disabled-beads: add tabindex=-1
a54e23e is described below

commit a54e23ec668e568bc58a66adcb94982ed56f9359
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Fri Mar 6 10:31:21 2020 +0100

    jewel-disabled-beads: add tabindex=-1
---
 .../apache/royale/jewel/beads/controls/Disabled.as | 42 ++++++++++++++--------
 .../beads/controls/combobox/ComboBoxDisabled.as    | 33 ++++++++++++++---
 .../beads/controls/datefield/DateFieldDisabled.as  | 30 ++++++++++------
 3 files changed, 75 insertions(+), 30 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 132adce..a831309 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
@@ -21,6 +21,7 @@ package org.apache.royale.jewel.beads.controls
 	COMPILE::JS
 	{
 	import org.apache.royale.core.HTMLElementWrapper;
+	import org.apache.royale.core.IUIBase;
 	}
 	import org.apache.royale.core.Bead;
 	import org.apache.royale.core.IStrand;
@@ -50,7 +51,7 @@ package org.apache.royale.jewel.beads.controls
 		}
 
 		COMPILE::JS
-		private var _lastTabVal:String;
+		protected var lastTabVal:String;
 
 		private var _disabled:Boolean = true;
         /**
@@ -73,7 +74,7 @@ package org.apache.royale.jewel.beads.controls
 				COMPILE::JS
 				{
 				if(value && _strand)
-					_lastTabVal = (_strand as HTMLElementWrapper).element.getAttribute("tabindex");
+					lastTabVal = (_strand as HTMLElementWrapper).element.getAttribute("tabindex");
 				}
 				_disabled = value;
 				if(_strand)
@@ -99,7 +100,7 @@ package org.apache.royale.jewel.beads.controls
 			_strand = value;
 			COMPILE::JS
             {
-            _lastTabVal = (_strand as HTMLElementWrapper).element.getAttribute("tabindex");
+            lastTabVal = (_strand as HTMLElementWrapper).element.getAttribute("tabindex");
             }
 			updateHost();
 		}
@@ -109,20 +110,33 @@ package org.apache.royale.jewel.beads.controls
 			COMPILE::JS
 			{
 			var elem:HTMLElement = (_strand as HTMLElementWrapper).element;
+			var pos:HTMLElement = (_strand as IUIBase).positioner;
 			
-			if(_disabled)
-			{
-				elem.setAttribute('disabled', '');
-				// elem.setAttribute("tabindex", "-1");
-			} else
-			{
-				elem.removeAttribute('disabled');
-				
-				// _lastTabVal ?
-				// 	elem.setAttribute("tabindex", _lastTabVal) :
-				// 	elem.removeAttribute("tabindex");
+			if(_disabled) {
+				setDisableAndTabIndex(elem);
+				setDisableAndTabIndex(pos);
+			} else {
+				removeDisableAndTabIndex(elem);
+				removeDisableAndTabIndex(pos);
 			}
 			}
 		}
+
+		COMPILE::JS
+		protected function setDisableAndTabIndex(o:HTMLElement):void
+		{
+			o.setAttribute("disabled", "");
+			o.tabIndex = -1;
+		}
+
+		COMPILE::JS
+		protected function removeDisableAndTabIndex(o:*):void
+		{
+			o.removeAttribute("disabled");
+				
+			lastTabVal ?
+				o.tabIndex = lastTabVal :
+				o.tabIndex = null;
+		}
 	}
 }
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 4212d99..34dbf03 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
@@ -18,11 +18,11 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.beads.controls.combobox
 {
-COMPILE::JS
-{
+	COMPILE::JS
+	{
 	import org.apache.royale.core.UIBase;
 	import org.apache.royale.jewel.beads.views.ComboBoxView;
-}
+	}
 	import org.apache.royale.jewel.beads.controls.Disabled;
 	
 	/**
@@ -47,22 +47,45 @@ COMPILE::JS
 		{
 		}
 
-		COMPILE::JS
 		override protected function updateHost():void
 		{
 			super.updateHost();
-
+			
+			COMPILE::JS
+			{
 			var view:ComboBoxView = (_strand as UIBase).view as ComboBoxView;
 
 			if (view) {
                 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');
 				} 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');
+					}
 				}
             }
+			}
 		}
 	}
 }
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 395d5bb..e30bd50 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,7 +20,6 @@ package org.apache.royale.jewel.beads.controls.datefield
 {
 	COMPILE::JS
 	{
-	import org.apache.royale.core.IBeadView;
 	import org.apache.royale.jewel.DateField;
 	import org.apache.royale.jewel.beads.views.DateFieldView;
 	}
@@ -49,26 +48,35 @@ package org.apache.royale.jewel.beads.controls.datefield
 		{
 		}
 
-		COMPILE::JS
 		override protected function updateHost():void
 		{
 			super.updateHost();
 
-			var host :DateField = _strand as DateField;
+			COMPILE::JS
+			{
+			var view:DateFieldView = (_strand as DateField).view as DateFieldView;
 
-			if (host) {
-				var view:DateFieldView = (_strand as DateField).view as DateFieldView;
+			if (view) {
+				if (disabled) {
+					view.textInput.element.setAttribute('disabled', '');
+					view.menuButton.element.setAttribute('disabled', '');
 
-				if (view) {
-					if (disabled) {
-						view.textInput.element.setAttribute('disabled', '');
-						view.menuButton.element.setAttribute('disabled', '');
+					view.textInput.element.setAttribute('tabindex', '-1');
+					view.menuButton.element.setAttribute('tabindex', '-1');
+				} else {
+					view.textInput.element.removeAttribute('disabled');
+					view.menuButton.element.removeAttribute('disabled');
+
+					if(lastTabVal) {
+						view.textInput.element.setAttribute('tabindex', lastTabVal);
+						view.menuButton.element.setAttribute('tabindex', lastTabVal);
 					} else {
-						view.textInput.element.removeAttribute('disabled');
-						view.menuButton.element.removeAttribute('disabled');
+						view.textInput.element.removeAttribute('tabindex');
+						view.menuButton.element.removeAttribute('tabindex');
 					}
 				}
 			}
+			}
 		}
 	}
 }