| | |
| | | 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 |
| | |
| | | /// </summary> |
| | | public partial class ParameterManage : PluginControl |
| | | { |
| | | private ControlModel Model; |
| | | private SqliteHelper SqliteHelper; |
| | | private XmlModel Model; |
| | | |
| | | public ParameterManage() |
| | | { |
| | |
| | | |
| | | public override void InitFinish() |
| | | { |
| | | string dbpath = Path.Combine(BaseFolder, "ParameterManage.db"); |
| | | if (!File.Exists(dbpath)) |
| | | { |
| | | SqliteHelper.CreateDatabase(dbpath); |
| | | } |
| | | SqliteHelper = new SqliteHelper(dbpath); |
| | | SqliteHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS product ( |
| | | id INTEGER PRIMARY KEY AUTOINCREMENT, |
| | | name TEXT NOT NULL, |
| | | isMaster INTEGER, |
| | | parentId INTEGER, |
| | | UNIQUE(name) |
| | | ); |
| | | CREATE TABLE IF NOT EXISTS parameter ( |
| | | id INTEGER PRIMARY KEY AUTOINCREMENT, |
| | | name TEXT NOT NULL, |
| | | value TEXT, |
| | | unit TEXT, |
| | | description TEXT, |
| | | pGroup TEXT, |
| | | productName TEXT, |
| | | UNIQUE(productName,name) |
| | | ); |
| | | "); |
| | | Model = new ControlModel(SqliteHelper); |
| | | Model = new XmlModel(BaseFolder); |
| | | DataContext = Model; |
| | | } |
| | | |
| | |
| | | switch (btn.Name) |
| | | { |
| | | case "addBtn": |
| | | OpenAddDialog(); |
| | | 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(); |
| | |
| | | case "editParameterBtn": |
| | | OpenAddParameterDialog((ParameterData)btn.DataContext); |
| | | break; |
| | | case "delParameterBtn": |
| | | TryDeleteParameter((ParameterData)btn.DataContext); |
| | | break; |
| | | case "deleteBatchParameterBtn": |
| | | TryDeleteParameters(); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private void OpenAddDialog() |
| | | private void OpenProductDialog(ProductData data) |
| | | { |
| | | var win = new ProductModal |
| | | var win = new ProductModal(Model) |
| | | { |
| | | Title = "新增产品", |
| | | Title = data == null ? "新增产品" : "编辑产品", |
| | | Owner = Window.GetWindow(this), |
| | | sqliteHelper = SqliteHelper |
| | | }; |
| | | if (win.Open(new ProductData()) == true) |
| | | if (win.Open(data ?? new ProductData()) == true) |
| | | { |
| | | Model.LoadProducts(); |
| | | } |
| | |
| | | ToastHelper.Warning(Window.GetWindow(this), "请先选择一项产品"); |
| | | return; |
| | | } |
| | | var win = new ParameterModal |
| | | var win = new ParameterModal(Model) |
| | | { |
| | | Title = data == null ? "新增参数" : "编辑参数", |
| | | Owner = Window.GetWindow(this), |
| | | sqliteHelper = SqliteHelper |
| | | }; |
| | | if (win.Open(data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }) == true) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |