| | |
| | | using DevExpress.XtraLayout.Utils; |
| | | |
| | | namespace Yw.WinFrmUI |
| | | namespace Yw.WinFrmUI |
| | | { |
| | | public partial class SetHydroCalcuPrefixCtrl : DevExpress.XtraEditors.XtraUserControl |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 控件最小宽度 |
| | | /// 水力查看事件 |
| | | /// </summary> |
| | | public const int ControlMinWidth = 350; |
| | | |
| | | public event Action<Yw.Model.HydroParterInfo> HydroViewEvent; |
| | | /// <summary> |
| | | /// 计算事件 |
| | | /// 水力计算事件 |
| | | /// </summary> |
| | | public event Action<Yw.Model.HydroModelInfo> CalcuEvent; |
| | | public event Action HydroCalcuEvent; |
| | | |
| | | private SetHydroCalcuPrefixViewModel _vm = null; |
| | | private SetHydroCalcuPrefixManager _wizard; |
| | | private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; |
| | | //水力信息 |
| | | private Yw.Model.HydroModelInfo _hydroInfo = null; |
| | | |
| | | /// <summary> |
| | | /// 初始化数据 |
| | | /// </summary> |
| | | public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc) |
| | | { |
| | | _hydroInfoFunc = hydroInfoFunc; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | public void SetBindingData() |
| | | public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo) |
| | | { |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | | _hydroInfo = hydroInfo; |
| | | if (_hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | _vm = new SetHydroCalcuPrefixViewModel(); |
| | | _vm.HydroInfo = hydroInfo; |
| | | _vm.FirstPage = this.setWaterboxCalcuPrefixListCtrl1; |
| | | _vm.LastPage = this.setNozzleCalcuPrefixListCtrl1; |
| | | _wizard = new SetHydroCalcuPrefixManager(_vm); |
| | | _wizard.SelectedPageChangedEvent += _wizard_SelectedPageChangedEvent; |
| | | _wizard.SelectedPageStateChangedEvent += _wizard_SelectedPageStateChangedEvent; ; |
| | | _wizard.InitialManager(new IWizardPage<SetHydroCalcuPrefixViewModel>[] { |
| | | this.setWaterboxCalcuPrefixListCtrl1, |
| | | this.setPumpCalcuPrefixListCtrl1, |
| | | this.setNozzleCalcuPrefixListCtrl1 |
| | | }); |
| | | } |
| | | |
| | | //选择页面改变 |
| | | private void _wizard_SelectedPageChangedEvent(IWizardPage<SetHydroCalcuPrefixViewModel> page, int index) |
| | | { |
| | | this.itemForPrev.Visibility = page.AllowPrev ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForNext.Visibility = page.AllowNext ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.navigationFrame1.SelectedPageIndex = index; |
| | | } |
| | | |
| | | //选择页面状态改变 |
| | | private void _wizard_SelectedPageStateChangedEvent(IWizardPage<SetHydroCalcuPrefixViewModel> page, int index) |
| | | { |
| | | this.itemForPrev.Visibility = page.AllowPrev ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | this.itemForNext.Visibility = page.AllowNext ? LayoutVisibility.Always : LayoutVisibility.Never; |
| | | } |
| | | |
| | | //上一步 |
| | | private void btnPrev_Click(object sender, EventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | //水箱 |
| | | if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0) |
| | | { |
| | | _wizard.Prev(); |
| | | this.groupForWaterBox.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; |
| | | this.setHydroWaterboxCalcuPrefixListCtrl1.SetBindingData(_hydroInfo); |
| | | } |
| | | else |
| | | { |
| | | this.groupForWaterBox.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | } |
| | | |
| | | //水泵 |
| | | if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0) |
| | | { |
| | | this.groupForPump.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; |
| | | this.setHydroPumpCalcuPrefixListCtrl1.SetBindingData(_hydroInfo); |
| | | } |
| | | else |
| | | { |
| | | this.groupForPump.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | } |
| | | |
| | | //喷嘴 |
| | | if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0) |
| | | { |
| | | this.groupForNozzle.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; |
| | | this.setHydroNozzleCalcuPrefixListCtrl1.SetBindingData(_hydroInfo); |
| | | } |
| | | else |
| | | { |
| | | this.groupForNozzle.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新绑定数据 |
| | | /// </summary> |
| | | public void UpdateBindingData() |
| | | { |
| | | if (_hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0) |
| | | { |
| | | this.setHydroWaterboxCalcuPrefixListCtrl1.UpdateBindingData(); |
| | | } |
| | | if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0) |
| | | { |
| | | this.setHydroPumpCalcuPrefixListCtrl1.UpdateBindingData(); |
| | | } |
| | | if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0) |
| | | { |
| | | this.setHydroNozzleCalcuPrefixListCtrl1.UpdateBindingData(); |
| | | } |
| | | } |
| | | |
| | | //下一步 |
| | | private void btnNext_Click(object sender, EventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | _wizard.Next(); |
| | | } |
| | | } |
| | | |
| | | //计算 |
| | | private void btnComplete_Click(object sender, EventArgs e) |
| | | { |
| | | if (_wizard != null) |
| | | { |
| | | var bol = _wizard.Complete(); |
| | | if (bol) |
| | | { |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | this.CalcuEvent?.Invoke(hydroInfo); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |