Пример #1
0
        private bool OnDragEnding(DropPosition position, RadTreeNode node, RadTreeNode targetNode)
        {
            RadTreeViewDragCancelEventArgs args = new RadTreeViewDragCancelEventArgs(node, targetNode);

            args.DropPosition = position;
            this.owner.OnDragEnding(args);
            return(!args.Cancel);
        }
Пример #2
0
        protected override void OnPreviewDragOver(RadDragOverEventArgs e)
        {
            TreeNodeElement    hitTarget1 = e.HitTarget as TreeNodeElement;
            RadTreeViewElement hitTarget2 = e.HitTarget as RadTreeViewElement;

            if (hitTarget2 != null)
            {
                e.CanDrop = hitTarget2.ElementTree.Control.AllowDrop && hitTarget2.Nodes.Count == 0 && this.IsInValidState(hitTarget2);
            }
            else if (hitTarget1 != null)
            {
                DropPosition dropPosition = this.GetDropPosition(this.DropLocation, hitTarget1);
                e.CanDrop = this.CanDragOver(dropPosition, hitTarget1);
                RadTreeViewDragCancelEventArgs e1 = new RadTreeViewDragCancelEventArgs(this.draggedNode, hitTarget1.Data);
                e1.Cancel       = !e.CanDrop;
                e1.DropPosition = dropPosition;
                this.owner.OnDragOverNode(e1);
                e.CanDrop = !e1.Cancel;
            }
            base.OnPreviewDragOver(e);
        }
Пример #3
0
        protected override bool PrepareContext()
        {
            TreeNodeElement context = this.Context as TreeNodeElement;

            if (context != null)
            {
                RadTreeViewDragCancelEventArgs e = new RadTreeViewDragCancelEventArgs(context.Data, (RadTreeNode)null);
                this.owner.OnDragStarting(e);
                if (e.Cancel)
                {
                    return(false);
                }
            }
            bool flag = base.PrepareContext();

            if (context != null)
            {
                this.owner.OnDragStarted(new RadTreeViewDragEventArgs(context.Data, (RadTreeNode)null));
            }
            return(flag);
        }
Пример #4
0
        protected override void OnPreviewDragOver(RadDragOverEventArgs e)
        {
            base.OnPreviewDragOver(e);

            TreeNodeElement    targetNodeElement = e.HitTarget as TreeNodeElement;
            RadTreeViewElement treeView          = e.HitTarget as RadTreeViewElement;

            if (treeView != null)
            {
                e.CanDrop = treeView.ElementTree.Control.AllowDrop && treeView.Nodes.Count == 0 && this.IsInValidState(treeView);
            }
            else if (targetNodeElement != null)
            {
                DropPosition dropPosition = this.GetDropPosition(this.DropLocation, targetNodeElement);
                e.CanDrop = this.CanDragOver(dropPosition, targetNodeElement);

                RadTreeViewDragCancelEventArgs args = new RadTreeViewDragCancelEventArgs(draggedNode, targetNodeElement.Data);
                args.Cancel       = !e.CanDrop;
                args.DropPosition = dropPosition;

                this.owner.OnDragOverNode(args);
                e.CanDrop = !args.Cancel;
            }
        }
Пример #5
0
        protected override bool PrepareContext()
        {
            TreeNodeElement nodeElement = this.Context as TreeNodeElement;

            if (nodeElement != null)
            {
                RadTreeViewDragCancelEventArgs args = new RadTreeViewDragCancelEventArgs(nodeElement.Data, null);
                this.owner.OnDragStarting(args);

                if (args.Cancel)
                {
                    return(false);
                }
            }

            bool result = base.PrepareContext();

            if (nodeElement != null)
            {
                this.owner.OnDragStarted(new RadTreeViewDragEventArgs(nodeElement.Data, null));
            }

            return(result);
        }