|
@@ -97,6 +97,23 @@ namespace InABox.DynamicGrid
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public IEnumerable<IDynamicEditorControl> Editors
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ foreach (var page in Pages)
|
|
|
+ {
|
|
|
+ if (page is DynamicEditPage editPage)
|
|
|
+ {
|
|
|
+ foreach(var editor in editPage.Editors)
|
|
|
+ {
|
|
|
+ yield return editor;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public bool TryFindEditor(string columnname, [NotNullWhen(true)] out IDynamicEditorControl? editor)
|
|
|
{
|
|
|
foreach (var page in Pages)
|
|
@@ -203,7 +220,9 @@ namespace InABox.DynamicGrid
|
|
|
public DynamicEditorGrid EditorGrid { get; set; } = null!; // Set by DynamicEditorGrid
|
|
|
public bool Ready { get; set; }
|
|
|
|
|
|
- private List<BaseDynamicEditorControl> Editors { get; set; }
|
|
|
+ private List<BaseDynamicEditorControl> EditorList { get; set; }
|
|
|
+
|
|
|
+ public IEnumerable<IDynamicEditorControl> Editors => EditorList;
|
|
|
|
|
|
public PageType PageType => PageType.Editor;
|
|
|
|
|
@@ -222,7 +241,7 @@ namespace InABox.DynamicGrid
|
|
|
if(_readOnly != value)
|
|
|
{
|
|
|
_readOnly = value;
|
|
|
- foreach(var editor in Editors)
|
|
|
+ foreach(var editor in EditorList)
|
|
|
{
|
|
|
editor.IsEnabled = !value && editor.EditorDefinition.Editable.IsEditable();
|
|
|
}
|
|
@@ -234,7 +253,7 @@ namespace InABox.DynamicGrid
|
|
|
{
|
|
|
Header = header;
|
|
|
|
|
|
- Editors = new List<BaseDynamicEditorControl>();
|
|
|
+ EditorList = new List<BaseDynamicEditorControl>();
|
|
|
|
|
|
InitialiseContent();
|
|
|
}
|
|
@@ -270,7 +289,7 @@ namespace InABox.DynamicGrid
|
|
|
element.ColumnName = columnName;
|
|
|
element.Color = editor is UniqueCodeEditor ? Color.FromArgb(0xFF, 0xF6, 0xC9, 0xE8) : Colors.LightYellow;
|
|
|
|
|
|
- Editors.Add(element);
|
|
|
+ EditorList.Add(element);
|
|
|
|
|
|
element.Margin = new Thickness(5F, 2.5F, 5F, 2.5F);
|
|
|
|
|
@@ -349,35 +368,35 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
public bool TryFindEditor(string columnname, [NotNullWhen(true)] out IDynamicEditorControl? editor)
|
|
|
{
|
|
|
- editor = Editors.FirstOrDefault(x => x.ColumnName.Equals(columnname));
|
|
|
- editor ??= Editors.FirstOrDefault(x => columnname.StartsWith(x.ColumnName + '.'));
|
|
|
+ editor = EditorList.FirstOrDefault(x => x.ColumnName.Equals(columnname));
|
|
|
+ editor ??= EditorList.FirstOrDefault(x => columnname.StartsWith(x.ColumnName + '.'));
|
|
|
return editor is not null;
|
|
|
}
|
|
|
|
|
|
public IEnumerable<BaseDynamicEditorControl> FindEditors(DynamicGridColumn column)
|
|
|
{
|
|
|
- return Editors.Where(x => string.Equals(x.ColumnName, column.ColumnName));
|
|
|
+ return EditorList.Where(x => string.Equals(x.ColumnName, column.ColumnName));
|
|
|
}
|
|
|
|
|
|
#region Configure Editors
|
|
|
|
|
|
private void Lookup_OnUpdateOtherEditor(string columnname, object value)
|
|
|
{
|
|
|
- var editor = Editors.FirstOrDefault(x => x.ColumnName.Equals(columnname));
|
|
|
+ var editor = EditorList.FirstOrDefault(x => x.ColumnName.Equals(columnname));
|
|
|
if (editor != null)
|
|
|
CoreUtils.SetPropertyValue(editor, "Value", value);
|
|
|
}
|
|
|
|
|
|
private void ConfigureEditors()
|
|
|
{
|
|
|
- foreach (var Editor in Editors)
|
|
|
+ foreach (var Editor in EditorList)
|
|
|
{
|
|
|
var editor = Editor.EditorDefinition;
|
|
|
var column = Editor.ColumnName;
|
|
|
|
|
|
Editor.Configure();
|
|
|
- if (!Editors.Any(x => x.ColumnName.Equals(Editor.ColumnName)))
|
|
|
- Editors.Add(Editor);
|
|
|
+ if (!EditorList.Any(x => x.ColumnName.Equals(Editor.ColumnName)))
|
|
|
+ EditorList.Add(Editor);
|
|
|
Editor.Loaded = true;
|
|
|
}
|
|
|
}
|
|
@@ -455,7 +474,7 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
private void LoadEditorValues(Dictionary<string, object?>? changededitors = null)
|
|
|
{
|
|
|
- var columnnames = changededitors != null ? changededitors.Keys.ToArray() : Editors.Select(x => x.ColumnName).ToArray();
|
|
|
+ var columnnames = changededitors != null ? changededitors.Keys.ToArray() : EditorList.Select(x => x.ColumnName).ToArray();
|
|
|
foreach (var columnname in columnnames)
|
|
|
{
|
|
|
if (!TryFindEditor(columnname, out var editor))
|
|
@@ -494,7 +513,7 @@ namespace InABox.DynamicGrid
|
|
|
ConfigureEditors();
|
|
|
LoadEditorValues();
|
|
|
|
|
|
- foreach (var editor in Editors)
|
|
|
+ foreach (var editor in EditorList)
|
|
|
{
|
|
|
foreach(var (column, editorValue) in editor.GetValues())
|
|
|
{
|
|
@@ -509,7 +528,7 @@ namespace InABox.DynamicGrid
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- Editors.FirstOrDefault()?.SetFocus();
|
|
|
+ EditorList.FirstOrDefault()?.SetFocus();
|
|
|
|
|
|
Ready = true;
|
|
|
}
|