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');
}
}
}
+ }
}
}
}