using PaintDotNet.Base.CommTool; using PaintDotNet.Base.SettingModel; using PaintDotNet.DbOpreate.DbModel; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static PaintDotNet.Base.SettingModel.RuleFocusModel; namespace PaintDotNet.Setting { /// /// 聚焦参数 /// internal class FocusingParameter : PdnBaseForm { private GroupBox groupBox1; private Button button2; private Button button1; private Label label3; private NumericUpDown numericUpDown2; private NumericUpDown numericUpDown1; private Label label2; private Label label1; private GroupBox groupBox2; private GroupBox groupBox_img; private ListView listView_rule; private RuleFocusModel ruleFocusModel; private IContainer components; private ImageList newImageList; static string filePath = Application.StartupPath + "\\RuleFouces\\RuleFoucesConfiguration.xml"; public FocusingParameter() { InitializeComponent(); InitializeLanguageText(); InitData(); } private void InitializeLanguageText() { this.groupBox1.Text = PdnResources.GetString("Menu.operation.text"); // modify by shayg 20220718 start //this.button2.Text = PdnResources.GetString("Menu.File.Save.Text"); //this.button1.Text = PdnResources.GetString("Menu.cancel.text"); this.button2.Text = PdnResources.GetString("Menu.cancel.text"); this.button1.Text = PdnResources.GetString("Menu.File.Save.Text"); // modify by shayg 20220718 end this.groupBox2.Text = PdnResources.GetString("Menu.Setting.FocusSetting.Text"); this.label3.Text = PdnResources.GetString("Menu.millisecond.text"); this.label2.Text = PdnResources.GetString("Menu.step-size.text") + ":"; this.label1.Text = PdnResources.GetString("Menu.timeinterval.text") + ":"; this.Text = PdnResources.GetString("Menu.Setting.FocusSetting.Text"); } private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.button2 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.label3 = new System.Windows.Forms.Label(); this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.groupBox_img = new System.Windows.Forms.GroupBox(); this.listView_rule = new System.Windows.Forms.ListView(); this.newImageList = new System.Windows.Forms.ImageList(this.components); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); this.groupBox_img.SuspendLayout(); this.SuspendLayout(); // // groupBox1 // this.groupBox1.Controls.Add(this.button2); this.groupBox1.Controls.Add(this.button1); this.groupBox1.Location = new System.Drawing.Point(123, 12); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(415, 55); this.groupBox1.TabIndex = 1; this.groupBox1.TabStop = false; this.groupBox1.Text = "操作"; // // button2 // this.button2.Location = new System.Drawing.Point(334, 20); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(75, 23); this.button2.TabIndex = 1; this.button2.Text = "取消"; this.button2.UseVisualStyleBackColor = true; this.button2.Click += new System.EventHandler(this.button2_Click); // // button1 // this.button1.Location = new System.Drawing.Point(253, 20); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 0; this.button1.Text = "确定"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // groupBox2 // this.groupBox2.Controls.Add(this.label3); this.groupBox2.Controls.Add(this.numericUpDown2); this.groupBox2.Controls.Add(this.numericUpDown1); this.groupBox2.Controls.Add(this.label2); this.groupBox2.Controls.Add(this.label1); this.groupBox2.Location = new System.Drawing.Point(123, 73); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(425, 419); this.groupBox2.TabIndex = 2; this.groupBox2.TabStop = false; this.groupBox2.Text = "聚焦参数"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(232, 43); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(29, 12); this.label3.TabIndex = 4; this.label3.Text = "毫秒"; // // numericUpDown2 // this.numericUpDown2.Location = new System.Drawing.Point(126, 81); this.numericUpDown2.Maximum = new decimal(new int[] { 10000, 0, 0, 0}); this.numericUpDown2.Name = "numericUpDown2"; this.numericUpDown2.Size = new System.Drawing.Size(100, 21); this.numericUpDown2.TabIndex = 3; this.numericUpDown2.Value = new decimal(new int[] { 100, 0, 0, 0}); // // numericUpDown1 // this.numericUpDown1.Increment = new decimal(new int[] { 10, 0, 0, 0}); this.numericUpDown1.Location = new System.Drawing.Point(126, 40); this.numericUpDown1.Maximum = new decimal(new int[] { 1000, 0, 0, 0}); this.numericUpDown1.Name = "numericUpDown1"; this.numericUpDown1.Size = new System.Drawing.Size(100, 21); this.numericUpDown1.TabIndex = 2; this.numericUpDown1.Value = new decimal(new int[] { 100, 0, 0, 0}); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(35, 84); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(41, 12); this.label2.TabIndex = 1; this.label2.Text = "步长:"; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(35, 43); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(65, 12); this.label1.TabIndex = 0; this.label1.Text = "采图时间:"; // // groupBox_img // this.groupBox_img.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); this.groupBox_img.Controls.Add(this.listView_rule); this.groupBox_img.Location = new System.Drawing.Point(13, 13); this.groupBox_img.Margin = new System.Windows.Forms.Padding(4); this.groupBox_img.Name = "groupBox_img"; this.groupBox_img.Padding = new System.Windows.Forms.Padding(4); this.groupBox_img.Size = new System.Drawing.Size(103, 479); this.groupBox_img.TabIndex = 14; this.groupBox_img.TabStop = false; this.groupBox_img.Text = "标尺名称"; // // listView_rule // this.listView_rule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); this.listView_rule.FullRowSelect = true; this.listView_rule.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; this.listView_rule.HideSelection = false; this.listView_rule.Location = new System.Drawing.Point(9, 19); this.listView_rule.Margin = new System.Windows.Forms.Padding(4); this.listView_rule.MultiSelect = false; this.listView_rule.Name = "listView_rule"; this.listView_rule.Size = new System.Drawing.Size(86, 452); this.listView_rule.TabIndex = 0; this.listView_rule.UseCompatibleStateImageBehavior = false; this.listView_rule.SelectedIndexChanged += new System.EventHandler(this.listView_rule_SelectedIndexChanged); // // newImageList // this.newImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.newImageList.ImageSize = new System.Drawing.Size(16, 16); this.newImageList.TransparentColor = System.Drawing.Color.Transparent; // // FocusingParameter // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.ClientSize = new System.Drawing.Size(550, 504); this.Controls.Add(this.groupBox_img); this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupBox1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "FocusingParameter"; this.Text = "聚焦参数"; this.Controls.SetChildIndex(this.groupBox1, 0); this.Controls.SetChildIndex(this.groupBox2, 0); this.Controls.SetChildIndex(this.groupBox_img, 0); this.groupBox1.ResumeLayout(false); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); this.groupBox_img.ResumeLayout(false); this.ResumeLayout(false); } /// /// 初始化数据 /// private void InitData() { //初始化头 this.listView_rule.View = View.Details; ColumnHeader header0 = new ColumnHeader(); header0.Text = ""; header0.Width = 180; this.listView_rule.Columns.Add(header0); #region [获取标尺] List list = Startup.instance.mic_rulersAll.Where(m => m.id >= 0).ToList(); if (!System.IO.File.Exists(filePath)) { ruleFocusModel = new RuleFocusModel(); if (list != null && list.Count > 0) { if (ruleFocusModel.ModelList == null) { ruleFocusModel.ModelList = new List(); } for (int i = 0; i < list.Count; i++) { mic_rulers rule = list[i]; RuleFocusDetailsModel model = new RuleFocusDetailsModel(); model.RuleId = rule.id; model.RuleName = rule.ruler_name; ruleFocusModel.ModelList.Add(model); } } Directory.CreateDirectory(Application.StartupPath + "\\RuleFouces\\"); XmlSerializeHelper.Save(ruleFocusModel, filePath); } else { ruleFocusModel = XmlSerializeHelper.Load(filePath); foreach (var s in list) { var mod = ruleFocusModel.ModelList.Where(m => m.RuleId == s.id).FirstOrDefault(); if (mod != null) { continue; } var model = new RuleFocusDetailsModel(); model.RuleId = s.id; model.RuleName = s.ruler_name; ruleFocusModel.ModelList.Add(model); } XmlSerializeHelper.Save(ruleFocusModel, filePath); } //listView_rule.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.ColumnContent); foreach (var s in ruleFocusModel.ModelList) { ListViewItem item = new ListViewItem(); item.Tag = s; item.Text = s.RuleName; this.listView_rule.Items.Add(item); } #endregion } /// /// 取消按钮 /// /// /// private void button2_Click(object sender, EventArgs e) { this.Close(); } /// /// 确定按钮 /// /// /// private void button1_Click(object sender, EventArgs e) { if (this.listView_rule.FocusedItem != null && this.listView_rule.FocusedItem.Selected) { RuleFocusDetailsModel model = (RuleFocusDetailsModel)this.listView_rule.FocusedItem.Tag; var changeModel = this.ruleFocusModel.ModelList.Where(m => m.RuleId == model.RuleId).FirstOrDefault(); if (changeModel != null) { changeModel.TimeLag = (int)this.numericUpDown1.Value; changeModel.StepLength = (int)this.numericUpDown2.Value; XmlSerializeHelper.Save(ruleFocusModel, filePath); } } } /// /// 选中标尺 /// /// /// private void listView_rule_SelectedIndexChanged(object sender, EventArgs e) { if (this.listView_rule.FocusedItem != null && this.listView_rule.FocusedItem.Selected) { RuleFocusDetailsModel model = (RuleFocusDetailsModel)this.listView_rule.FocusedItem.Tag; this.numericUpDown1.Value = model.TimeLag; this.numericUpDown2.Value = (decimal)model.StepLength; } } #region [获取当前系统激活的标尺] public static RuleFocusDetailsModel getRuleFocus() { #region [获取标尺] List list = Startup.instance.mic_rulersAll.Where(m => m.id >= 0).ToList(); RuleFocusModel modelList = new RuleFocusModel(); if (!System.IO.File.Exists(filePath)) { Directory.CreateDirectory(Application.StartupPath + "\\RuleFouces\\"); if (list != null && list.Count > 0) { modelList.ModelList = new List(); for (int i = 0; i < list.Count; i++) { var rule = list[i]; modelList.ModelList.Add(new RuleFocusDetailsModel(rule.id, rule.ruler_name)); } } XmlSerializeHelper.Save(modelList, filePath); } else { modelList = XmlSerializeHelper.Load(filePath); foreach (var s in list) { if (!modelList.ModelList.Any(m => m.RuleId == s.id)) { modelList.ModelList.Add(new RuleFocusDetailsModel(s.id, s.ruler_name)); } } XmlSerializeHelper.Save(modelList, filePath); } var activationRules = Startup.instance.ruleDB; if (activationRules != null) { var thisNum = modelList.ModelList.Where(m => m.RuleId == activationRules.id).FirstOrDefault(); if (thisNum != null) { return thisNum; } } return new RuleFocusDetailsModel(); #endregion } #endregion } }