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

Reply via email to