using DevExpress.XtraEditors;
using System;
using System.Windows.Forms;
namespace IStation.WinFrmUI.Basic
{
public partial class CopyAndExpandCurveDlg : XtraForm
{
public CopyAndExpandCurveDlg()
{
InitializeComponent();
this.IconOptions.Icon = WinFrmUI.Properties.Resources.App;
this.dataLayoutControl1.SetupLayoutControl();
}
///
/// 回调事件
///
public event Func ReloadDataEvent;
private Model.PumpCurveExMapping _pumpCurveExMapping = null;
private Model.FeatCurveExpressGroup _expandFeatCurveExpressGroup = null;
///
/// 绑定数据
///
public void SetBindingData(Model.PumpCurveExMapping model)
{
if (model == null)
return;
if (model.CurveInfo == null)
return;
_pumpCurveExMapping = model;
_expandFeatCurveExpressGroup = _pumpCurveExMapping.CurveInfo.Copy();
this.chartFeatCurveViewCtrl1.SetBindingData(model.CurveInfo.CurveQH, model.CurveInfo.CurveQE, model.CurveInfo.CurveQP);
this.txtOtherName.EditValue = _pumpCurveExMapping.OtherName;
this.txtExpand.EditValue = 100;
}
//比例修改完成
private void txtExpand_EditValueChanged(object sender, EventArgs e)
{
if (_pumpCurveExMapping == null || _pumpCurveExMapping.CurveInfo == null)
return;
var value = int.Parse(this.txtExpand.EditValue.ToString());
double ratioExtend = value / 100f;
var curveInfo = _pumpCurveExMapping.CurveInfo;
var qhCurve = curveInfo.CurveQH;
var qeCurve = curveInfo.CurveQE;
var qpCurve = curveInfo.CurveQP;
var qhExPoints = IStation.Model.FitCurveHelper.GetFitPointsByExtend(qhCurve, ratioExtend, 12);
_expandFeatCurveExpressGroup.CurveQH = new Model.CurveExpress(qhExPoints, qhCurve.FitType, true);
if (qeCurve != null)
{
var qeExPoints = IStation.Model.FitCurveHelper.GetFitPointsByExtend(qeCurve, ratioExtend, 12);
_expandFeatCurveExpressGroup.CurveQE = new Model.CurveExpress(qeExPoints, qeCurve.FitType, true);
}
if (qpCurve != null)
{
var qpExPoints = IStation.Model.FitCurveHelper.GetFitPointsByExtend(qpCurve, ratioExtend, 12);
_expandFeatCurveExpressGroup.CurveQP = new Model.CurveExpress(qpExPoints, qpCurve.FitType, true);
}
this.chartFeatCurveViewCtrl1.SetBindingData(_expandFeatCurveExpressGroup.CurveQH, _expandFeatCurveExpressGroup.CurveQE, _expandFeatCurveExpressGroup.CurveQP);
}
//验证
private bool Valid()
{
this.dxErrorProvider1.ClearErrors();
if (string.IsNullOrEmpty(this.txtOtherName.Text.Trim()))
{
this.dxErrorProvider1.SetError(this.txtOtherName, "必填项");
return false;
}
return true;
}
//确定
private void btnOk_Click(object sender, EventArgs e)
{
if (!Valid())
return;
var name = this.txtOtherName.Text.Trim();
var result = this.ReloadDataEvent?.Invoke(name, _expandFeatCurveExpressGroup);
if (result == null || !result.Value)
{
XtraMessageBox.Show("复制失败!");
return;
}
XtraMessageBox.Show("复制成功!");
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}