bug fixed

This commit is contained in:
CortexCore
2023-07-18 20:57:02 +08:00
parent 37f46e6d16
commit e7e80c982a
16 changed files with 323 additions and 134 deletions

View File

@@ -8,14 +8,18 @@ namespace BITFactory;
[GlobalClass]
public partial class IDIS_TemplateWeaver : FormWeaverResource
{
[Export] private IDIS_TemplateResource templateResource;
[ExportCategory(nameof(NodePath))]
[Export] private NodePath addFieldsButtonPath;
[Export] private NodePath templateBuilderPath;
[Export] private NodePath templateNameEditPath;
[Export] private NodePath saveTemplateNameButtonPath;
[Export] private NodePath deleteTemplateButtonPath;
private Button addFieldsButton => formBuilder.GetNode<Button>(addFieldsButtonPath);
private TemplateBuilder templateBuilder => formBuilder.GetNode<TemplateBuilder>(templateBuilderPath);
private LineEdit templateNameEdit => formBuilder.GetNode<LineEdit>(templateNameEditPath);
private Button saveTemplateNameButton => formBuilder.GetNode<Button>(saveTemplateNameButtonPath);
private Button deleteTemplateButton => formBuilder.GetNode<Button>(deleteTemplateButtonPath);
private readonly List<IDIS_TemplateForm> fields = new();
public override void Weaver(Control container, IFormField formField)
@@ -99,24 +103,30 @@ public partial class IDIS_TemplateWeaver : FormWeaverResource
public override void Clear()
{
fields.Clear();
if (templateBuilder.CurrentTemplate is null) return;
templateNameEdit.Text = templateBuilder.CurrentTemplate?.Name;
}
public override void OnStart()
{
addFieldsButton.Pressed+=AddFields;
templateNameEdit.TextSubmitted+=ChangeCurrentTemplateName;
deleteTemplateButton.Pressed += DeleteCurrentTemplate;
saveTemplateNameButton.Pressed+=()=>
{
ChangeCurrentTemplateName(templateNameEdit.Text);
};
templateNameEdit.TextSubmitted+=ChangeCurrentTemplateName;
}
private void AddFields()
{
if (templateBuilder.CurrentTemplate is null) return;
var current = templateBuilder.CurrentTemplate.Fields.ToList();
current.Add(new IDIS_TemplateForm()
{
Name = "新字段",
Type = "string",
DefaultValue = "",
Category = ""
});
templateBuilder.CurrentTemplate.Fields = current.ToArray();
@@ -127,7 +137,7 @@ public partial class IDIS_TemplateWeaver : FormWeaverResource
{
if(templateBuilder.CurrentTemplate==null) return;
if (templateBuilder.template.GetTemplates().Any(x => x.Name == newName))
if (templateBuilder.template.GetTemplates().Any(x => x.Name == newName))
// ReSharper disable once StringLiteralTypo
newName+=DateTime.Now.ToString("mmss");
@@ -136,11 +146,11 @@ public partial class IDIS_TemplateWeaver : FormWeaverResource
templateBuilder.template.ManualSave();
templateBuilder.Rebuild();
UXContextMenu
.Create()
.AddAction("New PopopMenu",null)
.Build();
}
private void DeleteCurrentTemplate()
{
if(templateBuilder.CurrentTemplate==null) return;
templateResource.DeleteTemplate(templateBuilder.CurrentTemplate.Name);
templateBuilder.Rebuild();
}
}