108 lines
3.0 KiB
C#
108 lines
3.0 KiB
C#
#if Deprecated
|
|
using Godot;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using BITKit;
|
|
|
|
namespace BITFactory;
|
|
[GlobalClass]
|
|
public partial class IDIS_RegisterWeaver : FormWeaverResource
|
|
{
|
|
[Export] private NodePath handleEditPath;
|
|
[Export] private NodePath generateButtonPath;
|
|
[Export] private NodePath addReferenceButtonPath;
|
|
[Export] private NodePath referenceEditBuilderPath;
|
|
[Export] private NodePath templateBuilderPath;
|
|
|
|
private LineEdit handleEdit=>formBuilder.GetNode<LineEdit>(handleEditPath);
|
|
private Button generateButton=>formBuilder.GetNode<Button>(generateButtonPath);
|
|
private Button addReferenceButton=>formBuilder.GetNode<Button>(addReferenceButtonPath);
|
|
private NodeBuilder referenceEditBuilder=>formBuilder.GetNode<NodeBuilder>(referenceEditBuilderPath);
|
|
private TemplateBuilder templateBuilder => formBuilder.GetNode<TemplateBuilder>(templateBuilderPath);
|
|
|
|
private readonly List<IDIS_Data> _values=new();
|
|
private readonly List<string> _references=new();
|
|
public override void Weaver(Control container, IFormField formField)
|
|
{
|
|
var field = (IDIS_TemplateForm)formField;
|
|
|
|
var data = new IDIS_Data();
|
|
|
|
var vBox = container.Create<HBoxContainer>();
|
|
|
|
var label = vBox.Create<Label>();
|
|
var typeLabel = vBox.Create<Label>();
|
|
var valueEdit = vBox.Create<LineEdit>();
|
|
|
|
var myIndex = _values.Count;
|
|
_values.Add(data);
|
|
|
|
label.SizeFlagsHorizontal = Control.SizeFlags.ExpandFill;
|
|
typeLabel.SizeFlagsHorizontal = Control.SizeFlags.ExpandFill;
|
|
valueEdit.SizeFlagsHorizontal = Control.SizeFlags.ExpandFill;
|
|
|
|
label.Text = field.Name;
|
|
typeLabel.Text = field.Type;
|
|
valueEdit.PlaceholderText = field.DefaultValue;
|
|
|
|
data.Category = field.Category;
|
|
data.Handle = handleEdit.Text;
|
|
data.Format = field.Type;
|
|
data.Name = field.Name;
|
|
data.Value = field.DefaultValue;
|
|
|
|
//valueEdit.TextChanged += x => data.Value = x;
|
|
valueEdit.TextChanged += newValue =>
|
|
{
|
|
data.Value = string.IsNullOrEmpty(newValue) ? field.DefaultValue : newValue;
|
|
};
|
|
}
|
|
|
|
public override string GetContent()
|
|
{
|
|
if (string.IsNullOrEmpty(handleEdit.Text))
|
|
{
|
|
throw new InvalidOperationException("[color=red]输入的标识码为空[/color]");
|
|
}
|
|
|
|
var value = new Dictionary<object, object>
|
|
{
|
|
{ "handle", handleEdit.Text },
|
|
{ "values",_values},
|
|
{ "references",_references},
|
|
{"createUser",templateBuilder.CurrentTemplate.Name}
|
|
};
|
|
|
|
var json = JsonHelper.Get(value);
|
|
|
|
return json;
|
|
}
|
|
|
|
public override void Clear()
|
|
{
|
|
_values.Clear();
|
|
_references.Clear();
|
|
referenceEditBuilder.Clear();
|
|
}
|
|
|
|
public override void OnStart()
|
|
{
|
|
generateButton.Pressed += () =>
|
|
{
|
|
handleEdit.Text = IDIS_Service.GenerateHandle();
|
|
};
|
|
addReferenceButton.Pressed += AddReference;
|
|
}
|
|
|
|
private void AddReference()
|
|
{
|
|
var container = referenceEditBuilder.Build<UXContainer>();
|
|
var myIndex = _references.Count;
|
|
_references.Add("");
|
|
container.lineEdit.Text = string.Empty;
|
|
container.label.Text = "引用标识码:";
|
|
container.lineEdit.PlaceholderText = "8.123.99/xxxxxxxx";
|
|
container.lineEdit.TextChanged += x => _references[myIndex] = x;
|
|
}
|
|
}
|
|
#endif |