using HMI.Base;
|
using HMI.Core.Api;
|
using HMI.Core.Util;
|
using HMI.UI.Util;
|
using System;
|
using System.Collections.ObjectModel;
|
using System.Windows;
|
using System.Windows.Controls;
|
|
namespace HMI.SettingControl
|
{
|
/// <summary>
|
/// UserControl1.xaml 的交互逻辑
|
/// </summary>
|
public partial class SettingControl : PluginControl
|
{
|
#region 属性
|
private ObservableCollection<TabItem> tabItems;
|
|
public ObservableCollection<TabItem> TabItems
|
{
|
get { return tabItems; }
|
set { Set(ref tabItems, value); }
|
}
|
#endregion
|
|
public SettingControl()
|
{
|
DataContext = this;
|
InitializeComponent();
|
}
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
TabItems = new ObservableCollection<TabItem>() {
|
new TabItem
|
{
|
Header = "系统设置",
|
Content = new SystemConfig()
|
}
|
};
|
foreach (var d in PluginLoader.Instance.Plugins)
|
{
|
if (d.SettingControl == null) continue;
|
TabItems.Add(new TabItem
|
{
|
Header = d.Name,
|
Tag = d,
|
Content = d.SettingControl
|
});
|
}
|
tabControl.SelectedIndex = 0;
|
Loaded -= UserControl_Loaded;
|
}
|
|
private void Button_Click(object sender, RoutedEventArgs e)
|
{
|
Button btn = sender as Button;
|
switch (btn.Name)
|
{
|
case "resetBtn":
|
ResetCurrentConfig();
|
break;
|
case "saveBtn":
|
SaveAllConfig();
|
break;
|
default:
|
break;
|
}
|
}
|
|
private void SaveAllConfig()
|
{
|
foreach (var d in tabControl.ItemsSource)
|
{
|
if (!(d is TabItem tabItem)) continue;
|
if (tabItem.Content is IConfigManager manager)
|
{
|
try
|
{
|
manager.SaveConfig();
|
this.Success(this.lang("App.SaveSuccess"));
|
}
|
catch (Exception ex)
|
{
|
MsgBoxHelper.Error(this, $"{tabItem.Header}{this.lang("App.SaveFailed")}: {ex.Message}");
|
}
|
}
|
}
|
}
|
|
private void SaveCurrentConfig()
|
{
|
var content = tabControl.SelectedItem as TabItem;
|
if (content is IConfigManager manager)
|
{
|
try
|
{
|
manager.SaveConfig();
|
}
|
catch (Exception ex)
|
{
|
MsgBoxHelper.Error(this, $"{this.lang("App.SaveFailed")}: {ex.Message}");
|
}
|
}
|
}
|
|
private void ResetCurrentConfig()
|
{
|
var tabItem = tabControl.SelectedItem as TabItem;
|
if (tabItem.Content is IConfigManager manager)
|
{
|
try
|
{
|
manager.ResetConfig();
|
}
|
catch (Exception ex)
|
{
|
MsgBoxHelper.Error(this, $"{this.lang("App.SaveFailed")}: {ex.Message}");
|
}
|
}
|
}
|
}
|
}
|