protected virtual string GetItemText(LayoutControlItemBase item) { if (!string.IsNullOrEmpty(item.Text)) { return(item.Text); } if (item is LayoutControlItem) { return(this.GetString("CustomizeDialogLayoutItem")); } if (item is LayoutControlSplitterItem) { return(this.GetString("CustomizeDialogSplitterItem")); } if (item is LayoutControlSeparatorItem) { return(this.GetString("CustomizeDialogSeparatorItem")); } if (item is LayoutControlLabelItem) { return(this.GetString("CustomizeDialogLabelItem")); } if (item is LayoutControlGroupItem) { return(this.GetString("CustomizeDialogGroupItem")); } if (item is LayoutControlTabbedGroup) { return(this.GetString("CustomizeDialogTabbedGroup")); } return(this.GetString("CustomizeDialogLayoutItem")); }
public void SelectLayoutItem(LayoutControlItemBase item) { foreach (DraggableLayoutControlItem layoutControlItem in this.GetItems()) { layoutControlItem.IsSelected = item == layoutControlItem.AssociatedItem; } }
public CardViewItemFormattingEventArgs( LayoutControlItemBase item, CardListViewVisualItem visualItem) { this.item = item; this.visualItem = visualItem; }
protected virtual Image GetItemImage(LayoutControlItemBase item) { if (item is LayoutControlItem) { return(LayoutControlIcons.ControlItem); } if (item is LayoutControlSplitterItem) { return(LayoutControlIcons.SplitterItem); } if (item is LayoutControlSeparatorItem) { return(LayoutControlIcons.SeparatorItem); } if (item is LayoutControlLabelItem) { return(LayoutControlIcons.LabelItem); } if (item is LayoutControlGroupItem) { return(LayoutControlIcons.GroupItem); } if (item is LayoutControlTabbedGroup) { return(LayoutControlIcons.TabbedGroup); } return((Image)null); }
protected virtual void HandleItemDrop( BaseListViewVisualItem draggedItem, DraggableLayoutControlItem target) { if (draggedItem.Data.Group == this.hiddenItemsGroup) { LayoutControlItemBase tag = draggedItem.Data.Tag as LayoutControlItemBase; if (tag == null) { return; } this.layoutControl.HiddenItems.Remove((RadItem)tag); this.layoutControl.Items.Add((RadItem)tag); target.AssociatedItem.FindAncestor <LayoutControlContainerElement>().LayoutTree.HandleDrop(target, tag, this.layoutControl.PointToClient(Control.MousePosition)); } else { LayoutControlItemBase newItem = this.CreateNewItem(draggedItem); if (newItem == null) { return; } target.AssociatedItem.FindAncestor <LayoutControlContainerElement>().LayoutTree.HandleDrop(target, newItem, this.layoutControl.PointToClient(Control.MousePosition)); } }
private void InitializeChildNodes(LayoutControlItemBase item, RadTreeNode node) { if (item is LayoutControlGroupItem) { foreach (LayoutControlItemBase layoutControlItemBase in (item as LayoutControlGroupItem).Items) { RadTreeNode node1 = new RadTreeNode(this.GetItemText(layoutControlItemBase)) { Tag = (object)layoutControlItemBase, Value = (object)layoutControlItemBase.Text, Image = this.GetItemImage(layoutControlItemBase) }; node.Nodes.Add(node1); this.InitializeChildNodes(layoutControlItemBase, node1); } } else { if (!(item is LayoutControlTabbedGroup)) { return; } foreach (LayoutControlItemBase itemGroup in (RadItemCollection)(item as LayoutControlTabbedGroup).ItemGroups) { RadTreeNode node1 = new RadTreeNode(this.GetItemText(itemGroup)) { Tag = (object)itemGroup, Value = (object)itemGroup.Text, Image = this.GetItemImage(itemGroup) }; node.Nodes.Add(node1); this.InitializeChildNodes(itemGroup, node1); } } }
public void HandleDrop( DraggableLayoutControlItem dropTargetElement, LayoutControlItemBase draggedElement, Point mousePosition) { this.LayoutTree.HandleDrop(dropTargetElement, draggedElement, mousePosition); }
public CardViewItemCreatingEventArgs( LayoutControlItemBase sourceItem, LayoutControlItemBase newItem, CardListViewVisualItem visualItem) { this.sourceItem = sourceItem; this.newItem = newItem; this.visualItem = visualItem; }
public void StartDrag(LayoutControlItemBase item) { DraggableLayoutControlItem draggableItem = this.FindDraggableItem(item); if (draggableItem == null) { return; } this.dragDropService.Start((object)draggableItem); }
public LayoutTreeNode FindNodeByItem(LayoutControlItemBase item) { foreach (LayoutTreeNode enumChildNode in this.EnumChildNodes(this.root)) { if (enumChildNode.Item == item) { return(enumChildNode); } } return((LayoutTreeNode)null); }
private string GetCardItemFieldName( LayoutControlItemBase item, IDictionary <string, string> boundItems) { string empty = string.Empty; int num = item.Name.LastIndexOf(item.GetType().Name); string key = item.Name.Substring(0, num >= 0 ? num : 0); boundItems.TryGetValue(key, out empty); return(empty); }
protected virtual void OnStructureTreeNodeEdited(object sender, TreeNodeEditedEventArgs e) { LayoutControlItemBase tag = e.Node.Tag as LayoutControlItemBase; if (tag != null) { tag.Text = Convert.ToString(e.Node.Value); e.Node.Text = this.GetItemText(tag); } this.layoutControl.DragOverlay.UpdatePreview(); }
public DraggableLayoutControlItem FindDraggableItem( LayoutControlItemBase item) { foreach (DraggableLayoutControlItem layoutControlItem in this.GetItems()) { if (item == layoutControlItem.AssociatedItem) { return(layoutControlItem); } } return((DraggableLayoutControlItem)null); }
protected bool CheckIsHidden() { if (this.Visibility != ElementVisibility.Visible) { return(true); } for (RadElement parent = this.Parent; parent != null; parent = parent.Parent) { LayoutControlItemBase layoutControlItemBase = parent as LayoutControlItemBase; if (parent.Visibility != ElementVisibility.Visible || layoutControlItemBase != null && layoutControlItemBase.IsHidden) { return(true); } } return(false); }
protected virtual void OnStructureTreeViewSelectedNodeChanged( object sender, RadTreeViewEventArgs e) { if (e.Node == null || !e.Node.Selected) { return; } LayoutControlItemBase tag = e.Node.Tag as LayoutControlItemBase; if (tag == null) { return; } this.layoutControl.DragOverlay.SelectLayoutItem(tag); }
public override TypeConverter.StandardValuesCollection GetStandardValues( ITypeDescriptorContext context) { List <string> stringList = new List <string>(); LayoutControlItemBase layoutControlItemBase = context.Instance is ICardViewBoundItem ? context.Instance as LayoutControlItemBase : (LayoutControlItemBase)null; if (layoutControlItemBase != null && layoutControlItemBase.ElementTree != null && (layoutControlItemBase.ElementTree.Control != null && layoutControlItemBase.ElementTree.Control.Parent != null) && layoutControlItemBase.ElementTree.Control.Parent is RadCardView) { CardListViewElement viewElement = (layoutControlItemBase.ElementTree.Control.Parent as RadCardView).CardViewElement.ViewElement as CardListViewElement; if (viewElement != null) { stringList.Add(string.Empty); foreach (KeyValuePair <string, Type> fieldName in viewElement.GetFieldNames()) { stringList.Add(fieldName.Key); } } } return(new TypeConverter.StandardValuesCollection((ICollection)stringList)); }
protected virtual LayoutControlItemBase CreateNewItem( BaseListViewVisualItem draggedItem) { LayoutControlItemBase layoutControlItemBase = (LayoutControlItemBase)null; if (draggedItem.Data == this.groupItem) { LayoutControlGroupItem controlGroupItem = new LayoutControlGroupItem(); controlGroupItem.Text = this.GetString("NewGroupDefaultText"); layoutControlItemBase = (LayoutControlItemBase)controlGroupItem; } else if (draggedItem.Data == this.separatorItem) { layoutControlItemBase = (LayoutControlItemBase) new LayoutControlSeparatorItem(); } else if (draggedItem.Data == this.splitterItem) { layoutControlItemBase = (LayoutControlItemBase) new LayoutControlSplitterItem(); } else if (draggedItem.Data == this.labelItem) { LayoutControlLabelItem controlLabelItem = new LayoutControlLabelItem(); controlLabelItem.Text = this.GetString("NewLabelDefaultText"); layoutControlItemBase = (LayoutControlItemBase)controlLabelItem; } else if (draggedItem.Data == this.emptySpaceItem) { LayoutControlLabelItem controlLabelItem = new LayoutControlLabelItem(); controlLabelItem.DrawText = false; layoutControlItemBase = (LayoutControlItemBase)controlLabelItem; } else if (draggedItem.Data == this.tabbedGroupItem) { layoutControlItemBase = (LayoutControlItemBase) new LayoutControlTabbedGroup(); } if (layoutControlItemBase != null) { layoutControlItemBase.AllowDelete = true; } return(layoutControlItemBase); }
protected virtual void OnStructureTreeViewNodeRemoving( object sender, RadTreeViewCancelEventArgs e) { LayoutControlItemBase tag = e.Node.Tag as LayoutControlItemBase; if (tag != null && tag.AllowDelete) { this.layoutControl.RemoveItem(tag); tag.Dispose(); if (this.layoutControl.DragOverlay == null) { return; } this.layoutControl.DragOverlay.UpdatePreview(true); } else { e.Cancel = true; } }
private LayoutControlItemBase FindCardViewItemByName( string name, RadItemCollection layoutContainerItems) { LayoutControlItemBase layoutControlItemBase = (LayoutControlItemBase)null; foreach (LayoutControlItemBase layoutContainerItem in layoutContainerItems) { if (layoutContainerItem.Name == name + layoutContainerItem.GetType().Name || layoutContainerItem.Name == name) { return(layoutContainerItem); } if (layoutContainerItem is LayoutControlGroupItem) { return(this.FindCardViewItemByName(name, (layoutContainerItem as LayoutControlGroupItem).Items)); } if (layoutContainerItem is LayoutControlTabbedGroup) { return(this.FindCardViewItemByName(name, (RadItemCollection)(layoutContainerItem as LayoutControlTabbedGroup).ItemGroups)); } } return(layoutControlItemBase); }
protected virtual void HandleDropOnEmptyContainer( DraggableLayoutControlOverlayElement overlayElement, BaseListViewVisualItem draggedItem) { LayoutControlDraggableOverlay control = overlayElement.ElementTree.Control as LayoutControlDraggableOverlay; LayoutControlItemBase layoutControlItemBase; if (draggedItem.Data.Group == this.hiddenItemsGroup) { LayoutControlItemBase tag = draggedItem.Data.Tag as LayoutControlItemBase; if (tag == null) { return; } this.layoutControl.HiddenItems.Remove((RadItem)tag); layoutControlItemBase = tag; } else { layoutControlItemBase = this.CreateNewItem(draggedItem); } control.Owner.Items.Add((RadItem)layoutControlItemBase); control.Owner.ContainerElement.RebuildLayoutTree(); }
internal void HandleDrop( DraggableLayoutControlItem dropTargetElement, LayoutControlItemBase draggedElement, Point mousePosition) { Point mousePosition1 = mousePosition; mousePosition.Offset(-this.owner.ControlBoundingRectangle.X, -this.owner.ControlBoundingRectangle.Y); if (draggedElement is DraggableLayoutControlItem) { draggedElement = ((DraggableLayoutControlItem)draggedElement).AssociatedItem; } LayoutTreeNode draggedNode = this.FindNodeByItem(draggedElement); if (draggedNode != null) { if (!this.RemoveNode(draggedNode, false)) { return; } } else { draggedNode = new LayoutTreeNode(); draggedNode.Item = draggedElement; } LayoutControlDropTargetInfo dropTargetNode = this.GetDropTargetNode(dropTargetElement, mousePosition1, draggedElement.GetType()); if (dropTargetNode.TargetNode == null) { return; } LayoutTreeNode targetNode = dropTargetNode.TargetNode; LayoutControlDropPosition targetPosition = dropTargetNode.TargetPosition; RectangleF targetBounds = (RectangleF)dropTargetNode.TargetBounds; ILayoutControlItemsHost controlItemsHost = dropTargetElement.AssociatedItem.GetParentItemsContainer(); if (targetPosition == LayoutControlDropPosition.Center) { LayoutControlGroupItem associatedItem1 = dropTargetElement.AssociatedItem as LayoutControlGroupItem; LayoutControlTabbedGroup associatedItem2 = dropTargetElement.AssociatedItem as LayoutControlTabbedGroup; if (associatedItem1 != null) { controlItemsHost = (ILayoutControlItemsHost)associatedItem1.ContainerElement; } if (associatedItem2 != null) { controlItemsHost = (ILayoutControlItemsHost)null; } } ILayoutControlItemsHost parentItemsContainer = draggedElement.GetParentItemsContainer(); if (controlItemsHost != parentItemsContainer) { parentItemsContainer?.Items.Remove((RadItem)draggedElement); controlItemsHost?.Items.Add((RadItem)draggedElement); } if (dropTargetElement.AssociatedItem is LayoutControlGroupItem && targetPosition == LayoutControlDropPosition.Center) { (dropTargetElement.AssociatedItem as LayoutControlGroupItem).ContainerElement.RebuildLayoutTree(); } else { if (dropTargetElement.AssociatedItem is LayoutControlTabbedGroup && targetPosition == LayoutControlDropPosition.Center) { LayoutControlTabbedGroup associatedItem = (LayoutControlTabbedGroup)dropTargetElement.AssociatedItem; LayoutControlGroupItem controlGroupItem = draggedElement as LayoutControlGroupItem; if (controlGroupItem != null) { if (dropTargetNode.TargetTabIndex >= 0 && dropTargetNode.TargetTabIndex <= associatedItem.ItemGroups.Count) { associatedItem.ItemGroups.Insert(dropTargetNode.TargetTabIndex, (RadItem)controlGroupItem); return; } associatedItem.ItemGroups.Add((RadItem)controlGroupItem); return; } } LayoutTreeNode node = new LayoutTreeNode(); node.Item = targetNode.Item; node.Parent = targetNode; node.Left = targetNode.Left; node.Right = targetNode.Right; node.OriginalBounds = targetNode.OriginalBounds; node.Bounds = targetNode.Bounds; node.SplitType = targetNode.SplitType; node.SplitPosition = targetNode.SplitPosition; node.OriginalSplitPosition = targetNode.OriginalSplitPosition; node.MinSize = targetNode.MinSize; node.MaxSize = targetNode.MaxSize; if (targetNode.Left != null) { targetNode.Left.Parent = node; } if (targetNode.Right != null) { targetNode.Right.Parent = node; } draggedNode.Parent = targetNode; draggedNode.Bounds = targetBounds; targetNode.Item = (LayoutControlItemBase)null; targetNode.SplitType = targetPosition == LayoutControlDropPosition.Top || targetPosition == LayoutControlDropPosition.Bottom ? Orientation.Vertical : Orientation.Horizontal; targetNode.Left = targetPosition == LayoutControlDropPosition.Left || targetPosition == LayoutControlDropPosition.Top ? draggedNode : node; targetNode.Right = targetPosition == LayoutControlDropPosition.Left || targetPosition == LayoutControlDropPosition.Top ? node : draggedNode; switch (targetPosition) { case LayoutControlDropPosition.Left: this.ChangeBounds(new RectangleF(targetNode.Bounds.X + targetBounds.Width, targetNode.Bounds.Y, targetNode.Bounds.Width - targetBounds.Width, targetNode.Bounds.Height), node); break; case LayoutControlDropPosition.Right: this.ChangeBounds(new RectangleF(targetNode.Bounds.X, targetNode.Bounds.Y, targetNode.Bounds.Width - targetBounds.Width, targetNode.Bounds.Height), node); break; case LayoutControlDropPosition.Top: this.ChangeBounds(new RectangleF(targetNode.Bounds.X, targetNode.Bounds.Y + targetBounds.Height, targetNode.Bounds.Width, targetNode.Bounds.Height - targetBounds.Height), node); break; case LayoutControlDropPosition.Bottom: this.ChangeBounds(new RectangleF(targetNode.Bounds.X, targetNode.Bounds.Y, targetNode.Bounds.Width, targetNode.Bounds.Height - targetBounds.Height), node); break; } targetNode.SplitPosition = targetNode.OriginalSplitPosition = targetNode.SplitType == Orientation.Vertical ? targetNode.Right.Bounds.Top : targetNode.Right.Bounds.Left; targetNode.OriginalBounds = targetNode.Bounds; this.ChangeBounds(this.root.Bounds); this.UpdateItemsBounds(); this.owner.PerformControlLayout(); if (this.owner.ElementTree == null || this.owner.ElementTree.Control == null) { return; } (this.owner.ElementTree.Control as RadLayoutControl)?.OnHandleDropCompleted((object)this); } }
public void RemoveItem(LayoutControlItemBase item) { this.RemoveNode(this.FindNodeByItem(item), true); }
public BoundsEndpoint(int location, bool isEnd, LayoutControlItemBase item) { this.Location = location; this.IsEnd = isEnd; this.Item = item; }
public DraggableLayoutControlItem(LayoutControlItemBase associatedItem) { this.AssociatedItem = associatedItem; }