MultiDimensionaDetailDialog.cs 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using PaintDotNet.Annotation;
  11. using PaintDotNet.Annotation.ImageCollect;
  12. using StageController;
  13. namespace PaintDotNet.ImageCollect.MultiDimensiona
  14. {
  15. internal partial class MultiDimensionaDetailDialog : PdnBaseForm
  16. {
  17. private List<Dictionary<int, object>> m_points;
  18. private int m_index;
  19. private DataGridViewTextBoxColumn Column1;
  20. private DataGridViewTextBoxColumn Column2;
  21. private DataGridViewButtonColumn zAxis;
  22. private DataGridViewButtonColumn btnDel;
  23. private DataGridViewTextBoxColumn index;
  24. private DocumentPreview m_documentWorkspace;
  25. public MultiDimensionaDetailDialog(DocumentPreview documentWorkspace, int index)
  26. {
  27. this.m_documentWorkspace = documentWorkspace;
  28. this.m_index = index;
  29. InitializeComponent();
  30. InitDgvPoints();
  31. }
  32. private void InitDgvPoints()
  33. {
  34. dgvPoints.Rows.Clear();
  35. this.m_points = ((DrawStithchingBase)m_documentWorkspace.GraphicsList[m_index]).GetViewPoints();
  36. for (int i = 0; i < m_points.Count; i++)
  37. {
  38. Dictionary<int, object> point = m_points[i];
  39. if (point[1].ToString().Equals("0"))
  40. {
  41. string btnTitle = PdnResources.GetString("Menu.Isnotset.Text");
  42. var zscan = ((DrawStithchingBase)m_documentWorkspace.GraphicsList[m_index]).GetZAxisScan(i);
  43. if (zscan.Track != 0)
  44. {
  45. btnTitle = PdnResources.GetString("Menu.Hasbeenset.Text");
  46. }
  47. PointF pointF = (PointF)point[0];
  48. dgvPoints.Rows.Add(pointF.X, pointF.Y, btnTitle, PdnResources.GetString("Menu.Edit.Delete.Text"), i);
  49. }
  50. }
  51. }
  52. #region 控件
  53. /// <summary>
  54. /// Required designer variable.
  55. /// </summary>
  56. private System.ComponentModel.IContainer components = null;
  57. /// <summary>
  58. /// Clean up any resources being used.
  59. /// </summary>
  60. /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
  61. protected override void Dispose(bool disposing)
  62. {
  63. if (disposing && (components != null))
  64. {
  65. components.Dispose();
  66. }
  67. base.Dispose(disposing);
  68. }
  69. // Windows Form Designer generated code
  70. /// <summary>
  71. /// Required method for Designer support - do not modify
  72. /// the contents of this method with the code editor.
  73. /// </summary>
  74. private void InitializeComponent()
  75. {
  76. this.button1 = new System.Windows.Forms.Button();
  77. this.dgvPoints = new System.Windows.Forms.DataGridView();
  78. this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
  79. this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
  80. this.zAxis = new System.Windows.Forms.DataGridViewButtonColumn();
  81. this.btnDel = new System.Windows.Forms.DataGridViewButtonColumn();
  82. this.index = new System.Windows.Forms.DataGridViewTextBoxColumn();
  83. ((System.ComponentModel.ISupportInitialize)(this.dgvPoints)).BeginInit();
  84. this.SuspendLayout();
  85. //
  86. // button1
  87. //
  88. this.button1.Location = new System.Drawing.Point(390, 341);
  89. this.button1.Name = "button1";
  90. this.button1.Size = new System.Drawing.Size(75, 30);
  91. this.button1.TabIndex = 3;
  92. this.button1.Text = "关闭";
  93. this.button1.UseVisualStyleBackColor = true;
  94. this.button1.Click += new System.EventHandler(this.button1_Click);
  95. //
  96. // dgvPoints
  97. //
  98. this.dgvPoints.AllowUserToAddRows = false;
  99. this.dgvPoints.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
  100. this.dgvPoints.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
  101. this.dgvPoints.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
  102. this.Column1,
  103. this.Column2,
  104. this.zAxis,
  105. this.btnDel,
  106. this.index});
  107. this.dgvPoints.Location = new System.Drawing.Point(12, 12);
  108. this.dgvPoints.Name = "dgvPoints";
  109. this.dgvPoints.RowHeadersVisible = false;
  110. this.dgvPoints.RowHeadersWidth = 51;
  111. this.dgvPoints.RowTemplate.Height = 27;
  112. this.dgvPoints.Size = new System.Drawing.Size(453, 314);
  113. this.dgvPoints.TabIndex = 2;
  114. this.dgvPoints.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvPoints_CellContentClick);
  115. //
  116. // Column1
  117. //
  118. this.Column1.HeaderText = "X";
  119. this.Column1.MinimumWidth = 6;
  120. this.Column1.Name = "Column1";
  121. //
  122. // Column2
  123. //
  124. this.Column2.HeaderText = "Y";
  125. this.Column2.MinimumWidth = 6;
  126. this.Column2.Name = "Column2";
  127. //
  128. // zAxis
  129. //
  130. this.zAxis.HeaderText = "Z";
  131. this.zAxis.MinimumWidth = 6;
  132. this.zAxis.Name = "zAxis";
  133. this.zAxis.Resizable = System.Windows.Forms.DataGridViewTriState.True;
  134. this.zAxis.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
  135. this.zAxis.Text = "设置";
  136. this.zAxis.ToolTipText = "设置";
  137. //
  138. // btnDel
  139. //
  140. this.btnDel.HeaderText = "操作";
  141. this.btnDel.MinimumWidth = 6;
  142. this.btnDel.Name = "btnDel";
  143. this.btnDel.Resizable = System.Windows.Forms.DataGridViewTriState.True;
  144. this.btnDel.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
  145. this.btnDel.Text = "删除";
  146. this.btnDel.ToolTipText = "删除";
  147. //
  148. // index
  149. //
  150. this.index.HeaderText = "index";
  151. this.index.MinimumWidth = 6;
  152. this.index.Name = "index";
  153. this.index.ReadOnly = true;
  154. this.index.Visible = false;
  155. //
  156. // MultiDimensionaDetailDialog
  157. //
  158. this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
  159. this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
  160. this.ClientSize = new System.Drawing.Size(478, 387);
  161. this.Controls.Add(this.button1);
  162. this.Controls.Add(this.dgvPoints);
  163. this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
  164. this.MaximizeBox = false;
  165. this.MinimizeBox = false;
  166. this.Name = "MultiDimensionaDetailDialog";
  167. this.Text = "区域设置";
  168. this.Controls.SetChildIndex(this.dgvPoints, 0);
  169. this.Controls.SetChildIndex(this.button1, 0);
  170. ((System.ComponentModel.ISupportInitialize)(this.dgvPoints)).EndInit();
  171. this.ResumeLayout(false);
  172. }
  173. private System.Windows.Forms.Button button1;
  174. private System.Windows.Forms.DataGridView dgvPoints;
  175. #endregion
  176. private void button1_Click(object sender, EventArgs e)
  177. {
  178. this.Close();
  179. }
  180. private void dgvPoints_CellContentClick(object sender, DataGridViewCellEventArgs e)
  181. {
  182. int pIndex = (int)dgvPoints.Rows[e.RowIndex].Cells[dgvPoints.Columns.Count - 1].Value;
  183. if (dgvPoints.Columns[e.ColumnIndex].Name == "btnDel" && e.RowIndex >= 0)
  184. {
  185. DialogResult result = MessageBox.Show(PdnResources.GetString("Menu.Areyousuretodelete.Text") + "?", PdnResources.GetString("Menu.Tips.text"), MessageBoxButtons.OKCancel);
  186. if (result == DialogResult.OK)
  187. {
  188. ((DrawStithchingBase)this.m_documentWorkspace.GraphicsList[m_index]).DeletePoint(pIndex);
  189. this.m_documentWorkspace.Refresh();
  190. dgvPoints.Rows.RemoveAt(e.RowIndex);
  191. }
  192. }
  193. if (dgvPoints.Columns[e.ColumnIndex].Name == "zAxis" && e.RowIndex >= 0)
  194. {
  195. var zscan = ((DrawStithchingBase)m_documentWorkspace.GraphicsList[m_index]).GetZAxisScan(pIndex);
  196. ZAxisSettingDialog zAxisSettingDialog = new ZAxisSettingDialog(pIndex, zscan);
  197. zAxisSettingDialog.ZAxisSetting += ZAxisSettingDialog_ZAxisSetting;
  198. zAxisSettingDialog.ShowDialog();
  199. }
  200. }
  201. private void ZAxisSettingDialog_ZAxisSetting(ZScanParameter zScan, int pIndex)
  202. {
  203. ((DrawStithchingBase)this.m_documentWorkspace.GraphicsList[m_index]).SetZAxisScan(zScan, pIndex);
  204. this.m_documentWorkspace.Refresh();
  205. InitDgvPoints();
  206. }
  207. }
  208. }