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 90d0a4d refactor Icon classes to FontIcon since all current classes
are based on fonts and text and add ToggleFontIcon
90d0a4d is described below
commit 90d0a4dee3f438829b0bdab5604afd926734967e
Author: Carlos Rovira <[email protected]>
AuthorDate: Wed Jul 4 01:31:03 2018 +0200
refactor Icon classes to FontIcon since all current classes are based on
fonts and text and add ToggleFontIcon
---
.../Icons/src/main/resources/icons-manifest.xml | 4 +-
.../projects/Icons/src/main/royale/IconsClasses.as | 5 +-
.../apache/royale/icons/{Icon.as => FontIcon.as} | 16 ++----
.../royale/icons/{IconBase.as => FontIconBase.as} | 13 ++---
.../royale/icons/{Icon.as => ToggleFontIcon.as} | 66 ++++++++++++++++------
5 files changed, 65 insertions(+), 39 deletions(-)
diff --git a/frameworks/projects/Icons/src/main/resources/icons-manifest.xml
b/frameworks/projects/Icons/src/main/resources/icons-manifest.xml
index fa7c6b8..a24e31a 100644
--- a/frameworks/projects/Icons/src/main/resources/icons-manifest.xml
+++ b/frameworks/projects/Icons/src/main/resources/icons-manifest.xml
@@ -20,6 +20,6 @@
<componentPackage>
- <component id="Icon" class="org.apache.royale.icons.Icon"/>
-
+ <component id="FontIcon" class="org.apache.royale.icons.FontIcon"/>
+ <component id="ToggleFontIcon"
class="org.apache.royale.icons.ToggleFontIcon"/>
</componentPackage>
diff --git a/frameworks/projects/Icons/src/main/royale/IconsClasses.as
b/frameworks/projects/Icons/src/main/royale/IconsClasses.as
index c71e40c..9a6f7dd 100644
--- a/frameworks/projects/Icons/src/main/royale/IconsClasses.as
+++ b/frameworks/projects/Icons/src/main/royale/IconsClasses.as
@@ -27,8 +27,9 @@ package
*/
internal class IconsClasses
{
- import org.apache.royale.icons.Icon; Icon;
- import org.apache.royale.icons.IconBase; IconBase;
+ import org.apache.royale.icons.FontIconBase; FontIconBase;
+ import org.apache.royale.icons.FontIcon; FontIcon;
+ import org.apache.royale.icons.ToggleFontIcon; ToggleFontIcon;
MaterialIconType;
}
diff --git
a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/Icon.as
b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
similarity index 86%
copy from
frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/Icon.as
copy to
frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
index bf44a21..2d1e2c4 100644
--- a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/Icon.as
+++
b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIcon.as
@@ -29,7 +29,7 @@ package org.apache.royale.icons
* @playerversion AIR 2.6
* @productversion Royale 0.9.3
*/
- public class Icon extends IconBase
+ public class FontIcon extends FontIconBase
{
/**
* constructor.
@@ -39,12 +39,14 @@ package org.apache.royale.icons
* @playerversion AIR 2.6
* @productversion Royale 0.9.3
*/
- public function Icon()
+ public function FontIcon()
{
super();
+
+ typeNames = "fonticon";
}
- private var _text:String = "";
+ protected var _text:String = "";
/**
* The text of the icon
*
@@ -63,13 +65,7 @@ package org.apache.royale.icons
COMPILE::JS
{
- if(textNode == null)
- {
- textNode = document.createTextNode('') as Text;
- element.appendChild(textNode);
- }
-
- textNode.nodeValue = value;
+ textNode.nodeValue = _text;
}
}
diff --git
a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/IconBase.as
b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIconBase.as
similarity index 91%
rename from
frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/IconBase.as
rename to
frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIconBase.as
index 69380cf..008a9d3 100644
---
a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/IconBase.as
+++
b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/FontIconBase.as
@@ -29,7 +29,7 @@ package org.apache.royale.icons
}
/**
- * IconBase is the base class to provide most common features
+ * FontIconBase is the base class to provide most common features
* for all kinds of text based icons
*
* @langversion 3.0
@@ -37,7 +37,7 @@ package org.apache.royale.icons
* @playerversion AIR 2.6
* @productversion Royale 0.9.3
*/
- public class IconBase extends UIBase implements IIcon
+ public class FontIconBase extends UIBase implements IIcon
{
/**
* constructor.
@@ -47,12 +47,11 @@ package org.apache.royale.icons
* @playerversion AIR 2.6
* @productversion Royale 0.9.3
*/
- public function IconBase()
+ public function FontIconBase()
{
super();
-
- typeNames = "icon";
+ typeNames = "";
}
COMPILE::JS
@@ -74,8 +73,8 @@ package org.apache.royale.icons
}
/**
- * the icon text that matchs with MDL icon.
- * Check this url to see the icon list: https://material.io/icons/
+ * the icon text that matchs with font icon.
+ * override in extending classes
*
* @langversion 3.0
* @playerversion Flash 10.2
diff --git
a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/Icon.as
b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as
similarity index 60%
rename from
frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/Icon.as
rename to
frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as
index bf44a21..b6a599f 100644
--- a/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/Icon.as
+++
b/frameworks/projects/Icons/src/main/royale/org/apache/royale/icons/ToggleFontIcon.as
@@ -18,6 +18,8 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.icons
{
+ import org.apache.royale.core.ISelectable;
+
/**
* Icons can be used alone or in buttons and other controls
*
@@ -29,7 +31,7 @@ package org.apache.royale.icons
* @playerversion AIR 2.6
* @productversion Royale 0.9.3
*/
- public class Icon extends IconBase
+ public class ToggleFontIcon extends FontIcon implements ISelectable
{
/**
* constructor.
@@ -39,40 +41,68 @@ package org.apache.royale.icons
* @playerversion AIR 2.6
* @productversion Royale 0.9.3
*/
- public function Icon()
+ public function ToggleFontIcon()
{
super();
}
+
+ private var _selected:Boolean = false;
- private var _text:String = "";
/**
- * The text of the icon
+ * <code>true</code> if the Button is selected.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.3
+ */
+ public function get selected():Boolean
+ {
+ return _selected;
+ }
+
+ /**
+ * @private
+ */
+ public function set selected(value:Boolean):void
+ {
+ _selected = value;
+ internalSelected();
+ }
+
+ private var _selectedText:String = "";
+ /**
+ * The selectedText of the icon
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.3
*/
- public function get text():String
+ public function get selectedText():String
{
- return _text;
+ return _selectedText;
}
- public function set text(value:String):void
+ public function set selectedText(value:String):void
+ {
+ _selectedText = value;
+ internalSelected();
+ }
+
+ override public function set text(value:String):void
{
_text = value;
+ internalSelected();
+ }
- COMPILE::JS
+ private function internalSelected():void
+ {
+ COMPILE::JS
{
- if(textNode == null)
- {
- textNode = document.createTextNode('') as Text;
- element.appendChild(textNode);
- }
-
- textNode.nodeValue = value;
+ textNode.nodeValue = _selected ? _selectedText : _text;
}
- }
-
+ }
+
/**
* The icon text
*
@@ -83,7 +113,7 @@ package org.apache.royale.icons
*/
override protected function get iconText():String
{
- return text;
+ return selected ? selectedText : text;
}
}
}