private void InsertRenderings([CanBeNull] LayoutDesignerItem target, ControlDragAdornerPosition position, [NotNull] IEnumerable <IItem> items) { Debug.ArgumentNotNull(items, nameof(items)); int index; if (target != null) { index = this.items.IndexOf(target); if (position == ControlDragAdornerPosition.Bottom) { index++; } } else { index = this.items.Count; } string placeholderKey = null; var renderingTarget = target as RenderingItem; if (renderingTarget != null) { placeholderKey = renderingTarget.PlaceholderKey.Key; } var modified = false; LayoutDesignerItem selectedRendering = null; foreach (var item in items) { var renderingItem = new RenderingItem(this, item); var layoutItem = AddRendering(renderingItem, index, index); var rendering = layoutItem as RenderingItem; if (rendering != null && string.IsNullOrEmpty(rendering.PlaceholderKey.Key) && !string.IsNullOrEmpty(placeholderKey)) { rendering.PlaceholderKey = new PlaceHolderKey(placeholderKey); } if (selectedRendering == null) { selectedRendering = layoutItem; } modified = true; } List.SelectedItem = selectedRendering; Keyboard.Focus(List); if (modified) { Modified = true; } }
public LayoutDesignerContext([NotNull] LayoutDesigner layoutDesigner, [CanBeNull] LayoutDesignerItem selectedItem, [NotNull] IEnumerable <LayoutDesignerItem> selectedItems) { Assert.ArgumentNotNull(layoutDesigner, nameof(layoutDesigner)); Assert.ArgumentNotNull(selectedItems, nameof(selectedItems)); LayoutDesigner = layoutDesigner; SelectedItem = selectedItem; SelectedItems = selectedItems; }
public void RemoveRendering(LayoutDesignerItem renderingItem) { Assert.ArgumentNotNull(renderingItem, nameof(renderingItem)); var tab = GetActiveListView(); if (tab != null) { tab.RemoveRendering(renderingItem); } }
public void RemoveRendering(LayoutDesignerItem renderingItem) { Assert.ArgumentNotNull(renderingItem, nameof(renderingItem)); var selectedItems = SelectedItems.ToList(); RenderingTreeViewItem last = null; foreach (var rendering in selectedItems.OfType <RenderingTreeViewItem>()) { rendering.RemoveRendering(); last = rendering; } if (last != null) { last.DeviceTreeViewItem.Device.PageModel.RaiseModified(); } }
public void RemoveRendering([NotNull] LayoutDesignerItem renderingItem) { Assert.ArgumentNotNull(renderingItem, nameof(renderingItem)); var index = items.IndexOf(renderingItem); items.Remove(renderingItem); if (index >= items.Count) { index = items.Count - 1; } if (index >= 0) { List.SelectedIndex = index; } Modified = true; }
public LayoutTreeViewContext([NotNull] LayoutDesigner layoutDesigner, [NotNull] IEnumerable <BaseTreeViewItem> treeViewItems, [CanBeNull] LayoutDesignerItem selectedItem, [NotNull] IEnumerable <LayoutDesignerItem> selectedItems) : base(layoutDesigner, selectedItem, selectedItems) { Assert.ArgumentNotNull(layoutDesigner, nameof(layoutDesigner)); Assert.ArgumentNotNull(treeViewItems, nameof(treeViewItems)); Assert.ArgumentNotNull(selectedItems, nameof(selectedItems)); TreeViewItems = treeViewItems; }
private void MoveRenderings([CanBeNull] LayoutDesignerItem target, ControlDragAdornerPosition position) { var selectedItems = new List <LayoutDesignerItem>(); foreach (var selectedItem in List.SelectedItems.OfType <LayoutDesignerItem>()) { selectedItems.Add(selectedItem); } if ((Keyboard.Modifiers & ModifierKeys.Shift) != ModifierKeys.Shift) { var text = string.Format("Are you sure you want to move these {0} elements?", selectedItems.Count); if (selectedItems.Count == 1) { var selectedItem = selectedItems.First(); var renderingItem = selectedItem as RenderingItem; if (renderingItem != null) { text = string.Format("Are you sure you want to move the '{0}' rendering?", renderingItem.GetDisplayName()); } var placeholderItem = selectedItem as PlaceholderItem; if (placeholderItem != null) { text = string.Format("Are you sure you want to move the '{0}' placeholder?", placeholderItem.Name); } } if (AppHost.MessageBox(text, "Confirmation", MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK) { return; } } var index = target != null?items.IndexOf(target) : items.Count; foreach (var selectedItem in selectedItems) { var i = items.IndexOf(selectedItem); if (i < index) { index--; } items.Remove(selectedItem); } if (target != null && items.IndexOf(target) >= 0 && position == ControlDragAdornerPosition.Bottom) { index++; } if (index < 0) { index = 0; } var modified = false; object selected = null; for (var n = selectedItems.Count - 1; n >= 0; n--) { var selectedItem = selectedItems[n]; if (selected == null) { selected = selectedItem; } items.Insert(index, selectedItem); modified = true; } List.SelectedItem = selected; if (modified) { Modified = true; } }
private void CopyRenderings([CanBeNull] LayoutDesignerItem target, ControlDragAdornerPosition position) { var selectedItems = List.SelectedItems.OfType <RenderingItem>().ToList(); if (!selectedItems.Any()) { return; } var index = target != null?items.IndexOf(target) : items.Count; if (target != null && items.IndexOf(target) >= 0 && position == ControlDragAdornerPosition.Bottom) { index++; } if (index < 0) { index = 0; } string placeholderKey = null; var renderingTarget = target as RenderingItem; if (renderingTarget != null) { placeholderKey = renderingTarget.PlaceholderKey.Key; } var writer = new StringWriter(); var output = new XmlTextWriter(writer); output.WriteStartElement("renderings"); foreach (var selectedItem in selectedItems) { selectedItem.Write(output, true); } output.WriteEndElement(); var root = writer.ToString().ToXElement(); if (root == null) { return; } var renderings = root.Elements().Select(element => new RenderingItem(this, DatabaseUri, element, true)).ToList(); foreach (var rendering in renderings) { items.Insert(index, rendering); if (!string.IsNullOrEmpty(placeholderKey)) { rendering.PlaceholderKey = new PlaceHolderKey(placeholderKey); } } List.SelectedItem = renderings.FirstOrDefault(); Modified = true; }