private FunctionalElementRoute BuildSpreadEventRoute(IFunctionalTreeElement element, FunctionalEventArgs eventArgs)
        {
            FunctionalElementRoute route = new FunctionalElementRoute();

            IFunctionalTreeElement treeRoot = FunctionalTreeHelper.GetFunctionalTree(element).Root;
            route.Add(treeRoot);
            route.AddRange(GetDescendents(treeRoot));

            return route;
        }
        private FunctionalElementRoute BuildDescendentsEventRoute(IFunctionalTreeElement element, FunctionalEventArgs eventArgs)
        {
            FunctionalElementRoute route = new FunctionalElementRoute();
            route.AddRange(GetDescendents(element));

            return route;
        }
        private FunctionalElementRoute BuildSiblingsEventRoute(IFunctionalTreeElement element, FunctionalEventArgs eventArgs)
        {
            FunctionalElementRoute route = new FunctionalElementRoute();

            IFunctionalTreeElement parent = FunctionalTreeHelper.GetFunctionalParent(element);
            if (parent == null)
                return route;

            route.AddRange(FunctionalTreeHelper.GetFunctionalChildren(parent).Where(cur => cur != element));
            return route;
        }
 private FunctionalElementRoute BuildChildrenEventRoute(IFunctionalTreeElement element, FunctionalEventArgs eventArgs)
 {
     FunctionalElementRoute route = new FunctionalElementRoute();
     route.AddRange(FunctionalTreeHelper.GetFunctionalChildren(element));
     return route;
 }