From c77394c378e7f18505583180c140136d53813c36 Mon Sep 17 00:00:00 2001
From: zengwenjie <1663900244@qq.com>
Date: Mon, 15 Sep 2025 15:48:54 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=8F=AA=E8=AF=BB=E9=9B=86?=
 =?UTF-8?q?=E5=90=88=E5=AE=B9=E5=99=A8=E4=B8=8E=E4=B8=8D=E5=8F=AF=E5=8F=98?=
 =?UTF-8?q?=E9=9B=86=E5=90=88=E5=AE=B9=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../Contract/IContainerElement.cs             | 14 +++++++++
 .../Contract/IVariableContainer.cs            | 15 ++++++++++
 .../Deedy.Design/Deedy.Design.csproj          |  1 +
 DeedyDesigner/Deedy.Design/DeedyAction.cs     | 10 +++++++
 .../DeedyLayout.cs}                           | 29 ++++++++++++++++++-
 .../Deedy.Design/DeedyVisual/IDeedyLayout.cs  | 12 ++++++++
 DeedyDesigner/Deedy.Design/IDeedyElement.cs   |  3 +-
 7 files changed, 82 insertions(+), 2 deletions(-)
 create mode 100644 DeedyDesigner/Deedy.Design/Contract/IContainerElement.cs
 create mode 100644 DeedyDesigner/Deedy.Design/Contract/IVariableContainer.cs
 rename DeedyDesigner/Deedy.Design/{DeedyVisual.cs => DeedyVisual/DeedyLayout.cs} (76%)
 create mode 100644 DeedyDesigner/Deedy.Design/DeedyVisual/IDeedyLayout.cs
diff --git a/DeedyDesigner/Deedy.Design/Contract/IContainerElement.cs b/DeedyDesigner/Deedy.Design/Contract/IContainerElement.cs
new file mode 100644
index 0000000..ba1d4e9
--- /dev/null
+++ b/DeedyDesigner/Deedy.Design/Contract/IContainerElement.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Deedy.Design
+{
+    public interface IContainerElement : IDeedyElement
+    {
+        public DeedyElementCollection Elements { get; set; }
+    }
+}
diff --git a/DeedyDesigner/Deedy.Design/Contract/IVariableContainer.cs b/DeedyDesigner/Deedy.Design/Contract/IVariableContainer.cs
new file mode 100644
index 0000000..c94f0a2
--- /dev/null
+++ b/DeedyDesigner/Deedy.Design/Contract/IVariableContainer.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Deedy.Design
+{
+    public interface IVariableContainer : IContainerElement
+    {
+        public void Append(IDeedyElement deedyElement);
+        public void Remove(IDeedyElement deedyElement);
+        public void SwapIndex(IDeedyElement element1, IDeedyElement element2);
+    }
+}
diff --git a/DeedyDesigner/Deedy.Design/Deedy.Design.csproj b/DeedyDesigner/Deedy.Design/Deedy.Design.csproj
index d62385c..13fd88a 100644
--- a/DeedyDesigner/Deedy.Design/Deedy.Design.csproj
+++ b/DeedyDesigner/Deedy.Design/Deedy.Design.csproj
@@ -8,6 +8,7 @@
   
 
   
+    
     
   
 
diff --git a/DeedyDesigner/Deedy.Design/DeedyAction.cs b/DeedyDesigner/Deedy.Design/DeedyAction.cs
index 1373f66..6ba912e 100644
--- a/DeedyDesigner/Deedy.Design/DeedyAction.cs
+++ b/DeedyDesigner/Deedy.Design/DeedyAction.cs
@@ -53,5 +53,15 @@ namespace Deedy.Design
             OnPropertyChanged(propertyName);
             return true;
         }
+
+        public void InsertInFront(IDeedyElement deedyElement)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void InsertAtRear(IDeedyElement deedyElement)
+        {
+            throw new NotImplementedException();
+        }
     }
 }
diff --git a/DeedyDesigner/Deedy.Design/DeedyVisual.cs b/DeedyDesigner/Deedy.Design/DeedyVisual/DeedyLayout.cs
similarity index 76%
rename from DeedyDesigner/Deedy.Design/DeedyVisual.cs
rename to DeedyDesigner/Deedy.Design/DeedyVisual/DeedyLayout.cs
index 4a3af35..979626a 100644
--- a/DeedyDesigner/Deedy.Design/DeedyVisual.cs
+++ b/DeedyDesigner/Deedy.Design/DeedyVisual/DeedyLayout.cs
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
 
 namespace Deedy.Design
 {
-    public class DeedyVisual : IDeedyVisual
+    public class DeedyLayout : IDeedyLayout
     {
         public string DEClass { get; protected internal set; } = "";
         public string DETitle { get; set; } = "";
@@ -19,6 +19,8 @@ namespace Deedy.Design
 
         public IDeedyElement DeedyRoot => (this.DeedyParent == null) ? this : this.DeedyParent.DeedyRoot;
 
+        public DeedyElementCollection Elements { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
         public event PropertyChangedEventHandler? PropertyChanged;
 
         /// 
@@ -54,5 +56,30 @@ namespace Deedy.Design
             OnPropertyChanged(propertyName);
             return true;
         }
+
+        public void Append(IDeedyElement deedyElement)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void Remove(IDeedyElement deedyElement)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void InsertInFront(IDeedyElement deedyElement)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void InsertAtRear(IDeedyElement deedyElement)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void SwapIndex(IDeedyElement element1, IDeedyElement element2)
+        {
+            throw new NotImplementedException();
+        }
     }
 }
diff --git a/DeedyDesigner/Deedy.Design/DeedyVisual/IDeedyLayout.cs b/DeedyDesigner/Deedy.Design/DeedyVisual/IDeedyLayout.cs
new file mode 100644
index 0000000..00851d2
--- /dev/null
+++ b/DeedyDesigner/Deedy.Design/DeedyVisual/IDeedyLayout.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Deedy.Design
+{
+    public interface IDeedyLayout : IVariableContainer
+    {
+    }
+}
diff --git a/DeedyDesigner/Deedy.Design/IDeedyElement.cs b/DeedyDesigner/Deedy.Design/IDeedyElement.cs
index bb07405..2d684a0 100644
--- a/DeedyDesigner/Deedy.Design/IDeedyElement.cs
+++ b/DeedyDesigner/Deedy.Design/IDeedyElement.cs
@@ -16,6 +16,7 @@ namespace Deedy.Design
         public string DEIdentify { get; set; }
         public IDeedyElement? DeedyParent { get; }
         public IDeedyElement DeedyRoot { get; }
-        public DeedyElementCollection Children { get; set; }
+        public void InsertInFront(IDeedyElement deedyElement);
+        public void InsertAtRear(IDeedyElement deedyElement);
     }
 }