123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504 |
- using PaintDotNet;
- using PaintDotNet.Base.CommTool;
- using PaintDotNet.Base.SettingModel;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Metis.Setting
- {
- internal partial class GridSettingForm : PdnBaseForm
- {
- /// <summary>
- /// 主控件
- /// </summary>
- private AppWorkspace appWorkspace;
- /// <summary>
- /// 网格设置的model
- /// </summary>
- private GridModel gridModel = Startup.instance.gridModel;
- /// <summary>
- /// 单位标尺
- /// </summary>
- private double unitLength = 1;
- /// <summary>
- /// 网格调色板
- /// </summary>
- PaintDotNet.ColorsForm colorsFormGrid;
- /// <summary>
- /// 正方形调色板
- /// </summary>
- PaintDotNet.ColorsForm colorsFormRect;
- /// <summary>
- /// 圆形调色板
- /// </summary>
- PaintDotNet.ColorsForm colorsFormCircular;
- /// <summary>
- /// 网格样式的增改删,0-添加、1-修改、2-删除
- /// </summary>
- private int operation = -1;
- public GridSettingForm(AppWorkspace appWorkspace)
- {
- this.appWorkspace = appWorkspace;
- InitializeComponent();
- InitializeLanguageText();
- InitParameterData();
- InitializeComponent2();
-
- InitializationDataGridView();
-
- UnitData();
- }
- private void InitializeLanguageText()
- {
- this.Text = PdnResources.GetString("Menu.Setting.GridSetting.Text");
- this.groupBox5.Text = PdnResources.GetString("GridAdded");
- this.btnDel.Text = PdnResources.GetString("Menu.Edit.Delete.Text");
- this.groupBox1.Text = PdnResources.GetString("Menu.Setting.Text");
- this.btnSave.Text = PdnResources.GetString("CommonAction.Save");
- this.btnSaveAs.Text = PdnResources.GetString("Menu.Edit.Copy.Text");
- this.button1.Text = PdnResources.GetString("Menu.Imagement.Rulersetting.active.text");
- this.groupBox2.Text = PdnResources.GetString("Menu.Edit.Text");
- this.label6.Text = PdnResources.GetString("Menu.name.text") + ":";
- this.label8.Text = PdnResources.GetString("Menu.unit.text") + ":";
- this.label9.Text = PdnResources.GetString("Menu.width.text") + ":";
- this.label10.Text = PdnResources.GetString("Menu.height.text") + ":";
- this.label12.Text = PdnResources.GetString("Menu.row.text") + ":";
- this.label11.Text = PdnResources.GetString("Menu.columns.text") + ":";
- this.label2.Text = PdnResources.GetString("Menu.diameter.text") + ":";
- this.label1.Text = PdnResources.GetString("Menu.Generalanalysis.Processmparison.Sidelength.text") + ":";
- this.label4.Text = PdnResources.GetString("Menu.Tools.GridLine.Text") + ":";
- this.label5.Text = PdnResources.GetString("Menu.circular.Text") + ":";
- this.label3.Text = PdnResources.GetString("Menu.MeasureAction.MeasureSquare.Text") + ":";
- }
- /// <summary>
- /// 给下拉集合赋值
- /// </summary>
- private void InitParameterData()
- {
- this.comboBox_Grid.Items.AddRange(InvariantData.dashStyles);
- this.comboBox_Circular.Items.AddRange(InvariantData.dashStyles);
- this.comboBox_Square.Items.AddRange(InvariantData.dashStyles);
- }
- /// <summary>
- /// 网格样式列表初始化
- /// </summary>
- private void InitializationDataGridView()
- {
- this.dataGridView1.Rows.Clear();
- //keyValuePairs.Clear();
- int serveNameID = 0;
- this.dataGridView1.ReadOnly = true;
- List<string> fileNames = FileOperationHelper.GetFileList(Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\GridConfig\\");
- if (fileNames.Count > 0)
- {
- for (int i = 0; i < fileNames.Count; i++)
- {
- GridModel gselectRidModel = XmlSerializeHelper.DESerializer<GridModel>(FileOperationHelper.ReadStringFromFile(Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\GridConfig\\" + fileNames[i], FileMode.Open));
- DataGridViewRow row = new DataGridViewRow();
- foreach (DataGridViewColumn c in this.dataGridView1.Columns)
- {
- row.Cells.Add(c.CellTemplate.Clone() as DataGridViewCell);
- }
- row.Cells[0].Value = gselectRidModel.gridName;
- if (gselectRidModel.gridName.Equals(Startup.instance.configModel.GridName))
- {
- serveNameID = i;
- }
- this.dataGridView1.Rows.Add(row);
- }
- if (operation != 2)
- {
- this.dataGridView1.CurrentCell = this.dataGridView1[0, serveNameID];
- }
- else
- {
- this.dataGridView1.CurrentCell = this.dataGridView1[0, 0];
- }
- RefreshDataGridView();
- }
- }
- private string serveName = string.Empty;
- /// <summary>
- /// 刷新网格样式列表
- /// </summary>
- private void RefreshDataGridView()
- {
- if (this.dataGridView1.SelectedRows.Count > 0 && this.dataGridView1.CurrentCell != null)
- {
- serveName = this.dataGridView1.CurrentCell.Value.ToString();
- //string selectName = this.dataGridView1.CurrentCell.Value.ToString() + ".xml";
- GridModel gselectRidModel = XmlSerializeHelper.DESerializer<GridModel>(FileOperationHelper.ReadStringFromFile(Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\GridConfig\\" + serveName + ".xml", FileMode.Open));
- this.textBox1.Text = serveName;
- //网格
- this.numericUpDown1.Value = gselectRidModel.grid.ActualLength > 0 ? gselectRidModel.grid.ActualLength : 1;
- this.numericUpDown2.Value = gselectRidModel.grid.ActualHeight > 0 ? gselectRidModel.grid.ActualHeight : 1;
- this.numericUpDown4.Value = gselectRidModel.grid.HorizontalNum > 0 ? gselectRidModel.grid.HorizontalNum : 1;
- this.numericUpDown3.Value = gselectRidModel.grid.VerticalNum > 0 ? gselectRidModel.grid.VerticalNum : 1;
- this.comboBox_Grid.SelectedIndex = gselectRidModel.grid.DashStyle;
- this.numericUpDown7.Value = gselectRidModel.grid.Thickness > 0 ? gselectRidModel.grid.Thickness : 1;
- this.gridPanel.BackColor = Color.FromArgb(gselectRidModel.grid.Color);
- //正方形
- this.comboBox_Square.SelectedIndex = gselectRidModel.rectangle.DashStyle;
- this.numericUpDown9.Value = gselectRidModel.rectangle.Thickness > 0 ? gselectRidModel.rectangle.Thickness : 1;
- this.numericUpDown6.Value = gselectRidModel.rectangle.ActualLength > 0 ? gselectRidModel.rectangle.ActualLength : 1;
- this.rectPanel.BackColor = Color.FromArgb(gselectRidModel.rectangle.Color);
- //圆形
- this.comboBox_Circular.SelectedIndex = gselectRidModel.round.DashStyle;
- this.numericUpDown8.Value = gselectRidModel.round.Thickness > 0 ? gselectRidModel.round.Thickness : 1;
- this.numericUpDown5.Value = gselectRidModel.round.ActualDiameter > 0 ? gselectRidModel.round.ActualDiameter : 1;
- this.circularPanel.BackColor = Color.FromArgb(gselectRidModel.round.Color);
- if (gselectRidModel.grid.Unit == 6)
- comboBox7.Text = "px";
- else if (gselectRidModel.grid.Unit == 4)
- comboBox7.Text = "μm";
- }
- }
- /// <summary>
- /// 初始化组件
- /// </summary>
- private void InitializeComponent2()
- {
- this.textBox1.Text = gridModel.gridName;
- this.numericUpDown1.Value = gridModel.grid.ActualLength > 0 ? gridModel.grid.ActualLength : 1;
- this.numericUpDown2.Value = gridModel.grid.ActualHeight > 0 ? gridModel.grid.ActualHeight : 1;
- this.numericUpDown4.Value = gridModel.grid.HorizontalNum > 0 ? gridModel.grid.HorizontalNum : 1;
- this.numericUpDown3.Value = gridModel.grid.VerticalNum > 0 ? gridModel.grid.VerticalNum : 1;
- this.comboBox_Grid.SelectedIndex = gridModel.grid.DashStyle;
- this.numericUpDown7.Value = gridModel.grid.Thickness > 0 ? gridModel.grid.Thickness : 1;
- this.gridPanel.BackColor = Color.FromArgb(gridModel.grid.Color);
- this.numericUpDown6.Value = gridModel.rectangle.sideLength > 0 ? gridModel.rectangle.sideLength : 80;
- this.comboBox_Square.SelectedIndex = gridModel.rectangle.DashStyle;
- this.numericUpDown9.Value = gridModel.rectangle.Thickness > 0 ? gridModel.rectangle.Thickness : 1;
- this.rectPanel.BackColor = Color.FromArgb(gridModel.rectangle.Color);
- this.numericUpDown5.Value = gridModel.round.diameter > 0 ? gridModel.round.diameter : 70;
- this.comboBox_Circular.SelectedIndex = gridModel.round.DashStyle;
- this.numericUpDown8.Value = gridModel.round.Thickness > 0 ? gridModel.round.Thickness : 1;
- this.circularPanel.BackColor = Color.FromArgb(gridModel.round.Color);
- this.colorsFormGrid = new ColorsForm();
- this.colorsFormGrid.StartPosition = FormStartPosition.CenterScreen;
- this.colorsFormGrid.UserPrimaryColorChanged += new ColorEventHandler(this.colorsFormUserPrimaryColorChanged);
- this.colorsFormRect = new ColorsForm();
- this.colorsFormRect.StartPosition = FormStartPosition.CenterScreen;
- this.colorsFormRect.UserPrimaryColorChanged += new ColorEventHandler(this.colorsFormUserPrimaryColorChanged);
- this.colorsFormCircular = new ColorsForm();
- this.colorsFormCircular.StartPosition = FormStartPosition.CenterScreen;
- this.colorsFormCircular.UserPrimaryColorChanged += new ColorEventHandler(this.colorsFormUserPrimaryColorChanged);
- //this.groupBox2.Enabled = false;
- //this.groupBox3.Enabled = false;
- //this.groupBox4.Enabled = false;
- }
- /// <summary>
- /// 单位设置初始化
- /// </summary>
- private void UnitData()
- {
- this.appWorkspace.getMeasureInfo().TryGetValue(MeasurementUnit.Micron, out unitLength);//获取系统标尺-微米
- if (gridModel.grid.Unit == 6)
- comboBox7.Text = "px";
- else if (gridModel.grid.Unit == 4)
- comboBox7.Text = "μm";
- }
- /// <summary>
- /// 调色板回调函数
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="ce"></param>
- private void colorsFormUserPrimaryColorChanged(object sender, ColorEventArgs ce)
- {
- }
- #region 宽度
- private void trackBar1_Scroll(object sender, EventArgs e)
- {
- this.numericUpDown1.Value = this.trackBar1.Value;
- }
- private void numericUpDown1_ValueChanged(object sender, EventArgs e)
- {
- this.trackBar1.Value = Convert.ToInt32(this.numericUpDown1.Value);
- }
- #endregion
- #region 高度
- private void trackBar2_Scroll(object sender, EventArgs e)
- {
- this.numericUpDown2.Value = this.trackBar2.Value;
- }
- private void numericUpDown2_ValueChanged(object sender, EventArgs e)
- {
- this.trackBar2.Value = Convert.ToInt32(this.numericUpDown2.Value);
- }
- #endregion
- #region 列数
- private void trackBar3_Scroll(object sender, EventArgs e)
- {
- this.numericUpDown3.Value = this.trackBar3.Value;
- }
- private void numericUpDown3_ValueChanged(object sender, EventArgs e)
- {
- this.trackBar3.Value = Convert.ToInt32(this.numericUpDown3.Value);
- }
- #endregion
- #region 行数
- private void trackBar4_Scroll(object sender, EventArgs e)
- {
- this.numericUpDown4.Value = this.trackBar4.Value;
- }
- private void numericUpDown4_ValueChanged(object sender, EventArgs e)
- {
- this.trackBar4.Value = Convert.ToInt32(this.numericUpDown4.Value);
- }
- #endregion
- #region 直径
- private void trackBar5_Scroll(object sender, EventArgs e)
- {
- this.numericUpDown5.Value = this.trackBar5.Value;
- }
- private void numericUpDown5_ValueChanged(object sender, EventArgs e)
- {
- this.trackBar5.Value = Convert.ToInt32(this.numericUpDown5.Value);
- }
- #endregion
- #region 边长
- private void trackBar6_Scroll(object sender, EventArgs e)
- {
- this.numericUpDown6.Value = this.trackBar6.Value;
- }
- private void numericUpDown6_ValueChanged(object sender, EventArgs e)
- {
- this.trackBar6.Value = Convert.ToInt32(this.numericUpDown6.Value);
- }
- #endregion
- private void gridPanel_Click(object sender, EventArgs e)
- {
- this.colorsFormGrid.UserPrimaryColor = ColorBgra.FromColor(this.gridPanel.BackColor);
- this.colorsFormGrid.setSaveBtn_Click(new System.EventHandler(this.gridColorChanged));
- this.colorsFormGrid.ShowDialog();
- }
- private void circularPanel_Click(object sender, EventArgs e)
- {
- this.colorsFormCircular.UserPrimaryColor = ColorBgra.FromColor(this.circularPanel.BackColor);
- this.colorsFormCircular.setSaveBtn_Click(new System.EventHandler(this.circularColorChanged));
- this.colorsFormCircular.ShowDialog();
- }
- private void rectPanel_Click(object sender, EventArgs e)
- {
- this.colorsFormRect.UserPrimaryColor = ColorBgra.FromColor(this.rectPanel.BackColor);
- this.colorsFormRect.setSaveBtn_Click(new System.EventHandler(this.rectColorChanged));
- this.colorsFormRect.ShowDialog();
- }
- /// <summary>
- /// 网格Panel的调色板颜色改变
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void gridColorChanged(object sender, EventArgs e)
- {
- this.gridPanel.BackColor = this.colorsFormGrid.UserPrimaryColor.ToColor();
- // this.measureStyleModel.backColor = this.colorsForm.UserPrimaryColor.ToColor().ToArgb();
- this.colorsFormGrid.Close();
- }
- /// <summary>
- /// 矩形Panel的调色板颜色改变
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void rectColorChanged(object sender, EventArgs e)
- {
- this.rectPanel.BackColor = this.colorsFormRect.UserPrimaryColor.ToColor();
- // this.measureStyleModel.backColor = this.colorsForm.UserPrimaryColor.ToColor().ToArgb();
- this.colorsFormRect.Close();
- }
- /// <summary>
- /// 圆形Panel的调色板颜色改变
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void circularColorChanged(object sender, EventArgs e)
- {
- this.circularPanel.BackColor = this.colorsFormCircular.UserPrimaryColor.ToColor();
- // this.measureStyleModel.backColor = this.colorsForm.UserPrimaryColor.ToColor().ToArgb();
- this.colorsFormCircular.Close();
- }
- private void dataGridView1_SelectionChanged(object sender, EventArgs e)
- {
- RefreshDataGridView();
- }
- private void btnSaveAs_Click(object sender, EventArgs e)
- {
- operation = 0;
- }
- private void btnSave_Click(object sender, EventArgs e)
- {
- string userInfoXml = XmlSerializeHelper.XmlSerialize<GridModel>(CurrentGridModel());
- if (operation == -1)
- {
- string updateName = Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\GridConfig\\" + this.dataGridView1.CurrentCell.Value + ".xml";
- System.IO.File.Delete(updateName);
- //FileOperationHelper.DeleteFolder(updateName);
- //保存到xml
- string gridFilePath = Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\GridConfig\\" + this.textBox1.Text + ".xml";
- if (System.IO.File.Exists(gridFilePath))
- {
- MessageBox.Show(PdnResources.GetString("Menu.Thefilenandmodify.text"));
- return;
- }
- if (!FileOperationHelper.WriteStringToFile(userInfoXml, gridFilePath, FileMode.Create))
- {
- MessageBox.Show(PdnResources.GetString("Menu.idinformationsavin.Text"));
- }
- this.dataGridView1.SelectedCells[0].Value = this.textBox1.Text;
- }
- else if (operation == 0)
- {
- //保存到xml
- string gridFilePath = Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\GridConfig\\" + this.textBox1.Text + ".xml";
- if (System.IO.File.Exists(gridFilePath))
- {
- MessageBox.Show(PdnResources.GetString("Menu.Thefilenandmodify.text"));
- return;
- }
- else
- {
- if (!FileOperationHelper.WriteStringToFile(userInfoXml, gridFilePath, FileMode.Create))
- {
- MessageBox.Show(PdnResources.GetString("Menu.idinformationsavin.Text"));
- }
- InitializationDataGridView();
- }
- operation = -1;
- //this.button1.Text = PdnResources.GetString("Menu.application.text");
- }
- //InitializationDataGridView();
- }
- /// <summary>
- /// 获取model
- /// </summary>
- /// <returns></returns>
- private GridModel CurrentGridModel()
- {
- //临时model,根据应用场景运用
- GridModel temporarygridModel = new GridModel();
- temporarygridModel.grid = new GridModel.Grid();
- temporarygridModel.rectangle = new GridModel.Rectangle();
- temporarygridModel.round = new GridModel.Round();
- temporarygridModel.gridName = this.textBox1.Text;
- if ("px".Equals(comboBox7.Text))
- {
- temporarygridModel.grid.SideLength = (int)this.numericUpDown1.Value;
- temporarygridModel.grid.SideHeight = (int)this.numericUpDown2.Value;
- temporarygridModel.rectangle.sideLength = (int)this.numericUpDown6.Value;
- temporarygridModel.round.diameter = (int)this.numericUpDown5.Value;
- }
- else if ("μm".Equals(comboBox7.Text))
- {
- temporarygridModel.grid.SideLength = int.Parse(((double)this.numericUpDown1.Value / unitLength).ToString("F0"));
- temporarygridModel.grid.SideHeight = int.Parse(((double)this.numericUpDown2.Value / unitLength).ToString("F0"));
- temporarygridModel.rectangle.sideLength = int.Parse(((double)this.numericUpDown6.Value / unitLength).ToString("F0"));
- temporarygridModel.round.diameter = int.Parse(((double)this.numericUpDown5.Value / unitLength).ToString("F0"));
- }
- temporarygridModel.grid.HorizontalNum = (int)this.numericUpDown4.Value;
- temporarygridModel.grid.VerticalNum = (int)this.numericUpDown3.Value;
- temporarygridModel.grid.DashStyle = this.comboBox_Grid.SelectedIndex;
- temporarygridModel.grid.Thickness = (int)this.numericUpDown7.Value;
- temporarygridModel.grid.Color = this.gridPanel.BackColor.ToArgb();
- if ("px".Equals(comboBox7.Text))
- {
- temporarygridModel.grid.Unit = (int)MeasurementUnit.Pixel;
- }
- else if ("μm".Equals(comboBox7.Text))
- {
- temporarygridModel.grid.Unit = (int)MeasurementUnit.Micron;
- }
- temporarygridModel.rectangle.DashStyle = this.comboBox_Square.SelectedIndex;
- temporarygridModel.rectangle.Thickness = (int)this.numericUpDown9.Value;
- temporarygridModel.rectangle.Color = this.rectPanel.BackColor.ToArgb();
- temporarygridModel.round.DashStyle = this.comboBox_Circular.SelectedIndex;
- temporarygridModel.round.Thickness = (int)this.numericUpDown8.Value;
- temporarygridModel.round.Color = this.circularPanel.BackColor.ToArgb();
- temporarygridModel.grid.ActualLength = (int)this.numericUpDown1.Value;
- temporarygridModel.grid.ActualHeight = (int)this.numericUpDown2.Value;
- temporarygridModel.rectangle.ActualLength = (int)this.numericUpDown6.Value;
- temporarygridModel.round.ActualDiameter = (int)this.numericUpDown5.Value;
- return temporarygridModel;
- }
- /// <summary>
- /// 删除
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnDel_Click(object sender, EventArgs e)
- {
- if (this.dataGridView1.Rows.Count > 1)
- {
- DialogResult dr = MessageBox.Show(PdnResources.GetString("Menu.Areyousuretcteddata.text") + "?", PdnResources.GetString("Menu.ensure.text"), MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
- if (dr == DialogResult.OK)
- {
- operation = 2;
- string updateName = Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\GridConfig\\" + this.dataGridView1.CurrentCell.Value.ToString() + ".xml";
- System.IO.File.Delete(updateName);
- InitializationDataGridView();
- operation = -1;
- }
- }
- else
- {
- MessageBox.Show("只有一条数据,不可删除!");
- return;
- }
- }
- /// <summary>
- /// 激活
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button1_Click(object sender, EventArgs e)
- {
- Startup.instance.gridModel = CurrentGridModel();
- string userInfoXml = XmlSerializeHelper.XmlSerialize<GridModel>(CurrentGridModel());
- Startup.instance.configModel.GridName = this.textBox1.Text;
- string configXml = XmlSerializeHelper.XmlSerialize<ConfigModel>(Startup.instance.configModel);
- string configPath = Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\Config.xml";
- FileOperationHelper.WriteStringToFile(configXml, configPath, FileMode.Create);
- string filePath = Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\Grid.xml";
- if (!FileOperationHelper.WriteStringToFile(userInfoXml, filePath, FileMode.Create))
- MessageBox.Show(PdnResources.GetString("Menu.idinformationsavin.Text"));
- if (appWorkspace.ActiveDocumentWorkspace != null)
- appWorkspace.ActiveDocumentWorkspace.Refresh();
- if (operation != -1) operation = -1;
- }
- }
- }
|