using System; using System.Collections.Generic; using System.Windows.Forms; using System.IO; using System.Text; using System.Linq; using DPumpHydr.WinFrmUI.Volute.ViewModel; namespace DPumpHydr.WinFrmUI.Volute { public partial class MainViewPage { //基础信息 private readonly string Group_Name_Base_Info = "BaseInfo"; private readonly int Group_ID_Base_Info = -1;//组ID private long Step_ID_Hdr_Base_Info = 12; private long Step_ID_Geom_Base_Info = 13; //断面设计(1-8) private readonly string Group_Name_Section18 = "Section18"; private readonly int Group_ID_Section18 = -2; private long Step_ID_Section18_Base = 20;//基本信息 private long Step_ID_Section18_Dim = 21;//详细页面 //出水设计 private readonly string Group_Name_Outflow = "Outflow"; private readonly int Group_ID_Outflow = -3; private long Step_ID_Outflow_Style = 31; private long Step_ID_Outflow_Dim = 32; // private List _allStepNodes = null; private long _currentStepID = 0; /// /// 下一步 /// /// public bool GoNextStep() { return GoNextStepCore(); } /// /// 上一步 /// /// public bool GoPrevStep() { return GoPrevStepCore(); } ViewModel.HdrBaseInfo _hdrBaseInfo = null; ViewModel.GeomBaseInfo _geomBaseInfo = null; /// /// 下一步核心 /// /// private bool GoNextStepCore() { var next_step = (from x in _allStepNodes where x.ID > _currentStepID orderby x.ID select x).FirstOrDefault(); if (next_step == null) return false; if(_currentStepID == Step_ID_Hdr_Base_Info) { string error_info; var hdrBaseInfo = _ctrlHdrBaseInfo.GetBindingData(out error_info); if(hdrBaseInfo == null) { MessageBox.Show(error_info); return false; } hdrBaseInfo.CalcNs(); _hdrBaseInfo = hdrBaseInfo; if(_geomBaseInfo == null) { _geomBaseInfo = new ViewModel.GeomBaseInfo(); } _geomBaseInfo.Calc(hdrBaseInfo); } if (_currentStepID == Step_ID_Geom_Base_Info) { string error_info; var geomBaseInfo = _ctrlGeomBaseInfo.GetBindingData(out error_info); if (geomBaseInfo == null) { MessageBox.Show(error_info); return false; } _geomBaseInfo = geomBaseInfo; } //if (_currentStepID == Step_ID_Section18_Base) //{ // string error_info; // var geomBaseInfo = _ctrlGeomBaseInfo.GetBindingData(out error_info); // if (geomBaseInfo == null) // { // MessageBox.Show(error_info); // return false; // } // _geomBaseInfo = geomBaseInfo; //} SetParasCtrl(next_step.ID); return true; } /// /// 上一步核心 /// /// private bool GoPrevStepCore() { if (_currentStepID == Step_ID_Hdr_Base_Info) return false; var prev_step = (from x in _allStepNodes where x.ID < _currentStepID orderby x.ID select x).LastOrDefault(); if (prev_step == null) return false; SetParasCtrl(prev_step.ID); return true; } /// /// 生成第几步控件 /// /// private void SetParasCtrl(long step_id) { if (step_id == Step_ID_Hdr_Base_Info) { if (_ctrlHdrBaseInfo == null) _ctrlHdrBaseInfo = new ctrlHdrBaseInfo(); this.panelParas.Controls.Clear(); this.panelParas.Controls.Add(_ctrlHdrBaseInfo); _ctrlHdrBaseInfo.SetBindingData(_hdrBaseInfo); } if (step_id == Step_ID_Geom_Base_Info) { if (_ctrlGeomBaseInfo == null) { _ctrlGeomBaseInfo = new ctrlGeomBaseInfo(); _ctrlGeomBaseInfo.Name = "ctrlGeomBaseInfo"; _ctrlGeomBaseInfo.Dock = DockStyle.Right; } this.panelParas.Controls.Clear(); this.panelParas.Controls.Add(_ctrlGeomBaseInfo); _ctrlGeomBaseInfo.SetBindingData(_geomBaseInfo); } if (step_id == Step_ID_Section18_Base) { if (_ctrlSectionBaseInfo == null) { _ctrlSectionBaseInfo = new ctrlSectionBaseInfo(); _ctrlSectionBaseInfo.Name = "ctrlSectionBaseInfo"; _ctrlSectionBaseInfo.Dock = DockStyle.Right; } this.panelParas.Controls.Clear(); this.panelParas.Controls.Add(_ctrlSectionBaseInfo); } if (step_id == Step_ID_Section18_Dim) { if (_ctrlSectionShapeInfo18 == null) { _ctrlSectionShapeInfo18 = new ctrlSectionShapeInfo18(); _ctrlSectionShapeInfo18.Name = "ctrlSectionShapeInfo18"; _ctrlSectionShapeInfo18.Dock = DockStyle.Right; } this.panelParas.Controls.Clear(); this.panelParas.Controls.Add(_ctrlSectionShapeInfo18); } if(step_id == Step_ID_Outflow_Style) { if (_ctrlSetOutflowStyle == null) { _ctrlSetOutflowStyle = new ctrlSetOutflowStyle(); _ctrlSetOutflowStyle.Name = "ctrlSetOutflowStyle"; _ctrlSetOutflowStyle.Dock = DockStyle.Right; } this.panelParas.Controls.Clear(); this.panelParas.Controls.Add(_ctrlSetOutflowStyle); } if (step_id == Step_ID_Outflow_Dim) { if (_ctrlSetOutflowDim == null) { _ctrlSetOutflowDim = new ctrlSetOutflowDim(); _ctrlSetOutflowDim.Name = "ctrlSetOutflowDim"; _ctrlSetOutflowDim.Dock = DockStyle.Right; } this.panelParas.Controls.Clear(); this.panelParas.Controls.Add(_ctrlSetOutflowDim); } this._currentStepID = step_id; } #region 初始化步骤列表 /// /// /// private void InitialStepNodes() { _allStepNodes = new List(); #region 基础信息/几何参数 var stepGroup_BaseInfo = new DPumpHydr.WinFrmUI.Volute.TreeStepNode(); stepGroup_BaseInfo.AllowSelect = false; stepGroup_BaseInfo.Group = Group_Name_Base_Info; stepGroup_BaseInfo.Caption = "基础信息"; stepGroup_BaseInfo.Name = Group_Name_Base_Info; stepGroup_BaseInfo.ID = Group_ID_Base_Info; stepGroup_BaseInfo.ParentID = 0; _allStepNodes.Add(stepGroup_BaseInfo); var step欢迎使用 = new DPumpHydr.WinFrmUI.Volute.TreeStepNode(); step欢迎使用.AllowSelect = true; step欢迎使用.Group = Group_Name_Base_Info; step欢迎使用.Caption = "欢迎使用"; step欢迎使用.Name = "StepHelp"; step欢迎使用.ID = 1; step欢迎使用.ParentID = Group_ID_Base_Info; _allStepNodes.Add(step欢迎使用); var step基础信息 = new DPumpHydr.WinFrmUI.Volute.TreeStepNode() { ProgressState = WinFrmUI.Volute.TreeStepNode.eProgressState.未完成, DataState = WinFrmUI.Volute.TreeStepNode.eDataState.未知 }; step基础信息.AllowSelect = true; step基础信息.Group = Group_Name_Base_Info; step基础信息.Caption = "第一步:基础信息"; step基础信息.Name = "StepHydParas"; step基础信息.ID = Step_ID_Hdr_Base_Info; step基础信息.ParentID = Group_ID_Base_Info; _allStepNodes.Add(step基础信息); var step几何参数 = new DPumpHydr.WinFrmUI.Volute.TreeStepNode() { ProgressState = WinFrmUI.Volute.TreeStepNode.eProgressState.未完成, DataState = WinFrmUI.Volute.TreeStepNode.eDataState.未知 }; step几何参数.AllowSelect = true; step几何参数.Group = Group_Name_Base_Info; step几何参数.Caption = "第二步:几何参数"; step几何参数.Name = "StepGeomParas"; step几何参数.ID = Step_ID_Geom_Base_Info; step几何参数.ParentID = Group_ID_Base_Info; _allStepNodes.Add(step几何参数); #endregion #region 断面设计(1-8) var stepGroup_CoverPlate = new DPumpHydr.WinFrmUI.Volute.TreeStepNode() { ProgressState = WinFrmUI.Volute.TreeStepNode.eProgressState.未完成, DataState = WinFrmUI.Volute.TreeStepNode.eDataState.未知 }; stepGroup_CoverPlate.AllowSelect = false; stepGroup_CoverPlate.Caption = "断面设计"; stepGroup_CoverPlate.Name = Group_Name_Section18; stepGroup_CoverPlate.ID = Group_ID_Section18; stepGroup_CoverPlate.ParentID = 0; _allStepNodes.Add(stepGroup_CoverPlate); var step断面基本信息 = new DPumpHydr.WinFrmUI.Volute.TreeStepNode() { ProgressState = WinFrmUI.Volute.TreeStepNode.eProgressState.未完成, DataState = WinFrmUI.Volute.TreeStepNode.eDataState.未知 }; step断面基本信息.AllowSelect = true; step断面基本信息.Caption = string.Format("{0}:{1}", GetTranslateString("第三步"), GetTranslateString("零件材料")); step断面基本信息.Name = "SectBaseInfo18"; step断面基本信息.ID = Step_ID_Section18_Base; step断面基本信息.Group = "断面信息"; step断面基本信息.ParentID = Group_ID_Section18; _allStepNodes.Add(step断面基本信息); var stepSetct18 = new DPumpHydr.WinFrmUI.Volute.TreeStepNode() { ProgressState = WinFrmUI.Volute.TreeStepNode.eProgressState.未完成, DataState = WinFrmUI.Volute.TreeStepNode.eDataState.未知 }; stepSetct18.AllowSelect = true; stepSetct18.Caption = "第四步: 第1-8断面" ; stepSetct18.Name = "TreeStepNode" + Step_ID_Section18_Dim; stepSetct18.ID = Step_ID_Section18_Dim ; stepSetct18.Group = "盖板连接"; stepSetct18.ParentID = Group_ID_Section18; _allStepNodes.Add(stepSetct18); #endregion #region 出水体 var stepGroup_出水体 = new DPumpHydr.WinFrmUI.Volute.TreeStepNode() { ProgressState = WinFrmUI.Volute.TreeStepNode.eProgressState.未完成, DataState = WinFrmUI.Volute.TreeStepNode.eDataState.未知 }; stepGroup_出水体.AllowSelect = false; stepGroup_出水体.Caption = "出水体设计"; stepGroup_出水体.Name = Group_Name_Outflow; stepGroup_出水体.ID = Group_ID_Outflow; stepGroup_出水体.ParentID = 0; _allStepNodes.Add(stepGroup_出水体); var step出水体类型 = new DPumpHydr.WinFrmUI.Volute.TreeStepNode() { ProgressState = WinFrmUI.Volute.TreeStepNode.eProgressState.未完成, DataState = WinFrmUI.Volute.TreeStepNode.eDataState.未知 }; step出水体类型.AllowSelect = true; step出水体类型.Caption = "第五步:出水体类型"; step出水体类型.Name = "TreeStepNode"+ Step_ID_Outflow_Style; step出水体类型.ID = Step_ID_Outflow_Style; step出水体类型.Group = Group_Name_Outflow; step出水体类型.ParentID = Group_ID_Outflow; _allStepNodes.Add(step出水体类型); var step出水体尺寸 = new DPumpHydr.WinFrmUI.Volute.TreeStepNode() { ProgressState = WinFrmUI.Volute.TreeStepNode.eProgressState.未完成, DataState = WinFrmUI.Volute.TreeStepNode.eDataState.未知 }; step出水体尺寸.AllowSelect = true; step出水体尺寸.Caption = "第六步:出水体尺寸"; step出水体尺寸.Name = "TreeStepNode"+ Step_ID_Outflow_Dim; step出水体尺寸.ID = Step_ID_Outflow_Dim; step出水体尺寸.Group = Group_Name_Outflow; step出水体尺寸.ParentID = Group_ID_Outflow; _allStepNodes.Add(step出水体尺寸); #endregion ViewModel.HdrBaseInfo hdrBaseInfo = new ViewModel.HdrBaseInfo(); hdrBaseInfo.Q = 200; hdrBaseInfo.H = 50; hdrBaseInfo.n = 2900; hdrBaseInfo.D2 = 220; hdrBaseInfo.B2 = 20; if (_ctrlHdrBaseInfo == null) { _ctrlHdrBaseInfo = new ctrlHdrBaseInfo(); _ctrlHdrBaseInfo.Name = "ctrlHdrBaseInfo"; _ctrlHdrBaseInfo.Dock = DockStyle.Right; _ctrlHdrBaseInfo.SetBindingData(hdrBaseInfo); } this.panelParas.Controls.Clear(); this.panelParas.Controls.Add(_ctrlHdrBaseInfo); this._currentStepID = Step_ID_Hdr_Base_Info; //this.stepTreeListCtrl.SetStepSource(_allStepNodes, 1); } #endregion } }