using DevExpress.XtraEditors;
|
using IStation.Unit;
|
using System;
|
using System.Data;
|
using System.Linq;
|
using System.Windows.Forms;
|
|
namespace IStation.WinFrmUI.Basic
|
{
|
public partial class AddNumericListSignalTypeDlg : DevExpress.XtraEditors.XtraForm
|
{
|
public AddNumericListSignalTypeDlg()
|
{
|
InitializeComponent();
|
this.IconOptions.Icon = WinFrmUI.Properties.Resources.App;
|
this.dataLayoutControl1.SetupLayoutControl();
|
InitialUI_UnitType();
|
}
|
|
/// <summary>
|
/// 验证标识的唯一性事件
|
/// </summary>
|
public event Func<string, bool> ValidIdentifierUniqueEvent;
|
/// <summary>
|
/// 返回数据事件
|
/// </summary>
|
public event Action<Model.SignalType> ReloadDataEvent;
|
|
private Model.SignalType _model = null;//当前操作对象
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData(long GroupID, int SortCode)
|
{
|
this.Text = "添加集合信号类型";
|
_model = new Model.SignalType();
|
_model.GroupID = GroupID;
|
_model.ValueType = Model.Monitor.eValueType.Array;
|
_model.SortCode = SortCode;
|
}
|
|
//初始化单位类型
|
private void InitialUI_UnitType()
|
{
|
this.UnitTypeImageComboBoxEdit.Properties.BeginUpdate();
|
this.UnitTypeImageComboBoxEdit.Properties.Items.Clear();
|
this.UnitTypeImageComboBoxEdit.Properties.Items.AddEnum(typeof(Unit.eUnitType), false);
|
this.UnitTypeImageComboBoxEdit.Properties.EndUpdate();
|
}
|
|
//验证
|
private bool Valid()
|
{
|
this.dxErrorProvider1.ClearErrors();
|
if (string.IsNullOrEmpty(this.NameTextEdit.Text.Trim()))
|
{
|
this.dxErrorProvider1.SetError(this.NameTextEdit, "必填项");
|
return false;
|
}
|
var identifier = this.IdentifierTextEdit.Text.Trim();
|
if (string.IsNullOrEmpty(identifier))
|
{
|
this.dxErrorProvider1.SetError(this.IdentifierTextEdit, "必填项");
|
return false;
|
}
|
if (this.ValidIdentifierUniqueEvent != null)
|
{
|
|
if (!this.ValidIdentifierUniqueEvent(identifier))
|
{
|
this.dxErrorProvider1.SetError(this.IdentifierTextEdit, "标识重复");
|
return false;
|
}
|
}
|
if (string.IsNullOrEmpty(this.UnitTypeImageComboBoxEdit.Text.Trim()))
|
{
|
this.dxErrorProvider1.SetError(this.UnitTypeImageComboBoxEdit, "必选项");
|
return false;
|
}
|
if (this.UnitValueComboBoxEdit.Properties.Items.Count > 0)
|
{
|
if (this.UnitValueComboBoxEdit.EditValue == null)
|
{
|
this.dxErrorProvider1.SetError(this.UnitValueComboBoxEdit, "必选项");
|
return false;
|
}
|
}
|
return true;
|
}
|
|
//确定
|
private void btnOk_Click(object sender, EventArgs e)
|
{
|
if (!Valid())
|
return;
|
_model.Name = this.NameTextEdit.Text.Trim();
|
_model.Identifier = this.IdentifierTextEdit.Text.Trim();
|
_model.UnitType = (eUnitType)this.UnitTypeImageComboBoxEdit.EditValue;
|
if (this.UnitValueComboBoxEdit.EditValue is Model.IntAndString)
|
{
|
_model.UnitValue = (this.UnitValueComboBoxEdit.EditValue as Model.IntAndString).IntValue.ToString();
|
}
|
else
|
{
|
_model.UnitValue = this.UnitValueComboBoxEdit.Text.Trim();
|
}
|
if (string.IsNullOrEmpty(this.DecimalPlacesTextEdit.Text.Trim()))
|
_model.DecimalPlaces = null;
|
else
|
_model.DecimalPlaces = int.Parse(this.DecimalPlacesTextEdit.Text);
|
_model.TagName = this.TagNameTextEdit.Text.Trim();
|
_model.Description = this.DescriptionMemoEdit.Text.Trim();
|
|
|
var bll = new BLL.Scatl.SignalType();
|
var id = bll.Insert(_model);
|
if (id < 1)
|
{
|
XtraMessageBox.Show("添加失败!");
|
return;
|
}
|
if (this.ReloadDataEvent != null)
|
{
|
var model = bll.GetById(id);
|
this.ReloadDataEvent.Invoke(model);
|
}
|
|
this.DialogResult = DialogResult.OK;
|
this.Close();
|
}
|
|
//单位类型改变
|
private void imgCmbUnitType_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
if (this.UnitTypeImageComboBoxEdit.EditValue == null)
|
return;
|
this.UnitValueComboBoxEdit.Properties.BeginUpdate();
|
this.UnitValueComboBoxEdit.Properties.Items.Clear();
|
this.UnitValueComboBoxEdit.EditValue = null;
|
var unit_type = (Unit.eUnitType)this.UnitTypeImageComboBoxEdit.EditValue;
|
var dict = UnitHelper.GetEnUnitDict(unit_type);
|
if (dict == null || dict.Count < 1)
|
{
|
this.UnitValueComboBoxEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
|
}
|
else
|
{
|
this.UnitValueComboBoxEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
|
var unit_value_list = dict.Select(x => new Model.IntAndString(x.Key, x.Value)).ToList();
|
unit_value_list.ForEach(x => this.UnitValueComboBoxEdit.Properties.Items.Add(x));
|
}
|
this.UnitValueComboBoxEdit.Properties.EndUpdate();
|
}
|
}
|
}
|