using HStation.WinFrmUI.Xhs;
|
|
namespace HStation.WinFrmUI
|
{
|
/// <summary>
|
/// 项目模拟属性控件
|
/// </summary>
|
public partial class XhsProjectSimulationPropertyCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public XhsProjectSimulationPropertyCtrl()
|
{
|
InitializeComponent();
|
|
this.hydroParterPropertyCtrl1.GetHydroInfoEvent += HydroParterPropertyCtrl1_GetHydroInfoEvent;
|
this.hydroParterPropertyCtrl1.SelectCurveEvent += HydroParterPropertyCtrl1_SelectCurveEvent;
|
this.hydroParterPropertyCtrl1.SelectPatternEvent += HydroParterPropertyCtrl1_SelectPatternEvent;
|
this.hydroParterPropertyCtrl1.PropertyValueChangedEvent += HydroParterPropertyCtrl1_PropertyValueChangedEvent;
|
this.hydroParterPropertyCtrl1.PropertyValueChangingEvent += HydroParterPropertyCtrl1_PropertyValueChangingEvent;
|
}
|
|
/// <summary>
|
/// 获取水力信息事件
|
/// </summary>
|
public event Func<Yw.Model.HydroModelInfo> GetHydroInfoEvent;
|
|
/// <summary>
|
/// 选择组件
|
/// </summary>
|
public void SelectParter(long id)
|
{
|
var hydroInfo = GetHydroInfoEvent?.Invoke();
|
if (hydroInfo == null)
|
{
|
this.hydroParterPropertyCtrl1.SelectedObject = null;
|
return;
|
}
|
var allParterList = hydroInfo.GetAllParters();
|
var parter = allParterList.Find(x => x.ID == id);
|
var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList);
|
this.hydroParterPropertyCtrl1.SelectedObject = vm;
|
}
|
|
/// <summary>
|
/// 选择组件
|
/// </summary>
|
public void SelectParter(string code)
|
{
|
var hydroInfo = GetHydroInfoEvent?.Invoke();
|
if (hydroInfo == null)
|
{
|
this.hydroParterPropertyCtrl1.SelectedObject = null;
|
return;
|
}
|
var allParterList = hydroInfo.GetAllParters();
|
var parter = allParterList.Find(x => x.Code == code);
|
var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList);
|
this.hydroParterPropertyCtrl1.SelectedObject = vm;
|
}
|
|
/// <summary>
|
/// 选择组件
|
/// </summary>
|
/// <param name="parter"></param>
|
/// <param name="allParterList"></param>
|
public void SelectParter(Yw.Model.HydroParterInfo parter, List<Yw.Model.HydroParterInfo> allParterList)
|
{
|
var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList);
|
this.hydroParterPropertyCtrl1.SelectedObject = vm;
|
}
|
|
/// <summary>
|
/// 更新计算属性
|
/// </summary>
|
public void UpdateCalcuProperty(Yw.WinFrmUI.IHydroCalcuProperty rhs)
|
{
|
var vm = this.hydroParterPropertyCtrl1.SelectedObject;
|
if (vm == null)
|
{
|
return;
|
}
|
vm.UpdateCalcuProperty(rhs);
|
this.hydroParterPropertyCtrl1.UpdateRows();
|
}
|
|
//获取水力信息事件
|
private Yw.Model.HydroModelInfo HydroParterPropertyCtrl1_GetHydroInfoEvent()
|
{
|
var hydroInfo = GetHydroInfoEvent?.Invoke();
|
return hydroInfo;
|
}
|
|
//选择曲线
|
private bool HydroParterPropertyCtrl1_SelectCurveEvent(HydroParterPropertyViewModel propViewModel, string curveType)
|
{
|
switch (curveType)
|
{
|
case Yw.WinFrmUI.HydroCurve.Pump:
|
{
|
var hydroInfo = GetHydroInfoEvent?.Invoke();
|
if (hydroInfo == null)
|
{
|
return false;
|
}
|
var vmPump = propViewModel as HydroPumpPropertyViewModel;
|
var modelType = vmPump.ModelType;
|
var dbId = vmPump.DbId;
|
var curveDbId = string.Empty;
|
if (!string.IsNullOrEmpty(vmPump.CurveQH))
|
{
|
var curveQh = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQH);
|
curveDbId = curveQh?.DbId;
|
}
|
var dlg = new PumpMainCurveChoiceDlg();
|
dlg.SetBindingData(dbId, modelType, curveDbId);
|
dlg.SelectCurveInfoEvent += (dbid, curveid, curveinfo) =>
|
{
|
};
|
dlg.ShowDialog();
|
return true;
|
}
|
case Yw.WinFrmUI.HydroCurve.PumpQH:
|
{
|
return false;
|
}
|
case Yw.WinFrmUI.HydroCurve.PumpQP:
|
{
|
return false;
|
}
|
case Yw.WinFrmUI.HydroCurve.PumpQE:
|
{
|
return false;
|
}
|
case Yw.WinFrmUI.HydroCurve.Valve:
|
{
|
return true;
|
}
|
case Yw.WinFrmUI.HydroCurve.ValveQL:
|
{
|
return false;
|
}
|
default: break;
|
}
|
return false;
|
}
|
|
//选择模式
|
private bool HydroParterPropertyCtrl1_SelectPatternEvent(HydroParterPropertyViewModel propViewModel, string patternType)
|
{
|
switch (patternType)
|
{
|
case Yw.WinFrmUI.HydroPattern.Demand:
|
{
|
}
|
break;
|
|
case Yw.WinFrmUI.HydroPattern.Head:
|
{
|
}
|
break;
|
|
default: break;
|
}
|
return true;
|
}
|
|
//属性发生改变
|
private bool HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterPropertyViewModel obj)
|
{
|
return false;
|
}
|
|
//属性正在发生改变
|
private bool HydroParterPropertyCtrl1_PropertyValueChangingEvent(HydroParterPropertyViewModel arg)
|
{
|
return false;
|
}
|
}
|
}
|