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);