using System.IO; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Markup; using HMI.Base; using HMI.Core.Util; using HMI.ParameterManage.Entity; using HMI.ParameterManage.Model; using HMI.UI.Util; namespace HMI.ParameterManage { /// /// UserControl1.xaml 的交互逻辑 /// public partial class ParameterManage : PluginControl { public static string FileFolder { get; private set; } private XmlModel Model; public ParameterManage() { InitializeComponent(); } public override void InitFinish() { Model = new XmlModel(BaseFolder); FileFolder = BaseFolder; DataContext = Model; } private void UserControl_Loaded(object sender, RoutedEventArgs e) { Model.LoadProducts(); Loaded -= UserControl_Loaded; } private void Button_Click(object sender, RoutedEventArgs e) { var btn = (Button)sender; switch (btn.Name) { case "addBtn": OpenProductDialog(null); break; case "editProductBtn": OpenProductDialog((ProductData)btn.DataContext); break; case "delProductBtn": TryDeleteProduct((ProductData)btn.DataContext); break; case "delBatchBtn": TryDeleteProducts(); break; case "refrshBtn": Model.LoadProducts(); break; case "refreshParameterBtn": Model.LoadParameters(); break; case "addParameterBtn": OpenAddParameterDialog(null); break; case "editParameterBtn": OpenAddParameterDialog((ParameterData)btn.DataContext); break; case "delParameterBtn": TryDeleteParameter((ParameterData)btn.DataContext); break; case "deleteBatchParameterBtn": TryDeleteParameters(); break; default: break; } } private void OpenProductDialog(ProductData data) { var win = new ProductModal(Model) { Title = data == null ? "新增产品" : "编辑产品", Owner = Window.GetWindow(this), }; if (win.Open(data ?? new ProductData()) == true) { Model.LoadProducts(); } } private void OpenAddParameterDialog(ParameterData data) { if (Model.SelectedProduct == null) { ToastHelper.Warning(Window.GetWindow(this), "请先选择一项产品"); return; } var win = new ParameterModal(Model) { Title = data == null ? "新增参数" : "编辑参数", Owner = Window.GetWindow(this), }; if (win.Open(data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }) == true) { Model.LoadParameters(); } } private void TryDeleteProduct(ProductData data) { if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"确定要删除产品[{data.Name}]吗?该操作无法撤销") == MessageBoxResult.OK) { Model.DeleteProduct(data); Model.LoadProducts(); } } private void TryDeleteProducts() { var temp = Model.Products.Where(p => p.IsSelected).Count(); if (temp <= 0) { this.Warning("请选择要删除的产品"); return; } if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"确定要删除选中的[{temp}]条产品吗?该操作无法撤销") == MessageBoxResult.OK) { Model.DeleteProducts(); Model.LoadProducts(); } } private void TryDeleteParameter(ParameterData data) { if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"确定要删除参数[{data.Name}]吗?该操作无法撤销") == MessageBoxResult.OK) { Model.DeleteParameter(data); Model.LoadParameters(); } } private void TryDeleteParameters() { var temp = Model.Parameters.Where(p => p.IsSelected).Count(); if (temp <= 0) { this.Warning("请选择要删除的参数"); return; } if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"确定要删除选中的[{temp}]条参数吗?该操作无法撤销") == MessageBoxResult.OK) { Model.DeleteParameters(); Model.LoadParameters(); } } } }