using Metis.ParameterSet;
using PaintDotNet.Adjust.BaseImage;
using PaintDotNet.Annotation.Enum;
using PaintDotNet.Base.CommTool;
using PaintDotNet.Base.Functionodel;
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace PaintDotNet.Binarization
{
///
/// 对象处理
///
internal class ObjectActionDialog : FloatingToolForm//PdnBaseForm
{
#region 控件
private GroupBox groupBox2;
private GroupBox groupBox3;
private GroupBox groupBox4;
private GroupBox groupBox5;
private GroupBox groupBox6;
private Button button1;
private Button button2;
private Button button3;
private Button button4;
private Button button5;
private Button button6;
private Button button7;
private Button button8;
private Button button9;
private Button button10;
private RadioButton radioButton1;
private RadioButton radioButton2;
private RadioButton radioButton3;
private Label label1;
private Label label2;
private RadioButton radioButton4;
private RadioButton radioButton5;
private RadioButton radioButton6;
private RadioButton radioButton10;
private RadioButton radioButton7;
private RadioButton radioButton8;
private RadioButton radioButton9;
private RadioButton radioButton11;
private RadioButton radioButton12;
private RadioButton radioButton13;
private RadioButton radioButton14;
private RadioButton radioButton15;
private RadioButton radioButton16;
private RadioButton radioButton17;
private RadioButton radioButton18;
private GroupBox groupBox1;
private NumericUpDown numericUpDown1;
private NumericUpDown numericUpDown2;
#endregion
///
/// 主控件
///
private AppWorkspace appWorkspace;
///
/// 用来备份的相集合
///
private List PhaseModelsBackUp = new List();
///
/// 是否还原相
///
private bool restore = true;
private int menuId;
#region 保存参数的model和key
private GrainSizeAnalysisModel analysisModel;
List optionList = new List();//选项名称集合
private const string ParamKey_DivisionOption = "divisionOption";//分割选项
private const string ParamKey_DivisionLineWidth = "divisionLineWidth";//分割线宽
private const string ParamKey_ConnectOption = "connectOption";//连接选项
private const string ParamKey_ConnectLineWidth = "connectLineWidth";//连接线宽
private const string ParamKey_DeleteOption = "deleteOption";//删除选项
private const string ParamKey_AddOption = "addOption";//添加选项
private const string ParamKey_ChoiceOption = "choiceOption";//选择选项
#endregion
public List PhaseModelsBackUpForCopy
{
get
{
List list = new List();
if (this.PhaseModelsBackUp != null && this.PhaseModelsBackUp.Count > 0)
{
foreach (PhaseModel phase in this.PhaseModelsBackUp)
{
PhaseModel phase1 = new PhaseModel();
phase1.choise = phase.choise;
phase1.color = phase.color;
phase1.mat = new OpenCvSharp.Mat();
phase.mat.CopyTo(phase1.mat);
phase1.name = phase.name;
phase1.position = phase.position;
list.Add(phase1);
}
}
return list;
}
}
public ObjectActionDialog(AppWorkspace appWorkspace,int menuId)
{
this.menuId = menuId;
string filePath = Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\BinaryActionSaving\\ParameterSaving.xml";
GrainSizeAnalysisModel analysisModelXml = XmlSerializeHelper.DESerializer(FileOperationHelper.ReadStringFromFile(filePath, System.IO.FileMode.Open));
this.analysisModel = analysisModelXml.cloneListParamModel(this.menuId);
this.appWorkspace = appWorkspace;
this.ShowInTaskbar = false;
this.PhaseModelsBackUp = this.appWorkspace.ActiveDocumentWorkspace.PhaseModelsForCopy;
this.appWorkspace.ActiveDocumentWorkspaceChanged += new EventHandler(this.ActiveDocumentWorkspaceChanged);
InitializeComponent();
InitializeLanguageText();
this.numericUpDown1.Value = InvariantData.segmentation;
this.numericUpDown2.Value = InvariantData.connection;
GetListParamModel();
}
private void ActiveDocumentWorkspaceChanged(object sender, EventArgs e)
{
if(this.appWorkspace.ActiveDocumentWorkspace!=null)
this.PhaseModelsBackUp = this.appWorkspace.ActiveDocumentWorkspace.PhaseModelsForCopy;
}
private void InitializeLanguageText()
{
this.groupBox1.Text = PdnResources.GetString("Menu.operation.text");
this.button2.Text = PdnResources.GetString("Menu.ensure.text");
this.button1.Text = PdnResources.GetString("Menu.cancel.text");
this.groupBox2.Text = PdnResources.GetString("Menu.segment.text");
this.label1.Text = PdnResources.GetString("Menu.Linewidth.text") + ":";
this.radioButton3.Text = PdnResources.GetString("Menu.LabelAction.DrawEllipse.Text");
this.radioButton2.Text = PdnResources.GetString("Menu.LabelAction.DrawLine.Text");
this.radioButton1.Text = PdnResources.GetString("Menu.MeasureAction.MeasureBrokenLine.Text");
this.button3.Text = PdnResources.GetString("Menu.segment.text");
this.groupBox3.Text = PdnResources.GetString("Menu.connect.text");
this.radioButton4.Text = PdnResources.GetString("Menu.LabelAction.DrawEllipse.Text");
this.radioButton5.Text = PdnResources.GetString("Menu.LabelAction.DrawLine.Text");
this.radioButton6.Text = PdnResources.GetString("Menu.MeasureAction.MeasureBrokenLine.Text");
this.label2.Text = PdnResources.GetString("Menu.Linewidth.text") + ":";
this.button4.Text = PdnResources.GetString("Menu.connect.text");
this.groupBox4.Text = PdnResources.GetString("Menu.Edit.Delete.Text");
this.radioButton10.Text = PdnResources.GetString("Menu.LabelAction.DrawPolygon.Text");
this.radioButton7.Text = PdnResources.GetString("Menu.LabelAction.DrawEllipse.Text");
this.radioButton8.Text = PdnResources.GetString("Menu.LabelAction.DrawRectangle.Text");
this.radioButton9.Text = PdnResources.GetString("Menu.single.text");
this.button5.Text = PdnResources.GetString("Menu.Edit.Delete.Text");
this.groupBox5.Text = PdnResources.GetString("Menu.Addto.text");
this.radioButton11.Text = PdnResources.GetString("Menu.Binaryoperation.Objecthandling.Track.text");
this.radioButton12.Text = PdnResources.GetString("Menu.LabelAction.DrawPolygon.Text");
this.radioButton13.Text = PdnResources.GetString("Menu.LabelAction.DrawEllipse.Text");
this.radioButton14.Text = PdnResources.GetString("Menu.LabelAction.DrawRectangle.Text");
this.button6.Text = PdnResources.GetString("Menu.Addto.text");
this.groupBox6.Text = PdnResources.GetString("Menu.MeasureAction.MeasureSelect.Text");
this.radioButton15.Text = PdnResources.GetString("Menu.LabelAction.DrawPolygon.Text");
this.radioButton16.Text = PdnResources.GetString("Menu.LabelAction.DrawEllipse.Text");
this.radioButton17.Text = PdnResources.GetString("Menu.LabelAction.DrawRectangle.Text");
this.radioButton18.Text = PdnResources.GetString("Menu.single.text");
this.button10.Text = PdnResources.GetString("Menu.inverse.text");
this.button9.Text = PdnResources.GetString("Menu.Binaryoperation.Objecthandling.unselectall.text");
this.button8.Text = PdnResources.GetString("Menu.application.text");
this.button7.Text = PdnResources.GetString("Menu.MeasureAction.MeasureSelect.Text");
this.Text = PdnResources.GetString("Menu.BinaryAction.ObjectAction.Text");
}
private void InitializeComponent()
{
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.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
this.label1 = new System.Windows.Forms.Label();
this.radioButton3 = new System.Windows.Forms.RadioButton();
this.radioButton2 = new System.Windows.Forms.RadioButton();
this.radioButton1 = new System.Windows.Forms.RadioButton();
this.button3 = new System.Windows.Forms.Button();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();
this.radioButton4 = new System.Windows.Forms.RadioButton();
this.radioButton5 = new System.Windows.Forms.RadioButton();
this.radioButton6 = new System.Windows.Forms.RadioButton();
this.label2 = new System.Windows.Forms.Label();
this.button4 = new System.Windows.Forms.Button();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.radioButton10 = new System.Windows.Forms.RadioButton();
this.radioButton7 = new System.Windows.Forms.RadioButton();
this.radioButton8 = new System.Windows.Forms.RadioButton();
this.radioButton9 = new System.Windows.Forms.RadioButton();
this.button5 = new System.Windows.Forms.Button();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.radioButton11 = new System.Windows.Forms.RadioButton();
this.radioButton12 = new System.Windows.Forms.RadioButton();
this.radioButton13 = new System.Windows.Forms.RadioButton();
this.radioButton14 = new System.Windows.Forms.RadioButton();
this.button6 = new System.Windows.Forms.Button();
this.groupBox6 = new System.Windows.Forms.GroupBox();
this.radioButton15 = new System.Windows.Forms.RadioButton();
this.radioButton16 = new System.Windows.Forms.RadioButton();
this.radioButton17 = new System.Windows.Forms.RadioButton();
this.radioButton18 = new System.Windows.Forms.RadioButton();
this.button10 = new System.Windows.Forms.Button();
this.button9 = new System.Windows.Forms.Button();
this.button8 = new System.Windows.Forms.Button();
this.button7 = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
this.groupBox3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
this.groupBox4.SuspendLayout();
this.groupBox5.SuspendLayout();
this.groupBox6.SuspendLayout();
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.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(396, 52);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "操作";
//
// button2
//
this.button2.Location = new System.Drawing.Point(315, 17);
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(234, 17);
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.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox2.Controls.Add(this.numericUpDown1);
this.groupBox2.Controls.Add(this.label1);
this.groupBox2.Controls.Add(this.radioButton3);
this.groupBox2.Controls.Add(this.radioButton2);
this.groupBox2.Controls.Add(this.radioButton1);
this.groupBox2.Controls.Add(this.button3);
this.groupBox2.Location = new System.Drawing.Point(13, 72);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(396, 52);
this.groupBox2.TabIndex = 2;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "分割";
//
// numericUpDown1
//
this.numericUpDown1.Location = new System.Drawing.Point(234, 19);
this.numericUpDown1.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDown1.Name = "numericUpDown1";
this.numericUpDown1.Size = new System.Drawing.Size(75, 21);
this.numericUpDown1.TabIndex = 5;
this.numericUpDown1.Value = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(197, 23);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(41, 12);
this.label1.TabIndex = 4;
this.label1.Text = "线宽:";
//
// radioButton3
//
this.radioButton3.AutoSize = true;
this.radioButton3.Location = new System.Drawing.Point(125, 21);
this.radioButton3.Name = "radioButton3";
this.radioButton3.Size = new System.Drawing.Size(47, 16);
this.radioButton3.TabIndex = 3;
this.radioButton3.TabStop = true;
this.radioButton3.Text = "椭圆";
this.radioButton3.UseVisualStyleBackColor = true;
//
// radioButton2
//
this.radioButton2.AutoSize = true;
this.radioButton2.Location = new System.Drawing.Point(72, 21);
this.radioButton2.Name = "radioButton2";
this.radioButton2.Size = new System.Drawing.Size(47, 16);
this.radioButton2.TabIndex = 2;
this.radioButton2.TabStop = true;
this.radioButton2.Text = "直线";
this.radioButton2.UseVisualStyleBackColor = true;
//
// radioButton1
//
this.radioButton1.AutoSize = true;
this.radioButton1.Checked = true;
this.radioButton1.Location = new System.Drawing.Point(19, 21);
this.radioButton1.Name = "radioButton1";
this.radioButton1.Size = new System.Drawing.Size(47, 16);
this.radioButton1.TabIndex = 1;
this.radioButton1.TabStop = true;
this.radioButton1.Text = "折线";
this.radioButton1.UseVisualStyleBackColor = true;
//
// button3
//
this.button3.Location = new System.Drawing.Point(315, 18);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(75, 23);
this.button3.TabIndex = 0;
this.button3.Text = "分割";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// groupBox3
//
this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox3.Controls.Add(this.numericUpDown2);
this.groupBox3.Controls.Add(this.radioButton4);
this.groupBox3.Controls.Add(this.radioButton5);
this.groupBox3.Controls.Add(this.radioButton6);
this.groupBox3.Controls.Add(this.label2);
this.groupBox3.Controls.Add(this.button4);
this.groupBox3.Location = new System.Drawing.Point(13, 131);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(396, 52);
this.groupBox3.TabIndex = 3;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "连接";
//
// numericUpDown2
//
this.numericUpDown2.Location = new System.Drawing.Point(234, 18);
this.numericUpDown2.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDown2.Name = "numericUpDown2";
this.numericUpDown2.Size = new System.Drawing.Size(75, 21);
this.numericUpDown2.TabIndex = 11;
this.numericUpDown2.Value = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDown2.ValueChanged += new System.EventHandler(this.numericUpDown2_ValueChanged);
//
// radioButton4
//
this.radioButton4.AutoSize = true;
this.radioButton4.Location = new System.Drawing.Point(125, 20);
this.radioButton4.Name = "radioButton4";
this.radioButton4.Size = new System.Drawing.Size(47, 16);
this.radioButton4.TabIndex = 10;
this.radioButton4.TabStop = true;
this.radioButton4.Text = "椭圆";
this.radioButton4.UseVisualStyleBackColor = true;
//
// radioButton5
//
this.radioButton5.AutoSize = true;
this.radioButton5.Location = new System.Drawing.Point(72, 20);
this.radioButton5.Name = "radioButton5";
this.radioButton5.Size = new System.Drawing.Size(47, 16);
this.radioButton5.TabIndex = 9;
this.radioButton5.TabStop = true;
this.radioButton5.Text = "直线";
this.radioButton5.UseVisualStyleBackColor = true;
//
// radioButton6
//
this.radioButton6.AutoSize = true;
this.radioButton6.Checked = true;
this.radioButton6.Location = new System.Drawing.Point(19, 20);
this.radioButton6.Name = "radioButton6";
this.radioButton6.Size = new System.Drawing.Size(47, 16);
this.radioButton6.TabIndex = 8;
this.radioButton6.TabStop = true;
this.radioButton6.Text = "折线";
this.radioButton6.UseVisualStyleBackColor = true;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(197, 21);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(41, 12);
this.label2.TabIndex = 6;
this.label2.Text = "线宽:";
//
// button4
//
this.button4.Location = new System.Drawing.Point(315, 17);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(75, 23);
this.button4.TabIndex = 0;
this.button4.Text = "连接";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// groupBox4
//
this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox4.Controls.Add(this.radioButton10);
this.groupBox4.Controls.Add(this.radioButton7);
this.groupBox4.Controls.Add(this.radioButton8);
this.groupBox4.Controls.Add(this.radioButton9);
this.groupBox4.Controls.Add(this.button5);
this.groupBox4.Location = new System.Drawing.Point(13, 190);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(396, 52);
this.groupBox4.TabIndex = 4;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "删除";
//
// radioButton10
//
this.radioButton10.AutoSize = true;
this.radioButton10.Location = new System.Drawing.Point(178, 21);
this.radioButton10.Name = "radioButton10";
this.radioButton10.Size = new System.Drawing.Size(59, 16);
this.radioButton10.TabIndex = 14;
this.radioButton10.TabStop = true;
this.radioButton10.Text = "多边形";
this.radioButton10.UseVisualStyleBackColor = true;
//
// radioButton7
//
this.radioButton7.AutoSize = true;
this.radioButton7.Location = new System.Drawing.Point(125, 21);
this.radioButton7.Name = "radioButton7";
this.radioButton7.Size = new System.Drawing.Size(47, 16);
this.radioButton7.TabIndex = 13;
this.radioButton7.TabStop = true;
this.radioButton7.Text = "椭圆";
this.radioButton7.UseVisualStyleBackColor = true;
//
// radioButton8
//
this.radioButton8.AutoSize = true;
this.radioButton8.Location = new System.Drawing.Point(72, 21);
this.radioButton8.Name = "radioButton8";
this.radioButton8.Size = new System.Drawing.Size(47, 16);
this.radioButton8.TabIndex = 12;
this.radioButton8.TabStop = true;
this.radioButton8.Text = "矩形";
this.radioButton8.UseVisualStyleBackColor = true;
//
// radioButton9
//
this.radioButton9.AutoSize = true;
this.radioButton9.Checked = true;
this.radioButton9.Location = new System.Drawing.Point(19, 21);
this.radioButton9.Name = "radioButton9";
this.radioButton9.Size = new System.Drawing.Size(47, 16);
this.radioButton9.TabIndex = 11;
this.radioButton9.TabStop = true;
this.radioButton9.Text = "单个";
this.radioButton9.UseVisualStyleBackColor = true;
//
// button5
//
this.button5.Location = new System.Drawing.Point(315, 18);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(75, 23);
this.button5.TabIndex = 0;
this.button5.Text = "删除";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
// groupBox5
//
this.groupBox5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox5.Controls.Add(this.radioButton11);
this.groupBox5.Controls.Add(this.radioButton12);
this.groupBox5.Controls.Add(this.radioButton13);
this.groupBox5.Controls.Add(this.radioButton14);
this.groupBox5.Controls.Add(this.button6);
this.groupBox5.Location = new System.Drawing.Point(13, 249);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(396, 52);
this.groupBox5.TabIndex = 5;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "添加";
//
// radioButton11
//
this.radioButton11.AutoSize = true;
this.radioButton11.Location = new System.Drawing.Point(125, 21);
this.radioButton11.Name = "radioButton11";
this.radioButton11.Size = new System.Drawing.Size(47, 16);
this.radioButton11.TabIndex = 18;
this.radioButton11.TabStop = true;
this.radioButton11.Text = "轨迹";
this.radioButton11.UseVisualStyleBackColor = true;
//
// radioButton12
//
this.radioButton12.AutoSize = true;
this.radioButton12.Location = new System.Drawing.Point(178, 21);
this.radioButton12.Name = "radioButton12";
this.radioButton12.Size = new System.Drawing.Size(59, 16);
this.radioButton12.TabIndex = 17;
this.radioButton12.TabStop = true;
this.radioButton12.Text = "多边形";
this.radioButton12.UseVisualStyleBackColor = true;
//
// radioButton13
//
this.radioButton13.AutoSize = true;
this.radioButton13.Location = new System.Drawing.Point(72, 21);
this.radioButton13.Name = "radioButton13";
this.radioButton13.Size = new System.Drawing.Size(47, 16);
this.radioButton13.TabIndex = 16;
this.radioButton13.TabStop = true;
this.radioButton13.Text = "椭圆";
this.radioButton13.UseVisualStyleBackColor = true;
//
// radioButton14
//
this.radioButton14.AutoSize = true;
this.radioButton14.Checked = true;
this.radioButton14.Location = new System.Drawing.Point(19, 21);
this.radioButton14.Name = "radioButton14";
this.radioButton14.Size = new System.Drawing.Size(47, 16);
this.radioButton14.TabIndex = 15;
this.radioButton14.TabStop = true;
this.radioButton14.Text = "单个";
this.radioButton14.UseVisualStyleBackColor = true;
//
// button6
//
this.button6.Location = new System.Drawing.Point(315, 18);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(75, 23);
this.button6.TabIndex = 0;
this.button6.Text = "添加";
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.button6_Click);
//
// groupBox6
//
this.groupBox6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox6.Controls.Add(this.radioButton15);
this.groupBox6.Controls.Add(this.radioButton16);
this.groupBox6.Controls.Add(this.radioButton17);
this.groupBox6.Controls.Add(this.radioButton18);
this.groupBox6.Controls.Add(this.button10);
this.groupBox6.Controls.Add(this.button9);
this.groupBox6.Controls.Add(this.button8);
this.groupBox6.Controls.Add(this.button7);
this.groupBox6.Location = new System.Drawing.Point(13, 308);
this.groupBox6.Name = "groupBox6";
this.groupBox6.Size = new System.Drawing.Size(396, 96);
this.groupBox6.TabIndex = 6;
this.groupBox6.TabStop = false;
this.groupBox6.Text = "选择";
//
// radioButton15
//
this.radioButton15.AutoSize = true;
this.radioButton15.Location = new System.Drawing.Point(178, 24);
this.radioButton15.Name = "radioButton15";
this.radioButton15.Size = new System.Drawing.Size(59, 16);
this.radioButton15.TabIndex = 18;
this.radioButton15.TabStop = true;
this.radioButton15.Text = "多边形";
this.radioButton15.UseVisualStyleBackColor = true;
//
// radioButton16
//
this.radioButton16.AutoSize = true;
this.radioButton16.Location = new System.Drawing.Point(125, 24);
this.radioButton16.Name = "radioButton16";
this.radioButton16.Size = new System.Drawing.Size(47, 16);
this.radioButton16.TabIndex = 17;
this.radioButton16.TabStop = true;
this.radioButton16.Text = "椭圆";
this.radioButton16.UseVisualStyleBackColor = true;
//
// radioButton17
//
this.radioButton17.AutoSize = true;
this.radioButton17.Location = new System.Drawing.Point(72, 24);
this.radioButton17.Name = "radioButton17";
this.radioButton17.Size = new System.Drawing.Size(47, 16);
this.radioButton17.TabIndex = 16;
this.radioButton17.TabStop = true;
this.radioButton17.Text = "矩形";
this.radioButton17.UseVisualStyleBackColor = true;
//
// radioButton18
//
this.radioButton18.AutoSize = true;
this.radioButton18.Checked = true;
this.radioButton18.Location = new System.Drawing.Point(19, 24);
this.radioButton18.Name = "radioButton18";
this.radioButton18.Size = new System.Drawing.Size(47, 16);
this.radioButton18.TabIndex = 15;
this.radioButton18.TabStop = true;
this.radioButton18.Text = "单个";
this.radioButton18.UseVisualStyleBackColor = true;
//
// button10
//
this.button10.Location = new System.Drawing.Point(153, 60);
this.button10.Name = "button10";
this.button10.Size = new System.Drawing.Size(75, 23);
this.button10.TabIndex = 3;
this.button10.Text = "反选";
this.button10.UseVisualStyleBackColor = true;
this.button10.Click += new System.EventHandler(this.button10_Click);
//
// button9
//
this.button9.Location = new System.Drawing.Point(234, 60);
this.button9.Name = "button9";
this.button9.Size = new System.Drawing.Size(75, 23);
this.button9.TabIndex = 2;
this.button9.Text = "全不选";
this.button9.UseVisualStyleBackColor = true;
this.button9.Click += new System.EventHandler(this.button9_Click);
//
// button8
//
this.button8.Location = new System.Drawing.Point(315, 60);
this.button8.Name = "button8";
this.button8.Size = new System.Drawing.Size(75, 23);
this.button8.TabIndex = 1;
this.button8.Text = "应用";
this.button8.UseVisualStyleBackColor = true;
this.button8.Click += new System.EventHandler(this.button8_Click);
//
// button7
//
this.button7.Location = new System.Drawing.Point(315, 21);
this.button7.Name = "button7";
this.button7.Size = new System.Drawing.Size(75, 23);
this.button7.TabIndex = 0;
this.button7.Text = "选择";
this.button7.UseVisualStyleBackColor = true;
this.button7.Click += new System.EventHandler(this.button7_Click);
//
// ObjectActionDialog
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.ClientSize = new System.Drawing.Size(421, 416);
this.Controls.Add(this.groupBox6);
this.Controls.Add(this.groupBox5);
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.groupBox3);
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 = "ObjectActionDialog";
this.Text = "对象处理";
//this.TopMost = true;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ObjectActionDialog_FormClosing);
this.Controls.SetChildIndex(this.groupBox1, 0);
this.Controls.SetChildIndex(this.groupBox2, 0);
this.Controls.SetChildIndex(this.groupBox3, 0);
this.Controls.SetChildIndex(this.groupBox4, 0);
this.Controls.SetChildIndex(this.groupBox5, 0);
this.Controls.SetChildIndex(this.groupBox6, 0);
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.groupBox5.ResumeLayout(false);
this.groupBox5.PerformLayout();
this.groupBox6.ResumeLayout(false);
this.groupBox6.PerformLayout();
this.ResumeLayout(false);
}
///
/// 删除
///
///
///
private void button5_Click(object sender, EventArgs e)
{
if (this.radioButton9.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryDelete;
}
}
else if(this.radioButton8.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryDeleteRectangle;
}
}
else if (this.radioButton7.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryDeleteOval;
}
}
else if (this.radioButton10.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryDeletePolygon;
}
}
}
///
/// 分割
///
///
///
private void button3_Click(object sender, EventArgs e)
{
if (this.radioButton1.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinarySplitPolyline;
}
}
else if (this.radioButton2.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinarySplitLine;
}
}
else if (this.radioButton3.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinarySplitOval;
}
}
this.appWorkspace.ActiveDocumentWorkspace.ContinuousBinaryAction = true;
}
///
/// 连接
///
///
///
private void button4_Click(object sender, EventArgs e)
{
if (this.radioButton6.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryConnectionPolygonLine;
}
}
else if (this.radioButton5.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryConnectionLine;
}
}
else if (this.radioButton4.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryConnectionOval;
}
}
this.appWorkspace.ActiveDocumentWorkspace.ContinuousBinaryAction = true;
}
///
/// 添加
///
///
///
private void button6_Click(object sender, EventArgs e)
{
if (this.radioButton14.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryAddRectangle;
}
}
else if (this.radioButton13.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryAddOval;
}
}
else if (this.radioButton11.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryAddTrack;
}
}
else if (this.radioButton12.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryAddPolygon;
}
}
this.appWorkspace.ActiveDocumentWorkspace.ContinuousBinaryAction = true;
}
///
/// 选择
///
///
///
private void button7_Click(object sender, EventArgs e)
{
if (this.radioButton18.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryChoise;
}
}
else if (this.radioButton17.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryChoiseRectangle;
}
}
else if (this.radioButton16.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryChoiseOval;
}
}
else if (this.radioButton15.Checked)
{
if (this.appWorkspace.ActiveDocumentWorkspace != null)
{
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.BinaryChoisePolygon;
}
}
this.appWorkspace.ActiveDocumentWorkspace.ContinuousBinaryAction = true;
}
///
/// 取消
///
///
///
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 确定
///
///
///
private void button2_Click(object sender, EventArgs e)
{
this.restore = false;
this.Close();
}
///
/// 分割
///
///
///
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
InvariantData.segmentation = Convert.ToInt32(this.numericUpDown1.Value);
}
///
/// 连接
///
///
///
private void numericUpDown2_ValueChanged(object sender, EventArgs e)
{
InvariantData.connection = Convert.ToInt32(this.numericUpDown2.Value);
}
///
/// 窗口关闭事件
///
///
///
private void ObjectActionDialog_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.appWorkspace.ActiveDocumentWorkspace == null)
return;
//取消连续
this.appWorkspace.ActiveDocumentWorkspace.ContinuousBinaryAction = false;
//设置活动的窗口工具为指针
this.appWorkspace.ActiveDocumentWorkspace.ActiveTool = DrawToolType.Pointer;
//清空所有交互操作的draw对象
this.appWorkspace.ActiveDocumentWorkspace.GraphicsList.DeleteDrawClass(DrawClass.Interaction);
//如果为true,则还原相
if (restore)
{
this.appWorkspace.ActiveDocumentWorkspace.PhaseModels = this.PhaseModelsBackUp;
}
//刷新活动的窗口
this.appWorkspace.ActiveDocumentWorkspace.Refresh();
saveDialogParam();
}
///
/// 选择,反选
///
///
///
private void button10_Click(object sender, EventArgs e)
{
//判断两个备份的mat和激活的mat不相等才进行处理
for (int j = 0; j < this.appWorkspace.ActiveDocumentWorkspace.phaseModels.Count; j++)
{
if (this.appWorkspace.ActiveDocumentWorkspace.phaseModels[j].choise)
{
if (!BaseTools.matEqual(this.appWorkspace.ActiveDocumentWorkspace.phaseModels[j].mat, this.PhaseModelsBackUp[j].mat))
{
this.appWorkspace.ActiveDocumentWorkspace.BinaryActionAntiElection(j);
}
}
}
}
///
/// 选择,全不选
///
///
///
private void button9_Click(object sender, EventArgs e)
{
this.appWorkspace.ActiveDocumentWorkspace.PhaseModels = this.PhaseModelsBackUpForCopy;
this.appWorkspace.ActiveDocumentWorkspace.Refresh();
}
///
/// 选择,应用
///
///
///
private void button8_Click(object sender, EventArgs e)
{
if(this.appWorkspace.ActiveDocumentWorkspace!=null && this.appWorkspace.ActiveDocumentWorkspace.phaseModels!=null)
{
//判断备份的mat和激活的mat不相等才进行处理
for (int j = 0; j < this.appWorkspace.ActiveDocumentWorkspace.phaseModels.Count; j++)
{
if (this.appWorkspace.ActiveDocumentWorkspace.phaseModels[j].choise)
{
if (!BaseTools.matEqual(this.appWorkspace.ActiveDocumentWorkspace.phaseModels[j].mat, this.PhaseModelsBackUp[j].mat))
{
this.appWorkspace.ActiveDocumentWorkspace.BinaryActionAntiConfirm(j);
}
}
}
}
}
#region 参数保存及提取
///
/// 保存参数的key,value和type
///
///
///
///
private void saveParamValue(string param_key, string param_value, int param_type)
{
bool foundItem = false;
foreach (var item in this.analysisModel.ListParam)
{
if (item.param_key.Equals(param_key) && item.menuId == this.menuId)
{
item.param_value = param_value;
item.setValue();
foundItem = true;
break;
}
}
if (!foundItem)
{
GrainSizeAnalysisModel analysisItem = new GrainSizeAnalysisModel();
analysisItem.menuId = this.menuId;
analysisItem.param_key = param_key;
analysisItem.param_type = param_type;
analysisItem.param_value = param_value;
analysisItem.setValue();
this.analysisModel.ListParam.Add(analysisItem);
}
}
///
/// 获取被选中的选项放入list
///
private void OptionList()
{
string division = string.Empty;//分割选项
string connect = string.Empty;//连接选项
string delete = string.Empty;//删除选项
string add = string.Empty;//添加选项
string choice = string.Empty;//选择选项
if (this.radioButton1.Checked)
division = this.radioButton1.Text;
if (this.radioButton2.Checked)
division = this.radioButton2.Text;
if (this.radioButton3.Checked)
division = this.radioButton3.Text;
if (this.radioButton6.Checked)
connect = this.radioButton6.Text;
if (this.radioButton5.Checked)
connect = this.radioButton5.Text;
if (this.radioButton4.Checked)
connect = this.radioButton4.Text;
if (this.radioButton9.Checked)
delete = this.radioButton9.Text;
if (this.radioButton8.Checked)
delete = this.radioButton8.Text;
if (this.radioButton7.Checked)
delete = this.radioButton7.Text;
if (this.radioButton10.Checked)
delete = this.radioButton10.Text;
if (this.radioButton14.Checked)
add = this.radioButton14.Text;
if (this.radioButton13.Checked)
add = this.radioButton13.Text;
if (this.radioButton11.Checked)
add = this.radioButton11.Text;
if (this.radioButton12.Checked)
add = this.radioButton12.Text;
if (this.radioButton18.Checked)
choice = this.radioButton18.Text;
if (this.radioButton17.Checked)
choice = this.radioButton17.Text;
if (this.radioButton16.Checked)
choice = this.radioButton16.Text;
if (this.radioButton15.Checked)
choice = this.radioButton15.Text;
optionList.Add(division);
optionList.Add(connect);
optionList.Add(delete);
optionList.Add(add);
optionList.Add(choice);
}
///
/// 保存界面中的参数到model
///
private void saveDialogParamValues()
{
OptionList();
saveParamValue(ParamKey_DivisionOption, optionList[0], (int)Base.Dtryt.ItemString);//分割选项
saveParamValue(ParamKey_DivisionLineWidth, this.numericUpDown1.Value.ToString(), (int)Base.Dtryt.Decimal);//分割线宽
saveParamValue(ParamKey_ConnectOption, optionList[1], (int)Base.Dtryt.ItemString);//连接选项
saveParamValue(ParamKey_ConnectLineWidth, this.numericUpDown2.Value.ToString(), (int)Base.Dtryt.Decimal);//连接线宽
saveParamValue(ParamKey_DeleteOption, optionList[2], (int)Base.Dtryt.ItemString);//删除选项
saveParamValue(ParamKey_AddOption, optionList[3], (int)Base.Dtryt.ItemString);//添加选项
saveParamValue(ParamKey_ChoiceOption, optionList[4], (int)Base.Dtryt.ItemString);//选择选项
}
///
/// 获取保存的参数
///
private void GetListParamModel()
{
if (this.analysisModel != null)
{
for (int i = 0; i < this.analysisModel.ListParam.Count; i++)
{
switch (this.analysisModel.ListParam[i].param_key)
{
case ParamKey_DivisionOption:
if (this.radioButton1.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton1.Checked = true;
if (this.radioButton2.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton2.Checked = true;
if (this.radioButton3.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton3.Checked = true;
break;
case ParamKey_DivisionLineWidth:
this.numericUpDown1.Value = decimal.Parse(this.analysisModel.ListParam[i].value.ToString());
break;
case ParamKey_ConnectOption:
if (this.radioButton6.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton6.Checked = true;
if (this.radioButton5.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton5.Checked = true;
if (this.radioButton4.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton4.Checked = true;
break;
case ParamKey_ConnectLineWidth:
this.numericUpDown2.Value = decimal.Parse(this.analysisModel.ListParam[i].value.ToString());
break;
case ParamKey_DeleteOption:
if (this.radioButton9.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton9.Checked = true;
if (this.radioButton8.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton8.Checked = true;
if (this.radioButton7.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton7.Checked = true;
if (this.radioButton10.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton10.Checked = true;
break;
case ParamKey_AddOption:
if (this.radioButton14.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton14.Checked = true;
if (this.radioButton13.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton13.Checked = true;
if (this.radioButton11.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton11.Checked = true;
if (this.radioButton12.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton12.Checked = true;
break;
case ParamKey_ChoiceOption:
if (this.radioButton18.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton18.Checked = true;
if (this.radioButton17.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton17.Checked = true;
if (this.radioButton16.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton16.Checked = true;
if (this.radioButton15.Text.Equals(this.analysisModel.ListParam[i].param_value))
this.radioButton15.Checked = true;
break;
}
}
}
}
private void saveDialogParam()
{
this.saveDialogParamValues();
//xml保存路径
string filePath = Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\BinaryActionSaving\\ParameterSaving.xml";
GrainSizeAnalysisModel analysisModelXml = XmlSerializeHelper.DESerializer(FileOperationHelper.ReadStringFromFile(filePath, System.IO.FileMode.Open));
foreach (var analysisItem in this.analysisModel.ListParam)
{
bool foundItem = false;
foreach (var item in analysisModelXml.ListParam)
{
if (item.param_key.Equals(analysisItem.param_key) && item.menuId == analysisItem.menuId)
{
item.param_value = analysisItem.param_value;
foundItem = true;
break;
}
}
if (!foundItem)
analysisModelXml.ListParam.Add(analysisItem.cloneModel());
}
//按路径和名称保存xml文件
string userInfoXml = XmlSerializeHelper.XmlSerialize(analysisModelXml);
//保存xml
FileOperationHelper.WriteStringToFile(userInfoXml, filePath, System.IO.FileMode.Create);
}
#endregion
}
}