OTSPropertyWindow.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. using System;
  2. using System.Drawing;
  3. using System.Linq;
  4. using System.Windows.Forms;
  5. using OTS.WinFormsUI.Docking;
  6. using OTSDataType;
  7. using OTSMeasureApp._3_OTSDisplaySourceGridData;
  8. using OTSModelSharp.ResourceManage;
  9. using System.Collections.Generic;
  10. namespace OTSMeasureApp
  11. {
  12. public partial class OTSPropertyWindow : DockContent
  13. {
  14. public OTSIncAMeasureAppForm m_MeasureAppForm = null;
  15. public OTSDisplaySampleGrid m_SampleGrid = null;
  16. frmMeasureStopMode frmStopModeDialog;
  17. public OTSPropertyWindow(OTSIncAMeasureAppForm MeasureAppForm)
  18. {
  19. InitializeComponent();
  20. m_MeasureAppForm = MeasureAppForm;
  21. m_SampleGrid = new OTSDisplaySampleGrid(this);
  22. //国际化
  23. OTSCommon.Language lan = new OTSCommon.Language(this);
  24. }
  25. //接收 MeasureApp 发送的样品属性数据,通过Grid显示在properyWindow上
  26. public void DisplaySampleMeasureInfo(OTSSamplePropertyInfo SampleInfo)
  27. {
  28. PropGrid.Show();
  29. m_SampleGrid.m_ClickRow = 0;
  30. m_SampleGrid.m_ClickColumn = 0;
  31. if(PropGrid.Rows.Count()>0)
  32. {
  33. PropGrid.Rows.Clear();
  34. PropGrid.Redim(OTSDisplaySampleGrid.Const_Grid_Row, OTSDisplaySampleGrid.Const_Grid_Column);
  35. }
  36. m_SampleGrid.InitGrid();
  37. m_SampleGrid.ShowSampleInfoGrid(SampleInfo);
  38. int iPropertyDisplayMode = m_MeasureAppForm.m_ProjParam.GetDefaultParam().GetGenParam().PropertyDisplayMode();
  39. if (iPropertyDisplayMode == 1)
  40. {
  41. for (int i = 6; i < PropGrid.Rows.Count(); i++)
  42. {
  43. PropGrid.Rows.HideRow(i);
  44. }
  45. }
  46. else if (iPropertyDisplayMode == 0)
  47. {
  48. for (int i = 6; i < PropGrid.Rows.Count(); i++)
  49. {
  50. PropGrid.Rows.ShowRow(i);
  51. }
  52. }
  53. PropGrid.Refresh();
  54. PropGrid.Invalidate();
  55. }
  56. private void OTSPropertyWindow_Load(object sender, EventArgs e)
  57. {
  58. }
  59. private void OTSPropertyWindow_Resize(object sender, EventArgs e)
  60. {
  61. if (null != m_SampleGrid )
  62. {
  63. m_SampleGrid.m_PropWindow_X = this.Width;
  64. m_SampleGrid.InitGridTitlet();
  65. }
  66. }
  67. public void SampleGridInfoChange(OTS_SAMPLE_PROP_GRID_ITEMS SampleId, OTS_ITEM_TYPES ValType, object ObjVal)
  68. {
  69. var m_measurePara = m_MeasureAppForm.m_ProjParam;
  70. string sWSampleName = m_measurePara.GetWorkSampleName();
  71. if ("" == sWSampleName)
  72. {
  73. return;
  74. }
  75. var PropertyMeasureThreadRunFlag = m_MeasureAppForm.m_MsrThreadWrapper.BGWorkThreadIsRunning();
  76. var measureTreadIsPaused= m_MeasureAppForm.m_MsrThreadWrapper.BgWorkIsPaused();
  77. OTSSamplePropertyInfo SMInfo = new OTSSamplePropertyInfo();
  78. //var curSample = m_MeasureAppForm.m_ProjParam.GetWorkSample();
  79. //var curpara = curSample.GetMsrParams();
  80. //当前正在测量
  81. //if (PropertyMeasureThreadRunFlag && measureTreadIsPaused == false)//measureThread is running and is not paused
  82. //{
  83. // 修改TREEVIEW 工作样品的CHECKBOX值
  84. //if (OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH == SampleId)
  85. //{
  86. // //修改TREEVIEW对应的样品的CHECKBOX值
  87. // m_SolutionWindows.Rev_MeasureApp_CheckboxStatuChange_Event(m_measurePara.GetWorkSampleName(), SMInfo.TSampleParam.bSwitch);
  88. // // 设置 开始 ,停止 和检查参数 按钮状态
  89. // m_MeasureAppForm. m_RibbonFun.SetMeasureRibbonButnStatu();
  90. //}
  91. //sWSampleName = m_measurePara.GetWorkSampleName();
  92. //if ("" != sWSampleName)
  93. //{
  94. // m_MeasureAppForm.m_SamplepaceWindow.ChangeWorkSampleName(sWSampleName);
  95. //}
  96. //当修改了 样品图尺寸、放大倍数和样品图的Pix大小等,SAMPLEWINDOW需要重新绘制样品台
  97. //if (OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_GRP_MAX == SampleId
  98. // || OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION == SampleId
  99. // || OTS_SAMPLE_PROP_GRID_ITEMS.IMAGERESOLUTION_SIZE == SampleId
  100. // || OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE == SampleId
  101. // || OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE == SampleId
  102. // )
  103. //{
  104. // var sam = m_MeasureAppForm.m_SamplepaceWindow.GetWorkingVisualSample();
  105. // m_MeasureAppForm.m_SamplepaceWindow.PrepareMeasureField(sam, MSR_RUN_TYPE.RUNMEASURE);
  106. //}
  107. //m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  108. //DisplaySampleMeasureInfo(SMInfo);
  109. //return;
  110. //}
  111. if (measureTreadIsPaused == false && PropertyMeasureThreadRunFlag == true)
  112. {
  113. return;
  114. }
  115. if (OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_GRP_MAX == SampleId
  116. || OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION == SampleId
  117. || OTS_SAMPLE_PROP_GRID_ITEMS.IMAGERESOLUTION_SIZE == SampleId
  118. || OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE == SampleId
  119. || OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE == SampleId
  120. )
  121. {
  122. var sam = m_MeasureAppForm.m_SamplepaceWindow.GetWorkingVisualSample();
  123. m_MeasureAppForm.m_SamplepaceWindow.PrepareMeasureField(sam, MSR_RUN_TYPE.RUNMEASURE);
  124. m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  125. DisplaySampleMeasureInfo(SMInfo);
  126. return;
  127. }
  128. //更新 STD_FILE_NAME FILE_LIST
  129. switch (SampleId)
  130. {
  131. case OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME:
  132. if (m_measurePara.SetSTDFileName((int)ObjVal))
  133. {
  134. m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  135. DisplaySampleMeasureInfo(SMInfo);
  136. return;
  137. }
  138. break;
  139. case OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME:
  140. string str = (string)ObjVal;
  141. str = str.Trim();
  142. if (!m_measurePara.CheckSampleNameIsValid(str))
  143. {
  144. m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME, OTS_ITEM_TYPES.STRING, str);
  145. m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  146. DisplaySampleMeasureInfo(SMInfo);
  147. return;
  148. }
  149. var m_SolutionWindows = m_MeasureAppForm.m_SolutionWindows;
  150. m_SolutionWindows.m_TreeViewBase.EditTreeWorkSampleName(sWSampleName, (string)ObjVal);
  151. break;
  152. case OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE:
  153. if (!m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_FIELD, OTS_ITEM_TYPES.INT, frmStopModeDialog.FieldMode)) // Prop值变化,修改样品值成功
  154. {
  155. m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  156. DisplaySampleMeasureInfo(SMInfo);
  157. return;
  158. }
  159. if (!m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_TIME, OTS_ITEM_TYPES.INT, frmStopModeDialog.TimeMode)) // Prop值变化,修改样品值成功
  160. {
  161. m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  162. DisplaySampleMeasureInfo(SMInfo);
  163. return;
  164. }
  165. if (!m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_PARTICLE, OTS_ITEM_TYPES.INT, frmStopModeDialog.ParticleMode)) // Prop值变化,修改样品值成功
  166. {
  167. m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  168. DisplaySampleMeasureInfo(SMInfo);
  169. return;
  170. }
  171. if (!m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_AREA, OTS_ITEM_TYPES.INT, frmStopModeDialog.AreaMode)) // Prop值变化,修改样品值成功
  172. {
  173. m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  174. DisplaySampleMeasureInfo(SMInfo);
  175. return;
  176. }
  177. break;
  178. default:
  179. if (!m_measurePara.SetSampleParamVal(SampleId, ValType, ObjVal)) // Prop值变化,修改样品值成功
  180. {
  181. m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  182. DisplaySampleMeasureInfo(SMInfo);
  183. return;
  184. }
  185. break;
  186. }
  187. // if (OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME == SampleId)
  188. //{
  189. // if (m_measurePara.SetSTDFileName((int)ObjVal))
  190. // {
  191. // m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  192. // DisplaySampleMeasureInfo(SMInfo);
  193. // return;
  194. // }
  195. //}
  196. //else
  197. //{
  198. // if (OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME == SampleId)
  199. // {
  200. // //去除修改GRID的样品名的前后空格
  201. // string str = (string)ObjVal;
  202. // str = str.Trim();
  203. // if (!m_measurePara.CheckSampleNameIsValid(str))
  204. // {
  205. // m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME, OTS_ITEM_TYPES.STRING, str);
  206. // m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  207. // DisplaySampleMeasureInfo(SMInfo);
  208. // return;
  209. // }
  210. // }
  211. // //更新COMBBOX值
  212. // if (!m_measurePara.SetSampleParamVal(SampleId, ValType, ObjVal)) // Prop值变化,修改样品值成功
  213. // {
  214. // m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  215. // DisplaySampleMeasureInfo(SMInfo);
  216. // return;
  217. // }
  218. // if(OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE==SampleId)
  219. // {
  220. // if (!m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_FIELD, OTS_ITEM_TYPES.INT, StopModeDialog.FieldMode)) // Prop值变化,修改样品值成功
  221. // {
  222. // m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  223. // DisplaySampleMeasureInfo(SMInfo);
  224. // return;
  225. // }
  226. // if (!m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_TIME, OTS_ITEM_TYPES.INT, StopModeDialog.TimeMode)) // Prop值变化,修改样品值成功
  227. // {
  228. // m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  229. // DisplaySampleMeasureInfo(SMInfo);
  230. // return;
  231. // }
  232. // if (!m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_PARTICLE, OTS_ITEM_TYPES.INT, StopModeDialog.ParticleMode)) // Prop值变化,修改样品值成功
  233. // {
  234. // m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  235. // DisplaySampleMeasureInfo(SMInfo);
  236. // return;
  237. // }
  238. // if (!m_measurePara.SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS.STOP_PARAM_AREA, OTS_ITEM_TYPES.INT, StopModeDialog.AreaMode)) // Prop值变化,修改样品值成功
  239. // {
  240. // m_measurePara.GetWorkSamplePerameter(m_measurePara.GetWorkSample(), ref SMInfo);
  241. // DisplaySampleMeasureInfo(SMInfo);
  242. // return;
  243. // }
  244. // }
  245. //}
  246. //更新GROUPID和ITEMID的变化
  247. //OTS_SAMPLE_PROP_GRID_ITEMS ItemID = (OTS_SAMPLE_PROP_GRID_ITEMS)SampleId;
  248. //m_measurePara.UpdateGroupValAndItemVal(ItemID);
  249. //修改Treeview 工作样品名字
  250. //if (OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME == SampleId)
  251. //{
  252. // m_SolutionWindows.m_TreeViewBase.EditTreeWorkSampleName(sWSampleName, (string)ObjVal);
  253. //}
  254. //HERE:
  255. }
  256. private void toolStrip1_Paint(object sender, PaintEventArgs e)
  257. {
  258. if ((sender as ToolStrip).RenderMode == ToolStripRenderMode.System)
  259. {
  260. Rectangle rect = new Rectangle(0, 0, this.TSGridTitle.Width - 5, this.TSGridTitle.Height - 5);
  261. e.Graphics.SetClip(rect);
  262. }
  263. }
  264. private void PropGrid_Click_1(object sender, EventArgs e)
  265. {
  266. SourceGrid.Grid ls_gd = (SourceGrid.Grid)sender;
  267. ls_gd.Focus();
  268. m_SampleGrid.m_ClickRow = ls_gd.Selection.ActivePosition.Row;
  269. m_SampleGrid.m_ClickColumn = ls_gd.Selection.ActivePosition.Column;
  270. /// 保证鼠标点击的GRID行和列是有效的
  271. if(m_SampleGrid.m_ClickRow>=0 && m_SampleGrid.m_ClickColumn>=0)
  272. {
  273. m_SampleGrid.SetGridTitleStatus();
  274. if(m_MeasureAppForm.m_ProjData.m_systemTypeId == otsdataconst.OTS_SysType_ID.CleannessA || m_MeasureAppForm.m_ProjData.m_systemTypeId == otsdataconst.OTS_SysType_ID.MiningA)
  275. {
  276. if (m_SampleGrid.m_ClickRow == 7 && m_SampleGrid.m_ClickColumn == 2)
  277. {
  278. frmStopModeDialog = new frmMeasureStopMode();
  279. frmStopModeDialog.FieldMode = int.Parse(PropGrid[m_SampleGrid.m_ClickRow + 2, m_SampleGrid.m_ClickColumn].Value.ToString());
  280. frmStopModeDialog.TimeMode = int.Parse(PropGrid[m_SampleGrid.m_ClickRow + 3, m_SampleGrid.m_ClickColumn].Value.ToString());
  281. frmStopModeDialog.ParticleMode = int.Parse(PropGrid[m_SampleGrid.m_ClickRow + 1, m_SampleGrid.m_ClickColumn].Value.ToString());
  282. frmStopModeDialog.StopMode = PropGrid[m_SampleGrid.m_ClickRow, m_SampleGrid.m_ClickColumn].Value.ToString();
  283. frmStopModeDialog.AreaMode = int.Parse(PropGrid[m_SampleGrid.m_ClickRow + 4, m_SampleGrid.m_ClickColumn].Value.ToString());
  284. DialogResult result = frmStopModeDialog.ShowDialog();
  285. if (result == DialogResult.OK)
  286. {
  287. string str = PropGrid[0, 0].Value.ToString();
  288. PropGrid[m_SampleGrid.m_ClickRow, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.StopMode;
  289. PropGrid[m_SampleGrid.m_ClickRow + 2, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.FieldMode;
  290. PropGrid[m_SampleGrid.m_ClickRow + 3, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.TimeMode;
  291. PropGrid[m_SampleGrid.m_ClickRow + 1, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.ParticleMode;
  292. PropGrid[m_SampleGrid.m_ClickRow + 4, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.AreaMode;
  293. PropGrid[0, 0].Value = str;
  294. PropGrid.Refresh();
  295. PropGrid.Invalidate();
  296. }
  297. }
  298. }
  299. else
  300. {
  301. if (m_SampleGrid.m_ClickRow == 9 && m_SampleGrid.m_ClickColumn == 2)
  302. {
  303. frmStopModeDialog = new frmMeasureStopMode();
  304. frmStopModeDialog.FieldMode = int.Parse(PropGrid[m_SampleGrid.m_ClickRow + 2, m_SampleGrid.m_ClickColumn].Value.ToString());
  305. frmStopModeDialog.TimeMode = int.Parse(PropGrid[m_SampleGrid.m_ClickRow + 3, m_SampleGrid.m_ClickColumn].Value.ToString());
  306. frmStopModeDialog.ParticleMode = int.Parse(PropGrid[m_SampleGrid.m_ClickRow + 1, m_SampleGrid.m_ClickColumn].Value.ToString());
  307. frmStopModeDialog.StopMode = PropGrid[m_SampleGrid.m_ClickRow, m_SampleGrid.m_ClickColumn].Value.ToString();
  308. frmStopModeDialog.AreaMode = int.Parse(PropGrid[m_SampleGrid.m_ClickRow + 4, m_SampleGrid.m_ClickColumn].Value.ToString());
  309. DialogResult result = frmStopModeDialog.ShowDialog();
  310. if (result == DialogResult.OK)
  311. {
  312. string str = PropGrid[0, 0].Value.ToString();
  313. PropGrid[m_SampleGrid.m_ClickRow, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.StopMode;
  314. PropGrid[m_SampleGrid.m_ClickRow + 2, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.FieldMode;
  315. PropGrid[m_SampleGrid.m_ClickRow + 3, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.TimeMode;
  316. PropGrid[m_SampleGrid.m_ClickRow + 1, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.ParticleMode;
  317. PropGrid[m_SampleGrid.m_ClickRow + 4, m_SampleGrid.m_ClickColumn].Value = frmStopModeDialog.AreaMode;
  318. PropGrid[0, 0].Value = str;
  319. PropGrid.Refresh();
  320. PropGrid.Invalidate();
  321. }
  322. }
  323. }
  324. }
  325. }
  326. private void TSSaveAs_Click(object sender, EventArgs e)
  327. {
  328. m_MeasureAppForm.m_ProjParam.SaveWorkMeasureFile();
  329. }
  330. private void TSEdit_Click(object sender, EventArgs e)
  331. {
  332. }
  333. private void TSLoad_Click(object sender, EventArgs e)
  334. {
  335. if (m_SampleGrid.m_ClickRow <= 0)
  336. {
  337. m_MeasureAppForm.m_ProjParam.LoadWorkMeasureFile();
  338. return;
  339. }
  340. if (OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME == (OTS_SAMPLE_PROP_GRID_ITEMS)PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag)
  341. {
  342. return;
  343. }
  344. else
  345. {
  346. m_MeasureAppForm.m_ProjParam.LoadWorkMeasureFile();
  347. return;
  348. }
  349. }
  350. }
  351. }