From 9a41f3b288f5b5619946c7fac26bd89ef70e6587 Mon Sep 17 00:00:00 2001 From: Pablo Luna Date: Wed, 9 Feb 2011 15:29:09 +0100 Subject: [PATCH] Adding fade in - fade out effect when adding new nodes --- core-js/src/main/javascript/Utils.js | 61 +++++++++++++++++++ .../src/main/javascript/ConnectionLine.js | 9 +++ .../main/javascript/DesignerActionRunner.js | 8 +-- .../src/main/javascript/MindmapDesigner.js | 11 ++-- .../src/main/javascript/RelationshipLine.js | 16 +++-- .../src/main/javascript/ShrinkConnector.js | 9 ++- mindplot/src/main/javascript/Topic.js | 39 ++++++++---- .../javascript/commands/AddTopicCommand.js | 28 +++++++-- 8 files changed, 148 insertions(+), 33 deletions(-) diff --git a/core-js/src/main/javascript/Utils.js b/core-js/src/main/javascript/Utils.js index c9ac70f2..cb17e319 100644 --- a/core-js/src/main/javascript/Utils.js +++ b/core-js/src/main/javascript/Utils.js @@ -270,4 +270,65 @@ core.Utils.calculateDefaultControlPoints = function(srcPos, tarPos){ var y2= m*(x2-tarPos.x)+tarPos.y; return [new core.Point(-srcPos.x + x1,-srcPos.y + y1),new core.Point(-tarPos.x + x2,-tarPos.y + y2)]; +}; + +core.Utils.setVisibilityAnimated = function(elems, isVisible, doneFn){ + core.Utils.animateVisibility(elems, isVisible, doneFn); +}; +core.Utils.setChildrenVisibilityAnimated = function(rootElem, isVisible){ + var children = core.Utils._addInnerChildrens(rootElem); + core.Utils.animateVisibility(children, isVisible); +}; + +core.Utils.animateVisibility = function (elems, isVisible, doneFn){ + var _fadeEffect=null; + var _opacity = (isVisible?0:1); + if(isVisible){ + elems.forEach(function(child, index){ + child.setOpacity(_opacity); + child.setVisibility(isVisible); + }); + } + var fadeEffect = function(index) + { + var step = 10; + if((_opacity<=0 && !isVisible) || (_opacity>=1 && isVisible)){ + $clear(_fadeEffect); + _fadeEffect = null; + elems.forEach(function(child, index){ + + child.setVisibility(isVisible); + + }); + if(core.Utils.isDefined(doneFn)) + doneFn.attempt(); + } + else{ + var fix = 1; + if(isVisible){ + fix = -1; + } + _opacity-=(1/step)*fix; + elems.forEach(function(child, index){ + child.setOpacity(_opacity); + }); + } + + }; + _fadeEffect =fadeEffect.periodical(30); +}; + +core.Utils._addInnerChildrens = function(elem){ + var children = []; + var childs = elem._getChildren(); + for(var i = 0 ; i