| | |
| | | using DevExpress.XtraLayout.Utils; |
| | | using Mapster; |
| | | using NPOI.OpenXmlFormats.Spreadsheet; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | |
| | | { |
| | | InitializeComponent(); |
| | | this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; |
| | | this.layoutControl1.SetupLayoutControl(); |
| | | this.FormClosing += CreateXhsSchemeDlg_FormClosing; |
| | | } |
| | | |
| | | private readonly CreateXhsSchemeViewModel _vm = new(); |
| | | private CreateXhsSchemeManager _wizard=null; |
| | | |
| | | private bool _initial_wizard_manager = false;//运行下一步 |
| | | private List<string> _change_type_list = null; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// 重载数据 |
| | | /// </summary> |
| | | public CreateXhsSchemeViewModel ViewModel |
| | | { |
| | | get { return _vm; } |
| | | } |
| | | public event Action<XhsSchemeVmo> ReloadDataEvent; |
| | | |
| | | private CreateXhsSchemeViewModel _vm = null;//视图 |
| | | private CreateXhsSchemeManager _wizard = null;//管理器 |
| | | private List<IWizardPageAsync<CreateXhsSchemeViewModel>> _allPageList = null;//所有页面列表 |
| | | private List<IWizardPageAsync<CreateXhsSchemeViewModel>> _bindingPageList = null;//绑定页面列表 |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | public int SelectedPageIndex |
| | | { |
| | | get |
| | | { |
| | | return this.navigationFrameMain.SelectedPageIndex; |
| | | } |
| | | set |
| | | { |
| | | if (value == 0) |
| | | { |
| | | _initial_wizard_manager = false; |
| | | InitialButtonStatus(_change_type_list); |
| | | } |
| | | else |
| | | { |
| | | _initial_wizard_manager = true; |
| | | InitialWizardManager(_change_type_list); |
| | | } |
| | | this.navigationFrameMain.SelectedPageIndex = value; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public event Action<HStation.Vmo.XhsSchemeVmo> ReloadDataEvent; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public async void SetBindingData |
| | | ( |
| | | HStation.Vmo.XhsProjectVmo project, |
| | | HStation.Vmo.XhsProjectSiteVmo project_site, |
| | | Yw.Model.HydroModelInfo hydro_info |
| | | public void SetBindingData |
| | | ( |
| | | XhsProjectVmo project, |
| | | XhsProjectSiteVmo projectSite, |
| | | Yw.Model.HydroModelInfo hydroInfo, |
| | | List<XhsSchemeVmo> allSchemeList |
| | | ) |
| | | { |
| | | this.itemForNext.Visibility = LayoutVisibility.Never; |
| | | this.itemForPrev.Visibility = LayoutVisibility.Never; |
| | | this.itemForComplete.Visibility = LayoutVisibility.Always; |
| | | this.itemForCancel.Visibility = LayoutVisibility.Always; |
| | | if (project == null) |
| | | { |
| | | return; |
| | | _vm.Project = project; |
| | | _vm.ProjectSite = project_site; |
| | | _vm.HydroInfo = hydro_info.Adapt<Yw.Model.HydroModelInfo>(); |
| | | _vm.ProjectSite ??= await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(_vm.Project.ID); |
| | | if (_vm.HydroInfo == null) |
| | | { |
| | | var hydroRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance |
| | | .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _vm.ProjectSite.ID, HStation.Xhs.Purpose.Simulation); |
| | | _vm.HydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroRelation.ModelID); |
| | | } |
| | | _vm.AllSchemeList = await BLLFactory<HStation.BLL.XhsScheme>.Instance.GetBySiteID(_vm.ProjectSite.ID); |
| | | |
| | | this.createXhsSchemeInfoPage1.InitialPage(_vm); |
| | | this.createXhsSchemeInfoPage1.ChangeTypeChangedEvent += (List<string> change_type_list) => |
| | | if (projectSite == null) |
| | | { |
| | | _initial_wizard_manager = false; |
| | | _change_type_list = change_type_list; |
| | | InitialButtonStatus(change_type_list); |
| | | }; |
| | | return; |
| | | } |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var hydroInfoRhs = hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); |
| | | _vm = new CreateXhsSchemeViewModel(project, projectSite, hydroInfoRhs, allSchemeList); |
| | | InitialManager(); |
| | | } |
| | | |
| | | this.FormClosing += (s, e) => |
| | | //初始化管理器 |
| | | private void InitialManager() |
| | | { |
| | | if (_vm == null) |
| | | { |
| | | if (_wizard != null) |
| | | return; |
| | | } |
| | | InitialPages(); |
| | | InitialSteps(); |
| | | _wizard = new CreateXhsSchemeManager(_vm); |
| | | _wizard.SelectedPageChangedEvent += _wizard_SelectedPageChangedEvent; |
| | | _wizard.SelectedPageStateChangedEvent += _wizard_SelectedPageStateChangedEvent; |
| | | _wizard.InitialManager(_bindingPageList?.ToArray()); |
| | | } |
| | | |
| | | //初始化页面 |
| | | private void InitialPages() |
| | | { |
| | | if (_vm == null) |
| | | { |
| | | return; |
| | | } |
| | | _bindingPageList = new List<IWizardPageAsync<CreateXhsSchemeViewModel>>(); |
| | | if (_allPageList == null) |
| | | { |
| | | _allPageList = new List<IWizardPageAsync<CreateXhsSchemeViewModel>>(); |
| | | } |
| | | |
| | | this.navigationFrame.Pages.Clear(); |
| | | |
| | | //基础信息 |
| | | var pageInfo = _allPageList.Find(x => x is CreateXhsSchemeInfoPage) as CreateXhsSchemeInfoPage; |
| | | if (pageInfo == null) |
| | | { |
| | | pageInfo = new CreateXhsSchemeInfoPage(); |
| | | pageInfo.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageInfo); |
| | | } |
| | | _bindingPageList.Add(pageInfo); |
| | | this.navigationFrame.AddPage(pageInfo); |
| | | |
| | | if (_vm.Scheme != null && _vm.Scheme.ChangeTypes != null && _vm.Scheme.ChangeTypes.Count > 0) |
| | | { |
| | | //水池 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Tank)) |
| | | { |
| | | if (this.DialogResult == DialogResult.OK) |
| | | var pageTank = _allPageList.Find(x => x is CreateXhsSchemeTankChangePage) as CreateXhsSchemeTankChangePage; |
| | | if (pageTank == null) |
| | | { |
| | | if (!_wizard.Complete()) |
| | | { |
| | | e.Cancel = true; |
| | | } |
| | | pageTank = new CreateXhsSchemeTankChangePage(); |
| | | pageTank.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageTank); |
| | | } |
| | | else if (this.DialogResult == DialogResult.Cancel) |
| | | _bindingPageList.Add(pageTank); |
| | | this.navigationFrame.AddPage(pageTank); |
| | | } |
| | | //水箱 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Waterbox)) |
| | | { |
| | | var pageWaterbox = _allPageList.Find(x => x is CreateXhsSchemeWaterboxChangePage) as CreateXhsSchemeWaterboxChangePage; |
| | | if (pageWaterbox == null) |
| | | { |
| | | //if (!_wizard.Cancel()) |
| | | //{ |
| | | // e.Cancel = true; |
| | | //} |
| | | pageWaterbox = new CreateXhsSchemeWaterboxChangePage(); |
| | | pageWaterbox.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageWaterbox); |
| | | } |
| | | else |
| | | _bindingPageList.Add(pageWaterbox); |
| | | this.navigationFrame.AddPage(pageWaterbox); |
| | | } |
| | | //闷头 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Blunthead)) |
| | | { |
| | | var pageBlunthead = _allPageList.Find(x => x is CreateXhsSchemeBluntheadChangePage) as CreateXhsSchemeBluntheadChangePage; |
| | | if (pageBlunthead == null) |
| | | { |
| | | pageBlunthead = new CreateXhsSchemeBluntheadChangePage(); |
| | | pageBlunthead.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageBlunthead); |
| | | } |
| | | _bindingPageList.Add(pageBlunthead); |
| | | this.navigationFrame.AddPage(pageBlunthead); |
| | | } |
| | | //弯头 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Elbow)) |
| | | { |
| | | var pageElbow = _allPageList.Find(x => x is CreateXhsSchemeElbowChangePage) as CreateXhsSchemeElbowChangePage; |
| | | if (pageElbow == null) |
| | | { |
| | | pageElbow = new CreateXhsSchemeElbowChangePage(); |
| | | pageElbow.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageElbow); |
| | | } |
| | | _bindingPageList.Add(pageElbow); |
| | | this.navigationFrame.AddPage(pageElbow); |
| | | } |
| | | //三通 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Threelink)) |
| | | { |
| | | var pageThreelink = _allPageList.Find(x => x is CreateXhsSchemeThreelinkChangePage) as CreateXhsSchemeThreelinkChangePage; |
| | | if (pageThreelink == null) |
| | | { |
| | | pageThreelink = new CreateXhsSchemeThreelinkChangePage(); |
| | | pageThreelink.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageThreelink); |
| | | } |
| | | _bindingPageList.Add(pageThreelink); |
| | | this.navigationFrame.AddPage(pageThreelink); |
| | | } |
| | | //四通 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Fourlink)) |
| | | { |
| | | var pageFourlink = _allPageList.Find(x => x is CreateXhsSchemeFourlinkChangePage) as CreateXhsSchemeFourlinkChangePage; |
| | | if (pageFourlink == null) |
| | | { |
| | | pageFourlink = new CreateXhsSchemeFourlinkChangePage(); |
| | | pageFourlink.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageFourlink); |
| | | } |
| | | _bindingPageList.Add(pageFourlink); |
| | | this.navigationFrame.AddPage(pageFourlink); |
| | | } |
| | | //水表 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Meter)) |
| | | { |
| | | var pageMeter = _allPageList.Find(x => x is CreateXhsSchemeMeterChangePage) as CreateXhsSchemeMeterChangePage; |
| | | if (pageMeter == null) |
| | | { |
| | | pageMeter = new CreateXhsSchemeMeterChangePage(); |
| | | pageMeter.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageMeter); |
| | | } |
| | | _bindingPageList.Add(pageMeter); |
| | | this.navigationFrame.AddPage(pageMeter); |
| | | } |
| | | //流量计 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Flowmeter)) |
| | | { |
| | | var pageFlowmeter = _allPageList.Find(x => x is CreateXhsSchemeFlowmeterChangePage) as CreateXhsSchemeFlowmeterChangePage; |
| | | if (pageFlowmeter == null) |
| | | { |
| | | pageFlowmeter = new CreateXhsSchemeFlowmeterChangePage(); |
| | | pageFlowmeter.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageFlowmeter); |
| | | } |
| | | _bindingPageList.Add(pageFlowmeter); |
| | | this.navigationFrame.AddPage(pageFlowmeter); |
| | | } |
| | | //压力表 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Pressmeter)) |
| | | { |
| | | var pagePressmeter = _allPageList.Find(x => x is CreateXhsSchemePressmeterChangePage) as CreateXhsSchemePressmeterChangePage; |
| | | if (pagePressmeter == null) |
| | | { |
| | | pagePressmeter = new CreateXhsSchemePressmeterChangePage(); |
| | | pagePressmeter.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pagePressmeter); |
| | | } |
| | | _bindingPageList.Add(pagePressmeter); |
| | | this.navigationFrame.AddPage(pagePressmeter); |
| | | } |
| | | //消火栓 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Hydrant)) |
| | | { |
| | | var pageHydrant = _allPageList.Find(x => x is CreateXhsSchemeHydrantChangePage) as CreateXhsSchemeHydrantChangePage; |
| | | if (pageHydrant == null) |
| | | { |
| | | pageHydrant = new CreateXhsSchemeHydrantChangePage(); |
| | | pageHydrant.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageHydrant); |
| | | } |
| | | _bindingPageList.Add(pageHydrant); |
| | | this.navigationFrame.AddPage(pageHydrant); |
| | | } |
| | | //喷嘴 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Nozzle)) |
| | | { |
| | | var pageNozzle = _allPageList.Find(x => x is CreateXhsSchemeNozzleChangePage) as CreateXhsSchemeNozzleChangePage; |
| | | if (pageNozzle == null) |
| | | { |
| | | pageNozzle = new CreateXhsSchemeNozzleChangePage(); |
| | | pageNozzle.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageNozzle); |
| | | } |
| | | _bindingPageList.Add(pageNozzle); |
| | | this.navigationFrame.AddPage(pageNozzle); |
| | | } |
| | | //冷却塔 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Cooling)) |
| | | { |
| | | var pageCooling = _allPageList.Find(x => x is CreateXhsSchemeCoolingChangePage) as CreateXhsSchemeCoolingChangePage; |
| | | if (pageCooling == null) |
| | | { |
| | | pageCooling = new CreateXhsSchemeCoolingChangePage(); |
| | | pageCooling.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageCooling); |
| | | } |
| | | _bindingPageList.Add(pageCooling); |
| | | this.navigationFrame.AddPage(pageCooling); |
| | | } |
| | | //管道 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Pipe)) |
| | | { |
| | | var pagePipe = _allPageList.Find(x => x is CreateXhsSchemePipeChangePage) as CreateXhsSchemePipeChangePage; |
| | | if (pagePipe == null) |
| | | { |
| | | pagePipe = new CreateXhsSchemePipeChangePage(); |
| | | pagePipe.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pagePipe); |
| | | } |
| | | _bindingPageList.Add(pagePipe); |
| | | this.navigationFrame.AddPage(pagePipe); |
| | | } |
| | | //过渡件 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Translation)) |
| | | { |
| | | var pageTranslation = _allPageList.Find(x => x is CreateXhsSchemeTranslationChangePage) as CreateXhsSchemeTranslationChangePage; |
| | | if (pageTranslation == null) |
| | | { |
| | | pageTranslation = new CreateXhsSchemeTranslationChangePage(); |
| | | pageTranslation.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageTranslation); |
| | | } |
| | | _bindingPageList.Add(pageTranslation); |
| | | this.navigationFrame.AddPage(pageTranslation); |
| | | } |
| | | //水泵 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Pump)) |
| | | { |
| | | var pagePump = _allPageList.Find(x => x is CreateXhsSchemePumpChangePage) as CreateXhsSchemePumpChangePage; |
| | | if (pagePump == null) |
| | | { |
| | | pagePump = new CreateXhsSchemePumpChangePage(); |
| | | pagePump.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pagePump); |
| | | } |
| | | _bindingPageList.Add(pagePump); |
| | | this.navigationFrame.AddPage(pagePump); |
| | | } |
| | | //阀门 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Valve)) |
| | | { |
| | | var pageValve = _allPageList.Find(x => x is CreateXhsSchemeValveChangePage) as CreateXhsSchemeValveChangePage; |
| | | if (pageValve == null) |
| | | { |
| | | pageValve = new CreateXhsSchemeValveChangePage(); |
| | | pageValve.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageValve); |
| | | } |
| | | _bindingPageList.Add(pageValve); |
| | | this.navigationFrame.AddPage(pageValve); |
| | | } |
| | | //换热器 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Exchanger)) |
| | | { |
| | | var pageExchanger = _allPageList.Find(x => x is CreateXhsSchemeExchangerChangePage) as CreateXhsSchemeExchangerChangePage; |
| | | if (pageExchanger == null) |
| | | { |
| | | pageExchanger = new CreateXhsSchemeExchangerChangePage(); |
| | | pageExchanger.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageExchanger); |
| | | } |
| | | _bindingPageList.Add(pageExchanger); |
| | | this.navigationFrame.AddPage(pageExchanger); |
| | | } |
| | | //压缩机 |
| | | if (_vm.Scheme.ChangeTypes.Contains(Yw.Hydro.ParterCatalog.Compressor)) |
| | | { |
| | | var pageCompressor = _allPageList.Find(x => x is CreateXhsSchemeCompressorChangePage) as CreateXhsSchemeCompressorChangePage; |
| | | if (pageCompressor == null) |
| | | { |
| | | pageCompressor = new CreateXhsSchemeCompressorChangePage(); |
| | | pageCompressor.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageCompressor); |
| | | } |
| | | _bindingPageList.Add(pageCompressor); |
| | | this.navigationFrame.AddPage(pageCompressor); |
| | | } |
| | | } |
| | | |
| | | //生成 |
| | | var pageGenerate = _allPageList.Find(x => x is CreateXhsSchemeGeneralWizardPage) as CreateXhsSchemeGeneralWizardPage; |
| | | if (pageGenerate == null) |
| | | { |
| | | pageGenerate = new CreateXhsSchemeGeneralWizardPage(); |
| | | pageGenerate.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageGenerate); |
| | | } |
| | | _bindingPageList.Add(pageGenerate); |
| | | this.navigationFrame.AddPage(pageGenerate); |
| | | |
| | | //变更记录 |
| | | var pageComplete = _allPageList.Find(x => x is CreateXhsSchemeChangeRecordPage) as CreateXhsSchemeChangeRecordPage; |
| | | if (pageComplete == null) |
| | | { |
| | | pageComplete = new CreateXhsSchemeChangeRecordPage(); |
| | | pageComplete.Dock = DockStyle.Fill; |
| | | _allPageList.Add(pageComplete); |
| | | } |
| | | _bindingPageList.Add(pageComplete); |
| | | this.navigationFrame.AddPage(pageComplete); |
| | | } |
| | | |
| | | //初始化步骤 |
| | | private void InitialSteps() |
| | | { |
| | | this.stepProgressBar1.Items.Clear(); |
| | | if (_bindingPageList != null && _bindingPageList.Count > 0) |
| | | { |
| | | foreach (var page in _bindingPageList) |
| | | { |
| | | if (page is CreateXhsSchemeInfoPage) |
| | | { |
| | | AddStepItem("方案信息"); |
| | | } |
| | | else if (page is CreateXhsSchemeTankChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Tank); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeWaterboxChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Waterbox); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeBluntheadChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Blunthead); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeElbowChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Elbow); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeThreelinkChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Threelink); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeFourlinkChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Fourlink); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeMeterChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Meter); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeFlowmeterChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Flowmeter); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemePressmeterChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pressmeter); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeHydrantChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Hydrant); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeNozzleChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Nozzle); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeCoolingChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Cooling); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemePipeChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeTranslationChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Translation); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemePumpChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeValveChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeExchangerChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Exchanger); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeCompressorChangePage) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Compressor); |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeGeneralWizardPage) |
| | | { |
| | | var caption = "创建"; |
| | | AddStepItem(caption); |
| | | } |
| | | else if (page is CreateXhsSchemeChangeRecordPage) |
| | | { |
| | | var caption = "变更记录"; |
| | | AddStepItem(caption); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | //选择页面改变 |
| | | private void _wizard_SelectedPageChangedEvent(IWizardPageAsync<CreateXhsSchemeViewModel> page, int index) |
| | | { |
| | | this.itemForPrev.Visibility = page.AllowPrev ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForNext.Visibility = page.AllowNext ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForCancel.Visibility = page.AllowCancel ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForComplete.Visibility = page.AllowComplete ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.navigationFrame.SelectedPageIndex = index; |
| | | this.stepProgressBar1.SelectedItemIndex = index; |
| | | this.itemForTitle.Visibility = index > 0 ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | } |
| | | |
| | | //选择页面状态改变 |
| | | private void _wizard_SelectedPageStateChangedEvent(IWizardPageAsync<CreateXhsSchemeViewModel> page, int index) |
| | | { |
| | | this.itemForPrev.Visibility = page.AllowPrev ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForNext.Visibility = page.AllowNext ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForCancel.Visibility = page.AllowCancel ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForComplete.Visibility = page.AllowComplete ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForTitle.Visibility = index > 0 ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | } |
| | | |
| | | //上一步 |
| | | private async void btnPrev_Click(object sender, EventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | await _wizard.Prev(); |
| | | } |
| | | } |
| | | |
| | | //下一步 |
| | | private async void btnNext_Click(object sender, EventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | if (_wizard.SelectedIndex == 0) |
| | | { |
| | | var page = _wizard.SelectedPage; |
| | | if (await page.CanNext()) |
| | | { |
| | | InitialManager(); |
| | | } |
| | | } |
| | | await _wizard.Next(); |
| | | } |
| | | } |
| | | |
| | | //取消 |
| | | private async void btnCancel_Click(object sender, EventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | if (await _wizard.Cancel()) |
| | | { |
| | | this.DialogResult = DialogResult.Cancel; |
| | | this.Close(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //完成 |
| | | private async void btnComplete_Click(object sender, EventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | if (await _wizard.Complete()) |
| | | { |
| | | this.ReloadDataEvent?.Invoke(_vm.Scheme); |
| | | this.DialogResult = DialogResult.OK; |
| | | this.Close(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //正在关闭 |
| | | private async void CreateXhsSchemeDlg_FormClosing(object sender, FormClosingEventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | if (this.DialogResult == DialogResult.OK) |
| | | { |
| | | /* if (!_wizard.Complete()) |
| | | { |
| | | e.Cancel = true; |
| | | }*/ |
| | | } |
| | | else if (this.DialogResult == DialogResult.Cancel) |
| | | { |
| | | if (!await _wizard.Cancel()) |
| | | { |
| | | e.Cancel = true; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | else |
| | | { |
| | | e.Cancel = true; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | //添加步骤项 |
| | | private void AddStepProgressBarItem(string caption) |
| | | private void AddStepItem(string caption) |
| | | { |
| | | this.stepProgressBar1.BeginInit(); |
| | | var item = new StepProgressBarItem(); |
| | |
| | | item.Options.Indicator.InactiveStateImageOptions.SvgImage = null; |
| | | item.State = StepProgressBarItemState.Inactive; |
| | | this.stepProgressBar1.Items.Add(item); |
| | | this.stepProgressBar1.EndInit(); |
| | | this.stepProgressBar1.EndInit(); |
| | | } |
| | | |
| | | //初始化按钮状态 |
| | | private void InitialButtonStatus(List<string> change_type_list) |
| | | { |
| | | if (change_type_list == null || !change_type_list.Any()) |
| | | { |
| | | this.itemForNext.Visibility = LayoutVisibility.Never; |
| | | this.itemForComplete.Visibility = LayoutVisibility.Always; |
| | | } |
| | | else |
| | | { |
| | | this.itemForPrev.Visibility = LayoutVisibility.Never; |
| | | this.itemForNext.Visibility = LayoutVisibility.Always; |
| | | this.itemForComplete.Visibility = LayoutVisibility.Never; |
| | | this.itemForCancel.Visibility = LayoutVisibility.Always; |
| | | } |
| | | } |
| | | |
| | | //初始化步骤管理器 |
| | | private void InitialWizardManager(List<string> change_type_list) |
| | | { |
| | | if (change_type_list == null || !change_type_list.Any()) |
| | | return; |
| | | var overlay = this.ShowOverlay(); |
| | | this.stepProgressBar1.Items.Clear(); |
| | | this.navigationFrameStep.Pages.Clear(); |
| | | var page_list = new List<IWizardPage<CreateXhsSchemeViewModel>>(); |
| | | if (change_type_list.Contains(Yw.Hydro.ParterCatalog.Pipe)) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe); |
| | | AddStepProgressBarItem(caption); |
| | | page_list.Add(new CreateXhsSchemePipeChangePage()); |
| | | } |
| | | if (change_type_list.Contains(Yw.Hydro.ParterCatalog.Pump)) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump); |
| | | AddStepProgressBarItem(caption); |
| | | page_list.Add(new CreateXhsSchemePumpChangePage()); |
| | | } |
| | | if (change_type_list.Contains(Yw.Hydro.ParterCatalog.Valve)) |
| | | { |
| | | var caption = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve); |
| | | AddStepProgressBarItem(caption); |
| | | page_list.Add(new CreateXhsSchemeValveChangePage()); |
| | | } |
| | | |
| | | AddStepProgressBarItem("变更记录"); |
| | | page_list.Add(new CreateXhsSchemeChangeRecordPage()); |
| | | |
| | | foreach (var item in page_list) |
| | | { |
| | | var ctrl = item as XtraUserControl; |
| | | ctrl.Dock = DockStyle.Fill; |
| | | this.navigationFrameStep.AddPage(ctrl); |
| | | } |
| | | |
| | | _wizard = new CreateXhsSchemeManager(_vm); |
| | | _wizard.SelectedPageChangedEvent += _wizard_SelectedPageChangedEvent; |
| | | _wizard.SelectedPageStateChangedEvent += _wizard_SelectedPageStateChangedEvent; |
| | | _wizard.InitialManager(page_list.ToArray()); |
| | | overlay.Close(); |
| | | } |
| | | |
| | | //选择页面改变 |
| | | private void _wizard_SelectedPageChangedEvent(IWizardPage<CreateXhsSchemeViewModel> page, int index) |
| | | { |
| | | this.itemForPrev.Visibility = page.AllowPrev ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForNext.Visibility = page.AllowNext ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForCancel.Visibility = page.AllowCancel ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForComplete.Visibility = page.AllowComplete ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.navigationFrameStep.SelectedPageIndex = index; |
| | | this.stepProgressBar1.SelectedItemIndex = index; |
| | | } |
| | | |
| | | //选择页面状态改变 |
| | | private void _wizard_SelectedPageStateChangedEvent(IWizardPage<CreateXhsSchemeViewModel> page, int index) |
| | | { |
| | | this.itemForPrev.Visibility = page.AllowPrev ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForNext.Visibility = page.AllowNext ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForCancel.Visibility = page.AllowCancel ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForComplete.Visibility = page.AllowComplete ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | } |
| | | |
| | | //上一步 |
| | | private void btnPrev_Click(object sender, EventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | if (_wizard.SelectedIndex == 0) |
| | | { |
| | | this.SelectedPageIndex = 0; |
| | | } |
| | | else |
| | | { |
| | | _wizard.Prev(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //下一步 |
| | | private void btnNext_Click(object sender, EventArgs e) |
| | | { |
| | | if (!_initial_wizard_manager) |
| | | { |
| | | if (this.createXhsSchemeInfoPage1.CanNext()) |
| | | { |
| | | this.SelectedPageIndex = 1; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | _wizard.Next(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | //取消 |
| | | private void btnCancel_Click(object sender, EventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | var bol = _wizard.Cancel(); |
| | | if (bol) |
| | | { |
| | | this.DialogResult = DialogResult.Cancel; |
| | | this.Close(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | //完成 |
| | | private void btnComplete_Click(object sender, EventArgs e) |
| | | { |
| | | if (this.SelectedPageIndex == 0) |
| | | { |
| | | if (this.createXhsSchemeInfoPage1.CanComplete()) |
| | | { |
| | | this.ReloadDataEvent?.Invoke(_vm.Scheme); |
| | | this.DialogResult = DialogResult.OK; |
| | | this.Close(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | var bol = _wizard.Complete(); |
| | | if (bol) |
| | | { |
| | | this.ReloadDataEvent?.Invoke(_vm.Scheme); |
| | | this.DialogResult = DialogResult.OK; |
| | | this.Close(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |