/// /// Copyright (c) 2013-2019 Senus Slovensko a.s. /// using System; using System.Collections.Generic; using System.Windows.Forms; using log4net; using Config.Entities; using TBF.Resources; namespace TBF.UI.Bench.Metrology { public partial class MetrologyDlgDensityTab : UserControl, IMetrologyDlgTab { static readonly ILog log = LogManager.GetLogger(typeof(MetrologyDlgDensityTab)); /// /// Component entity that has a list of 'measurement-correction' pairs /// to be updated in the database on OK. /// public Component MeterEntity { get { return meterEntity; } set { meterEntity = value; } } Component meterEntity; /// /// Density configuration /// public BenchControl.DataContainers.Density.ComponentCfg DensityCfg; /// /// A list of 'measurement-correction' pairs to be deleted from the database on OK. /// public IList ToBeRemoved { get { return toBeRemoved; } set { toBeRemoved = value; } } IList toBeRemoved; MetrologyDlg parent; bool unlocked; public MetrologyDlgDensityTab() { InitializeComponent(); calibDateTimePicker.CustomFormat = Constants.DateFormat; calibDateTimePicker.MinDate = Constants.MinDate; calibExpirationDateTimePicker.CustomFormat = Constants.DateFormat; calibExpirationDateTimePicker.MinDate = Constants.MinDate; toBeRemoved = new List(); unlocked = false; } private void MetrologyDlgDensityTab_Load(object sender, System.EventArgs e) { if (meterEntity == null) return; parent = ParentForm as MetrologyDlg; Localize(); /// Panel1 densityLabel.Text = string.Format("{0} [{1}]", Strings.Density, Config.Unit.kgpm3.ToDescription()); temperatureLabel.Text = string.Format("{0} [{1}]", Strings.At_temperature, Config.Unit.C.ToDescription()); densityCorrLabel.Text = string.Format("{0} [{1}]", Strings.Density_correction, Config.Unit.kgpm3.ToDescription()); /// Panel2 RefreshAll(); } void Localize() { calibrationGroupBox.Text = Strings.Calibration; calibCertificateNrLabel.Text = Strings.Certificate; calibDateLabel.Text = Strings.Date; calibValidDateLabel.Text = Strings.Valid_until; } void RefreshAll() { if (DensityCfg != null) { densityTextBox.Text = Config.Data.RealDensity.ToString("F4"); temperatureTextBox.Text = Config.Data.AtTemperature.ToString("F2"); densityCorrTextBox.Text = Config.Formulas.DensityCorrection(Config.Data.RealDensity, Config.Data.AtTemperature).ToString("F5"); calibCertificateNrTextBox.Text = DensityCfg.CalibCertificateNr; calibDateTimePicker.Value = (DensityCfg.CalibDate < Constants.MinDate) ? Constants.MinDate : DensityCfg.CalibDate; calibExpirationDateTimePicker.Value = (DensityCfg.CalibValidDate < Constants.MinDate) ? Constants.MinDate : DensityCfg.CalibValidDate; } } public void Unlock() { unlocked = true; densityTextBox.Enabled = true; temperatureTextBox.Enabled = true; calibCertificateNrTextBox.Enabled = true; calibDateTimePicker.Enabled = true; calibExpirationDateTimePicker.Enabled = true; } public void OkBtnClicked() { if (DensityCfg != null) { try { double realDensity = Utils.ParseUDouble(densityTextBox.Text); double atTemperature = Utils.ParseUDouble(temperatureTextBox.Text); Results.WMeterRsltItemSpec.RealDensity = Config.Data.RealDensity = DensityCfg.RealDensity = realDensity; Results.WMeterRsltItemSpec.AtTemperature = Config.Data.AtTemperature = DensityCfg.AtTemperature = atTemperature; DensityCfg.CalibCertificateNr = calibCertificateNrTextBox.Text; DensityCfg.CalibDate = calibDateTimePicker.Value.Date; DensityCfg.CalibValidDate = calibExpirationDateTimePicker.Value.Date; Component modified = DensityCfg.CreateDbEntity(); MeterEntity.Parameters = modified.Parameters; } catch { MessageBox.Show(Strings.Invalid_density_parameter_Correct_pls, Strings.Error, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } } public void CancelBtnClicked() { } public void AddOne() { } public void RemoveSelected() { } public void MoveUpSelected() { } public void MoveDownSelected() { } public string GetWarningsBeforeSaving(ref Dictionary renmInfo) { return string.Empty; } public void UpdateRelatedItems(Dictionary renameInfo) { } private void densityTextBox_TextChanged(object sender, EventArgs e) { UpdateDensityCorrectionDisplay(); } private void temperatureTextBox_TextChanged(object sender, EventArgs e) { UpdateDensityCorrectionDisplay(); } void UpdateDensityCorrectionDisplay() { double density; double temp; if (Utils.TryParseUDouble(densityTextBox.Text, out density) && Utils.TryParseUDouble(temperatureTextBox.Text, out temp)) { densityCorrTextBox.Text = Config.Formulas.DensityCorrection(density, temp).ToString(); } } } }