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 2019/03/06 23:28:24 UTC
[royale-asjs] branch feature/jewel_positioner updated:
textinputbased jewel components refactor
This is an automated email from the ASF dual-hosted git repository.
carlosrovira pushed a commit to branch feature/jewel_positioner
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/feature/jewel_positioner by this push:
new ebca791 textinputbased jewel components refactor
ebca791 is described below
commit ebca791c09c596039d3052ac50322c4ce8fe08e2
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Thu Mar 7 00:28:17 2019 +0100
textinputbased jewel components refactor
---
.../org/apache/royale/jewel/IconTextInput.as | 27 ++++----
.../royale/org/apache/royale/jewel/TextArea.as | 27 ++------
.../royale/org/apache/royale/jewel/TextInput.as | 19 +-----
.../supportClasses/textinput/TextInputBase.as | 73 ++++++++++------------
4 files changed, 52 insertions(+), 94 deletions(-)
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/IconTextInput.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/IconTextInput.as
index 7e550de..8584f38 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/IconTextInput.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/IconTextInput.as
@@ -17,9 +17,12 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel
{
- import org.apache.royale.core.IIconSupport;
- import org.apache.royale.core.IIcon;
+ COMPILE::JS
+ {
import org.apache.royale.core.IUIBase;
+ }
+ import org.apache.royale.core.IIcon;
+ import org.apache.royale.core.IIconSupport;
/**
* The IconTextInput class implements is a TextInput that supports
@@ -45,8 +48,6 @@ package org.apache.royale.jewel
public function IconTextInput()
{
super();
-
- //typeNames = "jewel textinput";
}
private var _icon:IIcon;
@@ -71,15 +72,15 @@ package org.apache.royale.jewel
COMPILE::JS
{
- // insert the icon before the text
- if(rightPosition)
- {
- div.insertBefore(_icon.positioner, null);
- } else
- {
- div.insertBefore(_icon.positioner, element);
- }
- (_icon as IUIBase).addedToParent();
+ // insert the icon before the text
+ if(rightPosition)
+ {
+ div.element.insertBefore(_icon.positioner, null);
+ } else
+ {
+ div.element.insertBefore(_icon.positioner, element);
+ }
+ (_icon as IUIBase).addedToParent();
}
}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TextArea.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TextArea.as
index 3ce273c..97a1569 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TextArea.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TextArea.as
@@ -17,14 +17,14 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel
{
- import org.apache.royale.jewel.supportClasses.textinput.TextInputBase;
-
COMPILE::JS
{
import goog.events;
+
import org.apache.royale.core.WrappedHTMLElement;
import org.apache.royale.html.util.addElementToWrapper;
}
+ import org.apache.royale.jewel.supportClasses.textinput.TextInputBase;
/**
* The TextArea class implements the basic control for
@@ -75,7 +75,7 @@ package org.apache.royale.jewel
COMPILE::JS
{
- input.setAttribute('rows', _rows);
+ input.setAttribute('rows', _rows);
}
}
@@ -102,43 +102,26 @@ package org.apache.royale.jewel
COMPILE::JS
{
- input.setAttribute('maxrows', _maxrows);
+ input.setAttribute('maxrows', _maxrows);
}
}
/**
* @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
- * @royaleignorecoercion HTMLDivElement
* @royaleignorecoercion HTMLInputElement
- * @royaleignorecoercion HTMLLabelElement
- * @royaleignorecoercion Text
*/
COMPILE::JS
override protected function createElement():WrappedHTMLElement
{
- div = document.createElement('div') as HTMLDivElement;
-
input = addElementToWrapper(this,'textarea') as HTMLInputElement;
input.setAttribute('type', 'text');
input.setAttribute('rows', rows);
- //input.setAttribute('maxrows', maxrows);
//attach input handler to dispatch royale change event when user write in textinput
//goog.events.listen(element, 'change', killChangeHandler);
goog.events.listen(input, 'input', textChangeHandler);
- //label = document.createElement('label') as HTMLLabelElement;
- //label.className = "jewel-textinput-label";
-
- //textNode = document.createTextNode('') as Text;
- //label.appendChild(textNode);
-
- div.appendChild(input);
- //div.appendChild(label);
-
- positioner = div as WrappedHTMLElement;
- //(label as WrappedHTMLElement).royale_wrapper = this;
- positioner.royale_wrapper = this;
+ div.element.appendChild(input);
return element;
}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TextInput.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TextInput.as
index 967fef3..5a3bbb5 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TextInput.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TextInput.as
@@ -55,16 +55,11 @@ package org.apache.royale.jewel
/**
* @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
- * @royaleignorecoercion HTMLDivElement
* @royaleignorecoercion HTMLInputElement
- * @royaleignorecoercion HTMLLabelElement
- * @royaleignorecoercion Text
*/
COMPILE::JS
override protected function createElement():WrappedHTMLElement
{
- div = document.createElement('div') as HTMLDivElement;
-
input = addElementToWrapper(this,'input') as HTMLInputElement;
input.setAttribute('type', 'text');
@@ -72,21 +67,9 @@ package org.apache.royale.jewel
//goog.events.listen(element, 'change', killChangeHandler);
goog.events.listen(input, 'input', textChangeHandler);
- //label = document.createElement('label') as HTMLLabelElement;
- //label.className = "jewel-textinput-label";
-
- //textNode = document.createTextNode('') as Text;
- //label.appendChild(textNode);
-
- div.appendChild(input);
- //div.appendChild(label);
-
- positioner = div as WrappedHTMLElement;
- //(label as WrappedHTMLElement).royale_wrapper = this;
- positioner.royale_wrapper = this;
+ div.element.appendChild(input);
return element;
}
-
}
}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/textinput/TextInputBase.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/textinput/TextInputBase.as
index d8ad1ba..1b990ef 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/textinput/TextInputBase.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/textinput/TextInputBase.as
@@ -17,16 +17,18 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel.supportClasses.textinput
{
- import org.apache.royale.core.StyledUIBase;
- import org.apache.royale.events.Event;
- import org.apache.royale.jewel.supportClasses.textinput.ITextInput;
- import org.apache.royale.core.ITextModel;
-
COMPILE::JS
{
import goog.events;
+
import org.apache.royale.core.WrappedHTMLElement;
}
+ import org.apache.royale.core.ITextModel;
+ import org.apache.royale.core.StyledUIBase;
+ import org.apache.royale.events.Event;
+ import org.apache.royale.jewel.supportClasses.textinput.ITextInput;
+ import org.apache.royale.jewel.Group;
+ import org.apache.royale.core.UIBase;
/**
* Dispatched when the user changes the text.
@@ -62,7 +64,7 @@ package org.apache.royale.jewel.supportClasses.textinput
COMPILE::SWF
{
- model.addEventListener("textChange", textChangeHandler);
+ model.addEventListener("textChange", textChangeHandler);
}
}
@@ -81,11 +83,11 @@ package org.apache.royale.jewel.supportClasses.textinput
{
COMPILE::SWF
{
- return ITextModel(model).text;
+ return ITextModel(model).text;
}
COMPILE::JS
{
- return (element as HTMLInputElement).value;
+ return (element as HTMLInputElement).value;
}
}
@@ -97,14 +99,14 @@ package org.apache.royale.jewel.supportClasses.textinput
{
COMPILE::SWF
{
- inSetter = true;
- ITextModel(model).text = value;
- inSetter = false;
+ inSetter = true;
+ ITextModel(model).text = value;
+ inSetter = false;
}
COMPILE::JS
{
- (element as HTMLInputElement).value = value;
- dispatchEvent(new Event('textChange'));
+ (element as HTMLInputElement).value = value;
+ dispatchEvent(new Event('textChange'));
}
}
@@ -122,11 +124,11 @@ package org.apache.royale.jewel.supportClasses.textinput
{
COMPILE::SWF
{
- return ITextModel(model).html;
+ return ITextModel(model).html;
}
COMPILE::JS
{
- return (element as HTMLInputElement).value;
+ return (element as HTMLInputElement).value;
}
}
@@ -138,12 +140,12 @@ package org.apache.royale.jewel.supportClasses.textinput
{
COMPILE::SWF
{
- ITextModel(model).html = value;
+ ITextModel(model).html = value;
}
COMPILE::JS
{
- (element as HTMLInputElement).value = value;
- dispatchEvent(new Event('textChange'));
+ (element as HTMLInputElement).value = value;
+ dispatchEvent(new Event('textChange'));
}
}
@@ -235,36 +237,25 @@ package org.apache.royale.jewel.supportClasses.textinput
_label = value;
}
- COMPILE::JS
/**
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.4
- * @royalesuppresspublicvarwarning
*/
- public var div:HTMLDivElement;
+ private var _div:UIBase;
- // private var _isInvalid:Boolean = false;
- // /**
- // * A boolean flag to activate "is-invalid" effect selector.
- // * Defines the textinput as invalid on initial load.
- // * Optional
- // *
- // * @langversion 3.0
- // * @playerversion Flash 10.2
- // * @playerversion AIR 2.6
- // * @productversion Royale 0.9.4
- // */
- // public function get isInvalid():Boolean
- // {
- // return _isInvalid;
- // }
- // public function set isInvalid(value:Boolean):void
- // {
- // _isInvalid = value;
+ public function get div():UIBase
+ {
+ if(!_div)
+ _div = new UIBase();
+ return _div;
+ }
- // toggleClass("is-invalid", _isInvalid);
- // }
+ COMPILE::JS
+ override public function get positioner():WrappedHTMLElement
+ {
+ return div.element;
+ }
}
}