Sfoglia il codice sorgente

Support for Email Templates

Nick-PRSDigital@bitbucket.org 2 anni fa
parent
commit
f6d5572732

+ 18 - 3
InABox.Core/Editors/ScriptEditor.cs

@@ -1,8 +1,8 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
 
 namespace InABox.Core
 {
-    public delegate Dictionary<string, string[]> OnScriptEditorCalled();
     public enum SyntaxLanguage
     {
         CSharp,
@@ -11,20 +11,35 @@ namespace InABox.Core
         CSS
     }
 
+    public enum ScriptEditorType
+    { 
+        Default,
+        TemplateEditor
+    }
+    public delegate void OnEditorClicked();
+
     public class ScriptEditor : BaseEditor
     {
-        public event OnScriptEditorCalled OnScriptEditorCalled;
         public ScriptEditor(SyntaxLanguage language = SyntaxLanguage.CSharp)
         {
             Alignment = Alignment.NotSet;
             SyntaxLanguage = language;
+            Type = ScriptEditorType.Default;
         }
 
+        public event OnEditorClicked OnEditorClicked;
+
         public SyntaxLanguage SyntaxLanguage { get; set; }
+        public ScriptEditorType Type { get; set; }
 
         protected override BaseEditor DoClone()
         {
             return new ScriptEditor(SyntaxLanguage);
         }
+
+        public void InvokeEvent()
+        {
+            OnEditorClicked?.Invoke();
+        }
     }
 }

+ 26 - 2
InABox.DynamicGrid/Editors/ScriptEditorControl.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
+using System.Linq;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Media;
@@ -8,19 +9,20 @@ using InABox.Core;
 
 namespace InABox.DynamicGrid
 {
-    
+
     public class ScriptEditorControl : DynamicEditorControl<string>
     {
         private Button Editor;
 
         private string script = "";
-        public event OnScriptEditorCalled OnScriptEditorCalled;
         public ScriptEditorControl()
         {
             SyntaxLanguage = SyntaxLanguage.CSharp;
         }
         public SyntaxLanguage SyntaxLanguage { get; set; }
 
+        public event OnEditorClicked OnEditorClicked;
+
         protected override FrameworkElement CreateEditor()
         {
             Editor = new Button
@@ -37,6 +39,27 @@ namespace InABox.DynamicGrid
         }
 
         private void Editor_Click(object sender, RoutedEventArgs e)
+        {
+            if (EditorDefinition.GetType() == typeof(ScriptEditor))
+            {
+                CheckTemplateEditor();
+            }
+            else
+                ShowEditor();
+        }
+
+        private void CheckTemplateEditor()
+        {
+            var edt = EditorDefinition as ScriptEditor;
+
+            if (edt.Type == ScriptEditorType.TemplateEditor)
+                edt.InvokeEvent();
+
+            else
+                ShowEditor();
+        }
+
+        private void ShowEditor()
         {
             var editor = new ScriptEditorWindow(script, SyntaxLanguage);
             if (editor.ShowDialog() == true)
@@ -46,6 +69,7 @@ namespace InABox.DynamicGrid
             }
         }
 
+
         public override int DesiredHeight()
         {
             return 25;