protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs args) { base.OnCollectionChanged(args); if (this.owner != null) { RadTreeViewElement treeViewElement = this.owner.TreeViewElement; if (treeViewElement != null) { if (args.Action == NotifyCollectionChangedAction.Add) { RadTreeNode node = (RadTreeNode)args.NewItems[0]; treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemAdded, node); treeViewElement.OnNodeAdded(new RadTreeViewEventArgs(node)); } else if (args.Action == NotifyCollectionChangedAction.Remove) { RadTreeNode node = (RadTreeNode)args.NewItems[0]; treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemRemoved, node); treeViewElement.OnNodeRemoved(new RadTreeViewEventArgs(node)); } else if (args.Action == NotifyCollectionChangedAction.Move) { RadTreeNode node = (RadTreeNode)args.NewItems[0]; treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemMoved, node); } else if (args.Action == NotifyCollectionChangedAction.Reset) { treeViewElement.Update(RadTreeViewElement.UpdateActions.Reset); } } } }
protected virtual void OnFormatting() { RadTreeViewElement treeViewElement = this.TreeViewElement; if (treeViewElement != null && treeViewElement.AllowAlternatingRowColor) { bool flag = !treeViewElement.FullRowSelect || !this.Data.Current && !this.Data.Selected && !this.HotTracking; int num = treeViewElement.FirstVisibleIndex + this.Parent.Children.IndexOf((RadElement)this); if (flag && num % 2 != 0) { this.DrawFill = true; this.GradientStyle = GradientStyles.Solid; this.BackColor = treeViewElement.AlternatingRowColor; this.StretchHorizontally = true; this.states[1L] = true; this.TreeViewElement.OnNodeFormatting(new TreeNodeFormattingEventArgs(this)); return; } } if (this.states[1L]) { int num1 = (int)this.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local); int num2 = (int)this.ResetValue(LightVisualElement.GradientStyleProperty, ValueResetFlags.Local); int num3 = (int)this.ResetValue(VisualElement.BackColorProperty, ValueResetFlags.Local); int num4 = (int)this.ResetValue(RadElement.StretchHorizontallyProperty, ValueResetFlags.Local); } this.TreeViewElement.OnNodeFormatting(new TreeNodeFormattingEventArgs(this)); }
public TreeViewDragDropService(RadTreeViewElement owner) { this.owner = owner; this.dropHintColor = Color.Empty; this.showDragHint = true; this.showDropHint = true; }
public BindingProvider(RadTreeViewElement treeView) : base(treeView) { this.TreeView.RelationBindings.CollectionChanged += new NotifyCollectionChangedEventHandler(RelationBindings_CollectionChanged); this.TreeView.ListSource.CollectionChanged += new NotifyCollectionChangedEventHandler(ListSource_CollectionChanged); this.TreeView.ListSource.PositionChanged += new EventHandler(ListSource_PositionChanged); }
protected virtual void PrepareDragHint(TreeNodeElement nodeElement) { RadTreeViewElement treeViewElement = nodeElement.TreeViewElement; Bitmap bitmap = (Bitmap)null; Size size = Size.Empty; if (this.dropHintColor != Color.Empty) { size = new Size(this.GetDropHintWidth(treeViewElement), 1); bitmap = new Bitmap(size.Width, size.Height); using (Graphics graphics = Graphics.FromImage((Image)bitmap)) { using (SolidBrush solidBrush = new SolidBrush(this.DropHintColor)) graphics.FillRectangle((Brush)solidBrush, new Rectangle(Point.Empty, size)); } } else if (treeViewElement.ItemDropHint != null) { size = new Size(this.GetDropHintWidth(treeViewElement), treeViewElement.ItemDropHint.Image.Size.Height); bitmap = new Bitmap(size.Width, size.Height); using (Graphics g = Graphics.FromImage((Image)bitmap)) treeViewElement.ItemDropHint.Paint(g, new RectangleF(PointF.Empty, (SizeF)size)); } if (bitmap == null) { return; } this.dropHintWindow = new RadLayeredWindow(); this.dropHintWindow.BackgroundImage = (Image)bitmap; }
protected virtual void OnFormatting() { RadTreeViewElement treeViewElement = TreeViewElement; if (treeViewElement != null && treeViewElement.AllowAlternatingRowColor) { bool alternatingAllowed = !treeViewElement.FullRowSelect || (!Data.Current && !Data.Selected && !HotTracking); int index = treeViewElement.FirstVisibleIndex + this.Parent.Children.IndexOf(this); if (alternatingAllowed && index % 2 != 0) { DrawFill = true; GradientStyle = GradientStyles.Solid; BackColor = treeViewElement.AlternatingRowColor; StretchHorizontally = true; this.states[TreeNodeElement.AlrternatingColorSetState] = true; TreeViewElement.OnNodeFormatting(new TreeNodeFormattingEventArgs(this)); return; } } if (this.states[TreeNodeElement.AlrternatingColorSetState]) { ResetValue(DrawFillProperty, ValueResetFlags.Local); ResetValue(GradientStyleProperty, ValueResetFlags.Local); ResetValue(BackColorProperty, ValueResetFlags.Local); ResetValue(StretchHorizontallyProperty, ValueResetFlags.Local); } TreeViewElement.OnNodeFormatting(new TreeNodeFormattingEventArgs(this)); }
public override void Synchronize() { RadTreeViewElement treeViewElement = this.TreeViewElement; this.DragElement.Visibility = treeViewElement.AllowDragDrop ? ElementVisibility.Visible : ElementVisibility.Collapsed; this.CloseButton.Visibility = treeViewElement.AllowRemove ? ElementVisibility.Visible : ElementVisibility.Collapsed; base.Synchronize(); }
private void dragDropService_PreviewDragDrop(object sender, RadDropEventArgs e) { GridDataRowElement rowElement = e.DragInstance as GridDataRowElement; if (rowElement == null) { return; } string sourceText = rowElement.RowInfo.Cells[0].Value.ToString(); TreeNodeElement targetNodeElement = e.HitTarget as TreeNodeElement; if (targetNodeElement != null) { RadTreeViewElement treeViewElement = targetNodeElement.TreeViewElement; RadTreeNode targetNode = targetNodeElement.Data; DropPosition dropPosition = this.GetDropPosition(e.DropLocation, targetNodeElement); switch (dropPosition) { case DropPosition.None: break; case DropPosition.BeforeNode: radGridView1.Rows.Remove(rowElement.RowInfo); RadTreeNodeCollection nodes = targetNode.Parent == null ? treeViewElement.Nodes : targetNode.Parent.Nodes; nodes.Insert(targetNode.Index, new RadTreeNode(sourceText)); break; case DropPosition.AfterNode: radGridView1.Rows.Remove(rowElement.RowInfo); RadTreeNodeCollection nodes1 = targetNode.Parent == null ? treeViewElement.Nodes : targetNode.Parent.Nodes; int targetIndex = targetNodeElement.Data.Index <= treeViewElement.Nodes.Count - 1 ? (targetNodeElement.Data.Index + 1) : treeViewElement.Nodes.Count - 1; nodes1.Insert(targetIndex, new RadTreeNode(sourceText)); break; case DropPosition.AsChildNode: radGridView1.Rows.Remove(rowElement.RowInfo); targetNode.Nodes.Add(new RadTreeNode(sourceText)); break; } } RadTreeViewElement treeElement = e.HitTarget as RadTreeViewElement; if (treeElement != null) { radGridView1.Rows.Remove(rowElement.RowInfo); radTreeView1.Nodes.Add(new RadTreeNode(sourceText)); } }
private int GetDropHintWidth(RadTreeViewElement treeView) { int num = treeView.ControlBoundingRectangle.Width - LightVisualElement.GetBorderThickness((LightVisualElement)treeView, true).Horizontal; if (treeView.VScrollBar.Visibility == ElementVisibility.Visible) { num -= treeView.VScrollBar.Size.Width; } return(num); }
public virtual void Synchronize() { TreeNodeElement nodeElement = NodeElement; if (nodeElement != null) { this.Expanded = nodeElement.Data.Expanded; RadTreeViewElement treeViewElement = nodeElement.TreeViewElement; if (treeViewElement.FullLazyMode) { this.Visibility = ElementVisibility.Visible; } else { if (!treeViewElement.ShowExpandCollapse || nodeElement.Data.Nodes.Count == 0 || (nodeElement.Data.Parent == null && !treeViewElement.ShowRootLines)) { this.Visibility = ElementVisibility.Collapsed; } else { this.Visibility = ElementVisibility.Visible; } } this.LinkLineColor = treeViewElement.LineColor; this.LinkOrientation = ExpanderItem.LinkLineOrientation.None; this.LinkLineStyle = (DashStyle)treeViewElement.LineStyle; if (treeViewElement.ShowLines) { if (nodeElement.Data.PrevNode != null || nodeElement.Data.Parent != null) { this.LinkOrientation |= ExpanderItem.LinkLineOrientation.Top | LinkLineOrientation.Horizontal; } if (nodeElement.Data.NextNode != null) { this.LinkOrientation |= LinkLineOrientation.Bottom | LinkLineOrientation.Horizontal; } } if (this.TreeViewElement.AllowPlusMinusAnimation) { this.Opacity = this.TreeViewElement.ContainsMouse ? 1 : 0; } else { this.Opacity = 1; } UpdateSignImage(); } }
private int GetDropHintWidth(RadTreeViewElement treeView) { int width = treeView.ControlBoundingRectangle.Width - treeView.GetBorderThickness(true).Horizontal; if (treeView.VScrollBar.Visibility == ElementVisibility.Visible) { width -= treeView.VScrollBar.Size.Width; } return(width); }
protected override void ClearItems() { RadTreeViewElement treeViewElement = this.owner.TreeViewElement; if (treeViewElement != null) { if (!treeViewElement.PreProcess(this.owner, (RadTreeNode) null, (object) "Clear")) return; } foreach (RadTreeNode radTreeNode in (IEnumerable<RadTreeNode>) this.Items) radTreeNode.Parent = (RadTreeNode) null; base.ClearItems(); }
protected virtual bool CanDragOver(DropPosition dropPosition, TreeNodeElement targetNodeElement) { RadTreeViewElement targetTreeView = targetNodeElement.TreeViewElement; if (!targetNodeElement.Enabled || !targetTreeView.ElementTree.Control.AllowDrop || !this.IsInValidState(targetTreeView)) { return(false); } RadTreeNode targetNode = targetNodeElement.Data; List <RadTreeNode> nodes = new List <RadTreeNode>(draggedNode.TreeViewElement.SelectedNodes); // If the count is empty, we are in single selection mode if (nodes.Count == 0) { nodes.Add(draggedNode); } foreach (RadTreeNode selected in nodes) { if (selected == targetNode) { return(false); } RadTreeNode parent = targetNode.Parent; while (parent != null) { if (parent == selected) { return(false); } parent = parent.Parent; } if (dropPosition == DropPosition.AsChildNode && selected.Parent == targetNode) { return(false); } } if (dropPosition == DropPosition.AsChildNode) { targetTreeView.AutoExpand(targetNode); } targetTreeView.AutoScroll(targetNodeElement); return(true); }
private void DeleteNode() { if (this.treeView.IsEditing || !this.treeView.AllowRemove) { return; } RadTreeNode selectedNode = this.treeView.SelectedNode; if (selectedNode == null) { return; } RadTreeViewElement.RemoveAllNodes(this.treeView, selectedNode); }
public virtual void Synchronize() { TreeNodeElement nodeElement = this.NodeElement; if (nodeElement == null) { return; } this.Expanded = nodeElement.Data.Expanded; RadTreeViewElement treeViewElement = nodeElement.TreeViewElement; if (treeViewElement.FullLazyMode) { TreeViewShowExpanderEventArgs e = new TreeViewShowExpanderEventArgs(nodeElement.Data, true); this.TreeViewElement.OnShowExpander(e); this.Visibility = e.ShowExpander ? ElementVisibility.Visible : ElementVisibility.Collapsed; } else if (!treeViewElement.ShowExpandCollapse || !nodeElement.Data.HasNodes || nodeElement.Data.Parent == null && !treeViewElement.ShowRootLines) { this.Visibility = ElementVisibility.Collapsed; } else { this.Visibility = ElementVisibility.Visible; } this.LinkLineColor = treeViewElement.LineColor; this.LinkOrientation = ExpanderItem.LinkLineOrientation.None; this.LinkLineStyle = (DashStyle)treeViewElement.LineStyle; if (treeViewElement.ShowLines) { if (nodeElement.Data.PrevNode != null || nodeElement.Data.Parent != null) { this.LinkOrientation |= ExpanderItem.LinkLineOrientation.Top | ExpanderItem.LinkLineOrientation.Horizontal; } if (nodeElement.Data.NextNode != null) { this.LinkOrientation |= ExpanderItem.LinkLineOrientation.Bottom | ExpanderItem.LinkLineOrientation.Horizontal; } } if (this.TreeViewElement.AllowPlusMinusAnimation) { this.Opacity = this.TreeViewElement.ContainsMouse ? 1.0 : 0.0; } else { this.Opacity = 1.0; } this.UpdateSignImage(); }
protected override SizeF MeasureOverride(SizeF availableSize) { RadTreeViewElement treeViewElement = this.TreeViewElement; SizeF desiredSize = base.MeasureOverride(availableSize); int oldHeight = this.Data.ActualSize.Height; int newHeight = this.ItemHeight; if (treeViewElement != null && ((this.Editor != null && newHeight < desiredSize.Height) || treeViewElement.AutoSizeItems)) { newHeight = (int)desiredSize.Height; this.states[TreeNodeElement.UpdateScrollRangeIfNeeded] = true; } else { desiredSize.Height = newHeight; } if (treeViewElement != null && oldHeight != newHeight && (this.states[TreeNodeElement.UpdateScrollRangeIfNeeded] || treeViewElement.AllowArbitraryItemHeight || treeViewElement.AutoSizeItems)) { ItemScroller <RadTreeNode> scroller = treeViewElement.Scroller; this.Data.ActualSize = new Size(this.Data.ActualSize.Width, newHeight); scroller.UpdateScrollRange(scroller.Scrollbar.Maximum + (newHeight - oldHeight), false); } if (this.Editor == null) { this.states[TreeNodeElement.UpdateScrollRangeIfNeeded] = false; } if (!float.IsInfinity(availableSize.Width)) { Size size = desiredSize.ToSize(); this.Data.ActualSize = new Size(this.Data.ActualSize.Width, size.Height); desiredSize.Width = availableSize.Width; } else if (!ContentElement.TextWrap && this.Editor == null) { this.Data.ActualSize = desiredSize.ToSize(); } return(desiredSize); }
protected virtual bool CanDragOver(DropPosition dropPosition, TreeNodeElement targetNodeElement) { RadTreeViewElement treeViewElement = targetNodeElement.TreeViewElement; if (!targetNodeElement.Enabled || !treeViewElement.ElementTree.Control.AllowDrop || !this.IsInValidState(treeViewElement) || !targetNodeElement.Data.AllowDrop && dropPosition == DropPosition.AsChildNode) { return(false); } RadTreeNode data = targetNodeElement.Data; List <RadTreeNode> radTreeNodeList = new List <RadTreeNode>((IEnumerable <RadTreeNode>) this.draggedNode.TreeViewElement.SelectedNodes); if (radTreeNodeList.Count == 0) { radTreeNodeList.Add(this.draggedNode); } foreach (RadTreeNode radTreeNode in radTreeNodeList) { if (radTreeNode == data) { return(false); } for (RadTreeNode parent = data.Parent; parent != null; parent = parent.Parent) { if (parent == radTreeNode) { return(false); } } if (dropPosition == DropPosition.AsChildNode && radTreeNode.Parent == data) { return(false); } } if (dropPosition == DropPosition.AsChildNode && !data.Expanded && data.HasNodes) { treeViewElement.AutoExpand(data); this.HintWindow.Hide(); this.HintWindow.Show(); } if (treeViewElement.AutoScrollOnDragging(targetNodeElement)) { this.HintWindow.Hide(); this.HintWindow.Show(); } return(true); }
protected virtual void UpdateSignImage() { RadTreeViewElement treeViewElement = this.TreeViewElement; if (treeViewElement == null) { return; } bool flag = (bool)this.GetValue(TreeNodeElement.HotTrackingProperty); if (this.Expanded && (flag && this.SetSignImage((RadElement)treeViewElement, RadTreeViewElement.HoveredExpandImageProperty) || this.SetSignImage((RadElement)treeViewElement, RadTreeViewElement.ExpandImageProperty)) || (flag && this.SetSignImage((RadElement)treeViewElement, RadTreeViewElement.HoveredCollapseImageProperty) || (this.SetSignImage((RadElement)treeViewElement, RadTreeViewElement.CollapseImageProperty) || !this.signImageSet))) { return; } this.signImageSet = false; int num1 = (int)this.ResetValue(ExpanderItem.SignImageProperty, ValueResetFlags.Local); int num2 = (int)this.ResetValue(ExpanderItem.DrawSignBorderProperty, ValueResetFlags.Local); int num3 = (int)this.ResetValue(ExpanderItem.DrawSignFillProperty, ValueResetFlags.Local); }
protected virtual void UpdateSignImage() { RadTreeViewElement treeViewElement = TreeViewElement; if (treeViewElement == null) { return; } bool hotTracking = (bool)GetValue(TreeNodeElement.HotTrackingProperty); if (Expanded) { if (hotTracking && SetSignImage(treeViewElement, RadTreeViewElement.HoveredExpandImageProperty)) { return; } if (SetSignImage(treeViewElement, RadTreeViewElement.ExpandImageProperty)) { return; } } if (hotTracking && SetSignImage(treeViewElement, RadTreeViewElement.HoveredCollapseImageProperty)) { return; } if (SetSignImage(treeViewElement, RadTreeViewElement.CollapseImageProperty)) { return; } if (signImageSet) { signImageSet = false; ResetValue(SignImageProperty, ValueResetFlags.Local); ResetValue(DrawSignBorderProperty, ValueResetFlags.Local); ResetValue(DrawSignFillProperty, ValueResetFlags.Local); } }
protected override void OnKeyDown(KeyEventArgs e) { TreeNodeElement ownerElement = this.OwnerElement as TreeNodeElement; if (ownerElement == null || ownerElement.TreeViewElement == null) { return; } switch (e.KeyCode) { case Keys.Return: ownerElement.TreeViewElement.EndEdit(); break; case Keys.Escape: ownerElement.TreeViewElement.CancelEdit(); break; case Keys.Up: if (this.Multiline && (this.selectionLength != 0 || !this.isAtFirstLine)) { break; } RadTreeViewElement treeViewElement1 = ownerElement.TreeViewElement; ownerElement.TreeViewElement.EndEdit(); treeViewElement1.Update(RadTreeViewElement.UpdateActions.Reset); treeViewElement1.ProcessKeyDown(e); break; case Keys.Down: if (this.Multiline && (this.selectionLength != 0 || !this.isAtLastLine)) { break; } RadTreeViewElement treeViewElement2 = ownerElement.TreeViewElement; ownerElement.TreeViewElement.EndEdit(); treeViewElement2.Update(RadTreeViewElement.UpdateActions.Reset); treeViewElement2.ProcessKeyDown(e); break; } }
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); }
public TreeViewDefaultContextMenu(RadTreeViewElement treeView) { this.treeView = treeView; this.editMenuItem = new TreeViewMenuItem("Edit", "&Edit"); this.Items.Add(editMenuItem); this.expandCollapseMenuItem = new TreeViewMenuItem("Expand", TreeViewLocalizationProvider.CurrentProvider.GetLocalizedString(TreeViewStringId.ContextMenuExpand)); this.Items.Add(expandCollapseMenuItem); this.addMenuItem = new TreeViewMenuItem("Add", "&Add"); this.Items.Add(addMenuItem); this.deleteMenuItem = new TreeViewMenuItem("Delete", "&Delete"); this.Items.Add(deleteMenuItem); for (int i = 0; i < this.Items.Count; i++) { this.Items[i].Click += menuItem_Click; } }
protected override void RemoveItem(int index) { RadTreeNode radTreeNode1 = (RadTreeNode) null; RadTreeNode radTreeNode2 = this.Items[index]; RadTreeViewElement radTreeViewElement = this.TreeView != null ? this.TreeView.TreeViewElement : (RadTreeViewElement) null; bool flag = false; if (radTreeNode2.Current && radTreeViewElement != null) { radTreeNode1 = radTreeNode2.PrevVisibleNode; if (radTreeNode1 == null) { for (RadTreeNode radTreeNode3 = radTreeNode2; radTreeNode3 != null && radTreeNode1 == null; radTreeNode3 = radTreeNode3.Parent) radTreeNode1 = radTreeNode3.NextNode; } flag = true; } if (this.owner.treeView != null && radTreeViewElement != null) { if (!this.owner.treeView.PreProcess(this.owner, radTreeNode2, (object) "Remove", (object) index)) return; } if (flag) { radTreeViewElement.SelectedNode = radTreeNode1; if (radTreeViewElement.SelectedNode != radTreeNode1) { if (radTreeNode1.Enabled) return; base.RemoveItem(index); return; } } RadTreeNode parent = radTreeNode2.Parent; radTreeNode2.Parent = (RadTreeNode) null; radTreeNode2.TreeViewElement = (RadTreeViewElement) null; base.RemoveItem(index); if (parent == null || parent.nodes.Count != 0 || this.owner.TreeViewElement == null) return; this.owner.TreeViewElement.Update(RadTreeViewElement.UpdateActions.NodeStateChanged, parent); }
private void radTreeView1_NodeMouseDoubleClick(object sender, RadTreeViewEventArgs e) { flowLayoutPanelOp.Controls.Clear(); RadTreeViewElement element = (RadTreeViewElement)sender; SecurityResourceDto resource = (SecurityResourceDto)element.SelectedNode.Value; if (resource != null) { if (resource.ResourceTypeId == 1)// is submenu { return; } var access = presenter.CheckAccess(resource, TokenContainer.CurrentToken); if (rdUInfo.Checked) { var userInfo = UserInfoGenerator.GenerateUserInfo(access, TokenContainer.CurrentToken); FrmUserInfo frmUserInfo = new FrmUserInfo(userInfo); frmUserInfo.Show(); } else { FrmAccessToken frmAtoken = new FrmAccessToken(access); frmAtoken.Show(); } if (access != null) { foreach (var item in access.Operations) { Button opbtn = new Button() { Name = item.OperationId.ToString(), Text = item.OperationName, Tag = item, }; flowLayoutPanelOp.Controls.Add(opbtn); } } } }
public TreeViewDefaultContextMenu(RadTreeViewElement treeView) { this.treeView = treeView; this.editMenuItem = new TreeViewMenuItem("Edit", "&Edit"); this.Items.Add((RadItem)this.editMenuItem); this.expandCollapseMenuItem = new TreeViewMenuItem("Expand", LocalizationProvider <TreeViewLocalizationProvider> .CurrentProvider.GetLocalizedString("ContextMenuExpand")); this.Items.Add((RadItem)this.expandCollapseMenuItem); this.addMenuItem = new TreeViewMenuItem("Add", "&Add"); this.Items.Add((RadItem)this.addMenuItem); this.deleteMenuItem = new TreeViewMenuItem("Delete", "&Delete"); this.Items.Add((RadItem)this.deleteMenuItem); this.cutMentuItem = new TreeViewMenuItem("Cut", "Cu&t"); this.Items.Add((RadItem)this.cutMentuItem); this.copyMenuItem = new TreeViewMenuItem("Copy", "&Copy"); this.Items.Add((RadItem)this.copyMenuItem); this.pasteMenuItem = new TreeViewMenuItem("Paste", "&Paste"); this.Items.Add((RadItem)this.pasteMenuItem); for (int index = 0; index < this.Items.Count; ++index) { this.Items[index].Click += new EventHandler(this.menuItem_Click); } }
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs args) { base.OnCollectionChanged(args); if (this.Suspended || this.owner == null) return; RadTreeViewElement treeViewElement = this.owner.TreeViewElement; if (treeViewElement == null) return; if (!treeViewElement.IsSuspended) { this.owner.InvalidateOnState(); this.owner.UpdateParentCheckState(); } if (args.Action == NotifyCollectionChangedAction.Add) { RadTreeNode newItem = (RadTreeNode) args.NewItems[0]; treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemAdded, newItem); treeViewElement.OnNodeAdded(new RadTreeViewEventArgs(newItem)); } else if (args.Action == NotifyCollectionChangedAction.Remove) { RadTreeNode newItem = (RadTreeNode) args.NewItems[0]; treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemRemoved, newItem); treeViewElement.OnNodeRemoved(new RadTreeViewEventArgs(newItem)); } else if (args.Action == NotifyCollectionChangedAction.Move) { RadTreeNode newItem = (RadTreeNode) args.NewItems[0]; treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemMoved, newItem); } else { if (args.Action != NotifyCollectionChangedAction.Reset) return; RadTreeViewElement.UpdateActions updateAction = this.owner is RadTreeViewElement.RootTreeNode ? RadTreeViewElement.UpdateActions.Reset : RadTreeViewElement.UpdateActions.Resume; treeViewElement.Update(updateAction); } }
protected override SizeF MeasureOverride(SizeF availableSize) { RadTreeViewElement treeViewElement = this.TreeViewElement; SizeF sizeF = base.MeasureOverride(availableSize); int height1 = this.Data.ActualSize.Height; int height2 = this.ItemHeight; if (treeViewElement != null && (this.Editor != null && (double)height2 < (double)sizeF.Height || treeViewElement.AutoSizeItems)) { height2 = (int)sizeF.Height; this.states[4L] = true; } else { sizeF.Height = (float)height2; } if (treeViewElement != null && height1 != height2 && (this.states[4L] || treeViewElement.AllowArbitraryItemHeight || treeViewElement.AutoSizeItems)) { ItemScroller <RadTreeNode> scroller = treeViewElement.Scroller; this.Data.ActualSize = new Size(this.Data.ActualSize.Width, height2); scroller.UpdateScrollRange(scroller.Scrollbar.Maximum + (height2 - height1), false); } if (this.Editor == null) { this.states[4L] = false; } if (!float.IsInfinity(availableSize.Width)) { this.Data.ActualSize = new Size(this.Data.ActualSize.Width, sizeF.ToSize().Height); sizeF.Width = availableSize.Width; } else if (!this.ContentElement.TextWrap && this.Editor == null) { this.Data.ActualSize = sizeF.ToSize(); } return(sizeF); }
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; } }
protected virtual void PrepareDragHint(TreeNodeElement nodeElement) { RadTreeViewElement treeView = nodeElement.TreeViewElement; Bitmap image = null; Size hintSize = Size.Empty; if (this.dropHintColor != Color.Empty) { hintSize = new Size(this.GetDropHintWidth(treeView), 1); image = new Bitmap(hintSize.Width, hintSize.Height); using (Graphics temp = Graphics.FromImage(image)) { using (SolidBrush solidBrush = new SolidBrush(this.DropHintColor)) { temp.FillRectangle(solidBrush, new Rectangle(Point.Empty, hintSize)); } } } else if (treeView.ItemDropHint != null) { hintSize = new Size(this.GetDropHintWidth(treeView), treeView.ItemDropHint.Image.Size.Height); image = new Bitmap(hintSize.Width, hintSize.Height); using (Graphics temp = Graphics.FromImage(image)) { treeView.ItemDropHint.Paint(temp, new RectangleF(PointF.Empty, hintSize)); } } if (image != null) { this.dropHintWindow = new RadLayeredWindow(); this.dropHintWindow.BackgroundImage = image; } }
public SelectedTreeNodeCollection(RadTreeViewElement treeView) : base(new List <RadTreeNode>()) { this.treeView = treeView; }