123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- using InABox.Core;
- using InABox.DynamicGrid;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace InABox.Wpf.Grids
- {
- public class PosterSettingsGrid<TPosterSettings> : DynamicItemsListGrid<TPosterSettings>
- where TPosterSettings : PosterSettings, new()
- {
- public PosterSettingsGrid()
- {
- OnCustomiseEditor += PosterSettingsGrid_OnCustomiseEditor;
- }
- private void PosterSettingsGrid_OnCustomiseEditor(IDynamicEditorForm sender, TPosterSettings[]? items, DynamicGridColumn column, BaseEditor editor)
- {
- if (items?.FirstOrDefault() is not TPosterSettings settings) return;
- if(column.ColumnName == nameof(PosterSettings.Script) && editor is ScriptEditor scriptEditor)
- {
- var tPostable = CoreUtils.GetEntity(settings.PostableType);
- scriptEditor.Type = ScriptEditorType.TemplateEditor;
- scriptEditor.OnEditorClicked += () =>
- {
- var script = settings.Script.NotWhiteSpaceOr()
- ?? settings.DefaultScript(tPostable);
- var editor = new ScriptEditorWindow(script, SyntaxLanguage.CSharp);
- if (editor.ShowDialog() == true)
- {
- sender.SetEditorValue(column.ColumnName, editor.Script);
- settings.Script = editor.Script;
- settings.ScriptEnabled = !settings.Script.IsNullOrWhiteSpace();
- sender.SetEditorValue(nameof(PosterSettings.ScriptEnabled), settings.ScriptEnabled);
- }
- };
- }
- }
- }
- }
|