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; } } }
public void OnDrop(DropPlace dropPlace) { droppedOnZone = true; //dropPlaceBelow = dropPlace; //transform.parent = dropPlace.transform; }
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(); }
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); } } }
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); } } }