using HStation.WinFrmUI.PhartRelation;
|
using HStation.WinFrmUI.Xhs;
|
using Yw.Model;
|
|
namespace HStation.WinFrmUI
|
{
|
/// <summary>
|
/// 项目模拟属性控件
|
/// </summary>
|
public partial class XhsProjectSimulationPropertyCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public XhsProjectSimulationPropertyCtrl()
|
{
|
InitializeComponent();
|
this.hydroVisualPropertyCtrl1.MatchingDbEvent += HydroVisualPropertyCtrl1_MatchingDbEvent;
|
this.hydroVisualPropertyCtrl1.SetCurveEvent += HydroVisualPropertyCtrl1_SetCurveEvent;
|
this.hydroVisualPropertyCtrl1.SetPatternEvent += HydroVisualPropertyCtrl1_SetPatternEvent;
|
|
this.hydroVisualPropertyCtrl1.HydroViewEvent += HydroVisualPropertyCtrl1_HydroViewEvent;
|
this.hydroVisualPropertyCtrl1.BlinkLinkNodeEvent += HydroVisualPropertyCtrl1_BlinkLinkNodeEvent;
|
this.hydroVisualPropertyCtrl1.PropertyValueChangedEvent += HydroVisualPropertyCtrl1_PropertyValueChangedEvent;
|
this.hydroVisualPropertyCtrl1.MarkPropertyValueChangedEvent += HydroVisualPropertyCtrl1_MarkPropertyValueChangedEvent;
|
this.hydroVisualPropertyCtrl1.GradingPropertyValueChangedEvent += HydroPVisualPropertyCtrl1_GradingPropertyValueChangedEvent;
|
this.hydroVisualPropertyCtrl1.FlowEffectPropertyValueChangedEvent += HydroVisualPropertyCtrl1_FlowEffectPropertyValueChangedEvent;
|
}
|
|
#region 事件集
|
|
/// <summary>
|
/// 构件查看事件
|
/// </summary>
|
public event Action<HydroVisualInfo> HydroViewEvent;
|
|
/// <summary>
|
/// 强调连接组件事件
|
/// 第一个参数为组件
|
/// 第二个参数为连接节点Code
|
/// </summary>
|
public event Action<HydroLinkInfo, string> BlinkLinkNodeEvent;
|
|
/// <summary>
|
/// 属性值改变事件
|
/// </summary>
|
public event Action<HydroVisualInfo> PropertyValueChangedEvent;
|
|
/// <summary>
|
/// 标注属性值改变事件
|
/// </summary>
|
public event Action<HydroVisualInfo> MarkPropertyValueChangedEvent;
|
|
/// <summary>
|
/// 分级属性值改变事件
|
/// </summary>
|
public event Action<HydroVisualInfo> GradingPropertyValueChangedEvent;
|
|
/// <summary>
|
/// 水流动画属性值改变事件
|
/// </summary>
|
public event Action<HydroVisualInfo> FlowEffectPropertyValueChangedEvent;
|
|
#endregion 事件集
|
|
#region 属性赋值
|
|
/// <summary>
|
/// 选择对象
|
/// </summary>
|
public HydroVisualViewModel SelectedObject
|
{
|
get { return this.hydroVisualPropertyCtrl1.SelectedObject; }
|
set { this.hydroVisualPropertyCtrl1.SelectedObject = value; }
|
}
|
|
#endregion 属性赋值
|
|
#region 属性更新
|
|
/// <summary>
|
/// 重新载入数据
|
/// </summary>
|
public void UpdateData()
|
{
|
this.hydroVisualPropertyCtrl1?.UpdateData();
|
}
|
|
/// <summary>
|
/// 更新行,样式不变
|
/// </summary>
|
public void UpdateRows()
|
{
|
this.hydroVisualPropertyCtrl1?.UpdateRows();
|
}
|
|
/// <summary>
|
/// 更新属性
|
/// </summary>
|
public void UpdateProperty()
|
{
|
var vm = this.hydroVisualPropertyCtrl1.SelectedObject;
|
if (vm == null)
|
{
|
return;
|
}
|
vm.UpdateProperty();
|
this.hydroVisualPropertyCtrl1.UpdateRows();
|
}
|
|
#endregion 属性更新
|
|
#region 事件实现
|
|
//匹配Db
|
private bool HydroVisualPropertyCtrl1_MatchingDbEvent(HydroVisualViewModel vm)
|
{
|
if (vm == null)
|
{
|
return false;
|
}
|
var bol = false;
|
var catalog = HydroParterCatalogHelper.GetCode(vm.Catalog);
|
switch (catalog)
|
{
|
case Yw.Hydro.ParterCatalog.Pump://水泵
|
{
|
/* var pumpInfo = vm.HydroInfo.Pumps?.Find(x => x.Code == vm.Code);
|
if (pumpInfo == null)
|
{
|
break;
|
}
|
|
var input = AssetsMatchingParasHelper.Create(vm.HydroInfo, pumpInfo, null);
|
var dlg = new PumpSingleMatchingDlg();
|
dlg.SetBindingData(input);
|
dlg.ReloadDataEvent += (output) =>
|
{
|
bol = AssetsMatchingParasHelper.Apply(vm.HydroInfo, output);
|
if (bol)
|
{
|
vm.UpdateProperty();
|
}
|
};
|
dlg.ShowDialog();*/
|
}
|
break;
|
|
case Yw.Hydro.ParterCatalog.Valve://阀门
|
{
|
/* var valveInfo = vm.HydroInfo.Valves?.Find(x => x.Code == vm.Code);
|
if (valveInfo == null)
|
{
|
break;
|
}
|
var input = AssetsMatchingParasHelper.Create(vm.HydroInfo, valveInfo, null);
|
var dlg = new ValveSingleMatchingDlg();
|
dlg.SetBindingData(input);
|
dlg.ReloadDataEvent += (rhs) =>
|
{
|
bol = AssetsMatchingParasHelper.Apply(vm.HydroInfo, rhs);
|
if (bol)
|
{
|
vm.UpdateProperty();
|
this.hydroVisualPropertyCtrl1.UpdateRows();
|
}
|
};
|
dlg.ShowDialog();*/
|
}
|
break;
|
|
case Yw.Hydro.ParterCatalog.Pipe://管道
|
{
|
}
|
break;
|
|
case Yw.Hydro.ParterCatalog.Elbow://弯头
|
{
|
var elbowInfo = vm.HydroInfo.Elbows?.Find(x => x.Code == vm.Code);
|
if (elbowInfo == null)
|
{
|
break;
|
}
|
var input = HydroMatchingHelper.Create(elbowInfo, vm.HydroInfo, null);
|
var dlg = new ElbowSingMatchingDlg();
|
dlg.SetBindingData(input);
|
dlg.ReloadDataEvent += (output) =>
|
{
|
bol = HydroMatchingHelper.Apply(vm.HydroInfo, null, output);
|
if (bol)
|
{
|
vm.UpdateProperty();
|
this.hydroVisualPropertyCtrl1.UpdateRows();
|
}
|
};
|
dlg.ShowDialog();
|
}
|
break;
|
|
case Yw.Hydro.ParterCatalog.Threelink://三通
|
{
|
}
|
break;
|
|
case Yw.Hydro.ParterCatalog.Fourlink://四通
|
{
|
}
|
break;
|
|
default: break;
|
}
|
return bol;
|
}
|
|
//选择曲线
|
private bool HydroVisualPropertyCtrl1_SetCurveEvent(HydroVisualViewModel vm, string curveType)
|
{
|
if (vm == null)
|
{
|
return false;
|
}
|
switch (curveType)
|
{
|
case HydroCurve.Pump:
|
{
|
//var pumpInfo = vm.HydroInfo.Pumps?.Find(x => x.Code == vm.Code);
|
//if (pumpInfo == null)
|
//{
|
// break;
|
//}
|
//var input = AssetsMatchingParasHelper.Create(vm.HydroInfo, pumpInfo, null);
|
//var dlg = new SinglePumpAnalyDlg();
|
//dlg.SetBindindData(input);
|
//dlg.ReloadDataEvent += (output) =>
|
//{
|
// var bol = AssetsMatchingParasHelper.Apply(vm.HydroInfo, output);
|
// if (bol)
|
// {
|
// vm.UpdateProperty();
|
// this.hydroVisualPropertyCtrl1.UpdateRows();
|
// }
|
// return bol;
|
//};
|
//dlg.ShowDialog();
|
return true;
|
}
|
case HydroCurve.PumpQH:
|
{
|
return false;
|
}
|
case HydroCurve.PumpQP:
|
{
|
return false;
|
}
|
case HydroCurve.PumpQE:
|
{
|
return false;
|
}
|
case HydroCurve.Valve:
|
{
|
return false;
|
}
|
case HydroCurve.ValveQL:
|
{
|
return false;
|
}
|
default: break;
|
}
|
return false;
|
}
|
|
//选择模式
|
private bool HydroVisualPropertyCtrl1_SetPatternEvent(HydroVisualViewModel vm, string patternType)
|
{
|
switch (patternType)
|
{
|
case HydroPattern.Head:
|
{
|
return false;
|
}
|
case HydroPattern.Demand:
|
{
|
return false;
|
}
|
default: break;
|
}
|
return false;
|
}
|
|
#endregion 事件实现
|
|
#region 事件穿透
|
|
//构件查看事件
|
private void HydroVisualPropertyCtrl1_HydroViewEvent(HydroVisualViewModel vm)
|
{
|
this.HydroViewEvent?.Invoke(vm?.Vmo);
|
}
|
|
//强调连接节点
|
private void HydroVisualPropertyCtrl1_BlinkLinkNodeEvent(HydroLinkViewModel vm, string linkNodeCode)
|
{
|
if (vm == null)
|
{
|
return;
|
}
|
if (string.IsNullOrEmpty(linkNodeCode))
|
{
|
return;
|
}
|
this.BlinkLinkNodeEvent?.Invoke(vm?.Vmo, linkNodeCode);
|
}
|
|
//属性发生改变
|
private void HydroVisualPropertyCtrl1_PropertyValueChangedEvent(HydroVisualViewModel vm)
|
{
|
this.PropertyValueChangedEvent?.Invoke(vm?.Vmo);
|
}
|
|
//标注属性发生改变
|
private void HydroVisualPropertyCtrl1_MarkPropertyValueChangedEvent(HydroVisualViewModel vm)
|
{
|
this.MarkPropertyValueChangedEvent?.Invoke(vm?.Vmo);
|
}
|
|
//分级属性发生改变
|
private void HydroPVisualPropertyCtrl1_GradingPropertyValueChangedEvent(HydroVisualViewModel vm)
|
{
|
this.GradingPropertyValueChangedEvent?.Invoke(vm?.Vmo);
|
}
|
|
//水流动画属性发生改变
|
private void HydroVisualPropertyCtrl1_FlowEffectPropertyValueChangedEvent(HydroVisualViewModel vm)
|
{
|
this.FlowEffectPropertyValueChangedEvent?.Invoke(vm?.Vmo);
|
}
|
|
#endregion 事件穿透
|
}
|
}
|