using PaintDotNet.Base.CommTool;
using PaintDotNet.Base.Enum;
using PaintDotNet.Base.Functionodel;
using PaintDotNet.CustomControl;
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;
namespace PaintDotNet.GeneralAnalysis
{
///
/// 颗粒统计-条件设置
///
internal class DebrisSelectionValidConditionDialog : PdnBaseForm
{
private GroupBox groupBox1;
private Button button4;
private Button button3;
private Button button2;
private GroupBox groupBox2;
private Button button5;
private Button button6;
private Button button7;
private Button button8;
private GroupBox groupBox3;
private Button button1;
private ListView listView1;
private GroupBox groupBox4;
private PictureBox pictureBox1;
private RichTextBox richTextBox1;
private ListView listView2;
private DataGridView dataGridView1;
///
/// 父级窗体
///
private DebrisSelectionDialog debrisSelectionDialog;
///
/// xml对象
///
private DebrisSelectionModel debrisSelectionModel;
public DebrisSelectionValidConditionDialog(DebrisSelectionDialog debrisSelectionDialog)
{
this.debrisSelectionDialog = debrisSelectionDialog;
this.debrisSelectionModel = debrisSelectionDialog.debrisSelectionModel;
InitializeComponent();
InitializeLanguageText();
InitOtherTools();
InitSavedCondition();
}
private void InitializeLanguageText()
{
this.button8.Text = PdnResources.GetString("Menu.LabelAction.MoveDownAction.Text");
this.groupBox3.Text = PdnResources.GetString("Menu.Generalanalysis.Particlestatistics.Conditionselection.text");
this.groupBox4.Text = PdnResources.GetString("Menu.Generalanalysis.Particlestatistics.Descriptionofstatisticaldata.text");
this.Text = PdnResources.GetString("Menu.Generalanalysis.Particlestatistics.Conditionsetting.text");
this.groupBox1.Text = PdnResources.GetString("Menu.operation.text");
this.button4.Text = PdnResources.GetString("Menu.File.Save.Text");
this.button3.Text = PdnResources.GetString("Menu.Edit.Delete.Text");
this.button2.Text = PdnResources.GetString("Menu.Rename.text");
this.button1.Text = PdnResources.GetString("Menu.New.text");
this.groupBox2.Text = PdnResources.GetString("Menu.Generalanalysis.Particlestatistics.Aconditionalrecordhasbeenadded.text");
this.button5.Text = "< " + PdnResources.GetString("Menu.Addto.text");
this.button6.Text = PdnResources.GetString("Menu.Moveout.text") + " >";
this.button7.Text = PdnResources.GetString("Menu.LabelAction.MoveUpAction.Text");
}
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.button4 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.listView2 = new System.Windows.Forms.ListView();
this.button5 = new System.Windows.Forms.Button();
this.button6 = new System.Windows.Forms.Button();
this.button7 = new System.Windows.Forms.Button();
this.button8 = new System.Windows.Forms.Button();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.listView1 = new System.Windows.Forms.ListView();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.groupBox3.SuspendLayout();
this.groupBox4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.button4);
this.groupBox1.Controls.Add(this.button3);
this.groupBox1.Controls.Add(this.button2);
this.groupBox1.Controls.Add(this.button1);
this.groupBox1.Location = new System.Drawing.Point(13, 13);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(705, 54);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "操作";
//
// button4
//
this.button4.Location = new System.Drawing.Point(618, 20);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(75, 23);
this.button4.TabIndex = 3;
this.button4.Text = "保存";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// button3
//
this.button3.Location = new System.Drawing.Point(538, 20);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(75, 23);
this.button3.TabIndex = 2;
this.button3.Text = "删除";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(457, 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(376, 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.dataGridView1);
this.groupBox2.Controls.Add(this.listView2);
this.groupBox2.Location = new System.Drawing.Point(13, 74);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(407, 411);
this.groupBox2.TabIndex = 1;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "已添加条件设置记录";
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dataGridView1.BackgroundColor = System.Drawing.Color.White;
this.dataGridView1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;
this.dataGridView1.Location = new System.Drawing.Point(135, 21);
this.dataGridView1.MultiSelect = false;
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.RowHeadersVisible = false;
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dataGridView1.Size = new System.Drawing.Size(266, 367);
this.dataGridView1.TabIndex = 1;
this.dataGridView1.CurrentCellDirtyStateChanged += new System.EventHandler(this.dataGridView1_CurrentCellDirtyStateChanged);
//
// listView2
//
this.listView2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.listView2.FullRowSelect = true;
this.listView2.HideSelection = false;
this.listView2.Location = new System.Drawing.Point(7, 21);
this.listView2.MultiSelect = false;
this.listView2.Name = "listView2";
this.listView2.Size = new System.Drawing.Size(121, 367);
this.listView2.TabIndex = 0;
this.listView2.UseCompatibleStateImageBehavior = false;
this.listView2.SelectedIndexChanged += new System.EventHandler(this.listView2_SelectedIndexChanged);
//
// button5
//
this.button5.Location = new System.Drawing.Point(426, 173);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(75, 23);
this.button5.TabIndex = 2;
this.button5.Text = "添加";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
// button6
//
this.button6.Location = new System.Drawing.Point(426, 202);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(75, 23);
this.button6.TabIndex = 3;
this.button6.Text = "移出";
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.button6_Click);
//
// button7
//
this.button7.Location = new System.Drawing.Point(426, 353);
this.button7.Name = "button7";
this.button7.Size = new System.Drawing.Size(75, 23);
this.button7.TabIndex = 4;
this.button7.Text = "向上移动";
this.button7.UseVisualStyleBackColor = true;
this.button7.Click += new System.EventHandler(this.button7_Click);
//
// button8
//
this.button8.Location = new System.Drawing.Point(426, 382);
this.button8.Name = "button8";
this.button8.Size = new System.Drawing.Size(75, 23);
this.button8.TabIndex = 5;
this.button8.Text = "向下移动";
this.button8.UseVisualStyleBackColor = true;
this.button8.Click += new System.EventHandler(this.button8_Click);
//
// groupBox3
//
this.groupBox3.Controls.Add(this.groupBox4);
this.groupBox3.Controls.Add(this.listView1);
this.groupBox3.Location = new System.Drawing.Point(507, 74);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(211, 411);
this.groupBox3.TabIndex = 6;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "条件选择";
//
// groupBox4
//
this.groupBox4.Controls.Add(this.richTextBox1);
this.groupBox4.Controls.Add(this.pictureBox1);
this.groupBox4.Location = new System.Drawing.Point(17, 279);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(182, 126);
this.groupBox4.TabIndex = 1;
this.groupBox4.TabStop = false;
this.groupBox4.Visible = false;
//
// richTextBox1
//
this.richTextBox1.BackColor = System.Drawing.SystemColors.Control;
this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.richTextBox1.Location = new System.Drawing.Point(95, 29);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.ReadOnly = true;
this.richTextBox1.Size = new System.Drawing.Size(75, 80);
this.richTextBox1.TabIndex = 1;
this.richTextBox1.Text = "";
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.White;
this.pictureBox1.Location = new System.Drawing.Point(10, 29);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(80, 80);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// listView1
//
this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listView1.FullRowSelect = true;
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(27, 20);
this.listView1.MultiSelect = false;
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(160, 385);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
this.listView1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseDoubleClick);
//
// DebrisSelectionValidConditionDialog
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.ClientSize = new System.Drawing.Size(730, 497);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.button8);
this.Controls.Add(this.button7);
this.Controls.Add(this.button6);
this.Controls.Add(this.button5);
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 = "DebrisSelectionValidConditionDialog";
this.Text = "条件设置";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.DebrisSelectionValidConditionDialog_FormClosed);
this.Controls.SetChildIndex(this.groupBox1, 0);
this.Controls.SetChildIndex(this.groupBox2, 0);
this.Controls.SetChildIndex(this.button5, 0);
this.Controls.SetChildIndex(this.button6, 0);
this.Controls.SetChildIndex(this.button7, 0);
this.Controls.SetChildIndex(this.button8, 0);
this.Controls.SetChildIndex(this.groupBox3, 0);
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.groupBox3.ResumeLayout(false);
this.groupBox4.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
}
///
/// 加载其他工具
///
private void InitOtherTools()
{
//
//已添加listview
//
this.listView2.View = View.Details;
ColumnHeader header0 = new ColumnHeader();
header0.Text = PdnResources.GetString("Menu.Generalanalysis.Particlestatistics.Alistofconditionshasbeenadded.text");
header0.Width = 114;
this.listView2.Columns.Add(header0);
this.listView2.SelectedItems.Clear();
//
//已添加datagridview
//
this.dataGridView1.ColumnHeadersHeight = 35;
DataGridViewTextBoxColumn h1 = new DataGridViewTextBoxColumn();
h1.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
h1.Width = 80;
DataGridViewComboBoxColumn h2 = new DataGridViewComboBoxColumn();
h2.Width = 55;
DataGridViewTextBoxColumn h3 = new DataGridViewTextBoxColumn();
h3.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
h3.Width = 55;
DataGridViewComboBoxColumn h4 = new DataGridViewComboBoxColumn();
h4.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
h4.Width = 55;
this.dataGridView1.Columns.Add(h1);
this.dataGridView1.Columns.Add(h2);
this.dataGridView1.Columns.Add(h3);
this.dataGridView1.Columns.Add(h4);
DataGridViewHelper helper = new DataGridViewHelper(this.dataGridView1);
helper.Headers.Add(new DataGridViewHelper.TopHeader(0, 1, PdnResources.GetString("Menu.projectname.text")));
helper.Headers.Add(new DataGridViewHelper.TopHeader(1, 1, PdnResources.GetString("Menu.judgementconditions.text")));
helper.Headers.Add(new DataGridViewHelper.TopHeader(2, 1, PdnResources.GetString("Menu.Conditionvalue.text")));
helper.Headers.Add(new DataGridViewHelper.TopHeader(3, 1, PdnResources.GetString("Menu.associatedcondition.text")));
this.dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;
this.dataGridView1.Columns[0].ReadOnly = true;
this.dataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//文字居中
this.dataGridView1.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable;
this.dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
this.dataGridView1.Columns[2].SortMode = DataGridViewColumnSortMode.NotSortable;
this.dataGridView1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
this.dataGridView1.Columns[3].SortMode = DataGridViewColumnSortMode.NotSortable;
this.dataGridView1.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
this.dataGridView1.AllowUserToResizeRows = false;
this.dataGridView1.AllowUserToResizeColumns = false;
//
//条件选择listview
//
this.listView1.View = View.Details;
ColumnHeader header1 = new ColumnHeader();
header1.Text = PdnResources.GetString("Menu.Generalanalysis.Particlestatistics.Conditionlist.text");
header1.Width = 138;
this.listView1.Columns.Add(header1);
foreach (KeyValuePair entry in InvariantData.debrisSelectionparameters)
{
ListViewItem listViewItem = new ListViewItem();
listViewItem.Tag = entry.Key;
listViewItem.SubItems[0].Text = entry.Value.ToString();
this.listView1.Items.Add(listViewItem);
}
this.listView1.SelectedItems.Clear();
}
///
/// 加载已保存的条件
///
private void InitSavedCondition()
{
if(this.debrisSelectionModel != null && this.debrisSelectionModel.debrisSelectionList.Count > 0)
{
for(int i = 0; i < this.debrisSelectionModel.debrisSelectionList.Count; i++)
{
ListViewItem listViewItem = new ListViewItem();
listViewItem.Name = this.debrisSelectionModel.debrisSelectionList[i].itemName;
listViewItem.SubItems[0].Text = this.debrisSelectionModel.debrisSelectionList[i].itemName;
this.listView2.Items.Add(listViewItem);
}
this.listView2.SelectedItems.Clear();
}
}
///
/// 条件选择的切换事件
///
///
///
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.listView1.SelectedItems != null && this.listView1.SelectedItems.Count == 1)
{
switch ((DebrisSelectionParameters)Enum.Parse(typeof(DebrisSelectionParameters), this.listView1.SelectedItems[0].Tag.ToString()))
{
case DebrisSelectionParameters.area:
this.richTextBox1.Text = PdnResources.GetString("Menu.areaofaregionthatit.Text")+"。";
this.pictureBox1.Image = PdnResources.GetImageResource("Images.CalcArea.png").Reference;
break;
case DebrisSelectionParameters.areaRatio:
this.richTextBox1.Text = PdnResources.GetString("Menu.heratiooftheareaofanentire.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.perimeter:
this.richTextBox1.Text = PdnResources.GetString("Menu.Theperimeterregion.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.longAxis:
this.richTextBox1.Text = PdnResources.GetString("Menu.ongsideofthesmallestenclosingrect.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.shortAxis:
this.richTextBox1.Text = PdnResources.GetString("Menu.rtsideofthesmallestenclosingrectangleofregion.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.centerX:
this.richTextBox1.Text = PdnResources.GetString("Menu.atessmallestenclosingrectangleo.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.centerY:
this.richTextBox1.Text = PdnResources.GetString("Menu.ordinateYofthecenterpointofthe.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.inclinationAngle:
this.richTextBox1.Text = PdnResources.GetString("Menu.reafitstheAngleofthelon.Text")+"。";
this.pictureBox1.Image = PdnResources.GetImageResource("Images.EllipseAngle.png").Reference;
break;
case DebrisSelectionParameters.objectAppearance:
this.richTextBox1.Text = PdnResources.GetString("Menu.aspectratiooftheenclosingr.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.height:
this.richTextBox1.Text = PdnResources.GetString("Menu.heightofanareaadjacenttoarec.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.width:
this.richTextBox1.Text = PdnResources.GetString("Menu.thofarectangleurroundingaregio.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.aspectRatio:
this.richTextBox1.Text = PdnResources.GetString("Menu.oofwidthtoheightofaregionenclosin.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.redDensity:
this.richTextBox1.Text = PdnResources.GetString("Menu.Themaximumgrayvalueofanarear.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.greenDensity:
this.richTextBox1.Text = PdnResources.GetString("Menu.ximumgrayvalueofanareagreenhannel.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.blueDensity:
this.richTextBox1.Text = PdnResources.GetString("Menu.grayvalueofanareabluechannel.Text")+"。";
this.pictureBox1.Image = null;
break;
/*case DebrisSelectionParameters.maxDensity:
break;
case DebrisSelectionParameters.minDensity:
break;
case DebrisSelectionParameters.avgDensity:
break;
case DebrisSelectionParameters.sumDensity:
break;*/
case DebrisSelectionParameters.majorAxis:
this.richTextBox1.Text = PdnResources.GetString("Menu.Halfofthelongsid.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.minorAxis:
this.richTextBox1.Text = PdnResources.GetString("Menu.shortestsideofthesmallestenclosingrectangleofa.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.circumcircleDiameter:
this.richTextBox1.Text = PdnResources.GetString("Menu.rofthesmallestcircumscribedcircle.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.nodularity:
this.richTextBox1.Text = PdnResources.GetString("Menu.tioftheareaofaregiontotheare.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.equalCircleDiameter:
this.richTextBox1.Text = PdnResources.GetString("Menu.diameterofanareawhose.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.maxCaliperDiameter:
this.richTextBox1.Text = PdnResources.GetString("Menu.maximudeterminedbasedondistancemea.Text")+"。";
this.pictureBox1.Image = PdnResources.GetImageResource("Images.FeretMaximum.png").Reference;
break;
case DebrisSelectionParameters.minCaliperDiameter:
this.richTextBox1.Text = PdnResources.GetString("Menu.umcaliperdiameterisd.Text")+"。";
this.pictureBox1.Image = PdnResources.GetImageResource("Images.FeretMaximum.png").Reference;
break;
case DebrisSelectionParameters.avgCaliperDiameter:
this.richTextBox1.Text = PdnResources.GetString("Menu.rminedbasedodistancmeasuremenandtheminimumva.Text")+"。";
this.pictureBox1.Image = PdnResources.GetImageResource("Images.FeretMaximum.png").Reference;
break;
case DebrisSelectionParameters.maxGray:
this.richTextBox1.Text = PdnResources.GetString("Menu.Themaximumgrayvalueof.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.minGray:
this.richTextBox1.Text = PdnResources.GetString("Menu.Theminimumgrayvalueofanarea.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.avgGray:
this.richTextBox1.Text = PdnResources.GetString("Menu.Theaveragegrayvalueofanarea.Text")+"。";
this.pictureBox1.Image = null;
break;
case DebrisSelectionParameters.fiberLength:
this.richTextBox1.Text = PdnResources.GetString("Menu.Thelengthoafibrousregion.Text")+"。";
this.pictureBox1.Image = PdnResources.GetImageResource("Images.FibrelengthFormula.png").Reference;
break;
case DebrisSelectionParameters.fillArea:
this.richTextBox1.Text = PdnResources.GetString("Menu.Thelengthoafibrousregion.Text") + "。";
this.pictureBox1.Image = PdnResources.GetImageResource("Images.FibrelengthFormula.png").Reference;
break;
case DebrisSelectionParameters.waistDepth:
this.richTextBox1.Text = PdnResources.GetString("Menu.Thelengthoafibrousregion.Text") + "。";
this.pictureBox1.Image = PdnResources.GetImageResource("Images.FibrelengthFormula.png").Reference;
break;
case DebrisSelectionParameters.waistDepthShort:
this.richTextBox1.Text = PdnResources.GetString("Menu.Thelengthoafibrousregion.Text") + "。";
this.pictureBox1.Image = PdnResources.GetImageResource("Images.FibrelengthFormula.png").Reference;
break;
}
}
}
///
/// 新建按钮
///
///
///
private void button1_Click(object sender, EventArgs e)
{
using (DebrisSelectionAddConditionDialog debrisSelectionAddConditionDialog = new DebrisSelectionAddConditionDialog(this, null, -1))
{
debrisSelectionAddConditionDialog.StartPosition = FormStartPosition.CenterScreen;
debrisSelectionAddConditionDialog.ShowDialog();
}
}
///
/// 重命名按钮
///
///
///
private void button2_Click(object sender, EventArgs e)
{
if (this.listView2.SelectedItems != null && this.listView2.SelectedItems.Count == 1)
{
using (DebrisSelectionAddConditionDialog debrisSelectionAddConditionDialog = new DebrisSelectionAddConditionDialog(this,
this.listView2.SelectedItems[0].Text , this.listView2.SelectedItems[0].Index))
{
debrisSelectionAddConditionDialog.StartPosition = FormStartPosition.CenterScreen;
debrisSelectionAddConditionDialog.ShowDialog();
}
}
else
MessageBox.Show(PdnResources.GetString("Menu.Pleaseseledfirst.text"));
}
///
/// 删除按钮
///
///
///
private void button3_Click(object sender, EventArgs e)
{
if (this.listView2.SelectedItems != null && this.listView2.SelectedItems.Count == 1)
{
DialogResult dr = MessageBox.Show(PdnResources.GetString("Menu.Areyousurselecteditem.text")+"?", PdnResources.GetString("Menu.alert.text"), MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (dr == DialogResult.OK)
{
this.debrisSelectionModel.debrisSelectionList.RemoveAt(this.listView2.SelectedItems[0].Index);
this.listView2.Items.Remove(this.listView2.SelectedItems[0]);
this.listView2.SelectedItems.Clear();
this.dataGridView1.Rows.Clear();
}
}
else
MessageBox.Show(PdnResources.GetString("Menu.Pleaseseeletefirst.text"));
}
///
/// 保存按钮
///
///
///
private void button4_Click(object sender, EventArgs e)
{
string debrisSelectionModelInfo = XmlSerializeHelper.XmlSerialize(this.debrisSelectionModel);
if (FileOperationHelper.WriteStringToFile(debrisSelectionModelInfo, this.debrisSelectionDialog.filePath, FileMode.Create))
this.Close();
else
MessageBox.Show(PdnResources.GetString("Menu.Savefailed.text"));
}
///
/// 刷新当前选中对象的条件model
///
private void ResetDebrisSelectionModel()
{
if(this.listView2.SelectedItems != null && this.listView2.SelectedItems.Count == 1)
{
int rowIndex = this.listView2.SelectedItems[0].Index;//选中记录的下标
//新增
if(rowIndex == this.debrisSelectionModel.debrisSelectionList.Count)
{
DebrisSelectionModel.DebrisSelection debrisSelection = new DebrisSelectionModel.DebrisSelection();
debrisSelection.itemName = this.listView2.SelectedItems[0].Text;
debrisSelection.conditionList = new List();
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
try
{
DebrisSelectionModel.Condition condition = new DebrisSelectionModel.Condition();
condition.conditionName = this.dataGridView1.Rows[i].Cells[0].Tag.ToString();
condition.judgeCondition = Array.IndexOf(InvariantData.judgeCondition, this.dataGridView1.Rows[i].Cells[1].Value.ToString());
condition.conditionNum = double.Parse(this.dataGridView1.Rows[i].Cells[2].Value.ToString());
condition.joinCondition = Array.IndexOf(InvariantData.joinCondition, this.dataGridView1.Rows[i].Cells[3].Value.ToString());
debrisSelection.conditionList.Add(condition);
}
catch (Exception ex)
{
continue;
}
}
this.debrisSelectionModel.debrisSelectionList.Add(debrisSelection);
}
//编辑
else if (rowIndex < this.debrisSelectionModel.debrisSelectionList.Count)
{
this.debrisSelectionModel.debrisSelectionList[rowIndex].itemName = this.listView2.SelectedItems[0].Text;
this.debrisSelectionModel.debrisSelectionList[rowIndex].conditionList = new List();
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
try
{
DebrisSelectionModel.Condition condition = new DebrisSelectionModel.Condition();
condition.conditionName = this.dataGridView1.Rows[i].Cells[0].Tag.ToString();
condition.judgeCondition = Array.IndexOf(InvariantData.judgeCondition, ((DataGridViewComboBoxCell)(this.dataGridView1.Rows[i].Cells[1])).Value.ToString());
condition.conditionNum = double.Parse(this.dataGridView1.Rows[i].Cells[2].Value.ToString());
condition.joinCondition = Array.IndexOf(InvariantData.joinCondition, this.dataGridView1.Rows[i].Cells[3].Value.ToString());
this.debrisSelectionModel.debrisSelectionList[rowIndex].conditionList.Add(condition);
}
catch (Exception ex)
{
continue;
}
}
}
}
}
///
/// 添加按钮
///
///
///
private void button5_Click(object sender, EventArgs e)
{
if(this.listView2.SelectedItems != null && this.listView2.SelectedItems.Count == 1 && this.listView1.SelectedItems != null &&
this.listView1.SelectedItems.Count == 1)
{
DataGridViewRow row = new DataGridViewRow();
row.Height = 25;
row.Cells.Add(CreateTextBoxCell(this.listView1.SelectedItems[0].Text, this.listView1.SelectedItems[0].Tag));
row.Cells.Add(CreateComboBoxCell(InvariantData.judgeCondition, ""));
row.Cells.Add(CreateTextBoxCell("0", ""));
row.Cells.Add(CreateComboBoxCell(InvariantData.joinCondition, ""));
this.dataGridView1.Rows.Add(row);
this.dataGridView1.ClearSelection();
this.dataGridView1.Rows[this.dataGridView1.Rows.Count - 1].Selected = true;
ResetDebrisSelectionModel();
}
}
///
/// 移出按钮
///
///
///
private void button6_Click(object sender, EventArgs e)
{
if (this.listView2.SelectedItems != null && this.listView2.SelectedItems.Count == 1)
{
if(this.dataGridView1.SelectedRows.Count>0)
{
this.dataGridView1.Rows.Remove(this.dataGridView1.SelectedRows[0]);
this.dataGridView1.ClearSelection();
ResetDebrisSelectionModel();
}
}
}
///
/// 向上移动
///
///
///
private void button7_Click(object sender, EventArgs e)
{
if (this.dataGridView1.Rows.Count < 1)
return;
if (this.listView2.SelectedItems != null && this.listView2.SelectedItems.Count == 1
&& this.dataGridView1.SelectedRows.Count>0)
{
int rowIndex = this.dataGridView1.SelectedRows[0].Index;
if(rowIndex > 0)
{
this.dataGridView1.Rows.Insert(rowIndex - 1, CopyDataGridViewRow(this.dataGridView1.SelectedRows[0]));
this.dataGridView1.Rows.RemoveAt(rowIndex + 1);
this.dataGridView1.ClearSelection();
this.dataGridView1.Rows[rowIndex - 1].Selected = true;
ResetDebrisSelectionModel();
}
}
}
///
/// 向下移动
///
///
///
private void button8_Click(object sender, EventArgs e)
{
if (this.dataGridView1.Rows.Count < 1)
return;
if (this.listView2.SelectedItems != null && this.listView2.SelectedItems.Count == 1
&& this.dataGridView1.SelectedRows.Count>0)
{
int rowIndex = this.dataGridView1.SelectedRows[0].Index;
if(rowIndex < this.dataGridView1.Rows.Count - 1)
{
this.dataGridView1.Rows.Insert(rowIndex + 2, CopyDataGridViewRow(this.dataGridView1.SelectedRows[0]));
this.dataGridView1.Rows.RemoveAt(rowIndex);
this.dataGridView1.ClearSelection();
this.dataGridView1.Rows[rowIndex + 1].Selected = true;
ResetDebrisSelectionModel();
}
}
}
///
/// 拷贝表格内的选中行
///
///
///
private DataGridViewRow CopyDataGridViewRow(DataGridViewRow selectedRow)
{
DataGridViewRow row = new DataGridViewRow();
row.Height = 25;
DataGridViewTextBoxCell cell1 = (DataGridViewTextBoxCell)selectedRow.Cells[0];
DataGridViewComboBoxCell cell2 = (DataGridViewComboBoxCell)selectedRow.Cells[1];
DataGridViewTextBoxCell cell3 = (DataGridViewTextBoxCell)selectedRow.Cells[2];
DataGridViewComboBoxCell cell4 = (DataGridViewComboBoxCell)selectedRow.Cells[3];
row.Cells.Add(CreateTextBoxCell(cell1.Value.ToString(), cell1.Tag));
row.Cells.Add(CreateComboBoxCell(InvariantData.judgeCondition, cell2.Tag));
row.Cells.Add(CreateTextBoxCell(cell3.Value.ToString(), cell3.Tag));
row.Cells.Add(CreateComboBoxCell(InvariantData.joinCondition, cell4.Tag));
row.Cells[1].Value = cell2.Value.ToString();
row.Cells[3].Value = cell4.Value.ToString();
return row;
}
///
/// 向已经添加列表添加新项目
///
///
///
///
public void AddContentToListview(string itemName, bool editStatus, int editIndex)
{
//编辑
if (editStatus)
{
if(editIndex > -1)
{
this.listView2.Items[editIndex].Name = itemName;
this.listView2.Items[editIndex].Text = itemName;
this.listView2.SelectedItems.Clear();
this.listView2.Items[editIndex].Selected = true;
this.debrisSelectionModel.debrisSelectionList[editIndex].itemName = itemName;
}
}
//新增
else
{
ListViewItem listViewItem = new ListViewItem();
listViewItem.Name = itemName;
listViewItem.SubItems[0].Text = itemName;
this.listView2.Items.Add(listViewItem);
this.listView2.SelectedItems.Clear();
DebrisSelectionModel.DebrisSelection debrisSelection = new DebrisSelectionModel.DebrisSelection();
debrisSelection.itemName = itemName;
debrisSelection.conditionList = new List();
this.debrisSelectionModel.debrisSelectionList.Add(debrisSelection);
}
}
///
/// 添加内容单元格
///
///
///
///
private DataGridViewTextBoxCell CreateTextBoxCell(string text, object tag)
{
DataGridViewTextBoxCell textboxcell = new DataGridViewTextBoxCell();
textboxcell.Value = text;
textboxcell.Tag = tag;
return textboxcell;
}
///
/// 添加下拉框单元格
///
///
private DataGridViewComboBoxCell CreateComboBoxCell(string[] strArr, object tag)
{
DataGridViewComboBoxCell comboboxCell = new DataGridViewComboBoxCell();
comboboxCell.DataSource = strArr;
comboboxCell.Tag = tag;
comboboxCell.Value = strArr[0];
comboboxCell.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
return comboboxCell;
}
///
/// 切换已添加list的选中
///
///
///
private void listView2_SelectedIndexChanged(object sender, EventArgs e)
{
this.dataGridView1.Rows.Clear();
if (this.listView2.SelectedItems != null && this.listView2.SelectedItems.Count == 1)
{
if (this.debrisSelectionModel != null && this.debrisSelectionModel.debrisSelectionList.Count > 0)
{
DebrisSelectionModel.DebrisSelection model = this.debrisSelectionModel.debrisSelectionList.Find(a => a.itemName.Equals(this.listView2.SelectedItems[0].Text));
if(model != null && model.conditionList.Count > 0)
{
for(int i = 0; i < model.conditionList.Count; i++)
{
DataGridViewRow row = new DataGridViewRow();
row.Height = 25;
DebrisSelectionParameters parameter = (DebrisSelectionParameters)Enum.Parse(typeof(DebrisSelectionParameters), model.conditionList[i].conditionName);
object paraName = new object();
InvariantData.debrisSelectionparameters.TryGetValue(parameter, out paraName);
row.Cells.Add(CreateTextBoxCell(paraName.ToString(), model.conditionList[i].conditionName));
row.Cells.Add(CreateComboBoxCell(InvariantData.judgeCondition, ""));
row.Cells.Add(CreateTextBoxCell(model.conditionList[i].conditionNum.ToString(), ""));
row.Cells.Add(CreateComboBoxCell(InvariantData.joinCondition, ""));
row.Cells[1].Value = InvariantData.judgeCondition[model.conditionList[i].judgeCondition];
row.Cells[3].Value = InvariantData.joinCondition[model.conditionList[i].joinCondition];
this.dataGridView1.Rows.Add(row);
}
this.dataGridView1.ClearSelection();
}
}
}
}
///
/// 窗体关闭
///
///
///
private void DebrisSelectionValidConditionDialog_FormClosed(object sender, FormClosedEventArgs e)
{
this.debrisSelectionDialog.ReloadDebrisSelectionFromXml();
this.debrisSelectionDialog.RefreshDebrisComboBox();
}
///
/// 动态修改条件的model
///
///
///
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (this.dataGridView1.IsCurrentCellDirty)
{
this.dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
DebrisSelectionModel.DebrisSelection model = this.debrisSelectionModel.debrisSelectionList.Find(a => a.itemName.Equals(this.listView2.SelectedItems[0].Text));
//循环处理this.debrisSelectionModel
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
double v;
if (((DataGridViewTextBoxCell)this.dataGridView1.Rows[i].Cells[2]).Value != null && double.TryParse(((DataGridViewTextBoxCell)this.dataGridView1.Rows[i].Cells[2]).Value.ToString(), out v))
{
//this.debrisSelectionModel.debrisSelectionList[this.comboBox3.SelectedIndex].conditionList[i].conditionNum = v;// double.Parse(((DataGridViewTextBoxCell)this.dataGridView3.Rows[i].Cells[2]).Value.ToString());
}
else
{
((DataGridViewTextBoxCell)this.dataGridView1.Rows[i].Cells[2]).Value = model.conditionList[i].conditionNum;
}
}
ResetDebrisSelectionModel();
}
}
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
ListViewHitTestInfo info = this.listView1.HitTest(e.X, e.Y);
if (info.Item != null)
{
this.button5.PerformClick();
}
}
}
}