Example #1
0
        private void DeleteLayer(IRenderer renderer)
        {
            var element = renderer.Element;
            var parent  = renderer.RendererParent.Element;

            // Check Selected Parent
            if (RendererTreeHelper
                .FindParents <IRenderer>(renderer)
                .Count(r => GroupSelector.IsSelected(r as FrameworkElement)) > 0)
            {
                return;
            }

            // * Task *
            if (renderer is IRendererLayout lRenderer)
            {
                TaskManager?.Push(
                    new LayoutTaskData(
                        RendererTaskType.Remove,
                        lRenderer,
                        () => RemoveElement(parent, element, true),
                        () => AddElement(parent, element, true),
                        () => RemoveElement(parent, element)));
            }
            else if (renderer is IRendererElement eRenderer)
            {
                TaskManager?.Push(
                    new ElementTaskData(
                        RendererTaskType.Remove,
                        eRenderer,
                        () => RemoveElement(parent, element, true),
                        () => AddElement(parent, element, true),
                        () => RemoveElement(parent, element)));
            }
        }
        public ScreenRendererPackageFile(ScreenRenderer screenRenderer)
        {
            this.Name = $"{Path}/{LayoutExtension.GetPageName(screenRenderer.Model)}.xml";

            List <IRenderer> childrens = RendererTreeHelper
                                         .FindChildrens <IRenderer>(screenRenderer)
                                         .ToList();

            childrens.Insert(0, screenRenderer);

            this.Model = new ObjectContainer <RendererSurface>()
            {
                Items = childrens
                        .Select(c => new RendererSurface()
                {
                    Guid     = c.Model.Guid,
                    Metadata = c.Metadata,
                    Location = new Point(
                        Canvas.GetLeft(c.Element),
                        Canvas.GetTop(c.Element))
                }).ToList()
            };

            base.CreateStream();
        }
Example #3
0
        /// <summary>
        /// 이전 작업으로 돌아갑니다.
        /// </summary>
        public override void Undo()
        {
            base.Undo();

            if (TaskType == RendererTaskType.Remove)
            {
                foreach (IRenderer child in RendererTreeHelper.FindChildrens <IRenderer>(Source))
                {
                    child.Element.AddAdorner((Adorner)child);
                }
            }
        }