This is an automated email from the ASF dual-hosted git repository.

harbs 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 c01ebc2  Fixed classNames in MDL button
c01ebc2 is described below

commit c01ebc2cc946570006d8f5cea607182e16eaf0fe
Author: Harbs <[email protected]>
AuthorDate: Mon Feb 26 14:10:22 2018 +0200

    Fixed classNames in MDL button
    
    Any MDL Button which set the className on a specific button blew away any 
settings that were set by the MDL button
    
    I don;t know if similar changes need to be made in other MDL components
---
 .../main/royale/org/apache/royale/mdl/Button.as    | 73 +++++++++-------------
 1 file changed, 31 insertions(+), 42 deletions(-)

diff --git 
a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/Button.as
 
b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/Button.as
index 339d4ea..9aed576 100644
--- 
a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/Button.as
+++ 
b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/Button.as
@@ -27,7 +27,6 @@ package org.apache.royale.mdl
     {
         import org.apache.royale.core.WrappedHTMLElement;
         import org.apache.royale.html.util.addElementToWrapper;
-        import org.apache.royale.html.util.addOrReplaceClassName;
     }
     
     /**
@@ -114,11 +113,7 @@ package org.apache.royale.mdl
 
                 COMPILE::JS
                 {
-                    element.classList.remove("mdl-button--fab");
-                    if (value)
-                    {
-                        className = addOrReplaceClassName(className, 
"mdl-button--fab");
-                    }
+                    adjustTypeNames("mdl-button--fab", value);
                 }
             }
         }
@@ -142,17 +137,35 @@ package org.apache.royale.mdl
             if (_raised != value)
             {
                 _raised = value;
-
                 COMPILE::JS
                 {
-                    element.classList.remove("mdl-button--raised");
-                    if (value)
-                    {
-                        className = addOrReplaceClassName(className, 
"mdl-button--raised");
-                    }
+                    adjustTypeNames("mdl-button--raised", value);
                 }
             }
         }
+        COMPILE::JS
+        private function adjustTypeNames(type:String,add:Boolean):void
+        {
+            type = " " + type;
+            var typeLength:int = type.length;
+            var typeIdx:int = typeNames.indexOf(type);
+            var adjust:Boolean = false;
+            if(add && typeIdx == -1)
+            {
+                typeNames += type;
+                adjust = true;
+            }
+            else if(!add && typeIdx != -1)
+            {
+                typeNames = typeNames.substr(typeIdx,typeLength);
+                adjust = true;
+            }
+            if(adjust)
+            {
+                var cl:String = className;
+                setClassName((cl ? cl + " " : "") + typeNames);                
+            }
+        }
 
         private var _colored:Boolean = false;
         /**
@@ -177,11 +190,7 @@ package org.apache.royale.mdl
 
                 COMPILE::JS
                 {
-                    element.classList.remove("mdl-button--colored");
-                    if (value)
-                    {
-                        className = addOrReplaceClassName(className, 
"mdl-button--colored");
-                    }
+                    adjustTypeNames("mdl-button--colored", value);
                 }
             }
         }
@@ -209,11 +218,7 @@ package org.apache.royale.mdl
 
                 COMPILE::JS
                 {
-                    element.classList.remove("mdl-button--accent");
-                    if (value)
-                    {
-                        className = addOrReplaceClassName(className, 
"mdl-button--accent");
-                    }
+                    adjustTypeNames("mdl-button--accent", value);
                 }
             }
         }
@@ -241,11 +246,7 @@ package org.apache.royale.mdl
 
                 COMPILE::JS
                 {
-                    element.classList.remove("mdl-button--primary");
-                    if (value)
-                    {
-                        className = addOrReplaceClassName(className, 
"mdl-button--primary");
-                    }
+                    adjustTypeNames("mdl-button--primary", value);
                 }
             }
         }
@@ -273,11 +274,7 @@ package org.apache.royale.mdl
 
                 COMPILE::JS
                 {
-                    element.classList.remove("mdl-button--mini-fab");
-                    if (value)
-                    {
-                        className = addOrReplaceClassName(className, 
"mdl-button--mini-fab");
-                    }
+                    adjustTypeNames("mdl-button--mini-fab", value);
                 }
             }
         }
@@ -305,11 +302,7 @@ package org.apache.royale.mdl
 
                 COMPILE::JS
                 {
-                    element.classList.remove("mdl-button--icon");
-                    if (value)
-                    {
-                        className = addOrReplaceClassName(className, 
"mdl-button--icon");
-                    }
+                    adjustTypeNames("mdl-button--icon", value);
                 }
             }
         }
@@ -336,11 +329,7 @@ package org.apache.royale.mdl
 
                 COMPILE::JS
                 {
-                    element.classList.remove("mdl-js-ripple-effect");
-                    if (value)
-                    {
-                        className = addOrReplaceClassName(className, 
"mdl-js-ripple-effect");
-                    }
+                    adjustTypeNames("mdl-js-ripple-effect", value);
                 }
             }
         }

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to