示例#1
0
        public void AddItemShouldThrowExceptionWhenCollectionIsNull()
        {
            // When
            TestDelegate test = () => ObjectHelper.AddItem(null, new object());

            // Then
            Assert.Throws <ArgumentNullException>(test);
        }
        private void OnPasteItemHandler(dynamic context, dynamic arguments)
        {
            if (_clipboardNode != null)
            {
                var newParentNode = GetSelectedNode(false);

                if (newParentNode != null && newParentNode != _clipboardNode)
                {
                    if (IsParentNode(_clipboardNode, newParentNode) == false)
                    {
                        var newParentItems = GetChildMenuItems(newParentNode);
                        var oldParentItems = GetChildMenuItems(_clipboardNode.Parent);
                        var clipboardItem  = _clipboardNode.Tag;

                        if (_copyMode == false)
                        {
                            // Перемещение элемента
                            ObjectHelper.RemoveItem(oldParentItems, clipboardItem);
                            ObjectHelper.AddItem(newParentItems, clipboardItem);

                            // Перемещение элемента в дереве
                            _clipboardNode.Parent = newParentNode;

                            _treeView.RefreshItems();
                        }
                        else
                        {
                            // Копирование элемента
                            var copyItem = clipboardItem.Clone();
                            ObjectHelper.AddItem(newParentItems, copyItem);

                            // Копирование элемента в дереве
                            var copyNode   = CreateMenuItemNode(copyItem, newParentNode);
                            var childNodes = new List <object> {
                                copyNode
                            };
                            FillChildMenuItems(copyItem, copyNode, childNodes);
                            childNodes.ForEach(node => _treeView.AddItem(node));
                        }

                        _clipboardNode = null;

                        InvokeUpdateItems();
                    }
                    else
                    {
                        MessageBox.Show(Resources.MenuDesignerCannotMoveParentToChild, GetView().GetText(),
                                        MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                }
            }
        }
        private void OnAcceptedAddView(IDataSource childDataSource, object selectedNode)
        {
            var newItem = childDataSource.GetSelectedItem();

            if (newItem != null)
            {
                // Добавление элемента в коллекцию
                var items = GetChildMenuItems(selectedNode);
                ObjectHelper.AddItem(items, newItem);

                // Добавление элемента в дерево
                var newItemNode = CreateMenuItemNode(newItem, selectedNode);
                _treeView.AddItem(newItemNode);
                _treeView.SetSelectedItem(newItemNode);

                InvokeUpdateItems();
            }
        }
        private void InsertNode(dynamic propertyNode)
        {
            // Выделенный узел
            var newParentNode = GetSelectedNode(false);

            // Добавление в родительский узел
            ObjectHelper.AddItem(newParentNode.Nodes, propertyNode);
            propertyNode.Parent = newParentNode;

            // Добавление в коллекцию дерева
            var childNodes = new List <object>();

            FillChildNodes(propertyNode, childNodes);
            childNodes.ForEach(node => _treeView.AddItem(node));

            // Выделение родительского узла
            _treeView.SetSelectedItem(newParentNode);
            _treeView.ExpandItem(newParentNode);

            InvokeValueChanged();
        }