using OpenCvSharp;
using OpenCvSharp.Extensions;
using PaintDotNet.Base.Functionodel;
using PaintDotNet.CustomControl;
using PaintDotNet.Data.Param;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using PaintDotNet.DbOpreate.DbBll;
using PaintDotNet.DbOpreate.DbModel;
using PaintDotNet.Base.CommTool;
using System.Data;
using System.IO;
using PaintDotNet.Instrument;
using Metis.ParameterSet;
using PaintDotNet.Base;
namespace PaintDotNet.GeneralAnalysis
{
///
/// 两相面积含量
///
internal class PolyphaseContentDialog : PdnBaseForm
{
///
/// 主空间
///
private AppWorkspace appWorkspace;
///
/// 图像面板
///
private DocumentWorkspaceWindow documentWorkspace;
private DocumentWorkspaceWindow tmpDocumentWorkspace;
///
/// 选中图片的mat
///
private Mat imageMat;
private List polyphaseAnalysisResults = new List();
private List viewPolyphaseAnalysisResults = new List();
private List mainPolyphaseAnalysisResults = new List();
///
/// 处理程序
///
private ParamObject action = new Data.Action.Action901();
///
/// 当前选择的图片index
///
int selectIndex = 0;
int decnum = 2;
private CommonControlButtons commonControlButtons;
private int is_all = 0;
private List bitList = new List();
private Dictionary> bitDic = new Dictionary>();
private int imgIndex = -1;
private GeneralAnalysisModel generalAnalysisModel = new GeneralAnalysisModel();
private bool isExportResults = false;
private bool isExportReports = false;
private bool isExportProjects = false;
///
/// 是否脚本运行
///
private Boolean initScriptValues = false;
private int menuId;
private string menuName;
#region 控件
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.ListView listView1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.GroupBox groupBox_review;
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.GroupBox groupBox6;
private System.Windows.Forms.GroupBox groupBox7;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.ImageList imageList1;
private GroupBox groupBox3;
private Label label5;
private Label label4;
private Label label3;
private DataGridView dataGridView_results;
private Label lbl_content;
private Label lbl_area;
private Label lbl_rate;
private Button button_remove;
private Button button_all;
private Button button5;
private NumericUpDown numericUpDown1;
private DataGridViewTextBoxColumn Column1;
private DataGridViewTextBoxColumn Column2;
private DataGridViewTextBoxColumn Column3;
private DataGridViewTextBoxColumn Column4;
private Button button9;
private CheckedListBox listBox_analysisResult;
private DataGridViewTextBoxColumn Column5;
private DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
private DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
private DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
private DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
private IContainer components;
#endregion
public PolyphaseContentDialog()
{
InitializeComponent();
}
public PolyphaseContentDialog(AppWorkspace appWorkspace, PdnMenuItem menuItem)
{
InitializeComponent();
InitializeLanguageText();
this.appWorkspace = appWorkspace;
this.menuId = menuItem.MenuId;
this.menuName = menuItem.Text;
this.documentWorkspace = new DocumentWorkspaceWindow(appWorkspace);
this.documentWorkspace.Dock = DockStyle.Fill;
this.documentWorkspace.HookMouseEvents();
this.documentWorkspace.AuxiliaryLineEnabled = false;
this.documentWorkspace.Visible = false;
tmpDocumentWorkspace = new DocumentWorkspaceWindow(appWorkspace);
this.groupBox_review.Controls.Add(documentWorkspace);
this.commonControlButtons = new CommonControlButtons();
this.commonControlButtons.Dock = DockStyle.Top;
this.commonControlButtons.Height = 30;
this.commonControlButtons.HideZoomToWindowAndActualSize();
this.groupBox_review.Controls.Add(commonControlButtons);
InitPicList();
CalcProcess();
this.listView1.SelectedIndexChanged += new EventHandler(this.ListViewSelectedIndexChanged);
SetAnalyzeModelFromXml("Template.Manager.item2.PolyphaseContent");
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
InitCommonButtonEvent();
this.Shown += showImg;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.saveLastData);
}
private void showImg(object sender, EventArgs e)
{
listView1.Focus();
if (this.imgIndex != -1)
{
//滚动到指定的行位置
this.listView1.EnsureVisible(this.imgIndex);
this.listView1.Items[imgIndex].Focused = true;
this.listView1.Items[imgIndex].Selected = true;
//如果是脚本执行,将参数带入
if (appWorkspace.ScriptRunning && appWorkspace.ScriptCurrentParam != null)
{
this.initScriptValues = true;//ScriptAutomatic
//Boolean initScriptValues = true;
////在这里反射出对应功能的参数类
string className = InvariantData.path_Action + ".Action" + menuId;
ParamObject param = (ParamObject)System.Reflection.Assembly.Load(InvariantData.assembly_Data).CreateInstance(className);
foreach (Args arg in param.Lists)
{
Args param1 = appWorkspace.ScriptCurrentParam.Lists.Find(m => m.Key.Equals(arg.Key));
if (param1.value != null)
arg.Value = param1.value;
getValue(arg.key, arg.Value);
}
appWorkspace.ScriptCurrentParam = null;//阻止第二次进入仍然被赋值参数
}
else
{//读取上次关闭窗口时保存的参数
getLastData();
}
if (this.initScriptValues && this.appWorkspace.ScriptAutomatic)
this.startScriptAutomaticAction();
}
}
///
/// 获取上次操作参数
///
private void getLastData()
{
string filePath = Application.StartupPath + "\\Config\\Default\\ParameterSaving\\ParameterGeneralAnalysis.xml";
if (!System.IO.File.Exists(filePath))
{
generalAnalysisModel = new GeneralAnalysisModel();
generalAnalysisModel.PolyphaseMutiAreaContentModels = new GeneralAnalysisModel.PolyphaseMutiAreaContentModel();
generalAnalysisModel.PolyphaseCounterAnalysisModels = new GeneralAnalysisModel.PolyphaseCounterAnalysisModel();
generalAnalysisModel.TwoPhaseScaleModels = new GeneralAnalysisModel.TwoPhaseScaleModel();
generalAnalysisModel.PolyphaseContentModels = new GeneralAnalysisModel.PolyphaseContentModel();
generalAnalysisModel.PolyphaseDistanceModels = new GeneralAnalysisModel.PolyphaseDistanceModel();
generalAnalysisModel.DebrisSelectionModels = new GeneralAnalysisModel.DebrisSelectionModel();
generalAnalysisModel.CountNumberAnalysisModels = new GeneralAnalysisModel.CountNumberAnalysisModel();
generalAnalysisModel.PolyphaseMutiAreaContentModels.hasUsed = false;
generalAnalysisModel.PolyphaseCounterAnalysisModels.hasUsed = false;
generalAnalysisModel.TwoPhaseScaleModels.hasUsed = false;
generalAnalysisModel.PolyphaseContentModels.hasUsed = false;
generalAnalysisModel.PolyphaseDistanceModels.hasUsed = false;
generalAnalysisModel.DebrisSelectionModels.hasUsed = false;
generalAnalysisModel.CountNumberAnalysisModels.hasUsed = false;
string porosityInfoXml = XmlSerializeHelper.XmlSerialize(generalAnalysisModel);
Directory.CreateDirectory(Application.StartupPath + "\\Config\\Default\\ParameterSaving\\");
FileOperationHelper.WriteStringToFile(porosityInfoXml, filePath, FileMode.CreateNew);
}
else
{
generalAnalysisModel = XmlSerializeHelper.DESerializer(FileOperationHelper.ReadStringFromFile(filePath, FileMode.Open));
if (generalAnalysisModel.PolyphaseContentModels == null) {
generalAnalysisModel.PolyphaseContentModels = new GeneralAnalysisModel.PolyphaseContentModel();
}
if (generalAnalysisModel.PolyphaseContentModels.hasUsed)
{
numericUpDown1.Value = generalAnalysisModel.PolyphaseContentModels.parameter1;
checkBox1.Checked = generalAnalysisModel.PolyphaseContentModels.parameter2;
}
}
}
///
/// 保存上次操作参数
///
private void saveLastData(object sender, EventArgs e)
{
#region [开启脚本录制]
if (appWorkspace.startScriptRecording)
{
getScriptRecording();
}
#endregion
if (generalAnalysisModel.PolyphaseContentModels == null)
{
generalAnalysisModel.PolyphaseContentModels = new GeneralAnalysisModel.PolyphaseContentModel();
}
generalAnalysisModel.PolyphaseContentModels.hasUsed = true;
generalAnalysisModel.PolyphaseContentModels.parameter1 = (int)numericUpDown1.Value;
generalAnalysisModel.PolyphaseContentModels.parameter2 = checkBox1.Checked;
string filePath = Application.StartupPath + "\\Config\\Default\\ParameterSaving\\ParameterGeneralAnalysis.xml";
string porosityInfoXml = XmlSerializeHelper.XmlSerialize(generalAnalysisModel);
FileOperationHelper.WriteStringToFile(porosityInfoXml, filePath, FileMode.Create);
}
private void PolyphaseContentDialog_Load(object sender, EventArgs e)
{
}
#region 公共按钮
private void InitCommonButtonEvent()
{
this.commonControlButtons.zoomInButton.Click += new EventHandler(zoomInButton_Click);
this.commonControlButtons.zoomOutButton.Click += new EventHandler(zoomOutButton_Click);
this.commonControlButtons.zoomToWindowButton.Click += new EventHandler(zoomToWindowButton_Click);
this.commonControlButtons.actualSizeButton.Click += new EventHandler(actualSizeButton_Click);
this.commonControlButtons.pointerButton.Click += new EventHandler(pointerButton_Click);
this.commonControlButtons.mobileModeButton.Click += new EventHandler(mobileModeButton_Click);
}
private void zoomInButton_Click(object sender, EventArgs e)
{
if(this.imageMat != null)
this.documentWorkspace.ZoomIn();
}
private void zoomOutButton_Click(object sender, EventArgs e)
{
if (this.imageMat != null)
this.documentWorkspace.ZoomOut();
}
private void zoomToWindowButton_Click(object sender, EventArgs e)
{
this.documentWorkspace.ZoomBasis = ZoomBasis.FitToWindow;
}
private void actualSizeButton_Click(object sender, EventArgs e)
{
this.documentWorkspace.ZoomBasis = ZoomBasis.ScaleFactor;
this.documentWorkspace.ScaleFactor = ScaleFactor.OneToOne;
}
private void pointerButton_Click(object sender, EventArgs e)
{
this.documentWorkspace.ActiveTool = Annotation.Enum.DrawToolType.Pointer;
}
private void mobileModeButton_Click(object sender, EventArgs e)
{
this.documentWorkspace.ActiveTool = Annotation.Enum.DrawToolType.MoveMode;
}
#endregion
///
/// 初始化图片列表数据
///
//public void InitPicList()
//{
// //初始化图片列表
// for (int i = 0; i < this.appWorkspace.DocumentWorkspaces.Length; i++)
// {
// this.imageList1.Images.Add("img" + i, this.appWorkspace.DocumentWorkspaces[i].BinarizationThumbnail);
// this.listView1.Items.Add("", i);
// this.listView1.Items[i].ImageIndex = i;
// this.listView1.Items[i].Text = this.appWorkspace.DocumentWorkspaces[i].GetFriendlyName();
// this.listView1.Items[i].Name = this.appWorkspace.DocumentWorkspaces[i].GetFriendlyName();
// }
//}
public void InitPicList()
{
//初始化图片列表
for (int i = 0; i < this.appWorkspace.DocumentWorkspaces.Length; i++)
{
this.imageList1.Images.Add("img" + i, this.appWorkspace.DocumentWorkspaces[i].CompositionSurface.Thumbnail);
this.listView1.Items.Add("", i);
this.listView1.Items[i].ImageIndex = i;
String imageName = this.appWorkspace.DocumentWorkspaces[i].GetFriendlyName();
if (listView1.Items.Find(imageName, false).Count() > 0)
{
if (imageName.Split('.').Count() > 1)
{
imageName = imageName.Split('.')[0] + "(" + listView1.Items.Find(imageName, false).Count() + ")." + imageName.Split('.')[1];
}
}
this.listView1.Items[i].Text = imageName;
this.listView1.Items[i].Name = imageName;
if (this.appWorkspace.DocumentWorkspaces[i].Equals(this.appWorkspace.ActiveDocumentWorkspace))
{
this.imgIndex = i;
}
}
}
///
/// ListView图片选择改变事件
///
///
///
private void ListViewSelectedIndexChanged(object sender, EventArgs e)
{
if (this.listView1.FocusedItem != null && this.listView1.FocusedItem.Selected)
{
this.imageMat = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].CompositionSurface.CreatedAliasedMat();
Document document = Document.FromImageMat(imageMat.Clone());
this.documentWorkspace.Document = document;
this.documentWorkspace.Visible = true;
this.documentWorkspace.GraphicsList = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].GraphicsList;
this.documentWorkspace.phaseModels = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].phaseModels;
//tmpDocumentWorkspace.Document = document;
//tmpDocumentWorkspace.Visible = true;
//tmpDocumentWorkspace.GraphicsList = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].GraphicsList;
//tmpDocumentWorkspace.phaseModels = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].phaseModels;
this.applyButtonImpl(sender, e);
//获取显示直方图
//pdnRegion = new PdnRegion(AppWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].Document.Bounds);
//this.histogramControl1.Histogram.UpdateHistogram(AppWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].SurfaceBox.Surface, pdnRegion);
}
}
private void CalcProcess()
{
//for (int selectIndex = 0; selectIndex < this.appWorkspace.DocumentWorkspaces.Count(); selectIndex++)
//{
//}
}
///
/// 参数改变时,重新处理图像
///
///
///
private void applyButtonImpl(object sender, EventArgs e)
{
//double pxPerUnit = Startup.instance.rules[MeasurementUnit.Micron];
double pxPerUnit = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].GetRuler(MeasurementUnit.Micron);
if (this.listView1.FocusedItem != null)
{
dataGridView1.Rows.Clear();
mainPolyphaseAnalysisResults.Clear();
selectIndex = this.listView1.FocusedItem.Index;
//判断是否存在视场,如果存在视场,则把视场提取出来,进行处理
if (this.appWorkspace.DocumentWorkspaces[selectIndex].GraphicsList.IsExsitView())
{
for (int i = 0; i < this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels.Count; i++)
{
PhaseModel pModel = this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i];
if (pModel.choise)
{
Color pColor = new Color();
pColor = Color.FromArgb(pModel.color);
Mat front = pModel.mat;
//相总面积
int phaseAmount = AnalysisTools.GetPointsFromMat(front);
//视图中相面积
Bitmap frontTarget = this.documentWorkspace.GetFullSizeWithRegion(front.ToBitmap());
//frontTarget.Save("D:\\1-1.bmp");
//获取视图中相的点合计
//int frontAmount = AnalysisTools.GetPointsFromMat(PaintDotNet.Camera.Tools.ToMat(frontTarget));
Mat background = this.imageMat.Clone();
Mat roi = new Mat(background, new Rect(0, 0, background.Width, background.Height));
Mat mask = Mat.FromImageData(front.ToBytes(), ImreadModes.Grayscale);
front.CopyTo(roi, mask);
Bitmap target = this.documentWorkspace.GetFullSizeWithRegion(background.ToBitmap());
Mat targetMat = PaintDotNet.Camera.Tools.ToMat(target);
targetMat.SaveImage("D:\\2.bmp");
//获取合并后视场内的点合计
int allAmount = AnalysisTools.GetPointsFromMat(targetMat);
int picAmount = AnalysisTools.GetPointsFromMat(background);
double cRate = 0f;
//计算比例
//视场内部存在相
//if (viewAmount > 0)
//{
//}
//else
//{
// //视场内部不存在相
// cRate = (double)phaseAmount / allAmount;
//}
cRate = (double)phaseAmount / allAmount;
//计算面积
double cArea = phaseAmount;
//计算相含量
double fRate = (double)phaseAmount / picAmount;
//dataGridView1.Rows.Add(this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i].name, cArea, cRate, fRate);
PolyphaseAnalysisResult pResult = new PolyphaseAnalysisResult();
pResult.GraphName = this.listView1.FocusedItem.Text;
pResult.PolyphaseName = this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i].name;
pResult.PolyphaseArea = cArea * pxPerUnit * pxPerUnit;
pResult.PolyphaseRate = cRate * 100;
pResult.PolyphaseAllRate = fRate * 100;
mainPolyphaseAnalysisResults.Add(pResult);
dataGridView1.Rows.Add(pResult.PolyphaseName, AnalysisTools.GetDecNum(pResult.PolyphaseArea, decnum) , AnalysisTools.GetDecNum(pResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseAllRate, decnum));
}
}
}
else
{
for (int i = 0; i < this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels.Count; i++)
{
PhaseModel pModel = this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i];
if (pModel.choise)
{
Color pColor = new Color();
pColor = Color.FromArgb(pModel.color);
int phaseArea = AnalysisTools.GetPointsFromMat(pModel.mat);
Mat sourceMat = this.imageMat.Clone();
int picAmount = AnalysisTools.GetPointsFromMat(sourceMat);
//计算面积
double cRate = (double)phaseArea / picAmount;
PolyphaseAnalysisResult pResult = new PolyphaseAnalysisResult();
pResult.GraphName = this.listView1.FocusedItem.Text;
pResult.PolyphaseName = this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i].name;
pResult.PolyphaseArea = phaseArea * pxPerUnit * pxPerUnit;
pResult.PolyphaseRate = cRate * 100;
pResult.PolyphaseAllRate = cRate * 100;
mainPolyphaseAnalysisResults.Add(pResult);
dataGridView1.Rows.Add(pResult.PolyphaseName, AnalysisTools.GetDecNum(pResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseAllRate, decnum));
}
}
}
show_avg();
}
}
#region InitializeComponent
private void InitializeLanguageText()
{
this.Column2.HeaderText = PdnResources.GetString("Menu.Phasearea.text");
this.Column3.HeaderText = PdnResources.GetString("Menu.proportion.text") + "%";
this.Column4.HeaderText = PdnResources.GetString("Menu.Phasecontent.text") + "%";
this.groupBox_review.Text = PdnResources.GetString("Menu.Preview.text");
this.groupBox5.Text = PdnResources.GetString("Menu.Analysisresult.text");
this.button_remove.Text = PdnResources.GetString("Menu.Edit.Delete.Text");
this.button_all.Text = PdnResources.GetString("Menu.Showall.text");
this.Column5.HeaderText = PdnResources.GetString("Menu.picture.Text");
this.dataGridViewTextBoxColumn1.HeaderText = PdnResources.GetString("Menu.Phasename.text");
this.label4.Text = PdnResources.GetString("Menu.Phasearea.text") + ":";
this.label3.Text = PdnResources.GetString("Menu.proportion.text") + "% :";
this.Text = PdnResources.GetString("Menu.GeneralAnalysis.TwoPhaseArea.Text");
this.dataGridViewTextBoxColumn2.HeaderText = PdnResources.GetString("Menu.Phasearea.text");
this.dataGridViewTextBoxColumn3.HeaderText = PdnResources.GetString("Menu.proportion.text") + "%";
this.dataGridViewTextBoxColumn4.HeaderText = PdnResources.GetString("Menu.Phasecontent.text") + "%";
this.button9.Text = PdnResources.GetString("Menu.Tools.OpenProject.Text");
this.label1.Text = PdnResources.GetString("Menu.Decimal.text");
this.button4.Text = PdnResources.GetString("Menu.Exportresults.text");
this.button3.Text = PdnResources.GetString("Menu.Tools.CreateReport.Text");
this.groupBox3.Text = PdnResources.GetString("Menu.Averageresult.text");
this.label5.Text = PdnResources.GetString("Menu.Phasecontent.text") + "% :";
this.groupBox4.Text = PdnResources.GetString("Menu.Tools.ImageIndex.Text");
this.groupBox1.Text = PdnResources.GetString("Menu.operation.text");
this.button5.Text = PdnResources.GetString("Menu.File.Close.Text");
this.button2.Text = PdnResources.GetString("Menu.Saveresult.text");
this.checkBox1.Text = PdnResources.GetString("Menu.Opensettingsatingreport.text");
this.button1.Text = PdnResources.GetString("Menu.Setting.Text");
this.groupBox2.Text = PdnResources.GetString("Menu.Resultspreview.text");
this.Column1.HeaderText = PdnResources.GetString("Menu.Phasename.text");
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.listView1 = new System.Windows.Forms.ListView();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.button5 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.button1 = new System.Windows.Forms.Button();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.groupBox_review = new System.Windows.Forms.GroupBox();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.listBox_analysisResult = new System.Windows.Forms.CheckedListBox();
this.button_remove = new System.Windows.Forms.Button();
this.button_all = new System.Windows.Forms.Button();
this.groupBox6 = new System.Windows.Forms.GroupBox();
this.dataGridView_results = new System.Windows.Forms.DataGridView();
this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.groupBox7 = new System.Windows.Forms.GroupBox();
this.button9 = new System.Windows.Forms.Button();
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
this.label1 = new System.Windows.Forms.Label();
this.button4 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.lbl_content = new System.Windows.Forms.Label();
this.lbl_area = new System.Windows.Forms.Label();
this.lbl_rate = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.groupBox4.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.groupBox5.SuspendLayout();
this.groupBox6.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView_results)).BeginInit();
this.groupBox7.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
this.groupBox3.SuspendLayout();
this.SuspendLayout();
//
// groupBox4
//
this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.groupBox4.Controls.Add(this.listView1);
this.groupBox4.Location = new System.Drawing.Point(13, 72);
this.groupBox4.Margin = new System.Windows.Forms.Padding(4);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Padding = new System.Windows.Forms.Padding(4);
this.groupBox4.Size = new System.Drawing.Size(158, 483);
this.groupBox4.TabIndex = 9;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "图像索引";
//
// listView1
//
this.listView1.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.listView1.HideSelection = false;
this.listView1.LargeImageList = this.imageList1;
this.listView1.Location = new System.Drawing.Point(8, 26);
this.listView1.Margin = new System.Windows.Forms.Padding(4);
this.listView1.MultiSelect = false;
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(140, 449);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
//
// imageList1
//
this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
this.imageList1.ImageSize = new System.Drawing.Size(64, 64);
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
//
// 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.button5);
this.groupBox1.Controls.Add(this.button2);
this.groupBox1.Controls.Add(this.checkBox1);
this.groupBox1.Controls.Add(this.button1);
this.groupBox1.Location = new System.Drawing.Point(20, 12);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(1145, 53);
this.groupBox1.TabIndex = 10;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "操作";
//
// button5
//
this.button5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.button5.Location = new System.Drawing.Point(956, 21);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(75, 23);
this.button5.TabIndex = 3;
this.button5.Text = "关闭";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
// button2
//
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.button2.Location = new System.Drawing.Point(1053, 21);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(75, 23);
this.button2.TabIndex = 2;
this.button2.Text = "保存结果";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// checkBox1
//
this.checkBox1.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(98, 24);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(132, 16);
this.checkBox1.TabIndex = 1;
this.checkBox1.Text = "生成报告时打开设置";
this.checkBox1.UseVisualStyleBackColor = true;
//
// button1
//
this.button1.Location = new System.Drawing.Point(6, 24);
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.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.groupBox2.Controls.Add(this.dataGridView1);
this.groupBox2.Location = new System.Drawing.Point(178, 72);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(406, 347);
this.groupBox2.TabIndex = 11;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "结果预览";
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1,
this.Column2,
this.Column3,
this.Column4});
this.dataGridView1.Location = new System.Drawing.Point(6, 26);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.RowHeadersVisible = false;
this.dataGridView1.RowHeadersWidth = 51;
this.dataGridView1.RowTemplate.Height = 27;
this.dataGridView1.Size = new System.Drawing.Size(394, 444);
this.dataGridView1.TabIndex = 0;
//
// Column1
//
this.Column1.MinimumWidth = 6;
this.Column1.Name = "Column1";
this.Column1.Width = 70;
//
// Column2
//
this.Column2.MinimumWidth = 6;
this.Column2.Name = "Column2";
this.Column2.Width = 90;
//
// Column3
//
this.Column3.MinimumWidth = 6;
this.Column3.Name = "Column3";
this.Column3.Width = 125;
//
// Column4
//
this.Column4.MinimumWidth = 6;
this.Column4.Name = "Column4";
this.Column4.Width = 125;
//
// groupBox_review
//
this.groupBox_review.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.groupBox_review.Location = new System.Drawing.Point(590, 72);
this.groupBox_review.Name = "groupBox_review";
this.groupBox_review.Size = new System.Drawing.Size(575, 483);
this.groupBox_review.TabIndex = 12;
this.groupBox_review.TabStop = false;
this.groupBox_review.Text = "预览";
//
// groupBox5
//
this.groupBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.groupBox5.Controls.Add(this.listBox_analysisResult);
this.groupBox5.Controls.Add(this.button_remove);
this.groupBox5.Controls.Add(this.button_all);
this.groupBox5.Location = new System.Drawing.Point(12, 562);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(224, 165);
this.groupBox5.TabIndex = 13;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "分析结果";
//
// listBox_analysisResult
//
this.listBox_analysisResult.CheckOnClick = true;
this.listBox_analysisResult.FormattingEnabled = true;
this.listBox_analysisResult.HorizontalScrollbar = true;
this.listBox_analysisResult.Location = new System.Drawing.Point(11, 53);
this.listBox_analysisResult.Name = "listBox_analysisResult";
this.listBox_analysisResult.Size = new System.Drawing.Size(202, 100);
this.listBox_analysisResult.TabIndex = 10;
this.listBox_analysisResult.SelectedIndexChanged += new System.EventHandler(this.listBox_analysisResult_SelectedIndexChanged);
//
// button_remove
//
this.button_remove.Location = new System.Drawing.Point(130, 24);
this.button_remove.Name = "button_remove";
this.button_remove.Size = new System.Drawing.Size(75, 23);
this.button_remove.TabIndex = 8;
this.button_remove.Text = "删除";
this.button_remove.UseVisualStyleBackColor = true;
this.button_remove.Click += new System.EventHandler(this.button_remove_Click);
//
// button_all
//
this.button_all.Location = new System.Drawing.Point(14, 24);
this.button_all.Name = "button_all";
this.button_all.Size = new System.Drawing.Size(75, 23);
this.button_all.TabIndex = 1;
this.button_all.Text = "全部显示";
this.button_all.UseVisualStyleBackColor = true;
this.button_all.Click += new System.EventHandler(this.button_all_Click);
//
// groupBox6
//
this.groupBox6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox6.Controls.Add(this.dataGridView_results);
this.groupBox6.Location = new System.Drawing.Point(257, 562);
this.groupBox6.Name = "groupBox6";
this.groupBox6.Size = new System.Drawing.Size(678, 165);
this.groupBox6.TabIndex = 14;
this.groupBox6.TabStop = false;
//
// dataGridView_results
//
this.dataGridView_results.AllowUserToAddRows = false;
this.dataGridView_results.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dataGridView_results.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.dataGridView_results.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView_results.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column5,
this.dataGridViewTextBoxColumn1,
this.dataGridViewTextBoxColumn2,
this.dataGridViewTextBoxColumn3,
this.dataGridViewTextBoxColumn4});
this.dataGridView_results.Location = new System.Drawing.Point(16, 29);
this.dataGridView_results.Name = "dataGridView_results";
this.dataGridView_results.RowHeadersVisible = false;
this.dataGridView_results.RowHeadersWidth = 51;
this.dataGridView_results.RowTemplate.Height = 27;
this.dataGridView_results.Size = new System.Drawing.Size(645, 130);
this.dataGridView_results.TabIndex = 1;
//
// Column5
//
this.Column5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.Column5.HeaderText = "Column5";
this.Column5.MinimumWidth = 6;
this.Column5.Name = "Column5";
//
// dataGridViewTextBoxColumn1
//
this.dataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.dataGridViewTextBoxColumn1.HeaderText = "dataGridViewTextBoxColumn1";
this.dataGridViewTextBoxColumn1.MinimumWidth = 6;
this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";
//
// dataGridViewTextBoxColumn2
//
this.dataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.dataGridViewTextBoxColumn2.HeaderText = "dataGridViewTextBoxColumn2";
this.dataGridViewTextBoxColumn2.MinimumWidth = 6;
this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2";
//
// dataGridViewTextBoxColumn3
//
this.dataGridViewTextBoxColumn3.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.dataGridViewTextBoxColumn3.HeaderText = "dataGridViewTextBoxColumn3";
this.dataGridViewTextBoxColumn3.MinimumWidth = 6;
this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3";
//
// dataGridViewTextBoxColumn4
//
this.dataGridViewTextBoxColumn4.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.dataGridViewTextBoxColumn4.HeaderText = "dataGridViewTextBoxColumn4";
this.dataGridViewTextBoxColumn4.MinimumWidth = 6;
this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4";
//
// groupBox7
//
this.groupBox7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox7.Controls.Add(this.button9);
this.groupBox7.Controls.Add(this.numericUpDown1);
this.groupBox7.Controls.Add(this.label1);
this.groupBox7.Controls.Add(this.button4);
this.groupBox7.Controls.Add(this.button3);
this.groupBox7.Location = new System.Drawing.Point(941, 562);
this.groupBox7.Name = "groupBox7";
this.groupBox7.Size = new System.Drawing.Size(224, 165);
this.groupBox7.TabIndex = 15;
this.groupBox7.TabStop = false;
this.groupBox7.Enter += new System.EventHandler(this.groupBox7_Enter);
//
// button9
//
this.button9.Location = new System.Drawing.Point(19, 88);
this.button9.Name = "button9";
this.button9.Size = new System.Drawing.Size(141, 23);
this.button9.TabIndex = 9;
this.button9.Text = "项目工程";
this.button9.UseVisualStyleBackColor = true;
this.button9.Click += new System.EventHandler(this.button9_Click);
//
// numericUpDown1
//
this.numericUpDown1.Location = new System.Drawing.Point(66, 122);
this.numericUpDown1.Maximum = new decimal(new int[] {
10,
0,
0,
0});
this.numericUpDown1.Name = "numericUpDown1";
this.numericUpDown1.Size = new System.Drawing.Size(94, 21);
this.numericUpDown1.TabIndex = 4;
this.numericUpDown1.Value = new decimal(new int[] {
2,
0,
0,
0});
this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(17, 126);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(41, 12);
this.label1.TabIndex = 3;
this.label1.Text = "小数:";
//
// button4
//
this.button4.Location = new System.Drawing.Point(19, 54);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(141, 23);
this.button4.TabIndex = 1;
this.button4.Text = "导出结果";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// button3
//
this.button3.Location = new System.Drawing.Point(19, 20);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(141, 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.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.groupBox3.Controls.Add(this.lbl_content);
this.groupBox3.Controls.Add(this.lbl_area);
this.groupBox3.Controls.Add(this.lbl_rate);
this.groupBox3.Controls.Add(this.label5);
this.groupBox3.Controls.Add(this.label4);
this.groupBox3.Controls.Add(this.label3);
this.groupBox3.Location = new System.Drawing.Point(184, 439);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(394, 116);
this.groupBox3.TabIndex = 16;
this.groupBox3.TabStop = false;
//
// lbl_content
//
this.lbl_content.AutoSize = true;
this.lbl_content.Location = new System.Drawing.Point(239, 60);
this.lbl_content.Name = "lbl_content";
this.lbl_content.Size = new System.Drawing.Size(0, 12);
this.lbl_content.TabIndex = 7;
//
// lbl_area
//
this.lbl_area.AutoSize = true;
this.lbl_area.Location = new System.Drawing.Point(76, 26);
this.lbl_area.Name = "lbl_area";
this.lbl_area.Size = new System.Drawing.Size(0, 12);
this.lbl_area.TabIndex = 6;
//
// lbl_rate
//
this.lbl_rate.AutoSize = true;
this.lbl_rate.Location = new System.Drawing.Point(73, 60);
this.lbl_rate.Name = "lbl_rate";
this.lbl_rate.Size = new System.Drawing.Size(0, 12);
this.lbl_rate.TabIndex = 5;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(179, 61);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(0, 12);
this.label5.TabIndex = 3;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(16, 26);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(0, 12);
this.label4.TabIndex = 2;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(16, 61);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(0, 12);
this.label3.TabIndex = 1;
//
// PolyphaseContentDialog
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1177, 744);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.groupBox7);
this.Controls.Add(this.groupBox6);
this.Controls.Add(this.groupBox5);
this.Controls.Add(this.groupBox_review);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.groupBox4);
this.Name = "PolyphaseContentDialog";
this.Text = "两相面积含量";
this.Load += new System.EventHandler(this.PolyphaseContentDialog_Load);
this.Controls.SetChildIndex(this.groupBox4, 0);
this.Controls.SetChildIndex(this.groupBox1, 0);
this.Controls.SetChildIndex(this.groupBox2, 0);
this.Controls.SetChildIndex(this.groupBox_review, 0);
this.Controls.SetChildIndex(this.groupBox5, 0);
this.Controls.SetChildIndex(this.groupBox6, 0);
this.Controls.SetChildIndex(this.groupBox7, 0);
this.Controls.SetChildIndex(this.groupBox3, 0);
this.groupBox4.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.groupBox5.ResumeLayout(false);
this.groupBox6.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView_results)).EndInit();
this.groupBox7.ResumeLayout(false);
this.groupBox7.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private void show_avg()
{
if (listView1.FocusedItem != null)
{
var results = mainPolyphaseAnalysisResults.Where(p => p.GraphName.Equals(listView1.FocusedItem.Text));
if (results.Count() > 0)
{
lbl_area.Text = AnalysisTools.GetDecNum(results.Average(item => item.PolyphaseArea), decnum);
lbl_rate.Text = AnalysisTools.GetDecNum(results.Average(item => item.PolyphaseRate), decnum);
lbl_content.Text = AnalysisTools.GetDecNum(results.Average(item => item.PolyphaseAllRate), decnum);
}
}
}
private void button2_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count == 0)
{
MessageBox.Show(PdnResources.GetString("Menu.seselecttheimagethatyouwanttoan.Text")+"!");
return;
}
if (dataGridView1.Rows.Count == 0)
{
MessageBox.Show("结果为空!");
return;
}
String tag = listView1.FocusedItem.Text;
List tempBit = new List();
if (listView1.FocusedItem != null)
{
if (polyphaseAnalysisResults.FindAll(item => item.GraphName.Equals(listView1.FocusedItem.Text)).Count == 0)
{
listBox_analysisResult.Items.Add(this.listView1.FocusedItem.Text);
listBox_analysisResult.SetItemChecked(listBox_analysisResult.Items.Count - 1, true);
for (int i = 0; i < mainPolyphaseAnalysisResults.Count; i++)
{
PolyphaseAnalysisResult aResult = mainPolyphaseAnalysisResults[i];
polyphaseAnalysisResults.Add(aResult);
viewPolyphaseAnalysisResults.Add(aResult);
dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, AnalysisTools.GetDecNum(aResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum));
}
}
else
{
DialogResult dr = MessageBox.Show(PdnResources.GetString("Menu.Theresuethertoreplace.text")+"?", PdnResources.GetString("Form.OkButton.Text"), MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
if (dr != DialogResult.OK)
{
return;
}
viewPolyphaseAnalysisResults.RemoveAll(u => u.GraphName == listView1.FocusedItem.Text);
polyphaseAnalysisResults.RemoveAll(u => u.GraphName == listView1.FocusedItem.Text);
polyphaseAnalysisResults.AddRange(mainPolyphaseAnalysisResults);
viewPolyphaseAnalysisResults.AddRange(mainPolyphaseAnalysisResults);
List list = new List();
foreach (var s in this.listBox_analysisResult.Items)
{
list.Add(s.ToString());
}
this.listBox_analysisResult.Items.Clear();
foreach (var s in list)
{
this.listBox_analysisResult.Items.Add(s);
}
var thisindex = this.listBox_analysisResult.Items.IndexOf(listView1.FocusedItem.Text);
this.dataGridView_results.Rows.Clear();
listBox_analysisResult.SetItemChecked(thisindex, true);
for (int i = 0; i < mainPolyphaseAnalysisResults.Count; i++)
{
PolyphaseAnalysisResult aResult = mainPolyphaseAnalysisResults[i];
dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, AnalysisTools.GetDecNum(aResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum));
}
}
double pantographRatio = (double)this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].GetRulerMultiple(MeasurementUnit.Micron);//标尺*放大倍数
Bitmap originalBit = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].CompositionSurface.CreateAliasedBitmap();
originalBit.Tag = pantographRatio;
tempBit.Add(originalBit);
Bitmap newBit = originalBit.Clone(new Rectangle(0, 0, originalBit.Width, originalBit.Height), originalBit.PixelFormat);
Graphics graphics = Graphics.FromImage(newBit);
Draw(graphics);
newBit.Tag = pantographRatio;
tempBit.Add(newBit);
if (bitDic.ContainsKey(tag))
{
bitDic[tag].Clear();
bitDic[tag] = tempBit;
}
else
{
bitDic.Add(tag, tempBit);
}
}
}
private void Draw(Graphics graphics)
{
if (this.documentWorkspace.phaseModels.Count > 0)
{
foreach (PhaseModel model in this.documentWorkspace.phaseModels)
{
if (model.choise && model.mat != null)
{
Bitmap map = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(model.mat);
graphics.DrawImage(map, 0, 0, map.Width, map.Height);
}
}
}
}
private void button_all_Click(object sender, EventArgs e)
{
dataGridView_results.Rows.Clear();
if (this.is_all % 2 == 0)
{
for (int i = 0; i < listBox_analysisResult.Items.Count; i++)
{
listBox_analysisResult.SetItemChecked(i, false);
}
}
else {
for (int i = 0; i < listBox_analysisResult.Items.Count; i++)
{
listBox_analysisResult.SetItemChecked(i, true);
}
viewPolyphaseAnalysisResults.Clear();
viewPolyphaseAnalysisResults.AddRange(polyphaseAnalysisResults);
for (int i = 0; i < viewPolyphaseAnalysisResults.Count; i++)
{
PolyphaseAnalysisResult aResult = viewPolyphaseAnalysisResults[i];
dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, aResult.PolyphaseArea, AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum));
}
}
this.is_all += 1;
}
private void button_remove_Click(object sender, EventArgs e)
{
var removeList = new List();
if (listBox_analysisResult.CheckedItems != null && listBox_analysisResult.CheckedItems.Count > 0)
{
DialogResult dr = MessageBox.Show(PdnResources.GetString("Menu.ertodeletetheselectedanalysisres.Text")+"?", PdnResources.GetString("Menu.Edit.Delete.Text"), MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (dr == DialogResult.OK)
{
dataGridView_results.Rows.Clear();
foreach (var s in listBox_analysisResult.CheckedItems)
{
polyphaseAnalysisResults.RemoveAll(u => u.GraphName == s.ToString());
viewPolyphaseAnalysisResults.RemoveAll(u => u.GraphName == s.ToString());
removeList.Add(s.ToString());
}
for (int i = 0; i < viewPolyphaseAnalysisResults.Count; i++)
{
PolyphaseAnalysisResult aResult = viewPolyphaseAnalysisResults[i];
dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, aResult.PolyphaseArea, AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum));
}
foreach (var m in removeList)
{
listBox_analysisResult.Items.Remove(m);
}
}
}
else
{
MessageBox.Show(PdnResources.GetString("Menu.Pleaseselecttheimagetodelete.Text")+"!");
}
}
private void listBox_analysisResult_SelectedIndexChanged(object sender, EventArgs e)
{
dataGridView_results.Rows.Clear();
if (listBox_analysisResult.CheckedItems != null && listBox_analysisResult.CheckedItems.Count > 0)
{
foreach (var s in listBox_analysisResult.CheckedItems)
{
List findResults = polyphaseAnalysisResults.FindAll(item => item.GraphName.Equals(s.ToString()));
viewPolyphaseAnalysisResults.Clear();
viewPolyphaseAnalysisResults.AddRange(findResults);
for (int i = 0; i < viewPolyphaseAnalysisResults.Count; i++)
{
PolyphaseAnalysisResult aResult = viewPolyphaseAnalysisResults[i];
dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, AnalysisTools.GetDecNum(aResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum));
}
}
}
}
private void domainUpDown1_SelectedItemChanged(object sender, EventArgs e)
{
}
private void button5_Click(object sender, EventArgs e)
{
this.Close();
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
decnum = (int)numericUpDown1.Value;
refeshGrids();
}
private void refeshGrids()
{
dataGridView1.Rows.Clear();
for (int i = 0; i < mainPolyphaseAnalysisResults.Count; i++)
{
PolyphaseAnalysisResult pResult = mainPolyphaseAnalysisResults[i];
dataGridView1.Rows.Add(pResult.PolyphaseName, AnalysisTools.GetDecNum(pResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseAllRate, decnum));
}
dataGridView_results.Rows.Clear();
for (int i = 0; i < polyphaseAnalysisResults.Count; i++)
{
PolyphaseAnalysisResult pResult = polyphaseAnalysisResults[i];
dataGridView_results.Rows.Add(pResult.GraphName, pResult.PolyphaseName, AnalysisTools.GetDecNum(pResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseAllRate, decnum));
}
show_avg();
}
private void button1_Click(object sender, EventArgs e)
{
AnalyzeSettingDialog recombinationRateSetDialog = new AnalyzeSettingDialog(this, "Template.Manager.item2.PolyphaseContent");
if (recombinationRateSetDialog.hasModule)
{
recombinationRateSetDialog.StartPosition = FormStartPosition.CenterScreen;
recombinationRateSetDialog.ShowDialog();
}
else
{
recombinationRateSetDialog = null;
}
}
private void button3_Click(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
AnalyzeSettingDialog recombinationRateSetDialog = new AnalyzeSettingDialog(this, "Template.Manager.item2.PolyphaseContent");
if (recombinationRateSetDialog.hasModule)
{
recombinationRateSetDialog.StartPosition = FormStartPosition.CenterScreen;
recombinationRateSetDialog.ShowDialog();
}
else
{
recombinationRateSetDialog = null;
}
}
bitList.Clear();
if (this.analyzeSettingModel != null && !string.IsNullOrEmpty(this.analyzeSettingModel.analyzeClassify))
{
//获取word书签与excel单元格的关系,以字典方式存储
List mic_module_infos = mic_module_infos_BLL.FindAll().FindAll(a => a.analyze_classify == this.analyzeSettingModel.analyzeClassify);
Dictionary tagInfos = new Dictionary();
if (mic_module_infos != null && mic_module_infos.Count > 0)
{
foreach (mic_module_infos info in mic_module_infos)
{
tagInfos.Add(info.tag_name, info.cell_position);
}
}
List> analysisContent = new List>();
for (int i = 0; i < this.dataGridView_results.Rows.Count; i++)
{
List content1 = new List();
if (i == 0)
{
content1.Add(this.dataGridView_results.Columns[0].HeaderText);
content1.Add(this.dataGridView_results.Columns[1].HeaderText);
content1.Add(this.dataGridView_results.Columns[2].HeaderText);
content1.Add(this.dataGridView_results.Columns[3].HeaderText);
content1.Add(this.dataGridView_results.Columns[4].HeaderText);
analysisContent.Add(content1);
}
content1 = new List();
content1.Add(this.dataGridView_results.Rows[i].Cells[0].Value.ToString());
content1.Add(this.dataGridView_results.Rows[i].Cells[1].Value.ToString());
content1.Add(this.dataGridView_results.Rows[i].Cells[2].Value.ToString());
content1.Add(this.dataGridView_results.Rows[i].Cells[3].Value.ToString());
content1.Add(this.dataGridView_results.Rows[i].Cells[4].Value.ToString());
analysisContent.Add(content1);
string tag = this.dataGridView_results.Rows[i].Cells[0].Value.ToString();
if (bitDic.ContainsKey(tag))
{
bitList.Add(bitDic[tag][0]);
bitList.Add(bitDic[tag][1]);
}
}
this.appWorkspace.CreateAnalysisReport(this.analyzeSettingModel, analysisContent, bitList, tagInfos);
}
else
MessageBox.Show(PdnResources.GetString("Menu.Pleasesettheanalysisreportfirst.text")+"!");
}
private void groupBox7_Enter(object sender, EventArgs e)
{
}
private void button4_Click(object sender, EventArgs e)
{
if (this.dataGridView_results.Rows.Count > 0)
{
SaveFileDialog exe = new SaveFileDialog();
exe.Filter = "Execl files (*.xlsx)|*.xlsx";
exe.FilterIndex = 0;
exe.RestoreDirectory = true;
exe.Title = "Export Excel File";
exe.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
exe.FileName = PdnResources.GetString("Menu.GeneralAnalysis.TwoPhaseArea.Text")+ PdnResources.GetString("Menu.Analysisresult.text") + DateTime.Now.ToString("yyyyMMddhhmmss");
DialogResult dr = exe.ShowDialog();
if (dr == DialogResult.OK)
{
DataTable dtb = new DataTable();
foreach (DataGridViewColumn c in this.dataGridView_results.Columns)
{
dtb.Columns.Add(c.HeaderText);
}
for (int r = 0; r < this.dataGridView_results.Rows.Count; r++)
{
DataRow dataRow = dtb.NewRow();
for (int c = 0; c < this.dataGridView_results.Rows[r].Cells.Count; c++)
{
dataRow[this.dataGridView_results.Columns[c].HeaderText] = this.dataGridView_results.Rows[r].Cells[c].Value;
}
dtb.Rows.Add(dataRow);
}
List list = new List();
list.Add(dtb);
this.appWorkspace.ExportDataToExcelWithProgress(list, exe.FileName, true, false, true);
}
}
else
{
MessageBox.Show(PdnResources.GetString("Menu.Noanalysisresults.text")+"!");
}
}
private void button9_Click(object sender, EventArgs e)
{
if (this.dataGridView_results.Rows.Count == 0)
{
MessageBox.Show(PdnResources.GetString("Menu.Noresults.text"));
return;
}
if (this.analyzeSettingModel == null)
{
MessageBox.Show(PdnResources.GetString("Menu.Pleasesetiirst.Text"));
return;
}
//获取项目工程内的文件夹路径
ProjectEngineering.NodeItem item = this.appWorkspace.GetInsertProjectPath(2, "Menu.GeneralAnalysis.TwoPhaseArea.Text", this.analyzeSettingModel.savePath);
if (item != null)
{
//向文件夹内保存图片和报告
if (!string.IsNullOrEmpty(this.analyzeSettingModel.analyzeClassify))
{
//获取word书签与excel单元格的关系,以字典方式存储
List mic_module_infos = mic_module_infos_BLL.FindAll().FindAll(a => a.analyze_classify == this.analyzeSettingModel.analyzeClassify);
Dictionary tagInfos = new Dictionary();
if (mic_module_infos != null && mic_module_infos.Count > 0)
{
foreach (mic_module_infos info in mic_module_infos)
{
tagInfos.Add(info.tag_name, info.cell_position);
}
}
List> analysisContent = new List>();
List> inclusionList = new List>();
List exportModel = new List();
List bitImgList = new List();
List titleContent = new List();
for (int i = 0; i < this.dataGridView_results.Rows.Count; i++)
{
List content1 = new List();
if (i == 0)
{
content1.Add(this.dataGridView_results.Columns[0].HeaderText);
content1.Add(this.dataGridView_results.Columns[1].HeaderText);
content1.Add(this.dataGridView_results.Columns[2].HeaderText);
content1.Add(this.dataGridView_results.Columns[3].HeaderText);
content1.Add(this.dataGridView_results.Columns[4].HeaderText);
analysisContent.Add(content1);
titleContent.AddRange(content1);
}
content1 = new List();
content1.Add(this.dataGridView_results.Rows[i].Cells[0].Value.ToString());
content1.Add(this.dataGridView_results.Rows[i].Cells[1].Value.ToString());
content1.Add(this.dataGridView_results.Rows[i].Cells[2].Value.ToString());
content1.Add(this.dataGridView_results.Rows[i].Cells[3].Value.ToString());
content1.Add(this.dataGridView_results.Rows[i].Cells[4].Value.ToString());
analysisContent.Add(content1);
string tag = this.dataGridView_results.Rows[i].Cells[0].Value.ToString();
var export = exportModel.Where(m => m.picName == tag).FirstOrDefault();
if (export == null)
{
ExportProjectModel exportProjectModel = new ExportProjectModel();
exportProjectModel.dataList = new List>();
exportProjectModel.dataList.Add(titleContent);
exportProjectModel.dataList.Add(content1);
exportProjectModel.picName = tag;
exportProjectModel.tagName = PdnResources.GetString("Menu.GeneralAnalysis.TwoPhaseArea.Text");
exportModel.Add(exportProjectModel);
}
else
{
exportModel[exportModel.IndexOf(export)].dataList.Add(content1);
}
if (bitDic.ContainsKey(tag))
{
bitImgList.Add(bitDic[tag][0]);
bitImgList.Add(bitDic[tag][1]);
}
}
try
{
this.appWorkspace.CreateAnalysisReport(this.analyzeSettingModel, analysisContent, exportModel, bitImgList, tagInfos, item.path, item.code);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
MessageBox.Show(PdnResources.GetString("Menu.Pleasesettheanalysisreportfirst.text")+"!");
return;
}
//保存项目信息到数据库
this.appWorkspace.InsertIntoDB(this.analyzeSettingModel, item);
}
}
private void getValue(string key, Object value)
{
switch (key)
{
case "OpenWhileExportReport":
checkBox1.Checked = Convert.ToBoolean(value);
break;
case "CalculatorDecimalDigits":
numericUpDown1.Value = Convert.ToDecimal(value);
break;
case "ExportResults":
isExportResults = Convert.ToBoolean(value);
break;
case "ExportReports":
isExportReports = Convert.ToBoolean(value);
break;
case "ExportProjects":
isExportProjects = Convert.ToBoolean(value);
break;
}
}
#region [应用全部保存全部-私有方法]
///
/// 应用全部私有方法
///
private void applyAll()
{
}
///
/// 保存全部私有方法
///
private void saveAll()
{
for (int i = 0; i < listView1.Items.Count; i++)
{
this.listView1.EnsureVisible(i);
this.listView1.Items[i].Focused = true;
this.listView1.Items[i].Selected = true;
this.button2.PerformClick();
}
}
///
/// 执行脚本自动化的步骤
///
private void startScriptAutomaticAction()
{
saveAll();
if (isExportResults)//导出结果
this.button4.PerformClick();
if (isExportReports)//生成报告
this.button3.PerformClick();
if (isExportProjects)//导出项目
this.button9.PerformClick();
this.appWorkspace.ScriptAutomatic = false;
this.Close();
}
#endregion
#region [脚本录制]
private void getScriptRecording()
{
string className = InvariantData.path_Action + ".Action" + menuId;
ParamObject param = (ParamObject)System.Reflection.Assembly.Load(InvariantData.assembly_Data).CreateInstance(className);
List args = param.Lists;
foreach (var item in args)
{
item.value = setScriptRecording(item.key);
}
appWorkspace.SetScriptStartRecording(this.menuId, menuName, args);
}
private object setScriptRecording(string key)
{
object value = null;
switch (key)
{
case "OpenWhileExportReport":
value = checkBox1.Checked;
break;
case "CalculatorDecimalDigits":
value = numericUpDown1.Value;
break;
case "ExportResults":
value = isExportResults;
break;
case "ExportReports":
value = isExportReports;
break;
case "ExportProjects":
value = isExportProjects;
break;
}
return value;
}
#endregion
}
}