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;
}
}
}
}