Esempio n. 1
0
            internal TNode ActualFromNode()
            {
                if (DragFromNode == null)
                {
                    return(null);
                }

                if (DragFromNode == DragToNode || DragToNode == null) // self-wiring or no to-route
                {
                    return(DragFromNode);
                }

                if (DragFromNodeHitPath == null) // fromNode top level
                {
                    return(DragFromNode);
                }
                if (DragToNodeHitPath == null) // counterpart top level
                {
                    return(DragFromNodeHitPath[0].As <TNode>());
                }


                var lca = HitPathsGetLowestCommonAncestor();

                if (lca == null)
                {
                    return(DragFromNodeHitPath[0].As <TNode>()); // counterpart  in another container
                }
                int index = DragFromNodeHitPath.IndexOf(lca);

                return(DragFromNodeHitPath[index + 1].As <TNode>()); // return the child node of the lca
            }