using System; using System.IO; using HMI.Core.Entity; using HMI.Core.Util; namespace HMI.Core.Setting { public class SystemSetting { public static SystemSetting Instance { get; private set; } /// /// 系统设置改变事件 /// public static event EventHandler SystemSettingChanged; private static string FilePath = Path.Combine(PathHelper.SettingFolder, "SystemConfig.xml"); static SystemSetting() { LoadFromXml(); } private SystemSetting() { } public string LogoPath { get; private set; } = ".\\JingCeLogo.png"; public string WindowTitle { get; private set; } = "产品测试平台"; public string PlcIp { get; private set; } public bool PlcEnabled { get; private set; } public string CurrentLanguage { get; private set; } = "zh-CN"; private static void LoadFromXml() { if (Instance != null) return; if (!File.Exists(FilePath)) { Instance = new SystemSetting(); } else { SystemSettingModel model = XmlHelper.DeserializeFromXml(FilePath); SystemSetting setting = new SystemSetting(); BeanUtil.Copy(model, setting); Instance = setting; } } public static void ReLoad() { if (!File.Exists(FilePath)) { return; } else { SystemSettingModel model = XmlHelper.DeserializeFromXml(FilePath); SystemSetting setting = new SystemSetting(); BeanUtil.Copy(model, setting); Instance = setting; } SystemSettingChanged?.Invoke(null, Instance); } } public class SystemSettingModel : NotifyBase { private string logoPath; public string LogoPath { get => logoPath; set { Set(ref logoPath, value); } } private string windowTitle; public string WindowTitle { get => windowTitle; set { Set(ref windowTitle, value); } } private string plcIp; public string PlcIp { get => plcIp; set { Set(ref plcIp, value); } } private bool plcEnabled; public bool PlcEnabled { get => plcEnabled; set { Set(ref plcEnabled, value); } } private string currentLanguage; public string CurrentLanguage { get => currentLanguage; set { Set(ref currentLanguage, value); } } } }