SpecialParticleForm.cs 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. using OTSCommon;
  2. using OTSDataType;
  3. using OTSMeasureApp._0_OTSModel.OTSDataType;
  4. using OTSModelSharp.ServiceCenter;
  5. using System;
  6. using System.Collections;
  7. using System.Collections.Generic;
  8. using System.ComponentModel;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.IO;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading;
  15. using System.Threading.Tasks;
  16. using System.Windows.Forms;
  17. using System.Xml;
  18. namespace OTSMeasureApp
  19. {
  20. public partial class SpecialParticleForm : Form
  21. {
  22. //private string xmlPath = "";
  23. private string str_RegName = "default";
  24. private string str_start = "0";
  25. private string str_end = "100";
  26. private string str_diameterStart = "0";
  27. private string str_diameterEnd = "100";
  28. OTSIncAMeasureAppForm m_mainForm;
  29. OTSMeasureStatusWindow m_measureStatuWindow;
  30. byte[] m_BseData;
  31. int m_imageWidth;
  32. int m_imageHeight;
  33. //国际化
  34. OTSCommon.Language lan;
  35. Hashtable table;
  36. //the datasource of datagridview
  37. DataSet ds1;
  38. public CSpecialGrayRangeParam specialGray;
  39. public SpecialParticleForm(OTSIncAMeasureAppForm mainForm,byte[] bBseData,int width,int height,COTSSample cursample)
  40. {
  41. InitializeComponent();
  42. //this.xmlPath = xmlPath;
  43. m_mainForm = mainForm;
  44. m_measureStatuWindow = mainForm.m_MessureStatuWindow ;
  45. m_BseData = bBseData;
  46. m_imageWidth = width;
  47. m_imageHeight = height;
  48. specialGray = cursample.GetMsrParams().GetImageProcessParam().GetSpecialGreyRangeParam() ;
  49. //ShowXmlInfo();
  50. ShowparamInfo();
  51. //国际化
  52. lan = new OTSCommon.Language(this);
  53. table = lan.GetNameTable(this.Name);
  54. }
  55. //private void ShowXmlInfo()
  56. //{
  57. // ds1 = XMLoperate.GetXMLRegList(xmlPath, "Member");
  58. // if (ds1.Tables.Count > 0)
  59. // {
  60. // dg1.DataSource = ds1.Tables[0];
  61. // var ds2 = XMLoperate.GetXMLRegList(xmlPath, "XMLData");
  62. // var ifrun = Convert.ToBoolean(ds2.Tables[0].Rows[0]["ToRun"]);
  63. // checkBox1.Checked = ifrun;
  64. // }
  65. //}
  66. private void ShowparamInfo()
  67. {
  68. ds1 = new DataSet();
  69. ds1.Tables.Clear();
  70. ds1.Tables.Add();
  71. var t = ds1.Tables[0];
  72. t.Columns.Add("RegName");
  73. t.Columns.Add("start");
  74. t.Columns.Add("end");
  75. t.Columns.Add("diameterStart");
  76. t.Columns.Add("diameterEnd");
  77. t.Columns.Add("collectXray");
  78. foreach (var rang in specialGray.GetSpecialGreyRanges())
  79. {
  80. var r= t.Rows.Add();
  81. r["RegName"]=rang.rngname;
  82. r["start"]=rang.range.GetStart().ToString();
  83. r["end"]=rang.range.GetEnd().ToString();
  84. r["diameterStart"]=rang.diameterRange.GetStart().ToString();
  85. r["diameterEnd"]=rang.diameterRange.GetEnd().ToString();
  86. r["collectXray"]=rang.ifCollectXray.ToString();
  87. }
  88. if (ds1.Tables.Count > 0)
  89. {
  90. dg1.DataSource = ds1.Tables[0];
  91. //var ds2 = XMLoperate.GetXMLRegList(xmlPath, "XMLData");
  92. //var ifrun = Convert.ToBoolean(ds2.Tables[0].Rows[0]["ToRun"]);
  93. }
  94. checkBox1.Checked = specialGray.IsToRun;
  95. }
  96. private void button1_Click(object sender, EventArgs e)
  97. {
  98. if (ds1.Tables.Count == 0)
  99. {
  100. var t = new DataTable();
  101. t.Columns.Add(new DataColumn("RegName"));
  102. t.Columns.Add(new DataColumn("start"));
  103. t.Columns.Add(new DataColumn("end"));
  104. t.Columns.Add(new DataColumn("diameterStart"));
  105. t.Columns.Add(new DataColumn("diameterEnd"));
  106. t.Columns.Add(new DataColumn("collectXray"));
  107. ds1.Tables.Add(t);
  108. }
  109. var nr = ds1.Tables[0].NewRow();
  110. nr["RegName"] = str_RegName;
  111. nr["start"] = str_start;
  112. nr["end"] = str_end;
  113. nr["diameterStart"] = str_diameterStart;
  114. nr["diameterEnd"] = str_diameterEnd;
  115. nr["collectXray"] = "false";
  116. ds1.Tables[0].Rows.Add(nr);
  117. dg1.DataSource = ds1.Tables[0];
  118. }
  119. private void button3_Click(object sender, EventArgs e)
  120. {
  121. if (ds1.Tables[0].Rows.Count > 0)
  122. {
  123. ds1.Tables[0].Rows.RemoveAt(dg1.CurrentRow.Index);
  124. }
  125. }
  126. private void dg1_CellContentClick(object sender, DataGridViewCellEventArgs e)
  127. {
  128. if (dg1.Columns[e.ColumnIndex].Name == "rangeChoose" && e.RowIndex >= 0)
  129. {
  130. frmSpecialGrayParticle toolWindow = new frmSpecialGrayParticle(m_mainForm, m_measureStatuWindow);
  131. int grayStart = 0;
  132. int grayEnd = 0;
  133. if (m_BseData != null)
  134. {
  135. Bitmap bitmap = CImageHandler.ToGrayBitmap(m_BseData, m_imageWidth, m_imageHeight);
  136. toolWindow.BseImg = bitmap;
  137. toolWindow.SetBBseData(m_BseData);
  138. grayStart = Convert.ToInt32( dg1.Rows[e.RowIndex].Cells["start"].Value);
  139. grayEnd = Convert.ToInt32(dg1.Rows[e.RowIndex].Cells["end"].Value);
  140. //设置可视化中的属性
  141. toolWindow.BseGrayMinValue = grayStart;
  142. toolWindow.BseGrayMaxValue = grayEnd;
  143. }
  144. DialogResult dialogResult = toolWindow.ShowDialog();
  145. if (dialogResult == DialogResult.OK)
  146. {
  147. dg1.Rows[e.RowIndex].Cells["start"].Value = toolWindow.BseGrayMinValue;
  148. dg1.Rows[e.RowIndex].Cells["end"].Value = toolWindow.BseGrayMaxValue;
  149. }
  150. }
  151. }
  152. private void confirm_Click(object sender, EventArgs e)
  153. {
  154. var rngs = specialGray.GetSpecialGreyRanges();
  155. rngs.Clear();
  156. for (int i = 0;i< dg1.Rows.Count; i++)
  157. {
  158. //设置参数
  159. CSpecialGrayRange specialRng = new CSpecialGrayRange();
  160. specialRng.rngname = dg1.Rows[i].Cells["RegName"].Value.ToString();
  161. specialRng.range.SetStart(Convert.ToInt32( dg1.Rows[i].Cells["start"].Value));
  162. specialRng.range.SetEnd(Convert.ToInt32(dg1.Rows[i].Cells["end"].Value));
  163. specialRng.diameterRange.SetStart(Convert.ToInt32(dg1.Rows[i].Cells["diameterStart"].Value));
  164. specialRng.diameterRange.SetEnd(Convert.ToInt32(dg1.Rows[i].Cells["diameterEnd"].Value));
  165. if (dg1.Rows[i].Cells["collectXray"].Value == DBNull.Value || dg1.Rows[i].Cells["collectXray"].Value.ToString().ToLower() == "false")
  166. {
  167. specialRng.ifCollectXray =false;
  168. }
  169. else
  170. {
  171. specialRng.ifCollectXray =true;
  172. }
  173. rngs.Add(specialRng);
  174. }
  175. specialGray.SetSpecailGrayRanges(rngs);
  176. specialGray.IsToRun=checkBox1.Checked;
  177. this.Close();
  178. }
  179. private void button2_Click(object sender, EventArgs e)
  180. {
  181. this.Close();
  182. }
  183. }
  184. }