using System.IO; using System.Windows; using System.Windows.Controls; using HMI.Base; using HMI.Core.Util; using HMI.ParameterManage.Entity; using HMI.UI.Util; namespace HMI.ParameterManage { /// /// UserControl1.xaml 的交互逻辑 /// public partial class ParameterManage : PluginControl { private ControlModel Model; private SqliteHelper SqliteHelper; public ParameterManage() { InitializeComponent(); } 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); 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": OpenAddDialog(); break; case "refrshBtn": Model.LoadProducts(); break; case "refreshParameterBtn": Model.LoadParameters(); break; case "addParameterBtn": OpenAddParameterDialog(null); break; case "editParameterBtn": OpenAddParameterDialog((ParameterData)btn.DataContext); break; default: break; } } private void OpenAddDialog() { var win = new ProductModal { Title = "新增产品", Owner = Window.GetWindow(this), sqliteHelper = SqliteHelper }; if (win.Open(new ProductData()) == true) { Model.LoadProducts(); } } private void OpenAddParameterDialog(ParameterData data) { if (Model.SelectedProduct == null) { ToastHelper.Warning(Window.GetWindow(this), "请先选择一项产品"); return; } var win = new ParameterModal { Title = data == null ? "新增参数" : "编辑参数", Owner = Window.GetWindow(this), sqliteHelper = SqliteHelper }; if (win.Open(data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }) == true) { Model.LoadParameters(); } } } }