JD2022-TU1/main/tools/modules/JD.TplEditor/Document/TplDocument.cs

47 lines
1.3 KiB
C#

using System;
using JD.Serialization;
using Plume.Interfaces.WPF.Documents;
using Plume.Interfaces.WPF.Documents.EventArgs;
namespace JD.TplEditor.Document
{
public class TplDocument : Document<TemplateObj>
{
public static readonly LuaSerializer Serializer = new LuaSerializer()
{
IgnoreDefaultValues = false,
CommentDefaultValues = true,
IncludeSpecialFields = true,
};
public TplDocument()
{
Loaded += OnLoaded;
}
private void OnLoaded(object sender, LoadEventArgs e)
{
}
public override IDocumentReader<TemplateObj> Reader { get; } = new TplDocumentReader();
public override IDocumentWriter<TemplateObj> Writer { get; } = new TplDocumentWriter();
private class TplDocumentReader : IDocumentReader<TemplateObj>
{
public TemplateObj Read(Uri uri)
{
return Serializer.LoadObjectFromFile(uri.OriginalString, typeof(TemplateObj)) as TemplateObj;
}
}
private class TplDocumentWriter : IDocumentWriter<TemplateObj>
{
public void Write(Uri uri, TemplateObj content)
{
Serializer.SaveObjectToFile(content, uri.OriginalString);
}
}
}
}