code: function (node, T_x, T_y, nodeToExpand, single, animate, layoutBy) {
      var childrenList = cy.collection();
      if(node.isParent()){
         childrenList = node.children(":visible");
      }
      var self = this;
      
      /*
       * If the node is simple move itself directly else move it by moving its children by a self recursive call
       */
      if (childrenList.length == 0) {
        var newPosition = {x: node._private.position.x + T_x, y: node._private.position.y + T_y};
        if (!single || !animate) {
          node._private.position.x = newPosition.x;
          node._private.position.y = newPosition.y;
        }
        else {
          this.animatedlyMovingNodeCount++;
          node.animate({
            position: newPosition,
            complete: function () {
              self.animatedlyMovingNodeCount--;
              if (self.animatedlyMovingNodeCount > 0 || !nodeToExpand.hasClass('cy-expand-collapse-collapsed-node')) {
  
                return;
              }
              
              // If all nodes are moved we are ready to expand so call expand node base function
              self.expandNodeBaseFunction(nodeToExpand, single, layoutBy);
  
            }
          }, {
            duration: 1000
          });
        }
      }
      else {
        for (var i = 0; i < childrenList.length; i++) {
          this.fishEyeViewMoveNode(childrenList[i], T_x, T_y, nodeToExpand, single, animate, layoutBy);
        }
      }
    }
docs: /*
  Move node operation specialized for fish eye view expand operation
  Moves the node by moving its descandents. Movement is animated if both single and animate flags are truthy.