Пример #1
0
        void GetNodeAndIndex(SharpTreeViewItem item, DropPlace place, out SharpTreeNode node, out int index)
        {
            node  = null;
            index = 0;

            if (place == DropPlace.Inside)
            {
                node  = item.Node;
                index = node.Children.Count;
            }
            else if (place == DropPlace.Before)
            {
                if (item.Node.Parent != null)
                {
                    node  = item.Node.Parent;
                    index = node.Children.IndexOf(item.Node);
                }
            }
            else
            {
                if (item.Node.Parent != null)
                {
                    node  = item.Node.Parent;
                    index = node.Children.IndexOf(item.Node) + 1;
                }
            }
        }
Пример #2
0
    public void OnDrop(DropPlace dropPlace)
    {
        droppedOnZone = true;
        //dropPlaceBelow = dropPlace;

        //transform.parent = dropPlace.transform;
    }
Пример #3
0
        void ShowPreview(SharpTreeViewItem item, DropPlace place)
        {
            previewNodeView = item.NodeView;
            previewPlace    = place;

            if (place == DropPlace.Inside)
            {
                previewNodeView.TextBackground = SystemColors.HighlightBrush;
                previewNodeView.Foreground     = SystemColors.HighlightTextBrush;
            }
            else
            {
                if (insertMarker == null)
                {
                    var adornerLayer = AdornerLayer.GetAdornerLayer(this);
                    var adorner      = new GeneralAdorner(this);
                    insertMarker  = new InsertMarker();
                    adorner.Child = insertMarker;
                    adornerLayer.Add(adorner);
                }

                insertMarker.Visibility = Visibility.Visible;

                var p1 = previewNodeView.TransformToVisual(this).Transform(new Point());
                var p  = new Point(p1.X + previewNodeView.CalculateIndent() + 4.5, p1.Y - 3);

                if (place == DropPlace.After)
                {
                    p.Y += previewNodeView.ActualHeight;
                }

                insertMarker.Margin = new Thickness(p.X, p.Y, 0, 0);

                SharpTreeNodeView secondNodeView = null;
                var index = flattener.IndexOf(item.Node);

                if (place == DropPlace.Before)
                {
                    if (index > 0)
                    {
                        secondNodeView = (ItemContainerGenerator.ContainerFromIndex(index - 1) as SharpTreeViewItem).NodeView;
                    }
                }
                else if (index + 1 < flattener.Count)
                {
                    secondNodeView = (ItemContainerGenerator.ContainerFromIndex(index + 1) as SharpTreeViewItem).NodeView;
                }

                var w = p1.X + previewNodeView.ActualWidth - p.X;

                if (secondNodeView != null)
                {
                    var p2 = secondNodeView.TransformToVisual(this).Transform(new Point());
                    w = Math.Max(w, p2.X + secondNodeView.ActualWidth - p.X);
                }

                insertMarker.Width = w + 10;
            }
        }
        public async Task Add(DropPlace dropPlace)
        {
            var mappedDropPlace = AutoMapper.Mapper.Map <DropPlaceEntity>(dropPlace);
            var dbContext       = _dzuwenaliaDBContextFactory.Create();

            dbContext.DropPlace.Add(mappedDropPlace);
            await dbContext.SaveChanges();
        }
        public async Task Edit(DropPlace dropPlace)
        {
            var dbContext       = _dzuwenaliaDBContextFactory.Create();
            var dropPlaceToEdit = await dbContext.DropPlace.FirstAsync(x => x.Id == dropPlace.Id);

            dropPlaceToEdit.XCoordinate = dropPlace.XCoordinate;
            dropPlaceToEdit.YCoordinate = dropPlace.YCoordinate;
            dropPlaceToEdit.DropType    = dropPlace.DropType;
            dropPlaceToEdit.DropDate    = dropPlace.DropDate;

            await dbContext.SaveChanges();
        }
Пример #6
0
        void TryAddDropTarget(List <DropTarget> targets, SharpTreeViewItem item, DropPlace place, DragEventArgs e)
        {
            SharpTreeNode node;
            int           index;

            GetNodeAndIndex(item, place, out node, out index);

            if (node != null)
            {
                e.Effects = DragDropEffects.None;
                if (node.CanDrop(e, index))
                {
                    DropTarget target = new DropTarget()
                    {
                        Item  = item,
                        Place = place,
                        Node  = node,
                        Index = index
                    };
                    targets.Add(target);
                }
            }
        }
Пример #7
0
        void TryAddDropTarget(List<DropTarget> targets, SharpTreeViewItem item, DropPlace place, DragEventArgs e)
        {
            SharpTreeNode node;
            int index;

            GetNodeAndIndex(item, place, out node, out index);

            if (node != null) {
                e.Effects = DragDropEffects.None;
                if (node.CanDrop(e, index)) {
                    DropTarget target = new DropTarget() {
                        Item = item,
                        Place = place,
                        Node = node,
                        Index = index
                    };
                    targets.Add(target);
                }
            }
        }
Пример #8
0
        void ShowPreview(SharpTreeViewItem item, DropPlace place)
        {
            previewNodeView = item.NodeView;
            previewPlace = place;

            if (place == DropPlace.Inside) {
                previewNodeView.TextBackground = SystemColors.HighlightBrush;
                previewNodeView.Foreground = SystemColors.HighlightTextBrush;
            }
            else {
                if (insertMarker == null) {
                    var adornerLayer = AdornerLayer.GetAdornerLayer(this);
                    var adorner = new GeneralAdorner(this);
                    insertMarker = new InsertMarker();
                    adorner.Child = insertMarker;
                    adornerLayer.Add(adorner);
                }

                insertMarker.Visibility = Visibility.Visible;

                var p1 = previewNodeView.TransformToVisual(this).Transform(new Point());
                var p = new Point(p1.X + previewNodeView.CalculateIndent() + 4.5, p1.Y - 3);

                if (place == DropPlace.After) {
                    p.Y += previewNodeView.ActualHeight;
                }

                insertMarker.Margin = new Thickness(p.X, p.Y, 0, 0);

                SharpTreeNodeView secondNodeView = null;
                var index = flattener.IndexOf(item.Node);

                if (place == DropPlace.Before) {
                    if (index > 0) {
                        secondNodeView = (ItemContainerGenerator.ContainerFromIndex(index - 1) as SharpTreeViewItem).NodeView;
                    }
                }
                else if (index + 1 < flattener.Count) {
                    secondNodeView = (ItemContainerGenerator.ContainerFromIndex(index + 1) as SharpTreeViewItem).NodeView;
                }

                var w = p1.X + previewNodeView.ActualWidth - p.X;

                if (secondNodeView != null) {
                    var p2 = secondNodeView.TransformToVisual(this).Transform(new Point());
                    w = Math.Max(w, p2.X + secondNodeView.ActualWidth - p.X);
                }

                insertMarker.Width = w + 10;
            }
        }
Пример #9
0
        void GetNodeAndIndex(SharpTreeViewItem item, DropPlace place, out SharpTreeNode node, out int index)
        {
            node = null;
            index = 0;

            if (place == DropPlace.Inside) {
                node = item.Node;
                index = node.Children.Count;
            }
            else if (place == DropPlace.Before) {
                if (item.Node.Parent != null) {
                    node = item.Node.Parent;
                    index = node.Children.IndexOf(item.Node);
                }
            }
            else {
                if (item.Node.Parent != null) {
                    node = item.Node.Parent;
                    index = node.Children.IndexOf(item.Node) + 1;
                }
            }
        }