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 abf7b1d jewel-disabled: improve it sending event and making it
bindable. Left commented "tabIndex" logic since generates blue focus ring when
is -1 and the use click over it. Need to be revisited in the future
abf7b1d is described below
commit abf7b1d5b03dda0380a3f8d5bb38669232bba423
Author: Carlos Rovira <[email protected]>
AuthorDate: Thu Mar 5 18:27:58 2020 +0100
jewel-disabled: improve it sending event and making it bindable. Left
commented "tabIndex" logic since generates blue focus ring when is -1 and the
use click over it. Need to be revisited in the future
---
.../apache/royale/jewel/beads/controls/Disabled.as | 75 ++++++++++++++--------
.../projects/Jewel/src/main/sass/_global.sass | 7 ++
2 files changed, 56 insertions(+), 26 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 1450f54..132adce 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
@@ -17,10 +17,15 @@
//
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel.beads.controls
-{
- import org.apache.royale.core.IBead;
+{
+ COMPILE::JS
+ {
+ import org.apache.royale.core.HTMLElementWrapper;
+ }
+ import org.apache.royale.core.Bead;
import org.apache.royale.core.IStrand;
- import org.apache.royale.core.UIBase;
+ import org.apache.royale.events.ValueEvent;
+ import org.apache.royale.utils.sendStrandEvent;
/**
* The Disabled bead class is a specialty bead that can be used to
disable a Jewel control.
@@ -30,7 +35,7 @@ package org.apache.royale.jewel.beads.controls
* @playerversion AIR 2.6
* @productversion Royale 0.9.4
*/
- public class Disabled implements IBead
+ public class Disabled extends Bead
{
/**
* constructor.
@@ -44,6 +49,9 @@ package org.apache.royale.jewel.beads.controls
{
}
+ COMPILE::JS
+ private var _lastTabVal:String;
+
private var _disabled:Boolean = true;
/**
* A boolean flag to enable or disable the host control.
@@ -53,22 +61,29 @@ package org.apache.royale.jewel.beads.controls
* @playerversion AIR 2.6
* @productversion Royale 0.9.4
*/
+ [Bindable]
public function get disabled():Boolean
{
return _disabled;
}
public function set disabled(value:Boolean):void
{
- _disabled = value;
-
- COMPILE::JS
- {
- updateHost();
- }
+ if(value != _disabled)
+ {
+ COMPILE::JS
+ {
+ if(value && _strand)
+ _lastTabVal = (_strand as
HTMLElementWrapper).element.getAttribute("tabindex");
+ }
+ _disabled = value;
+ if(_strand)
+ {
+ updateHost();
+ sendStrandEvent(_strand, new
ValueEvent("disabledChange", disabled));
+ }
+ }
}
- protected var _strand:IStrand;
-
/**
* @copy org.apache.royale.core.IBead#strand
*
@@ -79,27 +94,35 @@ package org.apache.royale.jewel.beads.controls
* @royaleignorecoercion HTMLInputElement
* @royaleignorecoercion org.apache.royale.core.UIBase;
*/
- public function set strand(value:IStrand):void
+ override public function set strand(value:IStrand):void
{
_strand = value;
-
COMPILE::JS
- {
- updateHost();
- }
+ {
+ _lastTabVal = (_strand as
HTMLElementWrapper).element.getAttribute("tabindex");
+ }
+ updateHost();
}
- COMPILE::JS
protected function updateHost():void
{
- var host:UIBase = _strand as UIBase;
-
- if (host)
- {
- _disabled ?
- host.element.setAttribute('disabled', '') :
- host.element.removeAttribute('disabled');
- }
+ COMPILE::JS
+ {
+ var elem:HTMLElement = (_strand as
HTMLElementWrapper).element;
+
+ if(_disabled)
+ {
+ elem.setAttribute('disabled', '');
+ // elem.setAttribute("tabindex", "-1");
+ } else
+ {
+ elem.removeAttribute('disabled');
+
+ // _lastTabVal ?
+ // elem.setAttribute("tabindex",
_lastTabVal) :
+ // elem.removeAttribute("tabindex");
+ }
+ }
}
}
}
diff --git a/frameworks/projects/Jewel/src/main/sass/_global.sass
b/frameworks/projects/Jewel/src/main/sass/_global.sass
index 32340c2..0ddfa5a 100644
--- a/frameworks/projects/Jewel/src/main/sass/_global.sass
+++ b/frameworks/projects/Jewel/src/main/sass/_global.sass
@@ -32,6 +32,13 @@ html, body
::-moz-focus-inner, ::-moz-focus-outer
border: 0
+// \:focus
+// outline: 0
+
+// \:disabled
+// pointer-events: none
+
+
select::-ms-expand
display: none