using HStation.WinFrmUI.Xhs;
namespace HStation.WinFrmUI
{
///
/// 项目模拟属性控件
///
public partial class XhsProjectSimulationPropertyCtrl : DevExpress.XtraEditors.XtraUserControl
{
public XhsProjectSimulationPropertyCtrl()
{
InitializeComponent();
this.hydroParterPropertyCtrl1.PropertyValueChangedEvent += HydroParterPropertyCtrl1_PropertyValueChangedEvent;
this.hydroParterPropertyCtrl1.SelectCurveEvent += HydroParterPropertyCtrl1_SelectCurveEvent;
this.hydroParterPropertyCtrl1.SelectPatternEvent += HydroParterPropertyCtrl1_SelectPatternEvent;
}
private Yw.Model.HydroModelInfo _hydro = null;
///
/// 绑定数据
///
public void SetBindingData(Yw.Model.HydroModelInfo rhs)
{
_hydro = rhs;
}
///
/// 选择组件
///
public void SelectParter(long id)
{
if (_hydro == null)
{
this.hydroParterPropertyCtrl1.SelectedObject = null;
return;
}
var allParterList = _hydro.GetAllParters();
var parter = allParterList.Find(x => x.ID == id);
if (parter == null)
{
this.hydroParterPropertyCtrl1.SelectedObject = null;
return;
}
var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList);
this.hydroParterPropertyCtrl1.SelectedObject = vm;
}
///
/// 选择组件
///
public void SelectParter(string code)
{
if (_hydro == null)
{
this.hydroParterPropertyCtrl1.SelectedObject = null;
return;
}
var allParterList = _hydro.GetAllParters();
var parter = allParterList.Find(x => x.Code == code);
if (parter == null)
{
this.hydroParterPropertyCtrl1.SelectedObject = null;
return;
}
var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList);
this.hydroParterPropertyCtrl1.SelectedObject = vm;
}
///
/// 选择组件
///
///
///
public void SelectParter(Yw.Model.HydroParterInfo parter, List allParterList)
{
if (_hydro == null)
{
this.hydroParterPropertyCtrl1.SelectedObject = null;
return;
}
if (parter == null)
{
this.hydroParterPropertyCtrl1.SelectedObject = null;
return;
}
var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList);
this.hydroParterPropertyCtrl1.SelectedObject = vm;
}
///
/// 更新计算属性
///
public void UpdateCalcuProperty(Yw.WinFrmUI.IHydroCalcuProperty rhs)
{
var vm = this.hydroParterPropertyCtrl1.SelectedObject;
if (vm == null)
{
return;
}
vm.UpdateCalcuProperty(rhs);
this.hydroParterPropertyCtrl1.UpdateRows();
}
//属性发生改变
private void HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterPropertyViewModel obj)
{
if (obj == null)
{
return;
}
if (_hydro == null)
{
return;
}
var allParterList = _hydro.GetAllParters();
var parter = allParterList?.Find(x => x.ID == obj.ID);
if (parter == null)
{
return;
}
parter.UpdateProperty(allParterList, obj);
}
//选择曲线
private void HydroParterPropertyCtrl1_SelectCurveEvent(HydroParterPropertyViewModel propViewModel, string curveType)
{
//这里 dbid modeltype
//返回 dbid curveid 曲线信息
switch (curveType)
{
case Yw.WinFrmUI.HydroCurve.PumpQH:
{
var pumpPropertyViewModel = propViewModel as HydroPumpPropertyViewModel;
var dbId = pumpPropertyViewModel.DbId;
var modelType = pumpPropertyViewModel.ModelType;
var dlg = new PumpMainCurveChoiceDlg();
dlg.SetBindingData(dbId, modelType);
dlg.CurveinfoEvent += (dbid, curveid, curveinfo) =>
{
};
dlg.ShowDialog();
}
break;
case Yw.WinFrmUI.HydroCurve.PumpQE:
{
var pumpPropertyViewModel = propViewModel as HydroPumpPropertyViewModel;
var dbId = pumpPropertyViewModel.DbId;
var modelType = pumpPropertyViewModel.ModelType;
var dlg = new PumpMainCurveChoiceDlg();
dlg.SetBindingData(dbId, modelType);
dlg.CurveinfoEvent += (dbid, curveid, curveinfo) =>
{
};
dlg.ShowDialog();
}
break;
case Yw.WinFrmUI.HydroCurve.ValveQL:
{
//
}
break;
default: break;
}
// XtraMessageBox.Show($"{propViewModel.Name}-{curveType}");
}
//选择模式
private void HydroParterPropertyCtrl1_SelectPatternEvent(HydroParterPropertyViewModel propViewModel, string patternType)
{
switch (patternType)
{
case Yw.WinFrmUI.HydroPattern.Demand:
{
}
break;
case Yw.WinFrmUI.HydroPattern.Head:
{
}
break;
default: break;
}
XtraMessageBox.Show($"{propViewModel.Name}-{patternType}");
}
}
}