using PaintDotNet.Base; using PaintDotNet.Data.Param; using PaintDotNet.GeneralAnalysis; using PaintDotNet.GeneralAnalysis.Special; using System; using System.Collections.Generic; using System.Globalization; using System.Windows.Forms; namespace PaintDotNet.Menus { /// /// 通用分析 /// internal sealed class GeneralAnalysisMenu : PdnMenuItem { //多相含量 private PdnMenuItem menuGeneralMultiphaseContent; //多相统计 private PdnMenuItem menuGeneralMultiphaseStatistics; //两相比例 private PdnMenuItem menuGeneralTwoComparisonCases; //两相面积含量 private PdnMenuItem menuGeneralTwoPhaseArea; //分隔线 private ToolStripSeparator menuGeneralSeperator1; //图谱管理 private PdnMenuItem menuGeneralMapManager; //图谱比照 private PdnMenuItem menuGeneralMapComparison; //分隔线 private ToolStripSeparator menuGeneralSeperator2; //工艺图比照 private PdnMenuItem menuGeneralArtworkComparative; //工艺图比照 private PdnMenuItem menuItemArtworkComparative; //工艺图设定 private PdnMenuItem menuItemArtworkSetting; //分隔线 private ToolStripSeparator menuGeneralSeperator3; //积数仪 private PdnMenuItem menuGeneralCountometer; //颗粒统计 private PdnMenuItem menuGeneralParticleStatistics; //物相间距 private PdnMenuItem menuGeneralPhaseSpacing; //计数统计 private PdnMenuItem menuGeneralCountStatistics; //分隔线 private ToolStripSeparator menuGeneralSeperator4; //专项定义 private PdnMenuItem menuGeneralSpecialDefinition; // 长度专项定义 private PdnMenuItem menuGeneralLengthSpecialDefinition; // 面积含量专项定义 private PdnMenuItem menuGeneralAreaSpecialDefinition; //专项测量 private PdnMenuItem menuGeneralSpecialMeasure; //专项测量 - 长度 private PdnMenuItem menuGeneralLengthSpecialMeasure; //专项测量 - 面积含量 private PdnMenuItem menuGeneralAreaSpecialMeasure; public GeneralAnalysisMenu(int menuId) { InitializeComponent(); this.MenuId = menuId; } protected override void OnAppWorkspaceChanged() { base.OnAppWorkspaceChanged(); } private void InitializeComponent() { this.menuGeneralMultiphaseContent = new PdnMenuItem(ActionType.MultiphaseContent); this.menuGeneralMultiphaseStatistics = new PdnMenuItem(ActionType.MultiphaseStatistics); this.menuGeneralTwoComparisonCases = new PdnMenuItem(ActionType.TwoComparisonCases); this.menuGeneralTwoPhaseArea = new PdnMenuItem(ActionType.TwoPhaseArea); this.menuGeneralSeperator1 = new ToolStripSeparator(); this.menuGeneralMapManager = new PdnMenuItem(ActionType.MapManager); this.menuGeneralMapComparison = new PdnMenuItem(ActionType.MapComparison); this.menuGeneralSeperator2 = new ToolStripSeparator(); this.menuGeneralArtworkComparative = new PdnMenuItem(ActionType.ArtworkComparative); this.menuGeneralSeperator3 = new ToolStripSeparator(); this.menuGeneralCountometer = new PdnMenuItem(ActionType.Countometer); this.menuGeneralParticleStatistics = new PdnMenuItem(ActionType.ParticleStatistics); this.menuGeneralPhaseSpacing = new PdnMenuItem(ActionType.PhaseSpacing); this.menuGeneralCountStatistics = new PdnMenuItem(ActionType.CountStatistics); this.menuGeneralSeperator4 = new ToolStripSeparator(); this.menuGeneralSpecialDefinition = new PdnMenuItem(ActionType.SpecialDefinition); this.menuGeneralSpecialMeasure = new PdnMenuItem(ActionType.SpecialMeasure); this.menuItemArtworkSetting = new PdnMenuItem(ActionType.ItemArtworkSetting); this.menuItemArtworkComparative = new PdnMenuItem(ActionType.ItemArtworkComparative); this.menuGeneralLengthSpecialDefinition = new PdnMenuItem(ActionType.LengthSpecialDefinition); this.menuGeneralAreaSpecialDefinition = new PdnMenuItem(ActionType.AreaSpecialDefinition); this.menuGeneralLengthSpecialMeasure = new PdnMenuItem(ActionType.LengthSpecialMeasure); this.menuGeneralAreaSpecialMeasure = new PdnMenuItem(ActionType.AreaSpecialMeasure); // // 主菜单 // this.DropDownItems.AddRange(new ToolStripItem[] { this.menuGeneralMultiphaseContent, this.menuGeneralMultiphaseStatistics, this.menuGeneralTwoComparisonCases, this.menuGeneralTwoPhaseArea, this.menuGeneralSeperator1, this.menuGeneralMapManager, this.menuGeneralMapComparison, this.menuGeneralSeperator2, this.menuGeneralArtworkComparative, this.menuGeneralSeperator3, this.menuGeneralCountometer, this.menuGeneralParticleStatistics, this.menuGeneralPhaseSpacing, this.menuGeneralCountStatistics, this.menuGeneralSeperator4, this.menuGeneralSpecialDefinition, this.menuGeneralSpecialMeasure }); this.Name = "Menu.GeneralAnalysis"; this.Text = PdnResources.GetString("Menu.GeneralAnalysis.Text"); this.AutomaticScript = true; this.NeedOpenDialog = true; // // 多相含量 // this.menuGeneralMultiphaseContent.Name = "MultiphaseContent"; menuGeneralMultiphaseContent.Click += MenuGeneralMultiphaseContent_Click; this.menuGeneralMultiphaseContent.AutomaticScript = true; this.menuGeneralMultiphaseContent.NeedOpenDialog = true; // // 多相统计 // this.menuGeneralMultiphaseStatistics.Name = "MultiphaseStatistics"; menuGeneralMultiphaseStatistics.Click += MenuGeneralMultiphaseStatistics_Click; this.menuGeneralMultiphaseStatistics.AutomaticScript = true; this.menuGeneralMultiphaseStatistics.NeedOpenDialog = true; // // 两相比例 // this.menuGeneralTwoComparisonCases.Name = "TwoComparisonCases"; menuGeneralTwoComparisonCases.Click += MenuGeneralTwoComparisonCases_Click; this.menuGeneralTwoComparisonCases.AutomaticScript = false; this.menuGeneralTwoComparisonCases.NeedOpenDialog = false; // // 两相面积含量 // this.menuGeneralTwoPhaseArea.Name = "TwoPhaseArea"; this.menuGeneralTwoPhaseArea.Click += MenuGeneralTwoPhaseArea_Click; this.menuGeneralTwoPhaseArea.AutomaticScript = true; this.menuGeneralTwoPhaseArea.NeedOpenDialog = true; // // 图谱管理 // this.menuGeneralMapManager.Name = "MapManager"; this.menuGeneralMapManager.Click += new System.EventHandler(menuGeneralMapManager_Click); // // 图谱比照 // this.menuGeneralMapComparison.Name = "MapComparison"; this.menuGeneralMapComparison.Click += new System.EventHandler(menuGeneralMapComparison_Click); // // 工艺图比照 // this.menuGeneralArtworkComparative.Name = "ArtworkComparative"; this.menuGeneralArtworkComparative.DropDownItems.AddRange(new ToolStripItem[] { this.menuItemArtworkComparative, this.menuItemArtworkSetting }); this.menuItemArtworkComparative.Text = PdnResources.GetString("Menu.GeneralAnalysis.ArtworkComparative.Text"); this.menuItemArtworkSetting.Text = PdnResources.GetString("Menu.Generalanalysis.Processmparison.Processdrawingsetting.text"); this.menuItemArtworkComparative.Click += new System.EventHandler(menuItemArtworkComparative_Click); this.menuItemArtworkSetting.Click += new System.EventHandler(menuItemArtworkSetting_Click); this.menuItemArtworkComparative.Image = PdnResources.GetImageResource("Icons.MenuGeneralArtworkComparativeIcon.png").Reference; this.menuItemArtworkSetting.Image = PdnResources.GetImageResource("Icons.MenuGeneralArtworkSettingIcon.png").Reference; // // 积数仪 // this.menuGeneralCountometer.Name = "Countometer"; this.menuGeneralCountometer.Click += new System.EventHandler(menuGeneralCountometer_Click); // // 颗粒统计 // this.menuGeneralParticleStatistics.Name = "ParticleStatistics"; this.menuGeneralParticleStatistics.Click += new EventHandler(menuGeneralParticleStatistics_Click); this.menuGeneralParticleStatistics.AutomaticScript = false; this.menuGeneralParticleStatistics.NeedOpenDialog = false; // // 物相间距 // this.menuGeneralPhaseSpacing.Name = "PhaseSpacing"; menuGeneralPhaseSpacing.Click += MenuGeneralPhaseSpacing_Click; this.menuGeneralPhaseSpacing.AutomaticScript = false; this.menuGeneralPhaseSpacing.NeedOpenDialog = false; // // 计数统计 // this.menuGeneralCountStatistics.Name = "CountStatistics"; menuGeneralCountStatistics.Click += MenuGeneralCountStatistics_Click; this.menuGeneralCountStatistics.AutomaticScript = false; this.menuGeneralCountStatistics.NeedOpenDialog = false; // // 专项定义 // this.menuGeneralSpecialDefinition.Name = "SpecialDefinition"; this.menuGeneralSpecialDefinition.DropDownItems.AddRange(new ToolStripItem[] { this.menuGeneralLengthSpecialDefinition, this.menuGeneralAreaSpecialDefinition }); this.menuGeneralLengthSpecialDefinition.Text = PdnResources.GetString("Menu.Generalanalysis.Specificdefinition.Specificdefinition-length.text"); this.menuGeneralAreaSpecialDefinition.Text = PdnResources.GetString("Menu.Generalanalysis.Specificdefinition.Specificde-content.text"); this.menuGeneralLengthSpecialDefinition.Click += new System.EventHandler(menuGeneralLengthSpecialDefinition_Click); this.menuGeneralAreaSpecialDefinition.Click += new System.EventHandler(menuGeneralAreaSpecialDefinition_Click); this.menuGeneralLengthSpecialDefinition.Image = PdnResources.GetImageResource("Icons.GeneralLengthSpecialDefinition.png").Reference; this.menuGeneralAreaSpecialDefinition.Image = PdnResources.GetImageResource("Icons.GeneralAreaSpecialDefinition.png").Reference; // // 专项测量 // this.menuGeneralSpecialMeasure.Name = "SpecialMeasure"; this.menuGeneralSpecialMeasure.DropDownItems.AddRange(new ToolStripItem[] { this.menuGeneralLengthSpecialMeasure, this.menuGeneralAreaSpecialMeasure }); this.menuGeneralLengthSpecialMeasure.Text = PdnResources.GetString("Menu.Generalanalysis.Specialmeasurement.Specialmeth.text"); this.menuGeneralAreaSpecialMeasure.Text = PdnResources.GetString("Menu.Generalanalysis.Specialmeasurement.Specialmecontent.text"); this.menuGeneralLengthSpecialMeasure.Click += new System.EventHandler(menuGeneralLengthSpecialMeasure_Click); this.menuGeneralAreaSpecialMeasure.Click += new System.EventHandler(menuGeneralAreaSpecialMeasure_Click); this.menuGeneralLengthSpecialMeasure.Image = PdnResources.GetImageResource("Icons.GeneralLengthSpecialMeasure.png").Reference; this.menuGeneralAreaSpecialMeasure.Image = PdnResources.GetImageResource("Icons.GeneralAreaSpecialMeasure.png").Reference; // // // 加载菜单的文字和icon // this.LoadNames(this.Name); this.LoadIcons(); } /// /// 专项测量 - 面积含量 /// /// /// private void menuGeneralAreaSpecialMeasure_Click(object sender, EventArgs e) { using (SpecialMeasureAreaDialog mainForm = new SpecialMeasureAreaDialog(this.AppWorkspace)) { if (AppWorkspace.startScriptRecording) { AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List()); } mainForm.StartPosition = FormStartPosition.CenterScreen; mainForm.ShowDialog(); } } /// /// 专项测量 - 长度 /// /// /// private void menuGeneralLengthSpecialMeasure_Click(object sender, EventArgs e) { using (SpecialMeasureLengthDialog mainForm = new SpecialMeasureLengthDialog(this.AppWorkspace)) { if (AppWorkspace.startScriptRecording) { AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List()); } mainForm.StartPosition = FormStartPosition.CenterScreen; mainForm.ShowDialog(); } } /// /// 面积含量专项定义 /// /// /// private void menuGeneralAreaSpecialDefinition_Click(object sender, EventArgs e) { using (SpecialDefinitionDialog mainForm = new SpecialDefinitionDialog(SpecialItem.AREA)) { if (AppWorkspace.startScriptRecording) { AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List()); } mainForm.StartPosition = FormStartPosition.CenterScreen; mainForm.ShowDialog(); } } /// /// 长度专项定义 /// /// /// private void menuGeneralLengthSpecialDefinition_Click(object sender, EventArgs e) { using (SpecialDefinitionDialog mainForm = new SpecialDefinitionDialog(SpecialItem.LENGTH)) { if (AppWorkspace.startScriptRecording) { AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List()); } mainForm.StartPosition = FormStartPosition.CenterScreen; mainForm.ShowDialog(); } } /// /// 工艺图设定 /// /// /// private void menuItemArtworkSetting_Click(object sender, EventArgs e) { using (ArtworkSettingDialog mainForm = new ArtworkSettingDialog(this.AppWorkspace)) { if (AppWorkspace.startScriptRecording) { AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List()); } mainForm.StartPosition = FormStartPosition.CenterScreen; mainForm.ShowDialog(); } } /// /// 工艺图比照 /// /// /// private void menuItemArtworkComparative_Click(object sender, EventArgs e) { using (ArtworkComparativeDialog mainForm = new ArtworkComparativeDialog(this.AppWorkspace)) { if (AppWorkspace.startScriptRecording) { AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List()); } mainForm.StartPosition = FormStartPosition.CenterScreen; mainForm.ShowDialog(); } } private void MenuGeneralPhaseSpacing_Click(object sender, EventArgs e) { //throw new NotImplementedException(); using (PolyphaseDistanceDialog mainForm = new PolyphaseDistanceDialog(this.AppWorkspace, ((PdnMenuItem)sender))) { mainForm.StartPosition = FormStartPosition.CenterScreen; mainForm.ShowDialog(); } } private void MenuGeneralTwoComparisonCases_Click(object sender, EventArgs e) { //throw new NotImplementedException(); using (TwoPhaseScaleDialog mainForm = new TwoPhaseScaleDialog(this.AppWorkspace, ((PdnMenuItem)sender))) { mainForm.StartPosition = FormStartPosition.CenterScreen; mainForm.ShowDialog(); } } private void MenuGeneralMultiphaseContent_Click(object sender, EventArgs e) { using (PolyphaseMutiAreaContent mainForm = new PolyphaseMutiAreaContent(this.AppWorkspace, ((PdnMenuItem)sender))) { mainForm.StartPosition = FormStartPosition.CenterScreen; mainForm.ShowDialog(); } } private void MenuGeneralMultiphaseStatistics_Click(object sender, EventArgs e) { using (PolyphaseCounterAnalysisDialog counterDialog = new PolyphaseCounterAnalysisDialog(this.AppWorkspace, ((PdnMenuItem)sender))) { counterDialog.StartPosition = FormStartPosition.CenterScreen; counterDialog.ShowDialog(); } } private void MenuGeneralCountStatistics_Click(object sender, EventArgs e) { using (CountNumberAnalysisDialog counterDialog = new CountNumberAnalysisDialog(this.AppWorkspace,((PdnMenuItem)sender))) { counterDialog.StartPosition = FormStartPosition.CenterScreen; counterDialog.ShowDialog(); } } private void MenuGeneralTwoPhaseArea_Click(object sender, EventArgs e) { using (PolyphaseContentDialog pContentDialog = new PolyphaseContentDialog(this.AppWorkspace, ((PdnMenuItem)sender))) { pContentDialog.StartPosition = FormStartPosition.CenterScreen; pContentDialog.ShowDialog(); } } //private void MenuGeneralMultiphaseContent_Click(object sender, EventArgs e) //{ // //throw new NotImplementedException(); // using (PolyphaseContentDialog pContentDialog = new PolyphaseContentDialog(this.AppWorkspace)) // { // pContentDialog.StartPosition = FormStartPosition.CenterScreen; // pContentDialog.ShowDialog(); // } //} /// /// 图谱管理 /// /// /// private void menuGeneralMapManager_Click(object sender, EventArgs e) { using(AtlasManagerDialog atlasManagerDialog = new AtlasManagerDialog(this.AppWorkspace)) { if (AppWorkspace.startScriptRecording) { AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List()); } atlasManagerDialog.StartPosition = FormStartPosition.CenterScreen; atlasManagerDialog.ShowDialog(); } } /// /// 图谱比照 /// /// /// private void menuGeneralMapComparison_Click(object sender, EventArgs e) { using (AtlasComparisonDialog atlasComparisonDialog = new AtlasComparisonDialog(this.AppWorkspace)) { if (AppWorkspace.startScriptRecording) { AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List()); } atlasComparisonDialog.StartPosition = FormStartPosition.CenterScreen; atlasComparisonDialog.ShowDialog(); } } /// /// 颗粒统计 /// /// /// private void menuGeneralParticleStatistics_Click(object sender, EventArgs e) { using (DebrisSelectionDialog debrisSelectionDialog = new DebrisSelectionDialog(this.AppWorkspace, ((PdnMenuItem)sender))) { debrisSelectionDialog.StartPosition = FormStartPosition.CenterScreen; debrisSelectionDialog.ShowDialog(); } } /// /// 积数仪 /// /// /// private void menuGeneralCountometer_Click(object sender, EventArgs e) { if (AppWorkspace.startScriptRecording) { AppWorkspace.SetScriptStartRecording(((PdnMenuItem)sender).MenuId, ((PdnMenuItem)sender).Text, new List()); } Form form = Application.OpenForms["GeneralCountometerDialog"];//尝试获取已经弹出的窗口对象 FloatingFormMethod.ShowFloatForm(form, form == null ? new GeneralCountometerDialog(AppWorkspace)/*没有弹出的窗口对象则创建*/ : null, AppWorkspace); } private string GetCultureInfoName(CultureInfo ci) { CultureInfo en_US = new CultureInfo("en-US"); if (ci.Equals(en_US)) { return GetCultureInfoName(ci.Parent); } else { return ci.NativeName; } } } }