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;
        }
Ejemplo n.º 3
0
        public void RemoveRendering(LayoutDesignerItem renderingItem)
        {
            Assert.ArgumentNotNull(renderingItem, nameof(renderingItem));

            var tab = GetActiveListView();

            if (tab != null)
            {
                tab.RemoveRendering(renderingItem);
            }
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 6
0
        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;
        }