private void RemovePreview()
        {
            if (Preview == null)
            {
                return;
            }

            ContentPanel.opacity = 1f;
            ComponentPool.Free(Preview);
            Preview = null;
        }
        protected override void OnObjectSelect(IntersectionTemplate editObject)
        {
            base.OnObjectSelect(editObject);

            ItemsPanel.RemovePreview();

            Screenshot = ComponentPool.Get <PropertyGroupPanel>(ContentPanel.Content, nameof(Screenshot));
            var info = ComponentPool.Get <IntersectionTemplateInfoProperty>(Screenshot, "Info");

            info.Init(EditObject);
        }
        private void AddPreview(IntersectionTemplateItem editableItem)
        {
            if (HoverItem == SelectItem)
            {
                return;
            }

            ContentPanel.opacity = 0.15f;

            var root = GetRootContainer();

            Preview = ComponentPool.Get <PreviewPanel>(root);
            var info = ComponentPool.Get <PreviewIntersectionTemplateInfo>(Preview);

            info.Init(HoverItem.Object);
            Preview.width = 365f;

            var x = editableItem.absolutePosition.x + editableItem.width;
            var y = Mathf.Min(editableItem.absolutePosition.y, root.absolutePosition.y + root.height - Preview.height);

            Preview.absolutePosition = new Vector2(x, y);
        }
 protected override void OnClear()
 {
     base.OnClear();
     Screenshot = null;
 }