public void Should_Limit_Dropzone_To_MaxItems()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
            });
            service.RegisterDropzone(2, new DropzoneOptions()
            {
                MaxItems = 1
            });

            var draggable1 = new DraggableItem(service)
            {
                Id = 1, DropzoneId = 1
            };
            var draggable2 = new DraggableItem(service)
            {
                Id = 2, DropzoneId = 1
            };

            service.RegisterDraggableForDropzone(draggable1);
            service.RegisterDraggableForDropzone(draggable2);

            service.ActiveItem = draggable1;
            service.DropActiveItem(2);

            service.ActiveItem = draggable2;
            service.DropActiveItem(2);

            var result = service.GetDraggablesForDropzone(2).Single();

            Assert.AreEqual(draggable1.Id, result.Id);
        }
        public void Should_DropActiveItem()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
            });
            service.RegisterDropzone(2, new DropzoneOptions()
            {
            });

            var draggable = new DraggableItem(service)
            {
                Id = 1, DropzoneId = 1
            };

            service.RegisterDraggableForDropzone(draggable);

            service.ActiveItem = draggable;

            service.DropActiveItem(2);

            var result = service.GetDraggablesForDropzone(2).Single();

            Assert.AreEqual(draggable.Id, result.Id);
        }
        public void Should_GetDropzoneByName()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
                Name = "Dropzone1"
            });

            service.RegisterDropzone(2, new DropzoneOptions()
            {
                Name = "Dropzone2"
            });

            var draggable1 = new DraggableItem(service)
            {
                Id = 1, DropzoneId = 1
            };

            service.RegisterDraggableForDropzone(draggable1);

            service.ActiveItem = draggable1;
            service.DropActiveItem(2);

            var result = service.GetDraggablesForDropzone("Dropzone2");

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(result[0].Id, 1);
        }
        public void Should_ReturnFalse_HasDropzoneDraggables()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
                Name = "Dropzone1"
            });

            service.RegisterDropzone(2, new DropzoneOptions()
            {
                Name = "Dropzone2"
            });

            var draggable1 = new DraggableItem(service)
            {
                Id = 1, DropzoneId = 1
            };

            service.RegisterDraggableForDropzone(draggable1);

            service.ActiveItem = draggable1;
            service.DropActiveItem(2);

            var result = service.HasDropzoneDraggables("Dropzone1");

            Assert.AreEqual(false, result);
        }
Exemple #5
0
        public void Should_RemoveDraggableItem()
        {
            var service = new DragDropService(null);

            dynamic isDelegateCalled = new { };

            service.RegisterDropzone(1, new DropzoneOptions()
            {
            });

            var draggable = new DraggableItem(service)
            {
                Id         = 1,
                DropzoneId = 1,
                Tag        = new { Test = "OnDropTagTest" },
                OnDrop     = (d, i) => isDelegateCalled = d
            };

            service.RegisterDraggableForDropzone(draggable);

            Assert.IsTrue(service.HasDropzoneDraggables(1));

            service.RemoveDraggableItem(draggable);

            Assert.IsFalse(service.HasDropzoneDraggables(1));
        }
        public void Should_Execute_AcceptFuncOfDropzone_AcceptTest()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
            });

            service.RegisterDropzone(2, new DropzoneOptions()
            {
                Accepts = (d) => d.Name == "Testme"
            });

            var draggable1 = new DraggableItem(service)
            {
                Id = 1, DropzoneId = 1, Tag = new { Name = "Testme" }
            };

            service.RegisterDraggableForDropzone(draggable1);

            service.ActiveItem = draggable1;
            service.DropActiveItem(2);

            var result = service.GetDraggablesForDropzone(2);

            Assert.AreEqual(1, result.Count);
        }
Exemple #7
0
        public void Should_ClearActiveItemUponDropInSameDropzone()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
            });

            service.RegisterDropzone(2, new DropzoneOptions()
            {
            });

            var draggable1 = new DraggableItem(service)
            {
                Id         = 1,
                DropzoneId = 2,
            };

            var draggable2 = new DraggableItem(service)
            {
                Id         = 2,
                DropzoneId = 2,
            };

            service.ActiveItem = draggable1;

            service.DropActiveItem(2);

            Assert.IsTrue(service.ActiveItem == null);
        }
Exemple #8
0
        public void Should_DropActiveItemAndCallOnDrop_SameDropzones()
        {
            var service = new DragDropService(null);

            dynamic isDelegateCalled = new { };

            service.RegisterDropzone(1, new DropzoneOptions()
            {
            });

            var draggable = new DraggableItem(service)
            {
                Id         = 1,
                DropzoneId = 1,
                Tag        = new { Test = "OnDropTagTest" },
                OnDrop     = (d, i) => isDelegateCalled = d
            };

            service.RegisterDraggableForDropzone(draggable);

            service.ActiveItem = draggable;

            service.DropActiveItem(1);

            Assert.AreEqual("OnDropTagTest", isDelegateCalled.Test);
        }
Exemple #9
0
        public void Should_AllowSwappingInSameDropzone_And_MaxItems()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
                MaxItems = 2
            });

            var draggable1 = new DraggableItem(service)
            {
                Id = 1, DropzoneId = 1
            };
            var draggable2 = new DraggableItem(service)
            {
                Id = 2, DropzoneId = 1
            };


            service.RegisterDraggableForDropzone(draggable1);
            service.RegisterDraggableForDropzone(draggable2);

            Assert.AreEqual(0, draggable1.OrderPosition);
            Assert.AreEqual(1, draggable2.OrderPosition);


            service.ActiveItem = draggable1;
            service.SwapOrInsert(2);

            Assert.AreEqual(0, draggable2.OrderPosition);
            Assert.AreEqual(1, draggable1.OrderPosition);
        }
            /*
             * DoDrop
             */

            /// <summary>
            /// Invokes service specific nodes merge operation.
            /// </summary>
            /// <exception cref="T:System.ArgumentNullException"><paramref name="selectedNodes"/> is <see langword="null"/>.</exception>
            public override void DoDrop(TreeNode targetTreeNode, IList <TreeNode> selectedNodes, NuGenDropPosition dropPosition)
            {
                if (selectedNodes == null)
                {
                    throw new ArgumentNullException("selectedNodes");
                }

                if (
                    targetTreeNode == null ||
                    DragDropService.CheckSelectedContainTarget(targetTreeNode, selectedNodes) ||
                    !DragDropService.CheckParent(targetTreeNode, selectedNodes)
                    )
                {
                    return;
                }

                switch (dropPosition)
                {
                case NuGenDropPosition.After:
                case NuGenDropPosition.Before:
                {
                    DragDropService.MoveNodes(targetTreeNode, selectedNodes, dropPosition);
                    break;
                }

                case NuGenDropPosition.Inside:
                {
                    DragDropService.InsertNodes(targetTreeNode, selectedNodes);
                    break;
                }
                }
            }
        public void Should_DropActiveItemAndCallOnDrop()
        {
            var service = new DragDropService(null);

            dynamic isDelegateCalled = new { };

            service.RegisterDropzone(1, new DropzoneOptions()
            {
            });
            service.RegisterDropzone(2, new DropzoneOptions()
            {
            });

            var draggable = new DraggableItem(service)
            {
                Id         = 1,
                DropzoneId = 1,
                Tag        = new { Test = "OnDropTagTest" },
                OnDrop     = (d) => isDelegateCalled = d
            };

            service.RegisterDraggableForDropzone(draggable);

            service.ActiveItem = draggable;

            service.DropActiveItem(2);

            var result = service.GetDraggablesForDropzone(2).Single();

            Assert.AreEqual(draggable.Id, result.Id);

            Assert.AreEqual("OnDropTagTest", isDelegateCalled.Test);
        }
        public void Should_ReturnFalse_HasDropzoneDraggables_GivenInvalidName()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
                Name = "Dropzone1"
            });

            service.RegisterDropzone(2, new DropzoneOptions()
            {
                Name = "Dropzone2"
            });

            var draggable1 = new DraggableItem(service)
            {
                Id = 1, DropzoneId = 1
            };

            service.RegisterDraggableForDropzone(draggable1);

            service.ActiveItem = draggable1;
            service.DropActiveItem(2);

            Assert.ThrowsException <ArgumentException>(() => service.HasDropzoneDraggables("Dropzone3"));
        }
Exemple #13
0
        private void WireServiceEvents()
        {
            DragDropService service = this.radDock1.GetService <DragDropService>();

            service.Starting            += new StateServiceStartingEventHandler(OnDragDropService_Starting);
            service.PreviewDropTarget   += new DragDropTargetEventHandler(OnDragDropService_PreviewDropTarget);
            service.PreviewDockPosition += new DragDropDockPositionEventHandler(OnDragDropService_PreviewDockPosition);
        }
        public DockingGuidePopup(DragDropService owner, DockingGuidesPosition position)
        {
            this.owner           = owner;
            this.position        = position;
            this.lastHitPosition = null;

            this.TopMost     = true;
            this.HitTestable = false;

            UpdateFromPosition();
        }
            /*
             * InsertNodes
             */

            /// <summary>
            /// Inserts selected nodes into the specified <paramref name="targetNode"/>.
            /// </summary>
            /// <param name="targetNode"></param>
            /// <param name="selected"></param>
            /// <exception cref="ArgumentNullException">
            /// <paramref name="selected"/> is <see langword="null"/>.
            /// </exception>
            private static void InsertNodes(TreeNode targetNode, IList <TreeNode> selected)
            {
                DragDropService.RemoveNodesFromParents(selected);

                foreach (TreeNode treeNode in selected)
                {
                    targetNode.Nodes.Add(treeNode);
                }

                targetNode.Expand();
            }
        public void Should_GetDraggablesForDropzone_NoDraggables()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
            });

            var result = service.GetDraggablesForDropzone(1);

            Assert.AreEqual(0, result.Count);
        }
        public void Should_CheckAllowDrag_False()
        {
            var service = new DragDropService(null);

            var draggable1 = new DraggableItem(service)
            {
                Id         = 1,
                DropzoneId = 1,
                Tag        = new { Test = false },
                AllowDrag  = (d) => d.Tag.Test
            };

            var isDragable = service.IsDraggable(draggable1);

            Assert.AreEqual(false, isDragable);
        }
Exemple #18
0
        public SelectView1()
        {
            InitializeComponent();

            DragDropService service = radDock1.GetService <DragDropService>();

            service.Enabled = false;

            ContextMenuService menuService = radDock1.GetService <ContextMenuService>();

            menuService.ContextMenuDisplaying += MenuServiceContextMenuDisplaying;

            documentTabStrip1.TabStripElement.ItemDragMode = PageViewItemDragMode.None;
            documentTabStrip1.OverflowMenuButton.ActionButton.ToolTipText = "Portfólios";

            LoadData();
        }
        public void Should_GetDraggablesForDropzone_OneDraggable()
        {
            var service = new DragDropService(null);

            service.RegisterDropzone(1, new DropzoneOptions()
            {
            });

            service.RegisterDraggableForDropzone(new DraggableItem(service)
            {
                DropzoneId = 1
            });

            var result = service.GetDraggablesForDropzone(1);

            Assert.AreEqual(1, result.Count);
        }
            /*
             * MoveNodes
             */

            /// <summary>
            /// Moves selected nodes to the new location specified by the <paramref name="targetNode"/> index.
            /// </summary>
            /// <param name="targetNode"></param>
            /// <param name="selected"></param>
            /// <param name="dropPosition"></param>
            /// <exception cref="T:System.ArgumentNullException">
            /// <paramref name="targetNode"/> is <see langword="null"/>
            /// -or-
            /// <paramref name="selected"/> is <see langword="null"/>
            /// </exception>
            private static void MoveNodes(TreeNode targetNode, IList <TreeNode> selected, NuGenDropPosition dropPosition)
            {
                if (targetNode == null)
                {
                    throw new ArgumentNullException("targetNode");
                }

                if (selected == null)
                {
                    throw new ArgumentNullException("selected");
                }

                int targetIndex = 0;

                if (dropPosition == NuGenDropPosition.After)
                {
                    targetIndex = targetNode.Index + 1;
                    DragDropService.RemoveNodesFromParents(selected);
                }
                else if (dropPosition == NuGenDropPosition.Before)
                {
                    DragDropService.RemoveNodesFromParents(selected);
                    targetIndex = targetNode.Index;
                }
                else
                {
                    return;
                }

                foreach (TreeNode treeNode in selected)
                {
                    if (targetNode.Parent != null)
                    {
                        targetNode.Parent.Nodes.Insert(targetIndex, treeNode);
                    }
                    else if (targetNode.TreeView != null)
                    {
                        targetNode.TreeView.Nodes.Insert(targetIndex, treeNode);
                    }
                    else
                    {
                        return;
                    }
                }
            }
Exemple #21
0
        public void Should_RemoveAllItemFromDropzone()
        {
            var service = new DragDropService(null);

            DraggableItem isDelegateCalled = null;

            service.RegisterDropzone(1, new DropzoneOptions()
            {
                Name = "Testzone"
            });

            var draggable = new DraggableItem(service)
            {
                Id         = 1,
                DropzoneId = 1,
                Tag        = new { Test = "OnDropTagTest" },
                OnDrop     = (d) => isDelegateCalled = d
            };

            var draggable1 = new DraggableItem(service)
            {
                Id         = 1,
                DropzoneId = 1,
                Tag        = new { Test = "OnDropTagTest" },
                OnDrop     = (d) => isDelegateCalled = d
            };

            var draggable2 = new DraggableItem(service)
            {
                Id         = 1,
                DropzoneId = 1,
                Tag        = new { Test = "OnDropTagTest" },
                OnDrop     = (d) => isDelegateCalled = d
            };

            service.RegisterDraggableForDropzone(draggable);
            service.RegisterDraggableForDropzone(draggable1);
            service.RegisterDraggableForDropzone(draggable2);

            Assert.IsTrue(service.HasDropzoneDraggables(1));

            service.ClearDropzone("Testzone");

            Assert.IsFalse(service.HasDropzoneDraggables(1));
        }
Exemple #22
0
        public Form1()
        {
            InitializeComponent();

            this.stopTimer          = new Timer(this.components);
            this.stopTimer.Interval = 500;
            this.stopTimer.Tick    += new EventHandler(stopTimer_Tick);

            this.timer1.Interval          = 100;
            this.service                  = this.radDock1.GetService <DragDropService>();
            this.service.DragDropBehavior = DragDropBehavior.Manual;
            this.service.PreviewHitTest  += new DragDropHitTestEventHandler(service_PreviewHitTest);
            this.service.Stopped         += new EventHandler(service_Stopped);

            this.toolWindow1.AllowedDockState &= ~AllowedDockState.Hidden;
            this.toolWindow2.AllowedDockState &= ~AllowedDockState.Hidden;
            this.toolWindow3.AllowedDockState &= ~AllowedDockState.Hidden;
        }
Exemple #23
0
 /// <summary>
 ///     Allowed Dock Manager Edges
 ///     The service may be told which edges of the owning RadDock instance are allowed for dock operation.
 ///     The following example demonstrates how to set only left and right edges as allowed:
 /// </summary>
 private void InitDragDropProperties()
 {
     DragDropService service = raddock.GetService <DragDropService>();
     //service.AllowedDockManagerEdges = AllowedDockPosition.Left | AllowedDockPosition.Right;
 }
Exemple #24
0
            /// <summary>
            /// Dock DragDropService Svents
            /// </summary>
            private void InitDragDropEvents()
            {
                DragDropService service = raddock.GetService <DragDropService>();

                service.PreviewDockPosition += new DragDropDockPositionEventHandler(service_PreviewDockPosition);
            }