namespace Yw.WinFrmUI
{
public partial class SetHydroValveWorkingInfoCtrl : DevExpress.XtraEditors.XtraUserControl, ISetHydroVisualWorkingInfoCtrl
{
public SetHydroValveWorkingInfoCtrl()
{
InitializeComponent();
this.layoutControl1.SetupLayoutControl();
InitialLinkStatus();
}
///
/// 查看组件事件
///
public event Action HydroViewEvent;
private Yw.Model.HydroValveInfo _parter = null;//组件
private HydroValveWorkingInfoViewModel _workingInfo = null;//工况
///
/// 绑定数据
///
public void SetBindingData(Yw.Model.HydroVisualInfo parter)
{
var valve = parter as Yw.Model.HydroValveInfo;
if (valve == null)
{
return;
}
_parter = valve;
this.layoutGroupCaption.Text = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve);
if (!string.IsNullOrEmpty(parter.Name))
{
this.layoutGroupCaption.Text = parter.Name;
}
_workingInfo = new HydroValveWorkingInfoViewModel(valve);
UpdateBindingData(_workingInfo);
}
///
/// 更新绑定
///
public void UpdateBindingData(HydroVisualWorkingInfoViewModel workingInfo)
{
if (_parter == null)
{
return;
}
_workingInfo = workingInfo as HydroValveWorkingInfoViewModel;
if (_workingInfo == null)
{
return;
}
this.imgCmbLinkStatus.EditValue = _workingInfo.LinkStatus;
this.txtOpeningDegree.EditValue = _workingInfo.OpeningDegree;
if (_parter.ValveType == Yw.Hydro.ValveType.TCV)
{
this.txtOpeningDegree.Properties.ReadOnly = false;
}
else
{
this.txtOpeningDegree.Properties.ReadOnly = true;
}
}
///
/// 获取工况
///
public HydroVisualWorkingInfoViewModel GetWorkingInfo()
{
if (_workingInfo == null)
{
return default;
}
_workingInfo.LinkStatus = this.imgCmbLinkStatus.EditValue?.ToString();
_workingInfo.OpeningDegree = double.Parse(this.txtOpeningDegree.EditValue.ToString());
return _workingInfo;
}
//初始化管段状态
private void InitialLinkStatus()
{
this.imgCmbLinkStatus.Properties.BeginUpdate();
this.imgCmbLinkStatus.Properties.Items.Clear();
this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.ValveStatus.None), Yw.Hydro.ValveStatus.None, -1);
this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.ValveStatus.Open), Yw.Hydro.ValveStatus.Open, -1);
this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.ValveStatus.Closed), Yw.Hydro.ValveStatus.Closed, -1);
this.imgCmbLinkStatus.Properties.EndUpdate();
}
//查看部件
private void layoutGroupCaption_CustomButtonClick(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e)
{
if (_parter == null)
{
return;
}
this.HydroViewEvent?.Invoke(_parter);
}
}
}