Example #1
0
        private void DropItems([NotNull] DragEventArgs e)
        {
            Debug.ArgumentNotNull(e, nameof(e));

            var items = (IEnumerable <IItem>)e.Data.GetData(DragManager.DragIdentifier);

            RenderingTreeViewItem rendering = null;

            foreach (var item in items)
            {
                var r = DeviceTreeViewItem.AddRendering(this, item, -1, -1);

                if (rendering == null)
                {
                    rendering = r;
                }
            }

            if (rendering == null)
            {
                return;
            }

            rendering.BringIntoView();
            rendering.Focus();
            Keyboard.Focus(rendering);
        }
        public RenderingTreeViewItem AddRendering([NotNull] PlaceHolderTreeViewItem placeHolderTreeViewItem, [NotNull] RenderingItem rendering, int treeViewIndex, int renderingIndex)
        {
            Assert.ArgumentNotNull(placeHolderTreeViewItem, nameof(placeHolderTreeViewItem));
            Assert.ArgumentNotNull(rendering, nameof(rendering));

            var renderingTreeViewItem = new RenderingTreeViewItem(this, rendering);

            return(AddRendering(placeHolderTreeViewItem, renderingTreeViewItem, treeViewIndex, renderingIndex));
        }
Example #3
0
        private void DropItems([NotNull] DragEventArgs e)
        {
            Debug.ArgumentNotNull(e, nameof(e));

            var placeHolderTreeViewItem = GetParentTreeViewItem() as PlaceHolderTreeViewItem;

            if (placeHolderTreeViewItem == null)
            {
                return;
            }

            var treeViewIndex  = placeHolderTreeViewItem.Items.IndexOf(this);
            var renderingIndex = DeviceTreeViewItem.Device.Renderings.IndexOf(Rendering);

            if (adorner.LastPosition == ControlDragAdornerPosition.Bottom)
            {
                treeViewIndex++;
                renderingIndex++;
            }

            var items = (IEnumerable <IItem>)e.Data.GetData(DragManager.DragIdentifier);

            RenderingTreeViewItem rendering = null;

            foreach (var item in items)
            {
                var r = DeviceTreeViewItem.AddRendering(placeHolderTreeViewItem, item, treeViewIndex, renderingIndex);

                if (rendering == null)
                {
                    rendering = r;
                }
            }

            if (rendering == null)
            {
                return;
            }

            rendering.BringIntoView();
            rendering.Focus();
            Keyboard.Focus(rendering);
        }
        private void RenderRenderings([NotNull] ItemCollection items, [NotNull] string placeHolderPath, [NotNull] string placeHolderName, [NotNull] List <RenderingItem> usedRenderings)
        {
            Debug.ArgumentNotNull(items, nameof(items));
            Debug.ArgumentNotNull(placeHolderPath, nameof(placeHolderPath));
            Debug.ArgumentNotNull(placeHolderName, nameof(placeHolderName));
            Debug.ArgumentNotNull(usedRenderings, nameof(usedRenderings));

            foreach (var rendering in Device.Renderings)
            {
                var key = rendering.PlaceholderKey.Key;
                if (string.IsNullOrEmpty(key))
                {
                    continue;
                }

                if (string.Compare(key, placeHolderName, StringComparison.InvariantCultureIgnoreCase) != 0 && string.Compare(key, placeHolderPath, StringComparison.InvariantCultureIgnoreCase) != 0)
                {
                    continue;
                }

                var renderingTreeViewItem = new RenderingTreeViewItem(this, rendering);
                renderingTreeViewItem.IsExpanded = AppHost.Settings.GetBool(LayoutTreeView.LayoutDesignerTreeviewRenderings, renderingTreeViewItem.Rendering.ItemId, true);

                items.Add(renderingTreeViewItem);

                usedRenderings.Add(rendering);

                foreach (var placeHolder in rendering.GetPlaceHolderNames())
                {
                    var placeHolderTreeViewItem = new PlaceHolderTreeViewItem(this, placeHolder);
                    placeHolderTreeViewItem.IsExpanded = AppHost.Settings.GetBool(LayoutTreeView.LayoutDesignerTreeviewPlaceholders, placeHolderTreeViewItem.Text, true);

                    renderingTreeViewItem.Items.Add(placeHolderTreeViewItem);

                    RenderRenderings(placeHolderTreeViewItem.Items, placeHolderPath + "/" + placeHolder, placeHolder, usedRenderings);
                }
            }
        }
        public void RenderUnusedRenderings([NotNull] List <RenderingItem> unusedRenderings)
        {
            Assert.ArgumentNotNull(unusedRenderings, nameof(unusedRenderings));

            foreach (var rendering in unusedRenderings)
            {
                var placeHolderName = rendering.PlaceholderKey.ToString();

                var placeHolderTreeViewItem = FindPlaceHolderTreeViewItem(placeHolderName) as BaseTreeViewItem;
                if (placeHolderTreeViewItem == null)
                {
                    placeHolderTreeViewItem = new TempPlaceHolderTreeViewItem(this, placeHolderName)
                    {
                        IsExpanded = true
                    };
                    Items.Add(placeHolderTreeViewItem);
                }

                var renderingTreeViewItem = new RenderingTreeViewItem(this, rendering);

                placeHolderTreeViewItem.Items.Add(renderingTreeViewItem);
            }
        }
        public RenderingTreeViewItem AddRendering([NotNull] PlaceHolderTreeViewItem placeHolderTreeViewItem, [NotNull] RenderingTreeViewItem renderingTreeViewItem, int treeViewIndex, int renderingIndex)
        {
            Assert.ArgumentNotNull(placeHolderTreeViewItem, nameof(placeHolderTreeViewItem));
            Assert.ArgumentNotNull(renderingTreeViewItem, nameof(renderingTreeViewItem));

            Action completed = delegate
            {
                foreach (var placeHolder in renderingTreeViewItem.Rendering.GetPlaceHolderNames())
                {
                    var p = new PlaceHolderTreeViewItem(this, placeHolder)
                    {
                        IsExpanded = AppHost.Settings.GetBool(LayoutTreeView.LayoutDesignerTreeviewPlaceholders, placeHolder, true)
                    };

                    renderingTreeViewItem.Items.Add(p);
                }
            };

            renderingTreeViewItem.Rendering.GetRenderingParameters(renderingTreeViewItem.Rendering.ItemUri, completed);
            renderingTreeViewItem.Rendering.Modified += (sender, args) => Device.PageModel.RaiseModified();

            if (treeViewIndex < 0 || treeViewIndex >= placeHolderTreeViewItem.Items.Count)
            {
                placeHolderTreeViewItem.Items.Add(renderingTreeViewItem);
            }
            else
            {
                // weird WPF workd-around - renderingTreeViewItem should never have a parent
                if (renderingTreeViewItem.Parent != null)
                {
                    renderingTreeViewItem.Remove();
                }

                placeHolderTreeViewItem.Items.Insert(treeViewIndex, renderingTreeViewItem);
            }

            if (renderingIndex < 0 || treeViewIndex >= Device.Renderings.Count)
            {
                Device.Renderings.Add(renderingTreeViewItem.Rendering);
            }
            else
            {
                Device.Renderings.Insert(renderingIndex, renderingTreeViewItem.Rendering);
            }

            return(renderingTreeViewItem);
        }