/// <summary> /// Применяет введенные данные /// </summary> /// <param name="condition"></param> /// <param name="textRemain"></param> /// <param name="textOnBoard"></param> /// <param name="textCorrection"></param> private void ApplyBundle(FuelTankCondition condition, TextBox textRemain, TextBox textOnBoard, TextBox textCorrection) { if (condition != null) { condition.Remaining = UsefulMethods.StringToDouble(textRemain.Text); condition.OnBoard = UsefulMethods.StringToDouble(textOnBoard.Text); condition.Correction = UsefulMethods.StringToDouble(textCorrection.Text); } }
/* * Реализация */ #region private void FillBundle(FuelTankCondition condition, Label labelTitle, TextBox textRemain, TextBox textOnBoard, TextBox textCorrection) /// <summary> /// Заполняет информацию о отпливных баках /// </summary> /// <param name="condition"></param> /// <param name="labelTitle"></param> /// <param name="textRemain"></param> /// <param name="textOnBoard"></param> /// <param name="textCorrection"></param> private void FillBundle(FuelTankCondition condition, Label labelTitle, TextBox textRemain, TextBox textOnBoard, TextBox textCorrection) { if (condition != null) { labelTitle.Text = condition.Tank; textRemain.Text = condition.Remaining.ToString(); textOnBoard.Text = condition.OnBoard.ToString(); textCorrection.Text = condition.Correction.ToString(); } else { labelTitle.Visible = textRemain.Visible = textOnBoard.Visible = textCorrection.Visible = false; } }
/* * События формы */ #region private bool ConditionExists(FuelTankCondition con) /// <summary> /// Существует ли информация по уровню масла для заданного агрегата /// </summary> /// <param name="con"></param> /// <returns></returns> private bool ConditionExists(FuelTankCondition con) { // if (Flight == null || Flight.FuelTankCollection == null) { return(false); } // for (int i = 0; i < Flight.FuelTankCollection.Count; i++) { if (Flight.FuelTankCollection[i] == con) { return(true); } } // return(false); }
/* * Перегружаемые методы */ #region public override void ApplyChanges() /// <summary> /// Применить к объекту сделанные изменения на контроле. /// Если не все данные удовлетворяют формату ввода (например при вводе чисел), свойства объекта не изменяются, возвращается false /// Вызов base.ApplyChanges() обязателен /// </summary> /// <returns></returns> public override void ApplyChanges() { // Применяем сделанные изменения объектам for (int i = 0; i < flowLayoutPanelItems.Controls.Count; i++) { FuelControlItem c = flowLayoutPanelItems.Controls[i] as FuelControlItem; if (c == null) { continue; } c.ApplyChanges(); if (Flight != null && Flight.FuelTankCollection != null && !ConditionExists(c.FuelCondition)) { Flight.FuelTankCollection.Add(c.FuelCondition); } } // Сохраняем общие параметры if (Flight != null && Flight.FuelTankCollection != null && Flight.FuelTankCollection.Count >= 1) { FuelTankCondition c = Flight.FuelTankCollection[0]; c.CalculateUplift = UsefulMethods.StringToDouble(textCalculateUplift.Text); c.ActualUpliftLit = UsefulMethods.StringToDouble(textActualUplift.Text); c.Discrepancy = UsefulMethods.StringToDouble(textDiscrepancy.Text); c.Density = UsefulMethods.StringToDouble(textDensity.Text); // Сохраняем эти значения на всякий случай во все остальные записи коллекции for (int i = 1; i < Flight.FuelTankCollection.Count; i++) { Flight.FuelTankCollection[i].CalculateUplift = c.CalculateUplift; Flight.FuelTankCollection[i].ActualUpliftLit = c.ActualUpliftLit; Flight.FuelTankCollection[i].Discrepancy = c.Discrepancy; Flight.FuelTankCollection[i].Density = c.Density; } } base.ApplyChanges(); }
/* * Перегружаемые методы */ #region public override void ApplyChanges() /// <summary> /// Применить к объекту сделанные изменения на контроле. /// Если не все данные удовлетворяют формату ввода (например при вводе чисел), свойства объекта не изменяются, возвращается false /// Вызов base.ApplyChanges() обязателен /// </summary> /// <returns></returns> public override void ApplyChanges() { // Сохраняем информацию о трех топливных баках if (Flight != null && Flight.FuelTankCollection != null && Flight.FuelTankCollection.Count >= 1) { ApplyBundle(Flight.FuelTankCollection[0], textRemain1, textOnBoard1, textCorrection1); } if (Flight != null && Flight.FuelTankCollection != null && Flight.FuelTankCollection.Count >= 2) { ApplyBundle(Flight.FuelTankCollection[1], textRemain2, textOnBoard2, textCorrection2); } if (Flight != null && Flight.FuelTankCollection != null && Flight.FuelTankCollection.Count >= 3) { ApplyBundle(Flight.FuelTankCollection[2], textRemain3, textOnBoard3, textCorrection3); } // Сохраняем общие параметры if (Flight != null && Flight.FuelTankCollection != null && Flight.FuelTankCollection.Count >= 1) { FuelTankCondition c = Flight.FuelTankCollection[0]; c.CalculateUplift = UsefulMethods.StringToDouble(textCalculateUplift.Text); c.ActualUpliftLIT = UsefulMethods.StringToDouble(textActualUplift.Text); c.Discrepancy = UsefulMethods.StringToDouble(textDiscrepancy.Text); c.Density = UsefulMethods.StringToDouble(textDensity.Text); // Сохраняем эти значения на всякий случай во все остальные записи коллекции for (int i = 1; i < Flight.FuelTankCollection.Count; i++) { Flight.FuelTankCollection[i].CalculateUplift = c.CalculateUplift; Flight.FuelTankCollection[i].ActualUpliftLIT = c.ActualUpliftLIT; Flight.FuelTankCollection[i].Discrepancy = c.Discrepancy; Flight.FuelTankCollection[i].Density = c.Density; } } // base.ApplyChanges(); }
///<summary> /// Конструктор по умолчанию ///</summary> public FuelControlItem(FuelTankCondition cond) : this() { AttachedObject = cond; }