You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2017/03/26 13:02:00 UTC

[08/40] git commit: [flex-asjs] [refs/heads/tlf] - FLEX-35269 - Fix Tooltip - to be able to add it dynamically to component check whether his parent exits - if not add it to the parent after "beadsAdded" and make upgrade

FLEX-35269 - Fix Tooltip - to be able to add it dynamically to component check whether his parent exits - if not add it to the parent after "beadsAdded" and make upgrade


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/77f7ae2c
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/77f7ae2c
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/77f7ae2c

Branch: refs/heads/tlf
Commit: 77f7ae2c99f3f5150f36d19413e95fd33b2aac23
Parents: 4826856
Author: piotrz <pi...@apache.org>
Authored: Sat Mar 18 17:13:21 2017 +0100
Committer: piotrz <pi...@apache.org>
Committed: Sat Mar 18 17:13:21 2017 +0100

----------------------------------------------------------------------
 .../flex/org/apache/flex/mdl/beads/Tooltip.as   | 72 ++++++++++++++++----
 1 file changed, 58 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/77f7ae2c/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Tooltip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Tooltip.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Tooltip.as
index 9cf89db..1c30aa2 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Tooltip.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Tooltip.as
@@ -18,6 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.mdl.beads
 {
+    import org.apache.flex.events.Event;
+
     import org.apache.flex.core.IBead;
     import org.apache.flex.core.IStrand;
     import org.apache.flex.core.UIBase;
@@ -56,6 +58,11 @@ package org.apache.flex.mdl.beads
 			
 		}
 
+        private var _host:UIBase;
+
+        COMPILE::JS
+        private var _tooltipDiv:HTMLDivElement;
+
         private var _text:String = "";
         /**
          *  The text of the tooltip
@@ -205,27 +212,64 @@ package org.apache.flex.mdl.beads
         {
             _strand = value;
 
-            var host:UIBase = value as UIBase;
-
+            _host = value as UIBase;
             COMPILE::JS
-            {    
-                var element:HTMLElement = host.element as HTMLElement;
-                var divElemet:HTMLDivElement = document.createElement("div") as HTMLDivElement;
+            {
+                _tooltipDiv = document.createElement("div") as HTMLDivElement;
 
-                divElemet.classList.add("mdl-tooltip");
-                divElemet.classList.toggle("mdl-tooltip--top", _topPosition);
-                divElemet.classList.toggle("mdl-tooltip--left", _leftPosition);
-                divElemet.classList.toggle("mdl-tooltip--right", _rightPosition);
-                divElemet.classList.toggle("mdl-tooltip--bottom", _bottomPosition);
+                _tooltipDiv.classList.add("mdl-tooltip");
+                _tooltipDiv.classList.toggle("mdl-tooltip--top", _topPosition);
+                _tooltipDiv.classList.toggle("mdl-tooltip--left", _leftPosition);
+                _tooltipDiv.classList.toggle("mdl-tooltip--right", _rightPosition);
+                _tooltipDiv.classList.toggle("mdl-tooltip--bottom", _bottomPosition);
 
-                divElemet.classList.toggle("mdl-tooltip--large", _large);
-                divElemet.setAttribute('for', host.id);
+                _tooltipDiv.classList.toggle("mdl-tooltip--large", _large);
+                _tooltipDiv.setAttribute('for', _host.id);
 
                 var textNode:Text = document.createTextNode('');
                 textNode.nodeValue = _text;
-                divElemet.appendChild(textNode);
+                _tooltipDiv.appendChild(textNode);
+
+                var isElementAdded:Boolean = addTooltipToParent();
+                if (!isElementAdded)
+                {
+                    _host.addEventListener("beadsAdded", beadsAddedHandler);
+                }
+            }
+        }
+
+        COMPILE::JS
+        private function beadsAddedHandler(event:Event):void
+        {
+            var host:UIBase = _strand as UIBase;
+            host.removeEventListener("beadsAdded", beadsAddedHandler);
+
+            addTooltipToParent();
+            upgradeTooltip();
+        }
+
+        COMPILE::JS
+        private function addTooltipToParent():Boolean
+        {
+            var element:HTMLElement = _host.element as HTMLElement;
+
+            if (!element.parentElement)
+            {
+                return false;
+            }
+
+            element.parentElement.appendChild(_tooltipDiv);
+            return true;
+        }
+
+        COMPILE::JS
+        private function upgradeTooltip():void
+        {
+            var componentHandler:Object = window["componentHandler"];
 
-                element.parentElement.appendChild(divElemet);
+            if (componentHandler && _tooltipDiv)
+            {
+                componentHandler["upgradeElement"](_tooltipDiv);
             }
         }
     }