| | |
| | | using System.Collections.ObjectModel; |
| | | using System; |
| | | using System.Collections.ObjectModel; |
| | | using System.ComponentModel; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using HMI.Base; |
| | | using HMI.Core.Api; |
| | | using HMI.UI.Util; |
| | | using log4net; |
| | | |
| | | namespace HMI.SettingControl |
| | |
| | | /// </summary> |
| | | public partial class SettingControl : PluginControl |
| | | { |
| | | #region ... |
| | | public virtual event PropertyChangedEventHandler PropertyChanged; |
| | | |
| | | protected virtual void Set(string name) |
| | | { |
| | | |
| | | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); |
| | | } |
| | | |
| | | protected void Set<T>(ref T old, T @new, [CallerMemberName] string propertyName = null) |
| | | { |
| | | old = @new; |
| | | if (propertyName != null) |
| | | { |
| | | Set(propertyName); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 属性 |
| | | private ILog log; |
| | | private ObservableCollection<TabItem> tabItems; |
| | | |
| | | public ObservableCollection<TabItem> TabItems |
| | | { |
| | | get { return tabItems; } |
| | | set { Set(ref tabItems, value); } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region PluginApi |
| | | |
| | | public object Init() |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | public object Active() |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | public object DeActive() |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | public void OnTabChange(object sender, object args) |
| | | { |
| | | |
| | | } |
| | | |
| | | public void SetLogger(ILog logger) |
| | | { |
| | | log = logger; |
| | | } |
| | | #endregion |
| | | |
| | |
| | | } |
| | | 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(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MsgBoxHelper.Error(this, $"保存{tabItem.Header}配置失败!{ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | this.Success("保存成功"); |
| | | } |
| | | |
| | | private void SaveCurrentConfig() |
| | | { |
| | | var content = tabControl.SelectedItem as TabItem; |
| | | if (content is IConfigManager manager) |
| | | { |
| | | try |
| | | { |
| | | manager.SaveConfig(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MsgBoxHelper.Error(this, $"保存配置失败!{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, $"保存配置失败!{ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |