using System.Collections.Generic;
using System.Windows.Forms;
namespace IStation.WinFrmUI.Analy
{
public partial class ParallelCurvePage : DocumentPage
{
public ParallelCurvePage()
{
InitializeComponent();
this.PageTitle.Caption = "曲线并联";
this.pumpCurveSelectedTreeList1.AddCurveEvent += (id, name, color, curveQH, curveQE, curveQP) =>
{
this.mainChart.AddCurve(id, name, curveQH, curveQE, curveQP, color);
CreateParallelCurve();
};
this.pumpCurveSelectedTreeList1.SetCurveEvent += (id, curveQH, curveQE, curveQP) =>
{
this.mainChart.SetCurve(id, curveQH, curveQE, curveQP);
CreateParallelCurve();
};
this.pumpCurveSelectedTreeList1.SetCurveColorEvent += (id, color) =>
{
this.mainChart.SetCurve(id, color);
};
this.pumpCurveSelectedTreeList1.DeleteCurveEvent += (id) =>
{
this.mainChart.DeleteCurve(id);
CreateParallelCurve();
};
this.pumpCurveSelectedTreeList1.ClearCurveEvent += () =>
{
this.mainChart.DeleteCurve();
};
this.mainChart.OnCalcQueryPoint += (id, pt) =>
{
this.pumpCurveSelectedTreeList1.SetQueryInfo(id, pt);
};
}
///
/// 创建并联曲线
///
private void CreateParallelCurve()
{
this.mainChart.DeleteCurve(-1);
this.mainChart.GetCurves(out List featCurveExpressGroups);
if (featCurveExpressGroups != null && featCurveExpressGroups.Count > 1)
{
var theConnectCurve = new Model.ConnectCurveHelper();
for (int i = 0; i < featCurveExpressGroups.Count; i++)
{
var vm = featCurveExpressGroups[i];
theConnectCurve.AddSinglePumpCurve(vm.CurveQH, vm.CurveQP);
}
if (!theConnectCurve.CalculateParallel(out List connectCurveQH,
out List connectCurveQE,
out List connectCurveQP))
{
MessageBox.Show("这些泵不适合并联");
return;
}
var curveExpressQH = new Model.CurveExpress(connectCurveQH);
var curveExpressQE = new Model.CurveExpress(connectCurveQE);
var curveExpressQP = new Model.CurveExpress(connectCurveQP);
this.mainChart.AddCurve(-1, "并联曲线", curveExpressQH, curveExpressQE, curveExpressQP, System.Drawing.Color.Black);
}
}
///
/// 初始化数据
///
public override void InitialDataSource()
{
this.pumpCurveSelectedTreeList1.SetBindingData();
}
//清空曲线
private void barBtnClearCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
this.pumpCurveSelectedTreeList1.ClearSelected();
}
//
private void barBtnExpand_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
this.pumpCurveSelectedTreeList1.Expand();
}
//
private void barBtnCollapse_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
this.pumpCurveSelectedTreeList1.Collapse();
}
//
private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
this.pumpCurveSelectedTreeList1.ExpandAll();
}
//
private void barBtnCollapseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
this.pumpCurveSelectedTreeList1.CollapseAll();
}
//
private void barCekSearch_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
this.pumpCurveSelectedTreeList1.Search(this.barCekSearch.Checked);
}
}
}